SarPhat Author
ကျွန်တော်တို့ application တွေ ရေးကြမယ်ပေါ့.. ရေးမယ်ဆိုရင် .. ယေဘုယျအားဖြင့် အနည်းဆုံးတော့...
- Programming Language တစ်ခုခု ကို တတ်မြောက်ရမယ်..
- Database ကို ကျွမ်းကျွမ်းကျင်ကျင် တတ်မြောက်ရမယ်..
- UI/UX Design ကို ကောင်းကောင်း သဘောပေါက် နားလည်ရမယ်..
ဟုတ်ပြီ .. ဒီ အချက် တွေကို သိနားလည် ထားပြီးသားဆိုရင် ရေးလို့ ရပြီ.. ဒါပေမယ့် အဲ့ဒါက ဆော့ဖ်ဝဲ တစ်ခု ဖြစ်တည်ခြင်းရဲ့ အရေးကြီး အစိတ် အပိုင်း တွေ မဟုတ်သေးဘူး... ရေးတယ် ဆိုတာက တကယ်တော့ ကကြီး ခခွေး အဆင့် ပဲရှိသေးတယ်..။ အရေးကြီး တဲ့ အစိတ်အပိုင်း တွေ ဆီ သွားရအောင်..။
Program Establish
***************
ကျွန်တော်တို့ Software Industry ထဲမှာ ထုတ်လုပ်ခြင်းဆိုင်ရာ နည်းဥပဒေသ တွေ စနစ်တွေ ရှိနေပါသေးတယ်..။ Software တစ်ခု ကို စတင် အကောင်အထည် ဖော်ဖို့ ဒီစနစ် တွေ အရ လုပ်ဆောင် ဖို့ လို အပ်တယ်.. ဒီစနစ် တွေ မလိုက်နာရင်ရော .. ဘာဖြစ်မှာ လဲ ??? လို့ ဆိုခဲ့ရင်တော့ ဘာမှ မဖြစ်ပါဘူး.. ဒါပေမယ့် ခင်ဗျား အတွက် လဲ ဘာမှ ဖြစ်လာမှာ မဟုတ်ပါဘူး.. အဲ့တော့ Software တစ်ခု စတင်ဖို့ အတွက် SDLC ဆိုတာလေးကို ဆက် ကြည့်ကြရအောင်..။
What is SDLC?
************
SDLC (Software Development Life Cycle ) ဆိုတာ ဘာလဲ မပြောခင် သူ့ရဲ့ ရည်ရွယ်ချက် လေး ကို ပြောပြပါမယ်..။
- High Quality Application တွေ ထုတ်လုပ်နိုင်ဖို့
- User expectation တွေကို အကောင်အထည်ဖော်နိုင်ဖို့
- သတ်မှတ်ထားတဲ့ အချိန်အတွင်းမှာ အကောင်းဆုံး အဆုံးသတ် ပြီးစီးနိုင်ဖို့
ဆိုတဲ့ ရည်မှန်းချက်တွေ ပါပဲ..။
တကယ်တော့ SDLC ဆိုတာ high quality software တွေ အတွက် ဒီဇိုင်းတွေ ထုတ်လုပ်ရေးသားမှု တွေ အတွက် ဖန်တီးထားတဲ့ Process တစ်ခုပဲ ဖြစ်ပါတယ်..။ သူ့ကို software development process လို့ လဲ ခေါ်ပါတယ်..။ သူ့ ရဲ့ International Standard ကတော့ ISO/IEC 12207 ပဲ ဖြစ်ပါတယ်..။
SDLC ဆိုတာက Software ထုတ်လုပ်မှု၊ ထိန်းသိမ်းပြုပြင်ခြင်း၊ တစ်စုံတစ်ရာ အစားထိုးဆောင်ရွက်ခြင်း တို့ အတွက် အသေးစိတ် အချက်အလက်တွေကို ဖော်ပြပေးတဲ့ အစီအစဉ် Plan တစ်ခုပဲ ဖြစ်ပါတယ်..။
SDLC မှာ Stage အနေနဲ့ 6 ခု ရှိပါတယ်..
- Planning
- Defining
- Designing
- Building
- Testing
- Development
ဆိုပြီး အဆင့်ဆင့် ရှိပါတယ်..။
1- Planning and Requirement Analysis
******************************
Software တစ်ခု ရေးမယ် ရေးမယ် အရင် လုပ်လို့ မရပါဘူး.. ဘာနဲ့ပက်သက်ပြီး ရေးမှာ လဲ .. အဲ့ဒီ ရေးမယ့် Software ရဲ့ တကယ့် real world မှာ ရှိနေတဲ့ Domain Knowledge ကို သိဖို့ အရင် ဆုံး Requirement ဆိုတဲ့ အချက်အလက်တွေကို အရင် စုဆောင်းရပါတယ်.. အပြင်မှာတော့ ဒါကို requirement ကောက်တယ် လို့ပြောကြတာပဲ..။ အဲ့တော့ ဒီ Requirement အဆင့်ဟာ အခြေခံ အကျဆုံး အဆင့်ပဲ ဖြစ်ပါတယ်..။ အိုကေ ဘယ်လို စ ပြီး requirement ကို စုဆောင်းမလဲ...။ ခင်ဗျားတစ်ယောက်ထဲ တော့ မလုပ်ပါနဲ့.. တစ်ယောက်တည်း ရဲ့ ဦဏှောက် နဲ့ ဆုံးဖြတ်တာ အမှား ပါ ဖို့ ပိုများပါတယ်..။
- ခင်ဗျား အလုပ်ရဲ့ senior member တွေ ပါရပါမယ် ..
- customer ဘက်က ဒီလုပ်ငန်းနဲ့ပက်သက်ပြီး တကယ် ထဲထဲ၀င်၀င် နားလည်တဲ့ သူတွေ ပါရပါမယ် . .
- sale department က သူတွေပါသင့်တယ် .. သူတို့က ခင်ဗျား Software ကို ရောင်းပေးမယ့် သူတွေလေ ..
- market surveys တွေ ရှိရမယ် ..
အဲ့လို တွေ Requirement တွေ ရပြီ ဆိုရင်တော့ Planning က စပြီး ဒီ Software အတွက် Quality Assurance အာမခံ ခြင်း နှင့် မှတ်ပုံတင်ခြင်း ဆိုင်ရာ ကိစ္စ တွေနဲ့ ပက်သက်ပြီး Risk အားလုံးကို စုစည်း ပါတယ်.. ဒါဟာ Planning Stage မှာ အဆုံးသတ်ပါတယ်.. အင်း ဒါနဲ့ Technical ဘက် ကသူ တွေ အနေနဲ့ တော့ ဒီ Planning နဲ့ ပက်သက်ပြီး ရလာတဲ့ အချက်အလက်တွေကို Risk နည်းနိုင်သမျှ နည်းအောင် ရေးနိုင်ဖို့ က တော့ Technical Feasbilty အရ Define လုပ်ရပါမယ်..။
ခြုံကြည့်ရင် Requirement ကောက်မယ် . . ရလာတဲ့ အချက်အလက်ပေါ် မူတည်ပြီး ရနိုင်၏ မရနိုင်၏ တွေ ငြင်းကြ ခုန်ကြ နဲ့ အကောင်းဆုံး ဘေးထွက်ဆိုးကျိုး နည်းနိုင်သမျှ နည်းနည်းနဲ့ ပြီးစီးအောင် ရေးနိုင်ဖို့ သတ်မှတ် ကြခြင်းပဲ ဖြစ်ပါတယ်..။
2- Defining Requirements
********************
*ဟာ အပေါ် မှာ Define လုပ်ပြီးသားလေ ဗျာ... ထပ်လုပ်ရဦးမှာလား...။ ဟုတ်ပါတယ် ထပ်လုပ်ရပါလိမ့်မယ်..။ ဘယ်လို ထပ်ပြီး Define လုပ်မလဲ ဆိုတော့ တကယ့်ကို Clearly Define လုပ်ရပါတယ်.. ဒီ Requirement တွေနဲ့ ပက်သက်ပြီး Document တွေ ထုတ်ရမယ်.. နောက်ပြီး customer ဒါမှ မဟုတ် market analyst နဲ့ Approve လုပ်ကို လုပ်ရမယ်..။ ခင်ဗျားတို့ လိုချင်တာ ဒါတွေနော်.. ဒီလောက် အချိန်အတွင်းနော်.. သေချာလား .. ဒါဆို လက်မှတ်ထိုး .. ကျုပ်တို့ အဲ့ အတိုင်းလုပ်မယ်.. အဲ့ဒီလို ဆိုလိုချင်တာ..။ ဒါကို SRS(Software Requirement Specification) လို့ခေါ်ပါတယ် ..။
3- Designing the Product Architecture
******************************
SRS ရပြီဆိုတာနဲ့ Software Architect ဆီ အပြေးလေး လှမ်းခဲ့လိုက်တော့..။ ဒီ SRS အရ Product Design ကို ဘယ်လို လုပ်မယ် ဆိုပြီး Architect နဲ့ စီစဉ်ပြီး document တွေဘာတွေ လုပ် ကြ.. အဲ့ဒါကိုတော့ DDS(Design Document Specification) လို့ ခေါ်တယ်ဗျ..။ DDS ရလာပြီ ဆိုရင်တော့ ဒီ software ဖြစ်မြောက်ရေးနဲ့ ပက်သက်တဲ့ သူတွေ အကုန်ခေါ် ဆွေးနွေးကြ .. ဒီ DDS အရ ဘယ်လိုတွေတော့ Risk တွေ ရှိမယ်ဗျ.. အပျက်အစီး ခံနိုင်မှုက တော့ ဘယ်လောက် ရှိမယ်ဗျ.. ဒီဇိုင်း အဆင့်တွေက ဘယ်လို ရှိမယ်.. ဘက်ဂျက်က လောက်ပါ့မလား.. အချိန်က ဒီလောက်ပဲ ရတာနော်.. ဆိုတဲ့ အကြောင်းအရာတွေကို လုံးဝ အကြိတ်အနယ် တိုက်ခိုက်ပြီး အကောင်းဆုံး DDS ကို ရွေးချယ်ကြရပါမယ်..။ ပြီးရင် တော့ အရင် အတိုင်းပဲ .. approve လုပ်ကြပေါ့နော်..။
4- Building or Developing the Product
******************************
Software ကို တကယ် အသက်သွင်းမယ့် Stage ဆိုပါတော့.. ခင်ဗျားတို့ ဘ၀ က ဒီ အဆင့်မှာ စ တာပဲ.. Programmer တွေ Developer တွေရဲ့ အခန်းပေါ့..။
ရရှိလာတဲ့ DDS အရ Developer/Programmer တွေဟာ code စတင် ရေးရပါတော့မယ်.. Programming Tools တွေလဲ အစုံအလင် လိုအပ်တာပေါ့..။ ဘယ် Platform နဲ့ရေးမလဲ ... ဘယ် လိုသွားမလဲ OOP လား Structure ပဲ လား.. စတဲ့ အရာတွေ ဆုံးဖြတ်ကြပေါ့.. ။
5- Testing the Product
******************
ဟုတ်ပြီ .. ခင်ဗျားတို့ ရေးလိုက်တဲ့ Program ကို စတင် စစ်ဆေးရပါတော့မယ်.. သံသယ ရှိနိုင်တဲ့ နေရာ အားလုံးကို စစ်ဆေးရပါမယ်...။ DDS အရ အားလုံး ပါ၀င်မှု ရှိမရှိ စစ်ဆေးရပါမယ်..။ ဒီ အဆင့်က သိပ် အလုပ်လုပ်ရပါတယ်... လိုချင် တဲ့ SRS အတိုင်း မဖြစ်မချင်း တွေ့လာတဲ့ အမှားအယွင်း အားလုံးကို Report လုပ်ရမယ် .. Fix လုပ်ရမယ်.. ပြီးတာနဲ့ ပြန်ပြီး Test ပြန်လုပ်.. အဲ့မှာ အမှား ပြန်တွေ့ နောက်တစ်ခါ ထပ်လုပ် ပဲ... နောက်ဆုံး အားလုံး DDS ရော SRS ရောကို cover ဖြစ်ပြီ သေချာပြီ ဆိုရင်တော့ နောက်ဆုံး Stage လေးဆီ ကူးလို့ ရပါပြီ..။
6- Deployment in the Market and Maintenance
**************************************
Software က သေချာ စစ်ဆေးပြီးပြီ အဆင်သင့်ဖြစ်ပြီ ဆိုရင်တော့ Software ကို Publish လုပ်ရပါတော့မယ်..။ Publish လုပ်ပြီးတဲ့ Software ကို စျေးကွက် မဟာဗျူဟာ အရ လုပ်ချင်တာတွေ ကတော့ ကိုယ့်သဘောပေါ့.. Beta Version ဘာညာ ပေါ့ဗျာ..။ အဲ့မှာ Software သုံးစွဲ သူတွေ ဆီက တကယ့် လက်တွေ့ အသုံးပြု တဲ့ အခါ ပြန်ရလာမယ့် Feedback တွေအရ ပြင်စရာ ရှိလဲ ပြင် ပေါ့.. ။ အားလုံး အိုကေ ပြီ ဆိုရင်တော့ ခင်ဗျား လုပ်စရာ တစ်ခု ပဲ ကျန်ပါတယ်.. မဖြစ်မနေ လုပ်ရမှာ ပါ.. .. ဘာလဲ ဆိုတော့ .. ပိုက်ဆံ အပြီးတောင်းဖို့ ပဲ ဖြစ်တယ်.. Software လိုချင်တဲ့ သူဆီကနေ ပိုက်ဆံ မတောင်းမီ လုပ်စရာ တစ်ခု
ကတော့ UAT(User Acceptance Testing) ကို လက်မှတ်ထိုးခိုင်း.. ပြီးတာနဲ့ EULA ထုတ်… ပြီးတာနဲ့ ပိုက်ဆံ တောင်းပါတော့.. ဟားဟား ( တကယ်ပြောတာ .. သူတို့ က Software သာ ရချင်တာ ပြီး ရင် ပိုက်ဆံ က ဟိုနေ့ ရွှေ့ ဒီနေရွှေ့ လုပ်တာဗျ...)။
အပြီးသတ်
*******
ဒါက SDLC ရဲ့ အပေါ်ယံ သဘောတရားပဲ ရှိပါသေးတယ်နော်.. တကယ်တော့ သူ့မှာ MODEL တွေ အများအပြားရှိသေးတယ်.. နောက်နေ့မှာ ဆက်ရှင်းပြရင်လဲ ပြပါမယ် .. မပြရင်လဲ မပြပါဘူး . .ဒါပါပဲ ။
Keep Reading