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

Published on January 3rd 2023

Post Image
Glossary

Heterogeneity- ကြီးကြီးမားမား ကျယ်ပြန့် ကွဲပြားခြင်း။

Distributed system- processor အမျိုးမျိုး၊ device အမျိုးမျိုး၊ systemအမျိုးအမျိုး တွင် ပြိုင်တူ real-time operation လုပ်ဆောင်သော system။

Legacy systems- ယခုတိုင် အသုံးပြုနေသော နည်းပညာအဟောင်း။

Integrity- is doing the right thing. Even no one is watching.

Intellectual- ကိုယ်ပိုင်ဉာဏ်ဖြင့် တီထွင်ဖန်တီးသော။

1.1.11 Software engineeringတွင် တွေ့ကြုံရမည့် key challenges များ

၂၁ ရာစု Software engineeringနယ်ပယ်တွင် ကြုံတွေ့ရသော key challenge သုံးခုရှိပါသည်။

1. The heterogeneity challenge: distributed systemများကဲ့သို့ system များသည် network တစ်လျှောက်ရှိ ကွဲပြားသော computer အမျိုးအစားများနှင့် ကွဲပြားသောsupport systemအမျိုးအစားများတွင် operation များ လုပ်ဆောင် လာကြရပါသည်။ အသစ် ရေးသား တည်ဆောက်ထားသော softwareနှင့် မတူညီသော programming langugeဖြင့် ရေးသားတည်ဆောက် ထားသော system(legacy systems) အဟောင်းတို့ကို ပြန်လည် ပေါင်းစပ်ဖွဲ့စည်းရခြင်း သည်လည်း ဤchallenge တွင် လိုအပ်ပါသည်။ ဤ heterogeneity challenge သည် လိုက်လျောညီထွေဖြစ်သည့် dependable softwareများကို တည်ဆောက် ခြင်းအတွက် technique များကို developလုပ်ရသော challenge ဖြစ်ပါသည်။

2. The delivery challenge: အစဉ်အလာ အရ software engineering techniqueများသည် အချိန် များများပေးရသော အရာများဖြစ်ပါသည်။ ပေးလိုက်ရသော အချိန်အတွင်းမှာလည်း software quality ကိုရယူနိုင်ရန် လိုအပ်ပါသည်။ ယနေ့ခေတ် စီပွားရေး၏ တုံ့ပြန်မှုများနှင့် ပြောင်းလဲမှုများ လျင်မြန် လာသည်နှင့်အမျှ ယင်းစီပွားရေး၏ supporting software များသည် လည်း ညီတူမျှတူ ပြောင်းလဲကြရပါသည်။ Delivery challenge ဆိုသည်မှာ software quality ထိခိုက်မှုမရှိဘဲ ကြီးမား ရှုပ်ထွေးသော systemများအတွက် delivery time နည်းစေခြင်း ဖြစ်ပါသည်။

3. The trust challenge: softwareများသည် ကျွန်တော်တို့၏ နေ့စဉ်ဘဝတွင် ပါဝင်ရောယှက်လာတာနှင့် အမျှ ၎င်း softwareများကို ကျွန်တော်တို့မှ ယုံကြည် နိုင်လောက်သည့် အချက်မှာလည်း မရှိမဖြစ် ဖြစ်လာပါသည်။ အထူးသဖြင့် web pageများနှင့် web service interface များမှ ‌access လုပ်ရသော remote software systemများအတွက် trust challenge သည် အရေးပါပါသည်။ Trust challengeဆိုသည်မှာ အသုံးပြုသူ userများ ယုံကြည်နိုင်သော softwareများကို demonstrate လုပ်ပေးသည့် technique များကို developလုပ်ရခြင်းဖြစ်ပါသည်။

ဒီလိုမျိုး challengeတွေကို ရင်ဆိုင်ဖို့ဆိုရင် ကျွန်တော်တို့အနေနဲ့ software engineering methodတွေကို ဆန်းသစ်သော နည်းလမ်းများဖြင့် ပေါင်းစပ် အသုံးပြု ထားသည့် toolအသစ်တွေ၊ technique အသစ်တွေ လိုအပ်ပါသည်။

1.2 Professional and ethical responsibility

အခြား အင်ဂျင်နီယာ စည်းမျဉ်းစည်းကမ်းများအလားတူ software engineering သည်လည်း အင်ဂျင်နီယာများ၏ လွတ်လပ်ခွင့်ကို ကန့်သတ်သည့် တရားဝင် လူမှု ဖွဲ့စည်းမှု အတွင်း လုပ်ဆောင်ပါသည်။ Software engineerများသည် မိမိကိုယ်ကိုယ် professional ဟုခံယူပါက အလုပ်တာဝန်များကို လူ့ကျင့်ဝတ်နှင့် ကိုက်ညီပြီး ကိုယ်ကျင့်တရားကောင်းမွန်စွာ ပြုမူလုပ်ဆောင်ရပါမည်။ ရိုးသားဖြောင့်မတ် ခြင်း (honesty and integrity) ကိုလည်း အားပေးထောက်ခံ ရပါမည်။ မိမိ၏ ကျွမ်းကျင်မှု စွမ်းရည်များကို မသမာမှုများနှင့် software engineeringနယ်ပယ်၏ ဂုဏ်သိက္ခာ ကျဆင်းစေမှု များတွင် အသုံးမချသင့်ပါ။ ထို့ကြောင့် အလုပ်တာဝန်များကို ရိုးသား ဖြောင့်မတ်စွာ လုပ်ဆောင်နိုင်ရန် အောက်ပါအချက်များကို သတိထားသင့် ပါ သည်။

1. Confidentiality: မိမိ အနေဖြင့် မိမိတို့၏ အလုပ်ရှင်များ (သို့) ဖောက်သည်များ၏ မိမိအပေါ်ထားရှိသော ယုံကြည်စိတ်ချမှု၊ သဘောတူညီမှုများကို အလေးထား ရပါမည်။

2. Competence: ကိုယ့်အရည်အချင်းကို ကိုယ်သိရပါမည်။မိမိ အရည်အချင်းနှင့် မကိုက်ညီသော အလုပ်ကို သိလျက်နှင့် လက်ခံဆောင်ရွက်ခြင်း မပြုသင့်ပါ။

3. Intellectual property rights: မိမိအနေဖြင့် patent နှင့် copyrightများကဲ့သို့ မူပိုင်ခွင့်များကို ထိန်းချုပ်သည့် ပြည်တွင်းဉပဒေ များကို နားလည်ထားရပါမည်။ အလုပ်ရှင်များနှင့် ဖောက်သည်များ၏ မူပိုင်ခွင့်များကို ဉပဒေများဖြင့် ကာကွယ် ထားကြောင်း မိမိဘက်မှ သေချာအောင် ဂရုစိုက်သင့်ပါသည်။

4. Computer misuse: မိမိ၏ နည်းပညာ စွမ်းရည်ကို အသုံးချကာ အခြားသူများ၏ computerကို အလွဲသုံးစား မပြုလုပ်သင့်ပါ။ computerအလွဲသုံးစား ပြုလုပ်ခြင်း ဆိုသည်မှာ အလုပ်ရှင် computerတွင် gameကစားခြင်းကဲ့သို့သော အသေးအဖွဲ ကိစ္စများမှ virus ထည့်သွင်း ဖြန့်ဖြူးခြင်း အထိ ကိစ္စများကို ဆိုလို ပါသည်။

ထို့အပြင် software engineerများ အနေဖြင့် လိုက်နှာသင့်သော အဓိကအချက် ရှစ်ခု ရှိပါသည်။

1. PUBLIC — software engineerများသည် အများ၏ အကျိုးစီးပွားနှင့် ကိုက်ညီအောင် အလုပ်လုပ်ဆောင်သင့်ပါသည်။

2. CLIENT AND EMPLOYER — software engineerများသည် အများ၏ အကျိုးစီးပွားနှင့် ကိုက်ညီပြီး အလုပ်ရှင်နှင့် ဖောက်သည်တို့ကို အကောင်းဆုံး အကျိုးပေးနိုင်အောင် ပြုမူလုပ်ဆောင်သင့်ပါသည်။

3. PRODUCT —software engineerများသည် သူတို့၏ productများနှင့် သက်ဆိုင်ရာ modificationများကို ဖြစ်နိုင်လျှင် high professional standard အဆင့်အတန်းဝင်အောင် သေချာစွာ လုပ်ဆောင်သင့်ပါသည်။

4. JUDGEMENT– software engineerများသည် professional ဆန်ဆန် ဝေဖန် ပိုင်းခြားမှုများပြုလုပ်ရာတွင် ရိုးသားဖြောင့်မတ်ပြီး လွတ်လပ်စွာ စဉ်းစား ဆုံးဖြတ်သင့်ပါသည်။

5. MANAGEMENT– software engineeringနယ်ပယ်ရှိ managerများနှင့် leader များသည် software development နှင့် maintenance ဆိုင်ရာ managementအပိုင်းကို ကျင့်ဝတ်တရားနှင့်အညီချဉ်းကပ်လေ့လာကာ လက်ခံအားပေး သင့်ပ်သည်။

6. PROFESSION– software engineerများသည် အများအကျိုးစီးပွားနှင့် ကိုက်ညီသော မိမိ အလုပ်အကိုင်၏ ဂုဏ်သိက္ခာ(integrity and reputation) ကို မြင့်တင်ပေးသင့်ပါသည်။

7. COLLEAGUES– software engineerများသည် မိမိ၏ လုပ်ဖော်ကိုင်ဖက် များအပေါ် မျှမျှတတ ဆက်ဆံကာ ကူညီရှိုင်းပင်းသင့်ပါသည်။

8. SELF– software engineerများသည် မိမိ၏ အလုပ်အကိုင်နှင့်သက်ဆိုင်ရာ လေ့ကျင့်မှုများပြုလုပ်ရာတွင် စဉ်ဆက်မပြတ် အမြဲတမ်း လေ့လာသင်ယူ သင့်ပါသည်။ အခြားသူများ၏ လေ့လာသင်ယူမှုများကိုလည်း အားပေးကူညီ သင့်ပါသည်။