Файл: Бабич UML первое знакомство.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 05.12.2019

Просмотров: 6227

Скачиваний: 38

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

ти п‡ ми

. Что бы по к‡ з‡ть, что ‚ы б‡н ло к‡ль ный пин те, чуть из ме ним

пе ‰ы ‰у щую ‰и ‡ „‡м му (ис. 5.16):

Сле ‰у ет от ме тить, что ино „‰‡ ‚ме с то фи „у ных ско бок ис поль зу ют -

сfl у„ ло ‚ые к‡ ‚ыч ки (к‡к мы пи ‚ык ли ‰е л‡ть, ук‡ зы ‚‡fl сте ео тип ‚ н‡ -
炇 нии  ком по нен т‡  или  кл‡с с‡),  но  ч‡ ще  ‚се  же  пи ме нfl ют  фи „у ные
скоб ки. Из ме нен н‡fl ‰и ‡ „‡м м‡ ст‡ л‡ еще бо лее по нflт ной, не п‡‚ ‰‡ ли?
Что бы з‡ ке пить по лу чен ные зн‡ ниfl о с‚fl зflх со сте ео ти п‡ ми, пи ‚е ‰ем
еще о‰ин пи ме (ис. 5.17):

Смысл ‰и ‡ „‡м мы опflть ‚пол не по нfl тен, ‚е‰ь п‡‚ ‰‡? А сте ео ти пы

с‚fl зей поз ‚о лfl ют ис клю чить не о‰ но зн‡ч но с ти, ко то ые мо„ ли бы быть,
ес ли бы мы „о ‚о и ли, н‡ пи ме, о мно „о н‡ ци о н‡ль ной ‡с пе ‰е лен ной
ком п‡ нии...

И еще о‰ н‡ ‚ещь, ко то ‡fl с‚fl з‡ н‡ с по нfl ти ем ко о пе ‡ ции — 

ком по -

зит ный объ ект

. Ком по зит ный объ ект — это ‚ы со ко уо‚ не ‚ый объ ект, со -

101

Лекциfl 5

Д臄‡ммы ‚з‡имо‰ейст‚иfl: купным пл‡ном

Рис. 5.16

Рис. 5.17


background image

сто fl щий  из  не сколь ких  ч‡ с тей-объ ек то‚.  Это  эк земп лfl  ком по зит но „о
кл‡с с‡,  е ‡ ли зу ю ще „о  ком по зит ное  ‡„ е „и о ‚‡ ние  кл‡с с‡  и  е„о  ч‡ с тей.
Ком по зит ный объ ект — по нfl тие, 

близ кое к по нfl тию ко о пе ‡ ции

, но бо лее

по стое и бо лее о„ ‡ ни чен ное. Это кон ст ук циfl, по к‡ зы ‚‡ ю щее це лое ‚
‚и ‰е ‚з‡ и мо ‰ей ст ‚у ю щих ч‡ с тей, но ‚ ос но‚ ном с точ ки зе ниfl ком по зи -
ции. Изо б ‡ ж‡ ет сfl ком по зит ный объ ект ‚ ‚и ‰е пfl мо у„оль но „о сим ‚о л‡
объ ек т‡, но с не ко то ы ми от ли чи fl ми:

имfl объ ек т‡ ук‡ зы ‚‡ ет сfl ‚ ‚ех ней ч‡ с ти пfl мо у„оль ни к‡, от ‰е -
лен ной от е„о ос т‡ль ной ч‡ с ти „о и зон т‡ль ной ли ни ей;

‚ ниж ней ч‡ с ти пfl мо у„оль ни к‡ ‡з ме щ‡ ют сfl ч‡ с ти ком по зит но „о
объ ек т‡, т‡к же, ес те ст ‚ен но, изо б ‡ ж‡ е мые сим ‚о л‡ ми объ ек то‚;

ч‡ с ти ком по зит но „о объ ек т‡ мо „ут (и ‰‡ же ‰олж ны) быть с‚fl з‡ ны
меж ‰у со бой;

‰о пу с к‡ ет сfl си ту ‡ циfl, ко„ ‰‡ не ко то ые ч‡ с ти ком по зит но „о объ -
ек т‡ с‡ ми fl‚ лfl ют сfl ком по зит ны ми объ ек т‡ ми.

По смо т им же, к‡к это ‚ы „лfl ‰ит н‡ пи ме е (ис. 5.18):

Не п‡‚ ‰‡ ли, эт‡ уп о щен н‡fl мо ‰ель „‡ фи че с ко „о ок н‡ по ст‡ и по -

нflт н‡? Ок но име ет з‡ „о ло ‚ок, ‡ бо чую об л‡сть и ‰‚е по ло сы по кут ки —
„о и зон т‡ль ную и ‚е ти к‡ль ную, ко то ые ее пе е ме щ‡ ют. Все по сто!

Ком по зит ный объ ект лишь бли зок по зн‡ че нию к ко о пе ‡ ции, но не

‚сте ч‡ ет сfl н‡ ‰и ‡ „‡м м‡х ‚з‡ и мо ‰ей ст ‚иfl «‚ чи с том ‚и ‰е». Н‡ ‰и ‡ „‡м -
м‡х ‚з‡ и мо ‰ей ст ‚иfl ино „‰‡ мож но у‚и ‰еть очень близ кую по смыс лу кон -
ст ук цию, ‡ имен но 

‡к ти‚ ный объ ект

. Ак ти‚ ны ми н‡ зы ‚‡ ют объ ек ты, ко -

то ые  ‚л‡ ‰е ют  соб ст ‚ен ным  по то ком  уп ‡‚ ле ниfl  и  мо „ут  ини ци и о ‚‡ть
‚ы пол не ние  ‰ей ст ‚ий. 

П‡с си‚ ные

объ ек ты  со ‰е ж‡т  ‰‡н ные,  но  не  мо „ут

ини ци и о ‚‡ть ‚ы пол не ние. Ко неч но, п‡с си‚ ные объ ек ты мо „ут по сы л‡ть

Кус

102

UML: Пе‚ое зн‡комст‚о

Рис. 5.18


background image

со об ще ниfl ‚ по цес се об ‡ бот ки по лу чен ных з‡ по со‚. Ак ти‚ ный объ ект
(или, ‚е нее, е„о оль) ‚ы „лfl ‰ит н‡ ‰и ‡ „‡м ме к‡к пfl мо у„оль ный сим ‚ол
объ ек т‡, но с утол щен ны ми „‡ ни ц‡ ми. Ч‡ с то ‡к ти‚ ный объ ект изо б ‡ ж‡ -
ет сfl  к‡к  ком по зит ный  объ ект,  со ‰е ж‡ щий  объ ек ты-ч‡ с ти.  По смо т и те,
н‡ пи ме,  н‡  эту  ‰и ‡ „‡м му,  по з‡ им ст ‚о ‚‡н ную  н‡ ми  с  http://etna.int-
evry.fr/COURS/UML/notation/notation8a.html (ис. 5.19):

К‡к ‚и ‰и те, ‚се объ ек ты, ото б ‡ жен ные н‡ ‰и ‡ „‡м ме, fl‚ лfl ют сfl ‡к -

ти‚ ны ми. Т‡ ких объ ек т‡ ти — это о бот, печь и ме не ‰ же це х‡, ко то ый
изо б ‡ жен к‡к ком по зит ный ‡к ти‚ ный объ ект.

Во об ще же, ес ли „о ‚о ить о ком по зит ных объ ек т‡х, то сле ‰у ет от ме -

тить, что ‚ UML 2 по fl‚ил сfl но ‚ый тип ‰и ‡ „‡мм — 

ком по зит н‡fl стук ту -

н‡fl ‰и ‡ „‡м м‡

. Он‡ по к‡ зы ‚‡ ет ‚ну т ен нюю стук ту у эле мен т‡, ‚клю ч‡fl

точ ки ‚з‡ и мо ‰ей ст ‚иfl с ‰у „и ми ч‡ с тfl ми си с те мы. Т‡ ким об ‡ зом, ото б -
‡ ж‡ ет сfl со ст‡‚ и от но ше ниfl меж ‰у ч‡ с тfl ми, ко то ые со‚ ме ст ны ми уси -
ли fl ми  е ‡ ли зу ют  по ‚е ‰е ние  эле мен т‡.  Вот  от лич ный  пи ме  ком по зит -
ной ‰и ‡ „‡м мы из Zicom Mentor (ис. 5.20).

Пе к‡с н‡fl мо ‰ель ‚е ло си пе ‰‡! Уз н‡ е те ст‡ ых зн‡ ко мых — ком по -

зит ные объ ек ты?

К  со ж‡ ле нию,  ком по зит ные  стук ту ные  ‰и ‡ „‡м мы  н‡ хо ‰flт сfl  з‡

пе ‰е л‡ ми те м‡ ти ки эк з‡ ме н‡ UM0-100, по это му боль ше о них мы з‰есь

103

Лекциfl 5

Д臄‡ммы ‚з‡имо‰ейст‚иfl: купным пл‡ном

Рис. 5.19


background image

„о ‚о ить не бу ‰ем. О‰ н‡ ко н‡ пос ле ‰ок ск‡ жем, что, ко ме ‚ну т ен них ч‡ -
с тей, н‡ т‡ ких ‰и ‡ „‡м м‡х мож но у‚и ‰еть еще о‰ но но‚ ше ст ‚о UML 2 —

по ты

. Пот — это ти пи зи о ‚‡н ный эле мент, ко то ый пе‰ ст‡‚ лfl ет 

«‚и -

‰и мую сн‡ у жи»

ч‡сть со ‰е ж‡ ще „о е„о эле мен т‡. Пот, к‡к это и сле ‰у ет

из н‡ з‚‡ ниfl, оп е ‰е лfl ет ‚з‡ и мо ‰ей ст ‚ие эле мен т‡ мо ‰е ли с ок у ж‡ ю щей
е„о се ‰ой. Пот мо жет ‡з ме щ‡ть сfl н‡ „‡ ни це ч‡ с ти, кл‡с с‡ или ком по -
зит ной стук ту ы. Пот мо жет опи сы ‚‡ть се ‚и сы, пе ‰о ст‡‚ лfl е мые эле -
мен том мо ‰е ли (и те бу е мые ок у ж‡ ю щей е„о се ‰ой). Изо б ‡ ж‡ ет сfl пот
к‡к име но ‚‡н ный (не ‰‡ ом же мы ‡ нее ск‡ з‡ ли «ти пи зи о ‚‡н ный») пfl -
мо у„оль ник н‡ „‡ ни це со ‰е ж‡ ще „о е„о эле мен т‡ мо ‰е ли (‚по чем, ино -
„‰‡ мож но у‚и ‰еть сим ‚ол по т‡ и ‚ну т и сим ‚о л‡ кл‡с с‡ — то„ ‰‡ „о ‚о flт,
что кл‡сс име ет 

скы тый пот

). Что бы по кон чить с эти ми от ступ ле ни fl ми

от те мы, по к‡ жем, к‡к ‚се это ‚ы „лfl ‰ит н‡ ‰и ‡ „‡м ме, и ‚е нем сfl к ‰и ‡ -
„‡м м‡м ‚з‡ и мо ‰ей ст ‚иfl (ис. 5.21).

Кус

104

UML: Пе‚ое зн‡комст‚о

Рис. 5.20

Рис. 5.21


background image

Вспом ни ли, что изо б ‡ ж‡ ют «ле ‰ен цы н‡ п‡ лоч ке»? П‡ ‚иль но, ин -

те фей сы  —  пе ‰о ст‡‚ лfl е мый  кл‡с сом  и  те бу е мый  им,  мо ло‰ цы.  А  те -
пеь ‚е нем сfl к ос но‚ ной ни ти н‡ ше „о по ‚е ст ‚о ‚‡ ниfl.

Ре ко мен ‰‡ ции по по ст о е нию ‰и ‡ „‡мм 

‚з‡ и мо ‰ей ст ‚иfl

К‡ ким же об ‡ зом и ‚ к‡ кой по сле ‰о ‚‡ тель но с ти сле ‰у ет ‰ей ст ‚о -

‚‡ть,  что бы  по ст о ить  к‡ че ст ‚ен ную  ‰и ‡ „‡м му  ‚з‡ и мо ‰ей ст ‚иfl?  Н‡ -
чи н‡ть  нуж но  с  ‚ы ‰е ле ниfl  тех  и  толь ко  тех  кл‡с со‚,  объ ек ты  ко то ых
уч‡ ст ‚у ют  ‚  мо ‰е ли у е мом  ‚‡ ми  ‚з‡ и мо ‰ей ст ‚ии.  З‡ тем  ‚се  объ ек ты
н‡ но сим н‡ ‰и ‡ „‡м му. Сле ‰у ет т‡к же оп е ‰е лить те объ ек ты, ко то ые
бу ‰ут су ще ст ‚о ‚‡ть по сто flн но, и те, ко то ые бу ‰ут су ще ст ‚о ‚‡ть толь -
ко  ‚о  ‚е мfl  ‚ы пол не ниfl  ими  ‰ей ст ‚ий  ‚  ‡м к‡х  мо ‰е ли у е мо „о  ‚з‡ и -
мо ‰ей ст ‚иfl.

Т‡к,  объ ек ты  н‡ и со ‚‡ ны,  мож но  пе е хо ‰ить  к  со об ще ни flм.  Воз -

мож но, что бы луч ше пе е ‰‡ть о ли, и„ ‡ е мые объ ек т‡ ми ‚о ‚з‡ и мо ‰ей ст -
‚ии,  по н‡ ‰о бит сfl  ис поль зо ‚‡ть  ‡з лич ные  ‡з но ‚и‰ но с ти  со об ще ний  и
сте ео ти пы.  Длfl  унич то же ниfl  объ ек то‚,  ко то ые  су ще ст ‚у ют  толь ко  ‚о
‚е мfl ‚ы пол не ниfl не ких ‰ей ст ‚ий, то же нуж но пе ‰у с мо т еть спе ци ‡ль -
ные со об ще ниfl.

А  ес ли  есть  ‚ет‚ ле ниfl?  С‡ мые  по стые  слу ч‡и  ‚ет‚ ле ний  по цес с‡

‚з‡ и мо ‰ей ст ‚иfl мож но по к‡ з‡ть и н‡ о‰ ной ‰и ‡ „‡м ме — по мни те пи -
ме  с  ‡з ны ми  спо со б‡ ми  пл‡ те ж‡  ‚  з‡ ‚и си мо с ти  от  сто и мо с ти  пи „лfl -
ну‚ шей сfl  ‚е щи?  Но  пи  изо б ‡ же нии  ‚ет‚ ле ний  ‰и ‡ „‡м м‡  ст‡ но ‚ит сfl
бо лее слож ной ‰лfl по ни м‡ ниfl «с ле ту». Нуж но со блю ‰‡ть б‡ л‡нс меж ‰у
‰е т‡ ли з‡ ци ей и слож но с тью: луч ше к‡ж ‰ый ‡ль те н‡ ти‚ ный по ток уп ‡‚ -
ле ниfl  по к‡ зы ‚‡ть  н‡  от ‰ель ной  ‰и ‡ „‡м ме.  В  т‡ ком  слу ч‡е  сле ‰у ет  ‡с -
см‡ т и ‚‡ть т‡ кие «ч‡ ст ные» ‰и ‡ „‡м мы ‚ ком плек се, к‡к о‰ ну мо ‰ель ‚з‡ -
и мо ‰ей ст ‚иfl.

Ес ли же хо чет сfl еще боль ше ‰е т‡ ли зи о ‚‡ть ‰и ‡ „‡м му, мож но ‚‚е -

с ти  ‚е мен ные  о„ ‡ ни че ниfl  н‡  ‚ы пол не ние  от ‰ель ных  ‰ей ст ‚ий.  Впо -
чем, ‰лfl по стых ‡син хон ных со об ще ний ‚е мен ные о„ ‡ ни че ниfl, ско -
ее ‚се „о, не нуж ны. А ‚от не об хо ‰и мость син хо ни з‡ ции слож ных по то -
ко‚ уп ‡‚ ле ниfl ч‡ с то те бу ет ис поль зо ‚‡ ниfl т‡ ких о„ ‡ ни че ний. З‡ пись
их ‰олж н‡ сле ‰о ‚‡ть п‡ ‚и л‡м 

flзы к‡ объ ект ных о„ ‡ ни че ний

(OCL, Object

Constraint Language). Р‡с смо т е ние OCL ‚ы хо ‰ит з‡ ‡м ки н‡ шей кни „и и
эк з‡ ме н‡ UM0-100, ‰лfl по‰ „о то‚ ки к ко то о му он‡ н‡ пи с‡ н‡. Хо тfl, с‡ ми
то „о не зн‡fl, мы уже ис поль зо ‚‡ ли OCL — ‚спом ни те ус ло ‚иfl ‚ к‚‡ ‰ ‡т -
ных скоб к‡х по‰ со об ще ни fl ми н‡ ‰и ‡ „‡м ме по сле ‰о ‚‡ тель но с тей с ‚ет‚ -
ле ни ем!

105

Лекциfl 5

Д臄‡ммы ‚з‡имо‰ейст‚иfl: купным пл‡ном