දැනට තිබෙන පාඩම්...

Saturday, May 14, 2016

Software Engineering ඉගෙන ගනිමු - 3 පාඩම

Software Engineering 3 පාඩමෙන් කථා කරන්නෙ Software Process ගැන...

Software process model කියන්නෙ process ඒකක abstract representation (සාරාංශයමය ඉදිරිපත් කිරීමක්)

සාමාන්‍ය software process models ප්‍රධාන කොටස් 3යි.

1. Waterfall Model
2. Iterative Process
3. Component - Based Software Engineering

1. Waterfall Model

මෙික ප්‍රධාන පියවර 5කින් සමන්විත වෙනවා.

   1. Requirements analysis and Definition
   2. System and Software Engineering
   3. Implementation and unit testing
   4. Integration and system testing
   5. Operation and Maintenance

මෙහි වැදගත් කරුණු :-

1. මේකෙ bugs කලින් හොයාගන්න පුලුවන්නම් වටිනාකම වැඩියි.
2. හැම step ඒකක් අන්තිමටම documentation කරනවා .
3. Pure Waterfalll Model ඒකක හැමතිස්සෙම විශ්වාසනීයත්වය වැඩියි.
4. පහලට ගියොත් ගියාම තමයි කලින් පියවරට නැවත ඒන්න බෑ. (දිය ඇල්ලක් වගෙම තමයි )

වාසි :-

     1. හැම stage ඒකකදිම documentation ඒකක් කරන නිසා software ඒකේ දර්ශනය පැහැදිලියි, ඉදිරියට               වැඩ කරන් යන්න ලේසිි...
     2. වැඩ කරන්න පිලිවෙලක් තියෙන නිසා ඉතාම ස්ථායි ක්‍රමයක් වෙනවා මේක.

අවාසි :-

  1. නිතර නිතර වෙනස් කරන්න අමාරුයි.
  2. customerගෙ අවශ්‍යතා වලට අනුව වෙනස් කරන්න අමාරුයිි.
  3. කරන පියවර වලින් ඒකක්වත් 100%ක් සම්පූර්ණ කරන්න අමාරුයි.
  4. resources නාස්තියක් වෙනවා. ( මේ නිසා පොඩි සමාගම් වලට ගැලපෙනවා. )
  5. risk management (අවදානම් කළමණාකරණය ) සම්පුර්ණ වෙන්නෙ නෑ.
Waterfall වල තිබුනු අවුල තමයි customer කියන කියන විදියට වැඩක් කෙරෙන්නෙ නෑ. ඒ නිසා Iterative Process විදියට අලුත් ක්‍රම කිහිපයක් අැවිත් තියෙනවා.

  1. Evolutionary Development
  2. Incremental Development
  3. Spiral Model
  4. Agile Software Model
  5. Extream Programming(XP)
1. Evolutionary Development
         අපි තව මේකට කියනවා Throw-Away-Prototyping කියලා. ඒහෙම කියන්න මූලික හේතුව තමයි, Waterfall Model ඒකේ තිබුනු ලොකුම අවුල තමයි customer ඒකත් වැඩි සම්බන්ධයක් නැති කම. මේ අලුත් ක්‍රමයෙදී customerට හැමතිස්සෙම ඒයාගෙ software ඒකේ prototype හද හද දෙනවා ඒයාට ඒවාගෙ අඩුපාඩු බලලා කියන්න කිියලා... ඊට පස්සෙ ඒක throw කරලා තමන්ගෙ Software ඒක හදනවා. මේ විදියට කිහිප පාරක්ම වෙන නිසා තමයි මේකට Throw Away Prototyping කියලා කියන්නෙ. මේක ගොඩක්ම හොද Small and Medium software වලට තමයි.

මෙහි වාසි :-
  1. User/ Customer ගෙ අවශ්‍යතා තේරුම් ගන්න පහසුයි.
  2. Specifications අපිට ඔින විදියට වෙනස් කරගන්න පුලුවන්.
මෙහි අවාසි :-
  1. හැමතිස්සෙම වෙනස් වෙන නිසා improvement ඒක check කරන්න අමාරුයි.
  2. ඒ වගේම software ඒකේ documentation කිරිල්ලක් වෙන්නෙත් නෑ.
  3. නිතරම වෙනස්කම් කරන නිසා structure ඒක දුර්වලයි.
  4. අනික මේ කියන විදියට phototypes හදන්න විශේෂ හැකියාවක් තියෙන්න ඔින.
  5. prototypes හද හද ඉන්න ගිහින් software ඒක ඉවර කර ගන්න වෙලාව මදි වෙන්න පුලුවන්.
2.Incremental Development
         මේකෙදි අපි කෙලින්ම develop කරන්නෙ original software ඒකමයි. prototypes කරන්නෙ නෑ. අපි ගත්තොත් A,B,C,D,E කියලා 5ක්, ඒකෙ A B දෙන්නගෙ priority ඒක වැඩිනම් ඒ දෙන්නව priority ඒක වැඩි කෙනාගෙ ඉදන් කරගෙන යනවා. ඊලග step ඒකේදී A B දෙන්නගෙ වෙනස්කම් කරනවා. ඊලග step ඒකේදි C D E priority ඒක වැඩි වෙන පිලිවෙලට කරගෙන ගිහින් A B C D E  කියන 5දෙනාගෙම අඩුපාඩු හදනවා.

මෙහි වාසි:-

  1. වැඩ ඉවර වෙන කොටස තමන්ට වැඩ කරන්න ගන්න පුලුවන්.
  2. මොකක් හරි error ඒකක් නිසා software ඒකම සම්පුර්ණයෙන්ම corrupt වෙන්නෙ නෑ.
  3. අපි වැඩ කරන්න දෙන software පංගුව prototype ඒකක් තරමටම developer ට වැදගත් වෙනවා.
  4. හැම ඉදිරි පියවරකදිම මුලින් කරපු priority ඒක වැඩි පියවර අායෙ අායෙ check වෙනවා.

මේ පාඩමේ ඉතුරු ටික ඊලග ලිපියෙන් කථා කරමු...

       









කවුද මේ සුන්දර් පිචායි ??

පිචායි සුන්දර්රාජන් ඔබ දන්නවාද? මං දන්න තරමින් නැහැ. නමුත් ඔබ සුන්දර් පිචායි හදුනනවා විය යුතුයි. ඔහු තමයි Google අායතනයේ ප්‍රධාන විධායක...