Ooad
- 1. 2. Систем хөгжүүлэлт
1. UML дахь Класс диаграммын тухайEntity classes, Boundary classes, Control classes-уудыг
тайлбарла.Класс диаграмм шинжилгээний ямар үе шатанд дүрслэгддэг вэ ?, Мөн түүний
холбоосууд болох
– Association, - Aggregation, - Composition, - Generalization-уудыг жишээ авч тайлбарлах.
Класс ба объект диаграмКласс диаграмын зорилго нь шинэ системд хэрэгтэй обьектуудыг тодорхойлох
явдал юм. Класс диаграмд обьектын шинж чанар, төлөв байдлууд нь бүрэн тодорхойлогдсон байх
ёстой. Класс диаграм нь системийн статик бүтцийг дүрсэлдэг.
◦ Класс диаграмм нь 3 нүд бүхий тэгш өнцөгтөөр дүрслэгддэг бөгөөд
классын нэр,классын гишүүн өгөгдлүүд,классын гишүүн функцуудыг бичдэг
◦ Классын гишүүн өгөгдөл болон гишүүн функцуудын хандалтыг тодорхойлох боломжтой
◦ Классын статик гишүүдийг доогуур нь зурдаг.
◦ Классын гишүүн функцыг дараах хэлбэрээр дүрсэлдэг
< Хандалтыг тодорхойлогч> <нэр> ( <параметрийн жагсаалт>) : <буцаах утга>
◦ Параметрийн жагсаалт дахь параметрүүдийг хооронд нь таслалаар зааглана
◦ Хандалтыг тодорхойлогчийг классын гишүүд бүрийн өмнө тодорхойлно.
гол өгөгдөл (объектууд)-ийг ерөнхийд нь 3 хуваана:
– Entity classes : Бодит амьдралын объектууд ба тэднийг дүрслэх өгөгдөл
Системийн үйл ажиллагааны онцлогийг судалсны үндсэн дээр системд ашиглагдах нэр үгнүүд
дээр дүн шинжилгээ хийх замаар системийн шинжилгээний үе шатанд Entity Class –ыг
тодорхойлдог. Жишээ нь: Эзэмшигч, үйлчлүүлэгч
– Boundary classes: Систем ба хэрэглэгч хоорондын холбогч гүүр
Бусад классуудаа удирддаг. Үйл ажиллагааг хэрэгжүүлдэг . Usecase бүрт ганц л байдаг . Тухайлбал:
Захиалга Урирдах Класс (OrderControl class) нь өөртөө захиалгын процедурыг агуулах бөгөөд бусад
классууд руу хэд хэдэн мэдээ дамжуулалтыг хийдэг.
– Control classes : Entity class –аар үүсгэсэн ӨХТөрлөө удирдах зориулттай клиент класс юм.
Системийг гадаад элементүүдтэй холбогч гүүр бөгөөд системийн оролт/ гаралтыг зохицуулна . Зөвхөн
Actors нь boundary class руу хандана . Энэ класс нь ерөнхийдөө хэрэглэгчийн болон системийн
интерфэйс гэж 2 ангилагдана.
• Шинжилгээний загвар:
• Юу хийгдэхийг тодорхойлдог
• Зохиомжийн загвар:
• Юуг хэрхэн хийхийг тодорхойлдог
Association: холбоо хамаарлыг тодорхойлох
Aggregation: буюу бүрдмэл харьцаа нь өгүүлбэрзүйн "has a" холбоосоор холбогддог. Өөрөөр хэлбэл:
Аливаа нэг зүйл нь өөр нэг зүйлийг бүрдүүлэгч нэг хэсэг бололхыг илэрхийлнэ.
- 2. Composition:
Generalization: Удамшил буюу Generalization нь өгүүлбэрзүйн "is a“ холбоосоор холбогддог.
Шинжилгээний загварчилгаанд эх классаас хүү классд атрибут болон функцууд удамшдаг болохыг
дүрслэхийг зорьдог.
2. Систем хөгжүүлэх амьдралын цикл, үе шатыг тайлбарла. Систем хөгжүүлэх загваруудыг
тайлбарла.
- Төлөвлөх
- Хөгжүүлэх
- Нэвтрүүлэх болон дэмжих
Системийн шинжээч нь системийг тодорхой үе шаттайгаар хөгжүүлдэг бөгөөд энэхүү үйл ажиллагаа нь
системийг хөгжүүлэх амьдралын цикл гэж нэрлэгдэнэ.
Загварууд: 80-д он Waterfall /хүрхрээ/ хэлбэрийн хөгжүүлэлт
Өнөөдөр ч хэрэглэгдэж, гол үндэс суурь болж байгаа арга юм.Хэрэгцээ шаардлага– шинжилгээ-
зохиомж- кодчилол-тестчилэл-нэвтрүүлэлт гэсэн дарааллыг баримтлах арга.Үндсэн философи нь
"Хүрхрээ эргэж урсдаггүй". Үе шатын хэрэгжүүлэлт бүрт урвуу холбоо буюу эргэх холбоогүй. Эхний үе
шат маш сайн, алдаагүй хийгдсэн тохиолдолд сайн хөгжүүлэлтийн арга байж чаддаг. дээд үе шат муу
хийгдэхэд дараагийн үе шатууд муу хийгдэх болно.
Хүрхрээ загвар нь дээр дурьдсан үндсэн 6 алхмуудыг нэг нэгээр нь дамжин өнгөрүүлдэг.
Дараагийн алхамд орохын өмнө нь одоогийн алхмаа зайлшгүй гүйцээх шаардлагатай. Алхам бүрт 6-12
сар зарцуулах тохиолдол байна.
Давуу тал:
-Маш сайн төлөвлөлт
-Алдааг эрт аль нэг үе шатуудын нэгэнд барьж авах боломжтой.
Сул тал:
-Орчин үед хэрэглэгч нарын шаардлага маш хурдан өөрчлөгддөг болсон ба энэ их хөгжүүлэлтийн
хугацаа дуусч хөгжүүлсний дараа "Өө энэ миний хүссэн зүйл яг биш юмаа, ингэе тэгье..." гэх мэт
хөгжүүлэлт хийсний дараа шаардлагаа өөрчлөх тохиолдолд их гарах болсон
-Мөн та тодорхой хэмжээний хугацаанд хөгжүүлэлт хийсний дараачаар дуусахад таньд анх хөгжүүлсэн
аргаас илүү сайн арга толгойд орж ирдэг, энэ тохиолдолд бүтээсэн зүйлээ орвонгоор нь өөрчлөх хэцүү,
цаг, хөрөнгө шаардагдах учир сайн аргаасаа татгалзах шаардлага гардаг.
- 3. * 90-д он Spiral хэлбэрийн хөгжүүлэлт
Prototype хэлбэрийн хөгжүүлэлт.
1. Шаардлагыг тодорхойлох
2. Эрсдлүүдийг тодорхойлох
3. Хөгжүүлэлт ба тестчилэл
4. Дараагийн циклийг тодорхойлох
Спирал загвар дээрх дурьдсан аргуудыг дахин дахин хэрэгжүүлэх замаар ажилладаг.
Давуу тал: -Захиалагч өөрөө цикл дотор хэрэгжих үе шатуудад хамрагдаж, бодол саналаа хуваалцах
боломжтой, ингэснээр захиалагчийн хүсэлттэй илүү нийцэх боломжтой.
Сул тал: -Мөн л урьдийн адил их хугацаа шаардагддаг. Энэ хугацаанд хэрэглэгчийн бодол өөрчлөгдөх
боломжтой
- 4. V загвар нь хүрхрээ загварын нэгэн
хувилбар юм. шинжилгээ, зохиомжийн үе шатуудыг хийх явцдаа тестийн бичиг баримтын төлөвлөгөөг
хамт боловсруулдаг нь нэвтрүүлэлт, сууриллуулалтын үед сайн систем хэрэглэгчдэд очдог юм.
URD – User requirement definition. Хэрэглэгчийн шаардлага тодорхойлох. Хэрэглэгчтэй хамтдаа
системийн хамрах хүрээ, шаардлага тодорхойлох буюу хэрэглэгч чухам юу хүсэж байгааг хэрэглэгчийн
үгээр гаргах бичиг баримт юм.
SRS – Software Requirement Specification. Програмын шаардлага тодорхойлох. Хэрэглэгчтэй болон
мэргэжилтнүүдтэй хамтдаа шаардлага тодорхойлох. Хэрэглэгч “ямар хэлбэрээр” хэргэлмээр байгааг
програм хангамжийн техникийн даалгавар болгон илэрхийлнэ.
HLD – High Level Design. Системийн шинжилгээ. Оршин байгаа системийг задлан, бүрэлдэхүүн хэсгүүд
системийн бүтцийг тодорхойлон асуудлыг шийдвэрлэх шинэ оновчтой систем байгуулах төлөвлөгөө
гаргах үйл ажиллагаа юм.
LLD – Low Level Design. Системийн зохиомж. Системийн шинжилгээний бичиг баримтанд тулгуурлан
системийн физик загвар гаргах.
UT– Unit test. Нэгжийн тест
IT – Integration test. Нэгдсэн тест
ST– System test. Системийн тест
AT – Acceptance test. Хүлээн авах үеийн тест
бичсэн код санаснаар ажиллаж байна уу?(Unit test-ээр) Ажиллах ёстойгоорооо ажиллаж чадаж байна
уу? (Acceptance test-ээр) гэдэгийг тестийг ойр ойрхон хийж үнэмжшинэ. Ингэснээрээ цааш итгэлтэй
алхах болно
Прототайп
Товчхондоо protype1->feedback->prototype2->feedback->....->prototypen->customer satisfaction
Жинхэнэ ажиллах хувилбар биш боловч эцсийн ажиллах систем ямар харагдах бүх дэлгэцийн урсгалыг
ард талын логик кодыг хийлгүйгээр бүгдийг нь хийсээр байгаад захиалагч сэтгэл ханасан үед үндсэн
үйлдвэрлэлээ эхлэх хэрэг.
Прототайп-н үе шатууд:
1. Хэрэглэгчийн үндсэн шаардлагыг тодорхойлох. Системийн дизайнер (ихэвчлэн мэдээллийн
системийн мэргэжилтнүүд байдаг) хэрэглэгчтэй хамтран ажиллаж шаардлагыг нь бодитойгоор
тогтооно.
2. Анхны прототайпыг хөгжүүлнэ. Системийн дизайнер ажиллах прототайпаа хурдан хугацаанд үүсгэж,
програмыг хурдан хугацаанд үйлдвэрлэхийн тулд хэрэгслүүдийг ашиглана.
3. Прототайпыг хэрэглэнэ. Хэрэглэгч системтэй ажиллаж үзээд прототайп өөрийнх нь хэрэгцээнд
нийцэж байгаа эсэхийг хянаад прототайпыг сайжруулах зөвшөөрлийг өгнө.
- 5. 4. Прототайпыг засварлах болон сайжруулах. Системийг хөгжүүлэгч хэрэглэгчийн хүсэлт ба
шаардлагын дагуу прототайпыг сайжруулна. Прототайпыг сайжруулж , засвар хийсний дараагаар
циклийн 3-р үе шатанд буцна. 3-р үе шатын дараа 4 гэх мэтээр хэрэглэгч сэтгэл ханамжтай болох
хүртэл нь давтна.
Прототайп нь тодорхой бус шаардлага эсвэл дизайны шийдэлтэй тохиолдолд ашиглахад тохиромжтой.
Мэдээллийн системийн эцсийн хэрэглэгчийн интерфэйсийн дизайныг гаргахад илүү үр нөлөөтэй.
3. Хэрэглэгчийн функциональ шаардлага тодорхойлох диаграмм болох Use Case диаграммын
тухай,
- Зорилго
- Бүрэлдэхүүн хэсэг
- Use case-д дүрслэгдэх холбоосуудыг тайлбарлах.
Объект хандлагат аргаар систем хөгжүүлэх явцад системийн хэрэгцээ шаардлагыг тодорхойлох үе
шатанд usecase диаграмыг байгуулдаг. Use case диаграмын зорилго нь систем яаж ашиглагдах вэ
гэдгийг тодорхойлох зорилготой.
Usecase диаграм
Зорилго: Системийн функцуудыг тодорхойлох
• Системийн функцууд ба гадаад элементүүдийн хоорондын холбоо хамаарлыг тодорхойлох
• Функцуудын хоорондын холбоо хамаарлыг тодорхойлох
Бүрэлдэхүүн хэсэг: - Actor - Usecase - Usecase тодорхойлолт
Usecase бүрэлдэхүүн хэсэг: Actor Системийн эцсийн хэрэглэгч
USECASE-д дүрслэгдэх холбоосууд
- 6. Usecase тодорхойлолт: Цөөхөн үгээр товчхон илэрхийлэх, Хэрэглэгч ба use case –г холбосон шугамаар
дүрсэлдэг, хэрэглэгч use case-тэй ямар холбоо хамааралтайг тодорхойлох,
- Дараах бодлогын Use case диаграммыг гарга.
Бодлого: Халуун цай зарагч: Энэ хийцтэй хийцгүй, давстай давсгүй, сүүтэй сүүгүй, чихэртэй чихэргүй,
жимстэй жимсгүй халуун цай аягалж худалддаг автомат юм. Энэ нь халбага, салфетка авах нэмэлт
сонголттой. Програмын use case диаграмыг зур. /бэлнээр болон картаар төлбөр хийдэг байх, усыг
халаах үйлдэлтэй байх, автоматыг цэвэрлэх, дууссан бүтээгдэхүүнийг нэмэх зэрэг үйлчилгээг
хариуцсан ажилтан үзүүлдэг байх/
4. UML-ийн динамик диаграммын нэг болох Sequence буюу дарааллын диаграммын тухай,
жишээгээр тайлбарла.Sequence диаграмм юунд хэрэгтэй вэ?, хэрхэн ашиглах вэ?,түүний бүрэлдэхүүн
хэсэг болох
- Actor – Object – Message - Activation - Lifeline –эдгээрийг тус тусад нь тайлбарла.
- 7. Sequence diagram /Дарааллын диаграм/
• UML загварчлалын нэг хэсэг болох дарааллын диаграм нь Use Case –д заагдсан үйлдлийг дэлгэрэнгүй
тайлбарласан байдаг. Тэдгээр схемүүдэд дүрүүд ба use case –үүдийн хоорондын харилцааны
дарааллыг харуулахаас гадна use case –д заагдсан үүргийг бүрэн гүйцэтгэж дуусгахад классууд ямар
үүрэгтэй оролцохыг харуулна.
• Ямар объектоос хэн рүү ямар мэдээг хэзээ дамжуулагдсан
Sequence diagram нь системийн динамик шинжийг дүрслэх бөгөөд объектууд хоорондын мэдээ
дамжуулалтыг хугацааны дараалалтайгаар дүрсэлдэг.
Sequence diagram /Дарааллын диаграм/
• Sequence diagram юунд хэрэгтэй вэ?
– Шинжилгээ ба зохиомжийн шатанд ашигладаг.
– Usecase-ийг биелүүлэхийн тулд объектууд нь хэзээ, хэрхэн холбогдон ажиллахыг тодорхойлоход
хэрэгтэй
• Sequence diagram-ийг хэрхэн ашиглах вэ?
– Объектуудыг диаграмын оройд тэгш өнцөгтөөр дүрсэлдэг.
– Босоо чиглэлд дүрслэгдэх тасархай шугамууд нь объект бүрийн амьдрах хугацааг илэрхийлдэг.
– Объектууд хоорондын мэдээ дамжуулалтыг сумтай шугамаар дүрсэлдэг. Заримдаа объект нь өөрөө
өөрийгөө дуудах шаардлага гарах үед энэ шугамын сум нь өөр рүүгээ чиглэсэн байна.
– Дамжигдаж буй мэдээ бүр нь классын гишүүн функц байх тул мэдээ дамжуулалтыг гишүүн функцын
нэрээр нэрлэхээс гадна тухайн гишүүн функцын авах аргумент болон буцаах утгыг мөн тодорхойлох
боломжтой.
Бүрэлдэхүүн хэсгүүд:
• Actor, Object, Message, Activation, Lifeline