Architecture Domains — Application

Aung Kyaw Minn
3 min readOct 26, 2024

--

Application Domain

၁။ ထည့်သွင်းစဉ်းစားရမယ့် အချက်များ —

✔ User Interface & Experience — Business Domain မှာ သတ်မှတ်ခဲ့တဲ့ Requirement တွေကို အခြေခံပြီး အသုံးပြုရ အဆင်ပြေ ပြီး နားလည်လွယ် နိုင်မယ့် UI Component တွေနဲ့ UI Flow တွေ ကို စဉ်းစားထားဖို့လိုပါတယ်။

✔ Application Architecture and Design — ဆော့ဖ်ဝဲ တစ်ခုလုံးရဲ့ အခြေခံ ဖွဲ့စည်းတည်ဆောက်ပုံ နဲ့ ဒီဇိုင်းပုံစံ ကို ကြိုတင် စဉ်းစားထားဖို့လိုပါတယ်။

  • ဘယ်လို Module/Feature တွေပါမလဲ။ အပြန်အလှန် ဘယ်လို ချိတ်ဆက် လုပ်ဆောင်မလဲ။
  • Module/Feature တစ်ခုချင်းစီမှာ ဘယ်လို Component တွေပါမလဲ။ ဘယ်လို Service တွေပါမလဲ။
  • Component တွေ နဲ့ Service တွေ အပြန်အလှန် ဘယ်လို အချက်အလက်တွေ ပေးပို့မလဲ။
  • Component အချင်းချင်း Service အချင်းချင်း ဘယ်လို အချက်အလက်တွေ အပြန်အလှန် ဖလှယ်မလဲ။

✔ Development Tech-Stack and Frameworks — Business domain နဲ့ Data domain မှာ သတ်မှတ်ခဲ့တဲ့ Functional Requirement တွေနဲ့ Data Model တွေကို အခြေခံပြီး ကြိုတင် စဉ်းစားထားဖို့လိုပါတယ်။

  • Backend Development အတွက် ဘယ် Programming Language အမျိုးအစား နဲ့ ပိုသင့်တော်လဲ။ Compiled Language or Interpreted Language။ဘယ် Framework သုံးရမလဲ။ Compiled Language အနေနဲ့ Go ကိုရွေးထားရင် Gin, Echo, … Interpreted Language အနေနဲ့ JavaScript ကိုရွေးထားရင် Express, Nest, Adonis, …
  • Frontend Development အတွက် ဘယ် Framework တွေ သုံးမလဲ။ UI CSS အတွက် ဆို Tailwind, Bootstrap, etc။ JavaScript အတွက် ဆို Vue, React, Angular, etc။
  • Mobile App Development အတွက် ဆို Android — Kotlin/Java , iOS — Swift စတဲ့ Native Platform တွေ သုံးမှာလား။ ဒါမှမဟုတ် Flutter, React Native လို Cross Platform တွေသုံးမှာလား။

၂။ တာဝန်ယူ ဆောင်ရွက်ရသူများ —

✔ Application Architects — ဆော့ဖ်ဝဲ တစ်ခုလုံးကို ဖွဲ့စည်းတည်ဆောက်မယ့် Overall High-Level ဒီဇိုင်း ကို Vision Level ကနေ အဓိက လုပ်ဆောင်ရပါတယ်။ ဒီ Role ကိုတာဝန်ယူထားတဲ့ သူတွေဟာ Development ပြီးစီးလို့ ထွက်လာမယ့် ဆော့ဖ်ဝဲ နဲ့ ဆော့ဖ်ဝဲသုံးပြီး လုပ်ငန်း လည်ပတ်မယ့် အနေအထားကို Vision တစ်ခုအနေနဲ့ ကြိုပြီး မြင်ထားရပါတယ်။ Development Team ကို Vision ကို ရောက်အောင် Align လုပ်ပေးနေဖို့ လိုပါတယ်။

✔ System Analysts — High-Level ဒီဇိုင်းထဲမှာ ပါတဲ့ Module/Feature တွေ တစ်ခုချင်းစီကို Architect ရဲ့ လမ်းညွှန်ချက် အတိုင်း အသေးစိတ် System ဒီဇိုင်းဆွဲတဲ့ အလုပ်ကို လုပ်ဆောင်ရပါတယ်။

✔ UI/UX Designers — ဆော့ဖ်ဝဲရဲ့ User တိုက်ရိုက် ထိတွေ့ အသုံးပြုမယ့် User Interface Design တွေ ဆွဲတာ၊ Component တွေ ရွေးချယ်တာ၊ Interface Flow တွေ စဉ်းစားတာ တွေ လုပ်ဆောင်ရပါတယ်။

✔ QA Engineers — Business Analyst ဆီကထွက်လာတဲ့ Function Requirements တွေ နဲ့ System Analyst ဆီကထွက်လာတဲ့ Use Case တွေ ပေါ် အခြေခံပြီး Test Plan တွေ Test Case တွေ စဉ်းစား ရေးသားတဲ့ အလုပ်၊ UI/UX Designer တွေဆီက ထွက်လာတဲ့ UI Screen / Prototype တွေကို Usability Testing လုပ်ရတဲ့အလုပ်၊ နောက်ဆုံး Developer/Engineers တွေဆီက ထွက်လာတဲ့ Application ကို စမ်းသပ်သုံးစွဲ ပြစ်ချက်ရှာ တာတွေ လုပ်ဆောင်ရပါတယ်။

၃။ လုပ်ဆောင်ရမယ့် တာဝန်များ

✔ Overall Architecture — ဆော့ဖ်ဝဲ တစ်ခုလုံးရဲ့ ဖွဲ့စည်းတည်ဆောက်ပုံ ကို ဒီဇိုင်းဆွဲခြင်း။

✔ System Design — Overall Architecture မှာ ပါဝင်တဲ့ Module/Feature တစ်ခု ချင်းစီအတွက် အသေးစိတ် ဒီဇိုင်း ဆွဲခြင်း။

✔ Non-Functional Requirements — ဆော့ဖ်ဝဲရဲ့ လုံခြုံမှု့၊ မြန်ဆန်စွာ အလုပ်လုပ်နိုင်မှု၊ စိတ်ချရမှု စတဲ့ အရည်အသွေးတွေ ကောင်းမွန်အောင် ကြိုတင်စီမံထားခြင်း။

၄။ လုပ်ဆောင်ပြီး ထွက်လာမယ့် ရလဒ်များ

✔ Software Architecture Documents

  • System Design Diagrams — Overall Architecture အတွက် ဆွဲထားတဲ့ ပုံတွေ၊ Module/Feature တစ်ခုချင်းစီအတွက် ဆွဲထားတဲ့ ပုံတွေ။
  • Detailed Descriptions — ရှုပ်ထွေးတဲ့ တစ်ချို့ Module/Feature တွေအတွက် အသေးစိတ် ရှင်းလင်းထားတဲ့ Document သို့မဟုတ် Presentation Slide တွေ။
  • Quality Attribute Requirements — ဆော့ဖ်ဝဲမှာ အထူးလိုအပ်မယ့် Performance, Security, Scalability, Maintainability စတဲ့ Quality Attribute တွေ အတွက် Technology Domain မှာ Implement လုပ်ဖို့ ရေးသားထားတဲ့ Document တွေ။ ဥပမာ — Healthcare အင်တာနက် ဆော့ဖ်ဝဲတွေ အတွက် ဆို HIPPA Security & Compliance Infrastructure ရှိရမယ် ဆိုတာမျိုး။ Online Card Payment တွေအတွက် ဆို PCI DSS Compliance ရှိရမယ်ဆိုတာမျိုး။
  • Technology Choices — အသုံးပြုမယ့် Tech-Stack နဲ့ ပတ်သက်ပြီး အသေးစိတ် ပုံတွေ စာတွေနဲ့ ရေးဆွဲ ဖော်ပြထားတဲ့ Document တွေ။
  • Data Integration and Management Strategies — သုံးနေတဲ့ Data တွေကို ဆော့ဖ်ဝဲအသစ်မှာ ဘယ်လိုထည့်သွင်း အသုံးပြုမလဲ၊ တစ်ခုချင်းစီ Entry လုပ်မှာလား Bulk Import လုပ်မှာလား၊ လက်ရှိ သုံးနေတဲ့ Data တွေ က paper-based လား digitized ဖြစ်နေပြီလား၊ ဆော့ဖ်ဝဲပေါ် ဘယ်လို ပုံစံနဲ့ ထည့်သွင်းမလဲ၊ ရွှေ့ပြောင်းမလဲ စတဲ့ အချက်တွေကို အစီအစဉ်တကျ ရေးသားထားတဲ့ Document တွေ။
Example of High-Level Application Architecture

Reference Document ကို ဒီ LinkedIn Post မှာ ကြည့်ရှုနိုင်ပါတယ်။

Aung Kyaw Minn
Solution Architect @ AYA Innovation Labs

--

--

Aung Kyaw Minn
Aung Kyaw Minn

Written by Aung Kyaw Minn

Solution Architect @ AYA Innovation Labs & Ex-Head of Technology @ Onenex

No responses yet