ood lesson6 class-my
TRANSCRIPT
Object-oriented System Analysis and Design
Лекц №6. UML классын диаграммУлаанбаатар Их Сургууль
Шинжилгээний загварчилгааШинжилгээний загварчилгаа Шинжилгээний загварууд◦ Бизнес йл ажиллагаа, бизнес йл ажиллагаатай холбоотой урсгалууд болон ү ү
бизнес шаардлага т ний шийдлийг стандарт үү (график) тэмдэглэгээ р үүх рв лсэнээрө үү
1. Системийн зохиомж гарна2. Системийг ашиглах хэрэглэгч хоорондын холбоо хамаарал д рслэгдэнэү3. Систем дэх дэд хэсг дийн хоорондын холбоо хамаарал д рслэгдэнэүү ү
Тухайн системд яригдах гол г гд лө ө ө (объектууд)-ийг ер нхийд нь 3 өхуваана:◦ Entity classes : Бодит амьдралын объектууд ба тэднийг д рслэх г гд лү ө ө ө◦ Boundary classes: Систем ба хэрэглэгч хоорондын холбогч г р үү◦ Control classes : Entity classes болон Boundary classes-д д рслэгдээг й ү ү
орхигдсон йл явц боловсруулалтыг д рслэнэү ү
2
Шинжилгээний загварчилгааШинжилгээний загварчилгаа
Шинжилгээний загварчилгааны гол зорилго нь систем дэх Entity, Boundary, болон Control
объектуудыг тодорхойлох хэд хэдэн UML :техникийг дүрслэх гэдэгт
⁻ Use-case загварчилгаа⁻ Activity диаграмм⁻ CRC Card (Class-Responsibility-Collaboration)⁻ Collaboration диаграмм⁻ Sequence диаграмм⁻ Class диаграмм
3
Шинжилгээний загварчилгааШинжилгээний загварчилгаа Class шинжилгээ
Атрибутууд◦ Классын дотоод бүтэц буюу классын гишүүн өгөгдлүүд юм.
Бүрдмэл ба удамшил холбоос◦ CRC, Collaboration ба Sequence диаграмууд нь классуудын
хоорондын холбоосыг дүрсэлдэг. Гэхдээ удамшил ба бүрдмэл холбоос тодорхой дүрслэгдэх шаардлагагүй.
◦ Aggregation буюу бүрдмэл харьцаа нь өгүүлбэрзүйн "has a" холбоосоор холбогддог. Өөрөөр хэлбэл: Аливаа нэг зүйл нь өөр нэг зүйлийг бүрдүүлэгч нэг хэсэг бололхыг илэрхийлнэ.
◦ Удамшил буюу Generalization нь өгүүлбэрзүйн "is a“ холбоосоор холбогддог. Шинжилгээний загварчилгаанд эх классаас хүү классд атрибут болон функцууд удамшдаг болохыг дүрслэхийг зорьдог.
4
Êëàññ äèàãðàì / Êëàññ äèàãðàì / Class DiagramClass Diagram / / Øèíæèëãýýíèé ¿å øàòàíä êëàññóóä áà îáúåêòóóä íü
àñóóäëûí õ¿ðýýíä çàãâàð÷ëàãääàã. Êëàññóóäûí õîîðîíäûí õàìààðàë, õàðèëöàà çîõèõ ñèñòåìä òóñãàãäñàí áàéäàã. ¯¿íèéã êëàññûí ñõåìýýð õàðóóëíà.
Êëàññ äèàãðàì íü ñèñòåì äýõ îáüåêòûí òºðºë áîëîí òýäãýýðèéí õîîðîíäûí õàìààðëûã òîäîðõîéëîõîä õýðýãëýãääýã. Êëàññ äèàãðàìä êëàññûí á¿òýö, ýëåìåíò áóþó êëàññ, áàãö, áîëîí îáüåêòóóä çàãâàð÷ëàãääàã.
Êëàññ äèàãðàì íü êëàññûí íýð, àòðèáóò, ¿éëäýë ãýõ íèéò 3 õýñãýýñ á¿ðääýã.̺í êëàññ äèàãðàìä êëàññûí àãóóëãà, óäàìøèë, á¿ðäìýë õàðüöàà áîëîí õîëáîî õàìààðàë õàðàãääàã. Êëàññ äèàãðàìûã îáüåêò õàíäëàãàò ïðîãðàì õàíãàìæ çàãâàð÷ëàõàä õýðýãëýäýã. Èíãýõäýý ñèñòåìèéí êëàññóóä òýäãýýðèéí õîîðîíäîõ õàìààðëûã òîäîðõîéëäîã.
5
Класс, объект
6
• Сэргээх нь Сэргээх нь • Класс
– Объект хэмээх ойлголттой салшгүй холбоотой.Объект хэмээх ойлголттой салшгүй холбоотой. Ижил шинж чанар Ижил шинж чанар болон үйлдлүүдтэй объектуудын нэгдэл юм.болон үйлдлүүдтэй объектуудын нэгдэл юм.
• Объект– Бодит амьдралын биет юмс буюу түүний хийсвэрлэл юм. Жишээ нь:Бодит амьдралын биет юмс буюу түүний хийсвэрлэл юм. Жишээ нь:
o Бодит объект: Ном, Үзэг, Компьютер...Бодит объект: Ном, Үзэг, Компьютер...o Хийсвэр объект: Хичээл, ШүлэгХийсвэр объект: Хичээл, Шүлэг
– Бид өдөр тутмынхаа амьдралд янз бүрийн объектуудтай харьцаж Бид өдөр тутмынхаа амьдралд янз бүрийн объектуудтай харьцаж байдаг.байдаг.
– Аливаа систем нь объектуудаас бүрддэг. Аливаа систем нь объектуудаас бүрддэг. • ОХПрограмчлалд Объект ньОХПрограмчлалд Объект нь
o Шинж чанар Шинж чанар ((өгөгдөлөгөгдөл))o Үйлдэл Үйлдэл ((функцуудфункцууд))-ийн нэгдэл юм.-ийн нэгдэл юм.
Жишээ нь: МашинЖишээ нь: Машин
МашинÍýð¯íýӨнгө ӨВвв
ДавхихÕóäàëäàæ-àâàõÇàñàõввв
г гдлийн далдлалтыг хэрхэн хэрэгж лэх вэ?Ө ө үү
Õàíäàëòóóäûí õàðàãäàõ áàéäàë (Visibiliy)-ûã òîâ÷ òîäîðõîéëâîë:◦ private хандалттай гишүүд нь програмын бусад хэсгээс (үндсэн
функц болон бусад классаас) далдлагдсан байна. Түүнд хандахдаа тухайн классын нийтийн хандалттай гишүүн функцээр дамжуулж хандана.
◦ public хандалттай гишүүдэд програмын дурын хэсгээс хандах боломжтой.
◦ protected хандалттай гишүүд нь өөрийн хүү классдаа харагддаг, харин програмын бусад хэсгээс далдлагдан байдаг.
7
Классуудын хоорондын харьцааКлассуудын хоорондын харьцаа
8
• Удамшил (Inheritance)– Бодит амьдрал дээр объект нь дан ганцаар бие даан оршин Бодит амьдрал дээр объект нь дан ганцаар бие даан оршин
тогтнодоггүй, өөр бусад объектуудтай байнгын харьцаж тогтнодоггүй, өөр бусад объектуудтай байнгын харьцаж байдаг. Тухайлбал: Объект нь өмнө оршин байсан объектын байдаг. Тухайлбал: Объект нь өмнө оршин байсан объектын тодорхой шинжүүдийг өвлөн авах, мөн өөр объектыг өөртөө тодорхой шинжүүдийг өвлөн авах, мөн өөр объектыг өөртөө агуулах, өөр бусад объектод чөлөөтэй хандах... агуулах, өөр бусад объектод чөлөөтэй хандах...
– Иймд ОХП-д классуудын шаталсан харьцааны дараах 2 Иймд ОХП-д классуудын шаталсан харьцааны дараах 2 хэлбэр байдаг. Үүндхэлбэр байдаг. Үүнд
Удамшил харьцаа Удамшил харьцаа /өгүүлбэрзүйн/өгүүлбэрзүйн is ais a харьцаагаар/харьцаагаар/
Бүрдмэл харьцаа Бүрдмэл харьцаа // өгүүлбэрзүйнөгүүлбэрзүйн has ahas a харьцаагаархарьцаагаар //
Програм хангамжийн дахин ашиглагдах чадварПрограм хангамжийн дахин ашиглагдах чадвар
9
Òýýâðèéí õýðýãñýëÝçýìøèãччÒºðºëªíãºÕóðäëàõÀñààõÇîãñîîõ
Ýõ êëàññ
Õ¿¿ êëàññ
Òàêñè¯éëччë¿¿ëýãччÕ¿í òýýâýðëýõ
Àччààíû òýðýãÄààöÀччàà òýýâýðëýõ
ªã º ã ä º ë á îë îí ã è ø ¿ ¿ í ô ó íê ö ó ó ä íü õ ¿ ¿ ê ë à ññäó ä à ìø è íà
Îíöëîã ôóíêö
Îíöëîã ºãºãäºë
Удамшил харьцаа /Inheritance/
Taxi is a TransportationTruck is a Transportation
Програм хангамжийн дахин ашиглагдах чадварПрограм хангамжийн дахин ашиглагдах чадвар
10
Бүрдмэл харьцааComputer
CPU Mouse Disk
Computer has a CPUComputer has a mouseComputer has a Disk
Классын өргөтгөх боломж нь (Удамшил ба бүрдмэл хэмээх ойлголтууд нь) програм хангамжийг
Дахин ашиглагдах чадвартайЗасвар үйлчилгээ авахадаа сайн болгодог
Класс диаграммКласс диаграмм Систем дэх классууд болон тэдгээрийн хоорондын холбоо хамаарлыг
д рсэлдэг гэдэг утгаараа системийн х рээ хязгаарыг тодорхойлж гд гү ү ө ө Static шинж чанартай. Учир нь классууд нь бие биетэйгээ хэрхэн
холбогдож байгааг д рсэлдэг боловч тэдгээр нь хоорондоо харилцан үхэрхэн н л л хийг авч здэгг й.ө өө ө ү ү
◦ Collaboration диаграммыг бодвол Collaboration дийграм нь классуудын хоорондын харилцааг д рсэлдэг.ү Иймд бид Collaboration диаграм нь биелэлтийн еийнү йл явцыг ү
( runtime behaviors) д рсэлдэг байхадү Class диаграмм нь design-time –д д рслэгддэг.ү
Классын диаграмм нь дизайны е шатын ндэс суурь болдог.ү ү Class диаграмм нь хэдийгээр шинжилгээний загварт тооцогддог
боловч энэ е шатанд классуудын хоорондын харьцааг илэрхийлэх үхэмжээнд л д рслэгддэгү
Харин зохиомжийн е шатанд кодчиллын мн класс диаграмм нь ү ө өб рэн д рслэгддэг.ү ү
11
12
Êëàññûí íýð
Àòðèáóò
¯éëäýë
Êëàññûí íýð
Àòðèáóò
Êëàññûí íýð
¯éëäýë
Êëàññûí íýð
Çàðèìäàà àòðèáóò áîëîí ¿éëäëèéã ä¿ðñëýõã¿é áàéæ áîëíî.(ýíý íü òóõàéí ìýäýýëýë äèàãðàìä áàéõ øààðäëàãàòàé ýñýõýýñ õàìààðíà)
Êëàññûã ä¿ðñëýõäýý
Класс диаграммКласс диаграмм Классд диаграммд д рслэгдэх холбоосуудү
1. Association/холбоо хамаарал/2. Aggregation/нэгдэл/3. Composition/б тэц/ү4. Generalization/удамшил/5. Multiplicity/т р лт холбоо/ө ө6. Dependencies and Constraints
1. Association/холбоо хамаарал/
13
2. Aggregation/нэгдэл/
3. Composition/б тэц/ү
4. Generalization
14
15
6.Multiplicity
7.Dependencies and Constraints
Класс диаграммд д рслэгдэх бусад мэдээлл дү үүКласс, т ний гиш д, харагдах байдалүү үү (Visibility)Interface- д баүү Stereotype-ууд
Класс диаграммКласс диаграмм Класс диаграмм дахь классууд болон т ний гиш д, гиш дийн үү үү үү
харагдах байдал (Visibility)◦ Класс диаграмм нь 3 н д б хий тэгш нц гт р д рслэгддэг б г д ү ү ө ө өө ү ө өө
классын нэр классын гиш н г гдл дүү ө ө үү классын гиш н функцуудыг бичдэгүү
◦ Классын гиш н г гд л болон гиш н функцуудын хандалтыг үү ө ө ө үүтодорхойлох боломжтой
◦ Классын статик гиш дийг доогуур нь зурдаг.үү◦ Классын гиш н функцыг дараах хэлбэрээр д рсэлдэгүү ү
< Хандалтыг тодорхойлогч> <нэр> ( <параметрийн жагсаалт>) : <буцаах утга>
◦ Параметрийн жагсаалт дахь параметр дийг хооронд нь таслалаар үүзааглана
◦ Хандалтыг тодорхойлогчийг классын гиш д б рийн мн тодорхойлно.үү ү ө ө
16
17
Class Diagram ãýæ þó âý?
Class diagram íü ñèñòåì
äýõ êëàññóóäûí äîòîîä
á¿òýö, òýäãýýðèéí õîîðîíäûí
õîëáîî õàìààðëûã ä¿ðñëýíý.
Á¿ðýëäýõ¿¿í õýñýã:
•Êëàññ•Êëàññóóäûí õîîðîíäûí
õîëáîîñûí ä¿ðñëýë
BankCont
Customer
Account
Receipt
Savings
TimeDeposit
Transaction
18
Õîëáîîñ
Class A
Õîëáîîñûí íýð
Person Productorder
Class B
Õîëáîîñûí çýðýã
Õîëáîîñûí çýðýã
Person Productbuyer
Õ¿í çàõèàëãà ºãºõ Á¿òýýãäýõ¿¿íèé õóâüä õ¿í õóäàëäàí àâàãч
Class A, Class B õî¸ðûí õîîðîíäûí õîëáîî õàìààðëûã èëýðõèéëíý
19
Óäàìøèë áà á¿ðäìýë õàðüöàà
Á¿ðäìýë õàðüöàà: “...áîë ...òàé”
Ìàøèí
Ìîòîð Äóãóé Òàêñè Óäàìøèë õàðüöàà:“... áîë ... þì”
Óäàìøèë áà Á¿ðäìýë íü êëàññóóäûí õîëáîîñûí íýã õýëáýð þì.
20
Õîëáîîñûí çýðã¿¿ä
ìèíèéÌàøèí: Ìàøèí
ÁàðóóíÓðäÄóãóé: Äóãóé
Ç¿¿íÓðäÄóãóé: Äóãóé
ÁàðóóíÕîéäÄóãóé: Äóãóé
Ç¿¿íÕîéäÄóãóé: Äóãóé
Ìàøèí Äóãóé1 4
Ìèíèé ìàøèí 4 äóãóéòàé.Êëàññ
1çºâõºí 1
Êëàññ0..1
0 ýñâýë 1
Êëàññ * 0 áóþó îëîí
Êëàññ1..*
1 áóþó îëîí
Êëàññ2..6
2-îîñ 6
Êëàññ1,5,10
1 ýñâýë 5 ýñâýë 10
21
Õîëáîãч êëàññ
Class A Class B
Õîëáîãч êëàññ: Êëàññóóä õîîðîíäûí õîëáîîñ ìýäýýëëèéã àãóóëàõ êëàññ
Class C
Îëîí îëîíòîé õîëáîîñûã ºðãºòãºæ õîëáîãч êëàññûã ¿¿ñãýäýã.
abc
22
Àëõàì àëõàìààð çàãâàðчèë
Ñèñòåìèéí äèíàìèê áîëîí ñòàòèê øèíæ¿¿äèéã íýã á¿ðчëýí ÿðèëöàæ àëõàì
àëõàìààð íýìýãä¿¿ëýí çàãâàðчëàõ øààðäëàãàòàé.
Îáúåêò õàíäëàãàò àðãàчëàë íü ººðºº àëõàì àëõàìààð õºãæ¿¿ëýõ ãýñýí çàðчìûã
áàðèìòàëäàã.
Ñèñòåìèéí äèíàìèê áîëîí ñòàòèê øèíæ¿¿äèéã íýã á¿ðчëýí ÿðèëöàæ àëõàì
àëõàìààð íýìýãä¿¿ëýí çàãâàðчëàõ øààðäëàãàòàé.
Îáúåêò õàíäëàãàò àðãàчëàë íü ººðºº àëõàì àëõàìààð õºãæ¿¿ëýõ ãýñýí çàðчìûã
áàðèìòàëäàã.
Áè þó õèéõ ¸ñòîéãîî ñàéí ìýäýæ áàéãàà áîëîâч ñèñòåìä øààðäëàãàòàé á¿õ ýëåìåíò¿¿äèéã á¿ãäèéã íýã äîð çàãâàðчèëãààíäàà òóñãàæ чàäàõã¿é áàéíà.
Áè þó õèéõ ¸ñòîéãîî ñàéí ìýäýæ áàéãàà áîëîâч ñèñòåìä øààðäëàãàòàé á¿õ ýëåìåíò¿¿äèéã á¿ãäèéã íýã äîð çàãâàðчèëãààíäàà òóñãàæ чàäàõã¿é áàéíà.
23
analysis
desig
n
Programming
Testanalysis
desig
n
Programming
Test
analysis
desig
n
Programming
Test
analysis
desig
n
Programming
Test
Àë õ à ì à ë õ à ìà à ð íý ìýã ä ¿ ¿ ë ý í õ º ã æ ¿ ¿ ë ý õ
getPassword(aN){}
Int x, y
Account
analysis
desig
n
Programming
Test
getPassword(aN){}calcBalance(aN){}
Int x, y
Account
import java.applet.*;import java.awt.*;
public class Account extends Applet{
int x, y; public void getPassword(aN) { ・・・・ ・・・・ }
public static calcBalance(xxx) ・・・・ ・・・・ } ・・・・ ・・・・
OOSAD íü àëõàì àëõàìààð íýìýãä¿¿ëýí õºãæ¿¿ëýõ àðãà÷ëàë
24
"+" Public "-" Private "#" Protected "/" Derived (can be combined with one of the others) "_" Static
25