Software Engineering Process and Modeling
Software
Software ဆိုသည္မွာ programming language တစ္ခုခုၿဖင့္ ေရးသားထားေသာ program မွ်သာမက၎ႏွင့္ သက္ဆိုင္ေသာ အၿပင္အဆင္၊ ရုပ္ပံု၊ အသံဖိုင္မ်ား၊ အသံုးၿပဳနည္းလမ္းညႊန္မ်ား အားလံုးကို စုေပါင္း ေခၚေဝၚသည္။
Kinds of Software Product
Software product မ်ားကိုအေၿခခံအားၿဖင့္ ႏွစ္မ်ိဳးခြဲၿခားထားသည္။
Software ဆိုသည္မွာ programming language တစ္ခုခုၿဖင့္ ေရးသားထားေသာ program မွ်သာမက၎ႏွင့္ သက္ဆိုင္ေသာ အၿပင္အဆင္၊ ရုပ္ပံု၊ အသံဖိုင္မ်ား၊ အသံုးၿပဳနည္းလမ္းညႊန္မ်ား အားလံုးကို စုေပါင္း ေခၚေဝၚသည္။
Kinds of Software Product
Software product မ်ားကိုအေၿခခံအားၿဖင့္ ႏွစ္မ်ိဳးခြဲၿခားထားသည္။
- Generic Products ႏွင့္
- Bespoke (or Customized ) Products ဟူ၍ၿဖစ္ပါသည္။
Generic Products ဆိုသည္မွာ programming ေရးသားေရာင္းခ်ေသာ team or company တစ္ခုခုမွ မည္သည့္ customer အတြက္မဆို ရည္စူး၍ ေစ်းကြက္သို႔ ေၾကၿငာေရာင္းခ်ေသာ product မ်ိဳးၿဖစ္သည္။ ဥပမာ-လက္ရွိ အသံုးၿပဳမ်ားေသာ Microsoft Office, Page Maker, Photoshop, Auto CAD စသည္တို႔ၿဖစ္ၾကသည္။ ထုတ္လုပ္သူမွ ပိုင္ဆိုင္ၿပီး ၿပဳၿပင္ေၿပာင္းလဲမွဳ မ်ားကိုလည္း ထုတ္လုပ္သူမွသာ ၿပင္ဆင္ေၿပာင္းလဲခြင့္ရွိသည္။
Bespoke (or Customized ) Products ဆိုသည္မွာ customer တစ္ေယာက္ေယာက္မွ သီးၿခား မွာယူအပ္ႏွံသည့္ product မ်ိဳးၿဖစ္သည္။ ဥပမာအားၿဖင့္ သီးသန္႔စီးပြားေရး လုပ္ငန္းတစ္ခုခု ေဆာင္ရြက္ရန္အတြက္ လာေရာက္ အပ္ႏွံေသာ software မ်ား၊ အေသ တပ္ဆင္ထားေသာ အီလက္ထေရာနစ္ ကိရိယာမ်ားရွိ ထိန္းခ်ဳပ္မွဳစနစ္မ်ား၊ ေလေၾကာင္း ထိန္းသိမ္းေရး စနစ္မ်ားတြင္ အသံုးၿပဳေသာ software မ်ား စသည္တို႔ၿဖစ္သည္။ customer မ်ားမွ ပိုင္ဆိုင္ၿပီး ၿပဳၿပင္ေၿပာင္းလဲမွဳ မ်ားမွာလည္း customer အလိုက် သာၿဖစ္သည္။
Bespoke (or Customized ) Products ဆိုသည္မွာ customer တစ္ေယာက္ေယာက္မွ သီးၿခား မွာယူအပ္ႏွံသည့္ product မ်ိဳးၿဖစ္သည္။ ဥပမာအားၿဖင့္ သီးသန္႔စီးပြားေရး လုပ္ငန္းတစ္ခုခု ေဆာင္ရြက္ရန္အတြက္ လာေရာက္ အပ္ႏွံေသာ software မ်ား၊ အေသ တပ္ဆင္ထားေသာ အီလက္ထေရာနစ္ ကိရိယာမ်ားရွိ ထိန္းခ်ဳပ္မွဳစနစ္မ်ား၊ ေလေၾကာင္း ထိန္းသိမ္းေရး စနစ္မ်ားတြင္ အသံုးၿပဳေသာ software မ်ား စသည္တို႔ၿဖစ္သည္။ customer မ်ားမွ ပိုင္ဆိုင္ၿပီး ၿပဳၿပင္ေၿပာင္းလဲမွဳ မ်ားမွာလည္း customer အလိုက် သာၿဖစ္သည္။
Software Engineering
Software Engineering ဆိုသည္မွာ software တစ္ခုအား စတင္ဖန္တီးရန္အတြက္ လိုအပ္ခ်က္မ်ားအား စတင္ စဥ္းစားခ်ိန္ မွစ၍ ထုတ္လုပ္ ဖန္တီးၿပီးသည့္ အခ်ိန္ထိ အၿပင္ ေရရွည္ အသံုးၿပဳႏိုင္ေရးအတြက္ ထိန္းသိမ္းမည့္ နည္းလမ္းမ်ား စသၿဖင့္ လုပ္ငန္းစဥ္ အားလံုးႏွင့္ သက္ဆိုင္သည့္ engineering စည္းမ်ဥ္းစည္းကမ္းမ်ား ၿဖစ္သည္။
Software Engineering သည္
Software Engineering ဆိုသည္မွာ software တစ္ခုအား စတင္ဖန္တီးရန္အတြက္ လိုအပ္ခ်က္မ်ားအား စတင္ စဥ္းစားခ်ိန္ မွစ၍ ထုတ္လုပ္ ဖန္တီးၿပီးသည့္ အခ်ိန္ထိ အၿပင္ ေရရွည္ အသံုးၿပဳႏိုင္ေရးအတြက္ ထိန္းသိမ္းမည့္ နည္းလမ္းမ်ား စသၿဖင့္ လုပ္ငန္းစဥ္ အားလံုးႏွင့္ သက္ဆိုင္သည့္ engineering စည္းမ်ဥ္းစည္းကမ္းမ်ား ၿဖစ္သည္။
Software Engineering သည္
- အခ်ိန္ႏွင့္တေၿပးညီရွိမွဳ(အခ်ိန္ကုန္သက္သာေစမွဳ)
- ကုန္က်မွဳသင့္တင့္မွဳ
- လက္ခံႏိုင္ေလာက္ေသာစြမ္းေဆာင္ႏိုင္မွဳ
- မွန္ကန္ေသာလုပ္ေဆာင္မွဳ
စသည့္ အရည္အခ်င္းမ်ားရွိေသာ software system မ်ားကို ထုတ္လုပ္ႏိုင္ေစမည့္ ကြန္ပ်ဴတာသိပၸံပညာႏွင့္ အႏုပညာ ေပါင္းစပ္မွဳ တစ္ရပ္ ၿဖစ္သည္။
Modeling
Software တစ္ခုတည္ေဆာက္ၿပဳလုပ္ပံုအား ၿပင္ပလက္ေတြ႕ေလာကတြင္ အိမ္တစ္လံုး တည္ေဆာက္ပံုႏွင့္ ႏွိဳင္းယွဥ္ ေလ့လာ ၾကည့္ၾကပါစို႔။ အိမ္တစ္လံုး ေဆာက္ရန္အတြက္ ပထမဆံုး လိုအပ္ေသာ အဆင့္မွာ ဗိသုကာဆရာ Architect ထံသို႔ သြားေရာက္၍ မိမိေဆာက္လုပ္လိုသည့္ အိမ္ပံုစံအမ်ိဳးအစား၊ မိမိတတ္ႏိုင္ေသာ ကုန္က်စရိတ္၊ အသံုးၿပဳလိုသည့္ ေဆာက္လုပ္ေရး ပစၥည္းမ်ား စသည္တို႔အား architect အားေၿပာၿပ၍ architect မွတြက္ခ်က္ကာ ေနာက္ဆံုးတြင္ အိမ္ပံုစံ ဒီဇိုင္းႏွင့္ အၾကမ္းဖ်ဥ္း ကုန္က်စရိတ္အား ရရွိမည္ၿဖစ္သည္။ ထိုပထမအဆင့္သည္ software engineering လုပ္ငန္းတြင္ modeling ၿပဳလုပ္သည္ဟု ေခၚသည္။
ထိုအိမ္ပံုစံ ဒီဇိုင္းအား မည္သည့္ ေဆာက္လုပ္ေရး ဝန္ေဆာင္မွဳေပးေသာ construction company တြင္ ၿဖစ္ေစၿပသ၍ အခေပး ေဆာက္လုပ္ႏိုင္ေစပါသည္။ Software engineering လုပ္ငန္းတြင္လည္း system architect ဟု ေခၚေသာ ပညာရွင္မ်ားမွ ဆြဲေပးေသာ ဒီဇိုင္းပံုစံအတိုင္း programmer မ်ားမွ coding မ်ား ေရးသားရသည္သာ ၿဖစ္သည္။ Programmer မ်ားတြင္လည္း ၎တို႔၏ သက္ဆိုင္ရာအလိုက္ ကၽြမ္းက်င္ တတ္ေၿမာက္ထားေသာ programming language မ်ားမွာ မတူညီႏိုင္ၾကေပ။ ထို႔ေၾကာင့္ system architect မ်ားႏွင့္ အၿခား programmer မ်ား အားလံုး၏အၾကားတြင္ နားလည္ရန္လိုအပ္ေသာ modeling language တစ္မ်ိဳး လိုအပ္လာသည္။ ၎လိုအပ္ခ်က္ကို UML (Unified Modeling Language) က ၿဖည့္ဆည္းေပးသည္။ UML သည္ language တစ္ခု ၿဖစ္ေသာ္လည္း အၿခား Language မ်ားကဲ့သို႔ စာသားမ်ားသက္သက္ မဟုတ္ပဲ ပံုမ်ားၿဖင့္ ကိုယ္စားၿပဳေသာ Diagram Language ၿဖစ္သည္။ UML diagram တစ္ခုကိုၾကည့္၍ မည္သည့္ language programmer ကမဆို coding ကို ေရးသားႏိုင္ရမည္ၿဖစ္သည္။ ဥပမာအားၿဖင့္ ကိန္းႏွစ္ခုကို ေပါင္းေပးေသာ system တစ္ခုအတြက္ system architect က ေအာက္ပါအတိုင္း UML diagram တစ္ခု ဆြဲေပးသည္ဆိုၾကပါစို႕။
Software တစ္ခုတည္ေဆာက္ၿပဳလုပ္ပံုအား ၿပင္ပလက္ေတြ႕ေလာကတြင္ အိမ္တစ္လံုး တည္ေဆာက္ပံုႏွင့္ ႏွိဳင္းယွဥ္ ေလ့လာ ၾကည့္ၾကပါစို႔။ အိမ္တစ္လံုး ေဆာက္ရန္အတြက္ ပထမဆံုး လိုအပ္ေသာ အဆင့္မွာ ဗိသုကာဆရာ Architect ထံသို႔ သြားေရာက္၍ မိမိေဆာက္လုပ္လိုသည့္ အိမ္ပံုစံအမ်ိဳးအစား၊ မိမိတတ္ႏိုင္ေသာ ကုန္က်စရိတ္၊ အသံုးၿပဳလိုသည့္ ေဆာက္လုပ္ေရး ပစၥည္းမ်ား စသည္တို႔အား architect အားေၿပာၿပ၍ architect မွတြက္ခ်က္ကာ ေနာက္ဆံုးတြင္ အိမ္ပံုစံ ဒီဇိုင္းႏွင့္ အၾကမ္းဖ်ဥ္း ကုန္က်စရိတ္အား ရရွိမည္ၿဖစ္သည္။ ထိုပထမအဆင့္သည္ software engineering လုပ္ငန္းတြင္ modeling ၿပဳလုပ္သည္ဟု ေခၚသည္။
ထိုအိမ္ပံုစံ ဒီဇိုင္းအား မည္သည့္ ေဆာက္လုပ္ေရး ဝန္ေဆာင္မွဳေပးေသာ construction company တြင္ ၿဖစ္ေစၿပသ၍ အခေပး ေဆာက္လုပ္ႏိုင္ေစပါသည္။ Software engineering လုပ္ငန္းတြင္လည္း system architect ဟု ေခၚေသာ ပညာရွင္မ်ားမွ ဆြဲေပးေသာ ဒီဇိုင္းပံုစံအတိုင္း programmer မ်ားမွ coding မ်ား ေရးသားရသည္သာ ၿဖစ္သည္။ Programmer မ်ားတြင္လည္း ၎တို႔၏ သက္ဆိုင္ရာအလိုက္ ကၽြမ္းက်င္ တတ္ေၿမာက္ထားေသာ programming language မ်ားမွာ မတူညီႏိုင္ၾကေပ။ ထို႔ေၾကာင့္ system architect မ်ားႏွင့္ အၿခား programmer မ်ား အားလံုး၏အၾကားတြင္ နားလည္ရန္လိုအပ္ေသာ modeling language တစ္မ်ိဳး လိုအပ္လာသည္။ ၎လိုအပ္ခ်က္ကို UML (Unified Modeling Language) က ၿဖည့္ဆည္းေပးသည္။ UML သည္ language တစ္ခု ၿဖစ္ေသာ္လည္း အၿခား Language မ်ားကဲ့သို႔ စာသားမ်ားသက္သက္ မဟုတ္ပဲ ပံုမ်ားၿဖင့္ ကိုယ္စားၿပဳေသာ Diagram Language ၿဖစ္သည္။ UML diagram တစ္ခုကိုၾကည့္၍ မည္သည့္ language programmer ကမဆို coding ကို ေရးသားႏိုင္ရမည္ၿဖစ္သည္။ ဥပမာအားၿဖင့္ ကိန္းႏွစ္ခုကို ေပါင္းေပးေသာ system တစ္ခုအတြက္ system architect က ေအာက္ပါအတိုင္း UML diagram တစ္ခု ဆြဲေပးသည္ဆိုၾကပါစို႕။
၎ ပံုကိုၾကည့္၍ မည္သည့္ language programmer ကမဆို သက္ဆိုင္ရာ language ၿဖင့္ လိုလားခ်က္ ၿပည့္စံုေစမည့္ coding ကို ေရးသားႏိုင္ရမည္ ၿဖစ္သည္။ ဥပမာအားၿဖင့္ ဆိုရေသာ္ ဒိုေရမီဖာ ေတးဂီတႏုတ္ တစ္ခုကိုၾကည့္၍ မည္သည့္ တူရိယာ ပညာရွင္ ကမဆို တီးခတ္ႏိုင္ေသာ သေဘာမ်ိဳးပင္ ၿဖစ္သည္။ အထက္တြင္ ေဖာ္ၿပေသာ Model ပံုမ်ိဳးကို Usecase Diagram ဟုေခၚသည္။ Usecase diagram ဆိုသည္မွာ System တစ္ခုကို user တစ္ေယာက္အေနၿဖင့္ မည္သို႔အသံုးခ်၍ ရသနည္းဟု အသံုးၿပဳသူ ဘက္မွ စဥ္းစားေသာ user view ကို အေလးေပးသည့္ diagram မ်ိဳးၿဖစ္သည္။ UML တြင္ diagram ၉ မ်ိဳးရွိသည္။
2 comments:
အဲ့ဒီလိုေရးတဲ့လူေတြက်မတို႕တိုင္းျပည္မွာအမ်ားႄကီးလိုပါတယ္ အရမ္းေကာင္းပါတယ္႐ွင္
so good...........
thank you.......
Ko htay lin......
Post a Comment