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

Published on January 3rd 2023

Post Image
Glossary

Guidance- လမ်းညွှန်မှု

Requirement analysis-software product တစ်ခုထုတ်လုပ်နိုင်ရန် လိုအပ်သည့်အရာများနှင့် အခြေအနေများကို စီစစ်ဆုံးဖြတ်ပေးခြင်း။

System modeling- systemတစ်ခု၏ စိတ်ကူးသဘောဆောင်သော modelများကို developလုပ်ခြင်းဖြစ်သည်။ တစ်နည်းအားဖြင့် system၏ အယူအဆ (concept)ကိုဖော်ပြခြင်း ဖြစ်ပါသည်။

Debugging- computer hardware (သို့)softwareမှ errorများကို ဖော်ထုတ်ဖယ်ရှားခြင်း။

CASE tool- design editor(သို့)program debugger ကဲ့သို့ software toolတစ်ခုဖြစ်ပြီး software development processရှိ activityကို ထောက်ပံ့ရန် အသုံးပြုပါသည်။

1.1.8 Software engineering methodတွေဆိုတာ ဘာလဲ။

Software engineering method ဆိုသည်မှာ cost-effective ဖြစ်သည့် high-quality software တစ်ခု ထုတ်လုပ်နိုင်ရန် အသုံးပြုသော စည်းစနစ်ကျ ဖွဲ့စည်း ထားသော နည်းလမ်း (structured approach) ဖြစ်ပါသည်။

စံနမူနာ စံပြ ideal methodဟူ၍ မရှိပါ။ ကွဲပြားသည့် methodများ ရှိသည့် အလျောက် မတူညီသည့် အခြေအနေ systemများတွင် အသုံးချပုံများ ကွဲပြားကြပါသည်။ Software engineering methodအားလုံးသည် system၏ modelများကို develop လုပ်သည့် သဘောသဘာဝကို အခြေခံထားပြီး method တစ်ခုနှင့် တစ်ခု ပါဝင် ဖွဲ့စည်းထားသည့် componentများလည်း ကွဲပြားနိုင်ပါသည်။

Software engineering method များတွင် မတူညီသောcomponent များရှိနေနိုင်ပါသည်။ ၎င်းcomponentများမှာ-

1. System model descriptions

Developလုပ်မည့် system modelများ အကြောင်းနှင့် ယင်း model များကို သတ်မှတ်မည့် စနစ်များဖြစ်ပါသည်။ ဉပမာ- Object models, data-flow models, state machine models, etc.

2. Rules

System modelများတွင် အသုံးချမည့် ကန့်သတ်ချက် constraintများ။ ဉပမာ- system model တစ်ခုတွင် ရှိသော entityများသည် unique ဖြစ်သည့် နာမည်များရှိရမည်။

3. Recommendations

ကိုယ်တိုင် ရှာဖွေတွေ့ရှိထားသော လက်တွေ့လုပ်ငန်းစဉ်များ ဖြစ်ပါ သည်။ ၎င်း လုပ်ငန်းစဉ်များသည် အများ၏ ထောက်ခံမှုများ ရရှိထားရပြီး စနစ်တကျ ဖွဲ့စည်း တည်ဆောက်ထားသော system modelတစ်ခုကို ဉီးတည်ပေးနိုင်ရပါမည်။ ဉပမာ- No object should have more than seven sub-objects associated with it.

4. Process guidance

System modelများကို develop လုပ်မည့် activity အကြောင်းများနှင့် ယင်း activityများ၏ အစီအစဉ် အကြောင်းများဖြစ်ပါသည်။ ဉပမာ- Object attributes should be documented before defining the operations associated with an object.

လက်ရှိ ရေးသားပြီး သလောက် အကြောင်းအရာများ၏ အချို့ကို နားလည်ရန် ခက်ခဲနိုင်ပါသည်။
Computer science နယ်ပယ် ရှိ အခေါ်အဝေါ် termများ၊ programming languageများ နှင့် database language များကို ထိတွေ့ လေ့လာ ဖူးမှသာလျှင် နားလည်လွယ်နိုင်ပါသည်။ ဘာသာပြန်ရန် ခက်ခဲသော အကြောင်းများနှင့် ဉပမာများကို မူရင်းစာအုပ်က စာသားအတိုင်းသာ ဖော်ပြသွားပါမည်။

1.1.9 CASE ဆိုတာဘာလဲ။

CASE၏ အရှည်ကောက်မှာ Computer-Aided Software Engineering ဖြစ် ပါသည်။ Requirement analysis, system modeling, debugging နှင့် testing ကဲ့သို့ software process activityများကို supportလုပ်ရန် အသုံးပြုသော program အမျိုးအစား အမျိုးမျိုးသည် CASE အတွင်းတွင် ပါဝင်နေပါသည်။ SE methods အားလုံးသည်လည်း CASE နည်းပညာနှင့် ဆက်စပ်လာကြပါသည်။ ဆိုလိုသည်မှာ computer ၏အကူအညီ(computer-aided)ဖြင့် software engineeringဆိုင်ရာ လုပ်ငန်းစဉ်များကို လုပ်ဆောင်ခြင်းဖြစ်သည်။ ဉပမာ- system model ၏ source codeများကို အလိုအလျောက် generateလုပ်ပေးနိုင်သော code generator များသည် CASE toolများတွင် ပါဝင်ပါသည်။ Software engineerများအတွက် processများကို လမ်းပြပေးသော toolများလည်း ရှိပါသည်။

1.1.10 Software ကောင်းတစ်ခုတွင် ပါဝင်ရမည့် အရည်အချင်း(attribute) များ

Software productတစ်ခု၏ software qualityကို ဖော်ပြသော attribute များရှိပါသည်။ ၎င်း attributeများသည် softwareတစ်ခု ဘယ်လို အလုပ် လုပ်သလဲနှင့် မသက်ဆိုင်ပါ။ Softwareတစ်ခု ဘယ်လို ပြုမူသလဲ (behavior)နှင့် သက်ဆိုင်ပါသည်။ ထို attributeများကို none-functional attributeများ ဟူ၍လည်း ခေါ်ဆိုကြပါသည်။

Banking systemတစ်ခုသည် လုံခြုံ(secure)ရမည်၊ interactive gameတစ်ခုသည် လိုက်လျောညီထွေတုံ့ပြန်(responsive)နိုင်ရမည်၊ telephone switching systemတစ်ခုသည် ယုံကြည်စိတ်ချ(reliable)နိုင်ရမည် စသဖြင့် userများ မျှော်မှန်းထားသော attributeများရှိသော softwareကို software ကောင်းဟု ခေါ်ဆိုနိုင်ပါသည်။

Software ကောင်းတစ်ခု၏ မရှိမဖြစ် ဖြစ်သော attributeများမှာ-

1. Maintainability: software ရေးသားတည်ဆောက်ရာတွင် customerများ၏ လိုအပ်ချက်များအရ ပြောင်းလဲမှုများ ပြုလုပ်နိုင်ရန် ရေးသားသင့်ပါသည်။ ဒီ attributeသည် အရေးကြီးသော(critical) attribute ဖြစ်ပါသည်။ အဘယ့် ကြောင့်ဆိုသော် business environment ပြောင်းလဲတာနှင့် အညီ software ပြောင်းလဲမှုများသည်လည်း ကြုံကိုကြုံရမည့် အရာများဖြစ်ပါသည်။

2. Dependability: software dependability တွင် ယုံကြည်အားထား ရခြင်း (reliability)၊ လုံခြုံမှု(security) နှင့် ဘေးကင်းမှု(safety) ကဲ့သို့ အသွင်အပြင်များ ရှိပါသည်။ system failure ဖြစ်ပွားသောအခါ ယုံကြည် စိတ်ချ အားထား ရလောက်သော(dependable) software တစ်ခုသည် ရုပ်ပိုင်းဆိုင်ရာ (physical) သို့မဟုတ် စီးပွားရေးဆိုင်ရာ(economic) ထိခိုက်မှုများ မဖြစ်ပွားသင့်ပါ။

3. Efficiency: software တစ်ခုသည် memory နှင့် processor cycles ကဲ့သို့သော system resource များအပေါ် ဖြုန်းတီးသုံးစွဲမှုများ မပြုလုပ်သင့်ပါ။ ထို့ကြောင့် တုံ့ပြန်နိုင်စွမ်း(responsiveness)၊ processing time နှင့် memory အသုံး ပြုခြင်း(utilization) စသည့် အရာ များတွင် efficient ဖြစ်အောင် softwareကို ရေးသားတည်ဆောက်သင့်ပါသည်။

4. Usability: ရည်ရွယ်ထားသည့် userများအတွက် designဆွဲထားသော softwareသည် အလွယ်တကူ(without undue effort) အသုံးဝင် (usable) ရပါမည်။ ဆိုလိုသည်မှာ softwareတွင် သင့်တော်သော user interface နှင့် ပြည့်စုံသော documentationများ ရှိသင့်ပါသည်။