ood lesson6 class-my

25
Object-oriented System Analysis and Design Лекц №6. UML классын диаграмм Улаанбаатар Их Сургууль

Upload: ganaa-de

Post on 06-Jul-2015

354 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: Ood lesson6 class-my

Object-oriented System Analysis and Design

Лекц №6. UML классын диаграммУлаанбаатар Их Сургууль

Page 2: Ood lesson6 class-my

Шинжилгээний загварчилгааШинжилгээний загварчилгаа Шинжилгээний загварууд◦ Бизнес йл ажиллагаа, бизнес йл ажиллагаатай холбоотой урсгалууд болон ү ү

бизнес шаардлага т ний шийдлийг стандарт үү (график) тэмдэглэгээ р үүх рв лсэнээрө үү

1. Системийн зохиомж гарна2. Системийг ашиглах хэрэглэгч хоорондын холбоо хамаарал д рслэгдэнэү3. Систем дэх дэд хэсг дийн хоорондын холбоо хамаарал д рслэгдэнэүү ү

Тухайн системд яригдах гол г гд лө ө ө (объектууд)-ийг ер нхийд нь 3 өхуваана:◦ Entity classes : Бодит амьдралын объектууд ба тэднийг д рслэх г гд лү ө ө ө◦ Boundary classes: Систем ба хэрэглэгч хоорондын холбогч г р үү◦ Control classes : Entity classes болон Boundary classes-д д рслэгдээг й ү ү

орхигдсон йл явц боловсруулалтыг д рслэнэү ү

2

Page 3: Ood lesson6 class-my

Шинжилгээний загварчилгааШинжилгээний загварчилгаа

Шинжилгээний загварчилгааны гол зорилго нь систем дэх Entity, Boundary, болон Control

объектуудыг тодорхойлох хэд хэдэн UML :техникийг дүрслэх гэдэгт

⁻ Use-case загварчилгаа⁻ Activity диаграмм⁻ CRC Card (Class-Responsibility-Collaboration)⁻ Collaboration диаграмм⁻ Sequence диаграмм⁻ Class диаграмм

3

Page 4: Ood lesson6 class-my

Шинжилгээний загварчилгааШинжилгээний загварчилгаа Class шинжилгээ

Атрибутууд◦ Классын дотоод бүтэц буюу классын гишүүн өгөгдлүүд юм.

Бүрдмэл ба удамшил холбоос◦ CRC, Collaboration ба Sequence диаграмууд нь классуудын

хоорондын холбоосыг дүрсэлдэг. Гэхдээ удамшил ба бүрдмэл холбоос тодорхой дүрслэгдэх шаардлагагүй.

◦ Aggregation буюу бүрдмэл харьцаа нь өгүүлбэрзүйн "has a" холбоосоор холбогддог. Өөрөөр хэлбэл: Аливаа нэг зүйл нь өөр нэг зүйлийг бүрдүүлэгч нэг хэсэг бололхыг илэрхийлнэ.

◦ Удамшил буюу Generalization нь өгүүлбэрзүйн "is a“ холбоосоор холбогддог. Шинжилгээний загварчилгаанд эх классаас хүү классд атрибут болон функцууд удамшдаг болохыг дүрслэхийг зорьдог.

4

Page 5: Ood lesson6 class-my

Êëàññ äèàãðàì / Êëàññ äèàãðàì / Class DiagramClass Diagram / / Øèíæèëãýýíèé ¿å øàòàíä êëàññóóä áà îáúåêòóóä íü

àñóóäëûí õ¿ðýýíä çàãâàð÷ëàãääàã. Êëàññóóäûí õîîðîíäûí õàìààðàë, õàðèëöàà çîõèõ ñèñòåìä òóñãàãäñàí áàéäàã. ¯¿íèéã êëàññûí ñõåìýýð õàðóóëíà.

Êëàññ äèàãðàì íü ñèñòåì äýõ îáüåêòûí òºðºë áîëîí òýäãýýðèéí õîîðîíäûí õàìààðëûã òîäîðõîéëîõîä õýðýãëýãääýã. Êëàññ äèàãðàìä êëàññûí á¿òýö, ýëåìåíò áóþó êëàññ, áàãö, áîëîí îáüåêòóóä çàãâàð÷ëàãääàã.

Êëàññ äèàãðàì íü êëàññûí íýð, àòðèáóò, ¿éëäýë ãýõ íèéò 3 õýñãýýñ á¿ðääýã.̺í êëàññ äèàãðàìä êëàññûí àãóóëãà, óäàìøèë, á¿ðäìýë õàðüöàà áîëîí õîëáîî õàìààðàë õàðàãääàã. Êëàññ äèàãðàìûã îáüåêò õàíäëàãàò ïðîãðàì õàíãàìæ çàãâàð÷ëàõàä õýðýãëýäýã. Èíãýõäýý ñèñòåìèéí êëàññóóä òýäãýýðèéí õîîðîíäîõ õàìààðëûã òîäîðõîéëäîã.

5

Page 6: Ood lesson6 class-my

Класс, объект

6

• Сэргээх нь Сэргээх нь • Класс

– Объект хэмээх ойлголттой салшгүй холбоотой.Объект хэмээх ойлголттой салшгүй холбоотой. Ижил шинж чанар Ижил шинж чанар болон үйлдлүүдтэй объектуудын нэгдэл юм.болон үйлдлүүдтэй объектуудын нэгдэл юм.

• Объект– Бодит амьдралын биет юмс буюу түүний хийсвэрлэл юм. Жишээ нь:Бодит амьдралын биет юмс буюу түүний хийсвэрлэл юм. Жишээ нь:

o Бодит объект: Ном, Үзэг, Компьютер...Бодит объект: Ном, Үзэг, Компьютер...o Хийсвэр объект: Хичээл, ШүлэгХийсвэр объект: Хичээл, Шүлэг

– Бид өдөр тутмынхаа амьдралд янз бүрийн объектуудтай харьцаж Бид өдөр тутмынхаа амьдралд янз бүрийн объектуудтай харьцаж байдаг.байдаг.

– Аливаа систем нь объектуудаас бүрддэг. Аливаа систем нь объектуудаас бүрддэг. • ОХПрограмчлалд Объект ньОХПрограмчлалд Объект нь

o Шинж чанар Шинж чанар ((өгөгдөлөгөгдөл))o Үйлдэл Үйлдэл ((функцуудфункцууд))-ийн нэгдэл юм.-ийн нэгдэл юм.

Жишээ нь: МашинЖишээ нь: Машин

МашинÍýð¯íýӨнгө ӨВвв

ДавхихÕóäàëäàæ-àâàõÇàñàõввв

Page 7: Ood lesson6 class-my

г гдлийн далдлалтыг хэрхэн хэрэгж лэх вэ?Ө ө үү

Õàíäàëòóóäûí õàðàãäàõ áàéäàë (Visibiliy)-ûã òîâ÷ òîäîðõîéëâîë:◦ private хандалттай гишүүд нь програмын бусад хэсгээс (үндсэн

функц болон бусад классаас) далдлагдсан байна. Түүнд хандахдаа тухайн классын нийтийн хандалттай гишүүн функцээр дамжуулж хандана.

◦ public хандалттай гишүүдэд програмын дурын хэсгээс хандах боломжтой.

◦ protected хандалттай гишүүд нь өөрийн хүү классдаа харагддаг, харин програмын бусад хэсгээс далдлагдан байдаг.

7

Page 8: Ood lesson6 class-my

Классуудын хоорондын харьцааКлассуудын хоорондын харьцаа

8

• Удамшил (Inheritance)– Бодит амьдрал дээр объект нь дан ганцаар бие даан оршин Бодит амьдрал дээр объект нь дан ганцаар бие даан оршин

тогтнодоггүй, өөр бусад объектуудтай байнгын харьцаж тогтнодоггүй, өөр бусад объектуудтай байнгын харьцаж байдаг. Тухайлбал: Объект нь өмнө оршин байсан объектын байдаг. Тухайлбал: Объект нь өмнө оршин байсан объектын тодорхой шинжүүдийг өвлөн авах, мөн өөр объектыг өөртөө тодорхой шинжүүдийг өвлөн авах, мөн өөр объектыг өөртөө агуулах, өөр бусад объектод чөлөөтэй хандах... агуулах, өөр бусад объектод чөлөөтэй хандах...

– Иймд ОХП-д классуудын шаталсан харьцааны дараах 2 Иймд ОХП-д классуудын шаталсан харьцааны дараах 2 хэлбэр байдаг. Үүндхэлбэр байдаг. Үүнд

Удамшил харьцаа Удамшил харьцаа /өгүүлбэрзүйн/өгүүлбэрзүйн is ais a харьцаагаар/харьцаагаар/

Бүрдмэл харьцаа Бүрдмэл харьцаа // өгүүлбэрзүйнөгүүлбэрзүйн has ahas a харьцаагаархарьцаагаар //

Page 9: Ood lesson6 class-my

Програм хангамжийн дахин ашиглагдах чадварПрограм хангамжийн дахин ашиглагдах чадвар

9

Òýýâðèéí õýðýãñýëÝçýìøèãччÒºðºëªíãºÕóðäëàõÀñààõÇîãñîîõ

Ýõ êëàññ

Õ¿¿ êëàññ

Òàêñè¯éëччë¿¿ëýãччÕ¿í òýýâýðëýõ

Àччààíû òýðýãÄààöÀччàà òýýâýðëýõ

ªã º ã ä º ë á îë îí ã è ø ¿ ¿ í ô ó íê ö ó ó ä íü õ ¿ ¿ ê ë à ññäó ä à ìø è íà

Îíöëîã ôóíêö

Îíöëîã ºãºãäºë

Удамшил харьцаа /Inheritance/

Taxi is a TransportationTruck is a Transportation

Page 10: Ood lesson6 class-my

Програм хангамжийн дахин ашиглагдах чадварПрограм хангамжийн дахин ашиглагдах чадвар

10

Бүрдмэл харьцааComputer

CPU Mouse Disk

Computer has a CPUComputer has a mouseComputer has a Disk

Классын өргөтгөх боломж нь (Удамшил ба бүрдмэл хэмээх ойлголтууд нь) програм хангамжийг

Дахин ашиглагдах чадвартайЗасвар үйлчилгээ авахадаа сайн болгодог

Page 11: Ood lesson6 class-my

Класс диаграммКласс диаграмм Систем дэх классууд болон тэдгээрийн хоорондын холбоо хамаарлыг

д рсэлдэг гэдэг утгаараа системийн х рээ хязгаарыг тодорхойлж гд гү ү ө ө Static шинж чанартай. Учир нь классууд нь бие биетэйгээ хэрхэн

холбогдож байгааг д рсэлдэг боловч тэдгээр нь хоорондоо харилцан үхэрхэн н л л хийг авч здэгг й.ө өө ө ү ү

◦ Collaboration диаграммыг бодвол Collaboration дийграм нь классуудын хоорондын харилцааг д рсэлдэг.ү Иймд бид Collaboration диаграм нь биелэлтийн еийнү йл явцыг ү

( runtime behaviors) д рсэлдэг байхадү Class диаграмм нь design-time –д д рслэгддэг.ү

Классын диаграмм нь дизайны е шатын ндэс суурь болдог.ү ү Class диаграмм нь хэдийгээр шинжилгээний загварт тооцогддог

боловч энэ е шатанд классуудын хоорондын харьцааг илэрхийлэх үхэмжээнд л д рслэгддэгү

Харин зохиомжийн е шатанд кодчиллын мн класс диаграмм нь ү ө өб рэн д рслэгддэг.ү ү

11

Page 12: Ood lesson6 class-my

12

Êëàññûí íýð

Àòðèáóò

¯éëäýë

Êëàññûí íýð

Àòðèáóò

Êëàññûí íýð

¯éëäýë

Êëàññûí íýð

Çàðèìäàà àòðèáóò áîëîí ¿éëäëèéã ä¿ðñëýõã¿é áàéæ áîëíî.(ýíý íü òóõàéí ìýäýýëýë äèàãðàìä áàéõ øààðäëàãàòàé ýñýõýýñ õàìààðíà)

Êëàññûã ä¿ðñëýõäýý

Page 13: Ood lesson6 class-my

Класс диаграммКласс диаграмм Классд диаграммд д рслэгдэх холбоосуудү

1. Association/холбоо хамаарал/2. Aggregation/нэгдэл/3. Composition/б тэц/ү4. Generalization/удамшил/5. Multiplicity/т р лт холбоо/ө ө6. Dependencies and Constraints

1. Association/холбоо хамаарал/

13

Page 14: Ood lesson6 class-my

2. Aggregation/нэгдэл/

3. Composition/б тэц/ү

4. Generalization

14

Page 15: Ood lesson6 class-my

15

6.Multiplicity

7.Dependencies and Constraints

Класс диаграммд д рслэгдэх бусад мэдээлл дү үүКласс, т ний гиш д, харагдах байдалүү үү (Visibility)Interface- д баүү Stereotype-ууд

Page 16: Ood lesson6 class-my

Класс диаграммКласс диаграмм Класс диаграмм дахь классууд болон т ний гиш д, гиш дийн үү үү үү

харагдах байдал (Visibility)◦ Класс диаграмм нь 3 н д б хий тэгш нц гт р д рслэгддэг б г д ү ү ө ө өө ү ө өө

классын нэр классын гиш н г гдл дүү ө ө үү классын гиш н функцуудыг бичдэгүү

◦ Классын гиш н г гд л болон гиш н функцуудын хандалтыг үү ө ө ө үүтодорхойлох боломжтой

◦ Классын статик гиш дийг доогуур нь зурдаг.үү◦ Классын гиш н функцыг дараах хэлбэрээр д рсэлдэгүү ү

< Хандалтыг тодорхойлогч> <нэр> ( <параметрийн жагсаалт>) : <буцаах утга>

◦ Параметрийн жагсаалт дахь параметр дийг хооронд нь таслалаар үүзааглана

◦ Хандалтыг тодорхойлогчийг классын гиш д б рийн мн тодорхойлно.үү ү ө ө

16

Page 17: Ood lesson6 class-my

17

Class Diagram ãýæ þó âý?

Class diagram íü ñèñòåì

äýõ êëàññóóäûí äîòîîä

á¿òýö, òýäãýýðèéí õîîðîíäûí

õîëáîî õàìààðëûã ä¿ðñëýíý.

Á¿ðýëäýõ¿¿í õýñýã:

•Êëàññ•Êëàññóóäûí õîîðîíäûí

õîëáîîñûí ä¿ðñëýë

BankCont

Customer

Account

Receipt

Savings

TimeDeposit

Transaction

Page 18: Ood lesson6 class-my

18

Õîëáîîñ

Class A

Õîëáîîñûí íýð

Person Productorder

Class B

Õîëáîîñûí çýðýã

Õîëáîîñûí çýðýã

Person Productbuyer

Õ¿í çàõèàëãà ºãºõ Á¿òýýãäýõ¿¿íèé õóâüä õ¿í õóäàëäàí àâàãч

Class A, Class B õî¸ðûí õîîðîíäûí õîëáîî õàìààðëûã èëýðõèéëíý

Page 19: Ood lesson6 class-my

19

Óäàìøèë áà á¿ðäìýë õàðüöàà

Á¿ðäìýë õàðüöàà: “...áîë ...òàé”

Ìàøèí

Ìîòîð Äóãóé Òàêñè Óäàìøèë õàðüöàà:“... áîë ... þì”

Óäàìøèë áà Á¿ðäìýë íü êëàññóóäûí õîëáîîñûí íýã õýëáýð þì.

Page 20: Ood lesson6 class-my

20

Õîëáîîñûí çýðã¿¿ä

ìèíèéÌàøèí: Ìàøèí

ÁàðóóíÓðäÄóãóé: Äóãóé

Ç¿¿íÓðäÄóãóé: Äóãóé

ÁàðóóíÕîéäÄóãóé: Äóãóé

Ç¿¿íÕîéäÄóãóé: Äóãóé

Ìàøèí Äóãóé1 4

Ìèíèé ìàøèí 4 äóãóéòàé.Êëàññ

1çºâõºí 1

Êëàññ0..1

0 ýñâýë 1

Êëàññ * 0 áóþó îëîí

Êëàññ1..*

1 áóþó îëîí

Êëàññ2..6

2-îîñ 6

Êëàññ1,5,10

1 ýñâýë 5 ýñâýë 10

Page 21: Ood lesson6 class-my

21

Õîëáîãч êëàññ

Class A Class B

Õîëáîãч êëàññ: Êëàññóóä õîîðîíäûí õîëáîîñ ìýäýýëëèéã àãóóëàõ êëàññ

Class C

Îëîí îëîíòîé õîëáîîñûã ºðãºòãºæ õîëáîãч êëàññûã ¿¿ñãýäýã.

abc

Page 22: Ood lesson6 class-my

22

Àëõàì àëõàìààð çàãâàðчèë

Ñèñòåìèéí äèíàìèê áîëîí ñòàòèê øèíæ¿¿äèéã íýã á¿ðчëýí ÿðèëöàæ àëõàì

àëõàìààð íýìýãä¿¿ëýí çàãâàðчëàõ øààðäëàãàòàé.

Îáúåêò õàíäëàãàò àðãàчëàë íü ººðºº àëõàì àëõàìààð õºãæ¿¿ëýõ ãýñýí çàðчìûã

áàðèìòàëäàã.

Ñèñòåìèéí äèíàìèê áîëîí ñòàòèê øèíæ¿¿äèéã íýã á¿ðчëýí ÿðèëöàæ àëõàì

àëõàìààð íýìýãä¿¿ëýí çàãâàðчëàõ øààðäëàãàòàé.

Îáúåêò õàíäëàãàò àðãàчëàë íü ººðºº àëõàì àëõàìààð õºãæ¿¿ëýõ ãýñýí çàðчìûã

áàðèìòàëäàã.

Áè þó õèéõ ¸ñòîéãîî ñàéí ìýäýæ áàéãàà áîëîâч ñèñòåìä øààðäëàãàòàé á¿õ ýëåìåíò¿¿äèéã á¿ãäèéã íýã äîð çàãâàðчèëãààíäàà òóñãàæ чàäàõã¿é áàéíà.

Áè þó õèéõ ¸ñòîéãîî ñàéí ìýäýæ áàéãàà áîëîâч ñèñòåìä øààðäëàãàòàé á¿õ ýëåìåíò¿¿äèéã á¿ãäèéã íýã äîð çàãâàðчèëãààíäàà òóñãàæ чàäàõã¿é áàéíà.

Page 23: Ood lesson6 class-my

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 íü àëõàì àëõàìààð íýìýãä¿¿ëýí õºãæ¿¿ëýõ àðãà÷ëàë

Page 24: Ood lesson6 class-my

24

"+" Public "-" Private "#" Protected "/" Derived (can be combined with one of the others) "_" Static

Page 25: Ood lesson6 class-my

25