Software Engineering မိတ်ဆက် (အပိုင်း-၁)

Published on January 3rd 2023

Post Image

ယခုခေတ် နိုင်ငံတော်တော်များများသည် ရှုပ်ထွေးသော Computer-based system များအပေါ် မှီခိုလာကြပြီ ဖြစ်ပါသည်။ နိုင်ငံလုံးဆိုင်ရာ အရေးကြီးသော dataအစိတ်အပိုင်းများနှင့် အသုံးဝင်သည့် အချက်အလက် များကို computer-based systemများနှင့် controlling software များအပေါ်မှီခိုကာ ထိန်းသိမ်းလာကြပါသည်။ ထိုကဲ့သို့သောနည်းပညာများ ကြီးမားကျယ်ပြန့် လာသည် နှင့်အမျှ softwareများကို ထုတ်လုပ်ခြင်း နှင့် ထိန်းသိမ်းခြင်း တွင် ကျသင့်သော ကုန်ကျစရိတ်နှင့် အညီ အကျိုး(cost-effective)ဖြစ်ထွန်း ရန် နည်းလမ်းနှင့် စည်းစနစ်များ လိုအပ်လာပါ တော့သည်။

Software Engineeringသည် အင်ဂျင်နီယာနယ်ပယ်၏ စည်းကမ်း တစ်ခုဖြစ်ပြီး high-quality software systemများ၏ ကုန်ကျစရိတ်နှင့် ရရှိသင့်သော အကျိုး ရလဒ်များ အပေါ် လေ့လာသော ဘာသာရပ် ဖြစ်ပါသည်။ Software၏ သဘောသဘာဝသည် ထိတွေ့ကိုင်တွယ်၍မရဘဲ စိတ်ကူးပုံဖော် တည်ဆောက်ရသော သဘောရှိပါသည်။ ဆိုလိုသည်မှာ software တစ်ခု၏ စွမ်းရည်တွင် ရုပ်ပိုင်းဆိုင်ရာ သတ်မှတ်မှုများမရှိပါ။

Software Engineeringဟူသည့် အယူအဆကို ၁၉၆၈ခုနှစ်တွင် ကျင်းပခဲ့သော ညီလာခံတွင် စတင်မိတ်ဆက်ခဲ့ပါသည်။ ထိုညီလာခံကို “software crisis” ခေါင်းစဉ်ဖြင့် အခြေခံကာ ကျင်းပပြုလုပ်ခဲ့ပါသည်။ Software ကပ်ဆိုက်ကာလ(crisis) သည် software systemများ၏ ရှုပ်ထွေးပြီး အဆင့်မြင့်လာသော နည်းပညာများ ကြောင့် ဖြစ်ပေါ် လာရပါသည်။ ထို့ကြောင့် အဆင့်မြင့် software systemများကို စနစ်တကျ develop လုပ်နိုင်ရန် Software Engineering စည်းကမ်းများကို ပညာရှင် များမှ ရေးသားခဲ့ကြခြင်းဖြစ်ပါသည်။

1.1 အမေးများသော SE အမေးအဖြေများ

1.1.1 Software ဆိုတာဘာလဲ။

Software ဆိုသည်မှာ programsများ သက်သက်ဖြင့် ဖွဲ့စည်း ထားသော အရာ မဟုတ်ပါ။ ၎င်း programများ မှန်မှန်ကန်ကန် အစဉ်တကျ အလုပ်လုပ်နိုင်ရန် လိုအပ်သည့် သက်ဆိုင်ရာ မှတ်တမ်း မှတ်ရာများ (documentations)နှင့် data အစိတ်အပိုင်း များ၏ဖွဲ့စည်းပုံများပါ software တစ်ခုတွင် ပါဝင်ရပါသည်။

Software systemတစ်ခုတွင် ခွဲခြားထားသော program အမျိုးအစား များ ရှိပါသည်။ Programများကို set up လုပ်ရာတွင် အသုံးပြုသည့် configuration fileများ၊ system၏ ဖွဲ့စည်းတည်ဆောက်ပုံ structureကို ဖော်ပြသည့် system documentation နှင့် systemကို မည်သို့ အသုံးပြုရမည်၊ system product၏ အချက်အလက်များကို download ပြုလုပ်နိုင်ရန် website စသည့် အချက်အလက်များ ပါဝင်သော user documentation များသည် software systemတစ်ခုတွင် ပါဝင်လေ့ရှိ ပါသည်။

Software engineerများသည် software product (ထုတ်ကုန်) များကို ထုတ်လုပ်ခြင်းနှင့် သက်ဆိုင်ကြပါသည်။ Software product ဆိုသည်မှာ ဝယ်သူများ(customer)ထံသို့ ရောင်းချနိုင်သော အဆင့်ရှိ သည့် software ကို ဆိုလိုခြင်း ဖြစ်သည်။

အခြေခံအားဖြင့် software product နှစ်မျိုးရှိပါသည်။

1. Generic products: တီထွင်ရေးသားသော အဖွဲ့အစည်း တစ်ခုမှ ထုတ်လုပ်သော stand-alone systems များဖြစ်ပြီး မည်သည့် customer မဆို ဝယ်ယူအသုံးပြု နိုင်သော ဈေးကွက်သို့ ရောင်းချ သည့် ထုတ်ကုန်များ ဖြစ်ပါသည်။

ဉပမာ- Database နည်းပညာများ၊ Microsoft office softwareများ၊ Photoshop softwareများ ကဲ့သို့ personal computerများတွင် ရှိသော အသင့်သုံး software များဖြစ် ပါသည်။

2. Customized (or bespoke) products: တစ်စုံ တစ်ယောက်သော customer (သို့) အဖွဲ့အစည်း တစ်ခုမှ စိတ်ကြိုက် တာဝန်ပေးအပ်နှံ သော systemများ ဖြစ်ပါသည်။ ထိုကဲ့သို့ တာဝန်ပေးခြင်းကို သဘောတူသော development အဖွဲ့အစည်းသည် ယင်း customer များ အတွက်သာ ပြုလုပ်ထုတ်လုပ်ပေးရပါသည်။

ဉပမာ- စီပွားရေးလုပ်ငန်းတစ်ခုခုအတွက် softwareများ၊ သင်တန်းကျောင်း သို့ လုပ်ငန်း တစ်ခုခုအတွက် websiteများ၊ ယာဉ်ကြော ထိန်းချုပ်မှု systemများ၊ လျှပ်စစ်ပစ္စည်း ထိန်းချုပ်မှု systemsများ ဖြစ်ကြ ပါသည်။

Generic product များ၏ software သတ်မှတ်ချက် specificationများကို တီထွင်ထုတ်လုပ်သူ အဖွဲ့အစည်းမှ ထိန်းချုပ်ပြီး custom product များ၏ software specificationများကို မူ တာဝန်ပေး အပ်နှံသည့် အဖွဲ့အစည်းမှ သတ်မှတ်ထိန်းချုပ် ကြခြင်းဖြစ် ပါသည်။

ယခုခေတ် development companyများ၏ software ထုတ်လုပ်မှု ပုံစံမှာ generic product systemများ အဖြစ် ဦးစွာထုတ်လုပ်ပြီး customer များ လိုအပ်သည့်အရာများကို နောက်ပိုင်းမှ ပြင်ဆင်ဖြည့်စွက် တည်ဆောက် ကာ customize product အဖြစ် ဆက်လက် ထုတ်လုပ် ကြပါသည်။

ဉပမာ Enterprise Resource Planning (ERP) systemsများ ထဲမှ SAP system များကဲ့သို့ ဖြစ်သည်။