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

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

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

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

Добавлен: 05.12.2019

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

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

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

Ди ‡ „‡м мы ко о пе ‡ ции и их но т‡ циfl

Что ж, о‰ин из ‚и ‰о‚ ‰и ‡ „‡мм ‚з‡ и мо ‰ей ст ‚иfl, ‡ имен но ‰и ‡ „‡м -

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

о лflх

.

Сле ‰у ет от ме тить, что з‰есь име ет ме с то не ко то ‡fl те ми но ло „и че с -

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

Collaboration

Diagram

.  Сло ‚о  «collaboration»,  ко неч но  же,  си но ним  сло ‚‡  «coopera-

tion»,  но  ‚  «ус ском»  ‚‡ и ‡н те  з‚у чит  ху же.  По это му  ‚  ус ско flзыч ных
учеб ни к‡х  „о ‚о flт  «‰и ‡ „‡м м‡  ко о пе ‡ ции»,  ‡  не  «кол л‡ бо ‡ ции».
Ко ме это „о, с‡ мо это н‡ з‚‡ ние не мно „о ус т‡ е ло — ‚ UML 2.x по ‰об -
ные  ‰и ‡ „‡м мы  н‡ зы ‚‡ ют сfl 

Communication  Diagram

.  Впо чем,  ‚се  ти

сло ‚‡  —  «cooperation»,  «collaboration»  и  «communication»  —  fl‚ лfl ют сfl
си но ни м‡ ми,  т‡к  что  ‰о ‚оль но  ч‡ с то  ис поль зу ет сfl  «ст‡ ое»  н‡ з‚‡ ние.
Ч‡ с то ‰‡ же, 

„о ‚о fl «‰и ‡ „‡м мы ‚з‡ и мо ‰ей ст ‚иfl», по‰ ‡ зу ме ‚‡ ют имен но

‰и ‡ „‡м мы ко о пе ‡ ции.

Ит‡к, мы уже „о ‚о и ли, что, по ‰об но ‰и ‡ „‡м м‡м по сле ‰о ‚‡ тель но -

с тей, ‰и ‡ „‡м мы ко о пе ‡ ции пе‰ н‡з н‡ че ны ‰лfl опи с‡ ниfl ‰и н‡ ми че с ких

Кус

96

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

Рис. 5.10


background image

‡с пек то‚  мо ‰е ли у е мой  си с те мы.  Обыч но  они  пи ме нfl ют сfl  ‰лfl  то „о,
что бы:

по к‡ з‡ть н‡ бо ‚з‡ и мо ‰ей ст ‚у ю щих объ ек то‚ ‚ е ‡ль ном ок у же -
нии «

с ‚ы со ты пти чь е „о по ле т‡

»;

‡с пе ‰е лить функ ци о н‡ль ность

меж ‰у кл‡с с‡ ми, ос но ‚ы ‚‡ flсь н‡

е зуль т‡ т‡х изу че ниfl ‰и н‡ ми че с ких ‡с пек то‚ си с те мы;

опи с‡ть 

ло „и ку ‚ы пол не ниfl слож ных опе ‡ ций

, осо бен но ‚ тех слу -

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

изу чить 

о ли

,  ‚ы пол нfl е мые  объ ек т‡ ми  ‚ну т и  си с те мы,  ‡  т‡к же

от но ше ниfl

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

нflfl эти о ли.

Го ‚о fl о ‰и ‡ „‡м м‡х ко о пе ‡ ции, ч‡ с то упо ми н‡ ют ‰‚‡ «уо‚ нfl» т‡ -

ких ‰и ‡ „‡мм — 

уо ‚ень эк земп лfl о‚

(пи ме о‚, Instance-Level) и 

уо ‚ень

спе ци фи к‡ ции

(Specification-Level).  В  чем  же  ‡з ни ц‡?  От ‚ет  пост:  уо -

‚ень эк земп л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  (collaboration)

.  Это  ст‡ ти че с к‡fl  кон ст ук циfl  ‰лfl

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

п‡т тен 

(

ш‡б лон по ек ти о ‚‡ ниfl

). Впо чем, о ш‡б ло -

н‡х по ек ти о ‚‡ ниfl мы сей ч‡с „о ‚о ить не бу ‰ем, по сколь ку они ‚ы хо ‰flт
з‡ ‡м ки этой кни „и и пе ‚о „о те с т‡ по „‡м мы OCUP. З‡ ин т и „о ‚‡н ным
чи т‡ те лflм мы пе‰ ло жим по по бо ‚‡ть ‚‚е с ти сло ‚о со че т‡ ние «design pat-
terns»  ‚  ‡‰ ес ную  сто ку  б‡ у зе ‡.  Спо им,  по п‡ ‰е те  н‡  ст‡ тью  «Design
pattern (computer science)» из «Ви ки пе ‰ии»?

97

Лекциfl 5

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


background image

Ко о пе ‡ циfl  изо б ‡ ж‡ ет сfl  ‚  ‚и ‰е 

эл лип с‡  с  пунк ти ной  „‡ ни цей

,

пи чем сим ‚ол этот мо жет ис поль зо ‚‡ть сfl ‰‚у мfl спо со б‡ ми. Вот пе ‚ый
спо соб (ис. 5.11):

Мы ‚и ‰им, что эт‡ ‰и ‡ „‡м м‡ бук ‚‡ль но ил лю с т и у ет н‡ ши сло ‚‡ о

ко о пе ‡ ции к‡к н‡ бо е о лей, ис поль зу е мых ‚ме с те, что бы по к‡ з‡ть не -
кую  функ ци о н‡ль ность,  ‚  ‰‡н ном  слу ч‡е  —  ‚ы пол не ние  еже ме сflч но „о
е зе‚ но „о  ко пи о ‚‡ ниfl.  Вто ой  спо соб  по к‡ зы ‚‡ ет  пи кеп лен ные  к
объ ек т‡м (кл‡с с‡м) о ли ‚ ‡м к‡х ‰‡н ной ко о пе ‡ ции. Н‡ зн‡ че ние о ли
изо б ‡ ж‡ ет сfl пунк ти ной ли ни ей со стел кой н‡ кон це, н‡ п‡‚ лен ной ‚
сто о ну объ ек т‡. Имfl о ли ук‡ зы ‚‡ ет сfl н‡ кон це ли нии, fl ‰ом с объ ек -
том. По смо т и те, н‡ пи ме, н‡ эту ‰и ‡ „‡м му (ис. 5.12):

Все ‚е‰ь по нflт но, п‡‚ ‰‡? Ви‰ но, кто к‡ кую оль и„ ‡ ет и ‚ к‡ ком

‚з‡ и мо ‰ей ст ‚ии (ко о пе ‡ ции). А еще по к‡ з‡ н‡ „е не ‡ ли з‡ циfl и ко о пе ‡ -
ции и с‡ мих ис пол ни те лей.

С ко о пе ‡ ци ей ‡ зо б‡ лись. От ме тим, что, ско ее ‚се „о, ‚ е ‡ль ном

мо ‰е ли о ‚‡ нии  ‚ы  с  ней  бу ‰е те  ‚сте ч‡ть сfl  к‡й не  е‰ ко.  Сле ‰у ю щие

Кус

98

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

Рис. 5.11

Рис. 5.12


background image

эле мен ты,  ко то ые  мож но  у‚и ‰еть  н‡  ‰и ‡ „‡м ме  ‚з‡ и мо ‰ей ст ‚иfl  —  это

объ ек ты

и 

кл‡с сы

.

По сколь ку ‰и ‡ „‡м м‡ ко о пе ‡ ции — ‚се „о лишь ‡ль те н‡ ти‚ н‡fl фо м‡

пе‰ ст‡‚ ле ниfl той же ин фо м‡ ции, ко то ‡fl со ‰е жит сfl ‚ ‰и ‡ „‡м ме по сле -
‰о ‚‡ тель но с тей, то и обо зн‡ че ниfl объ ек то‚ (кл‡с со‚) ‚ ней, по су ти, т‡ кие
же, к‡к и н‡ ‰и ‡ „‡м ме по сле ‰о ‚‡ тель но с тей (и н‡ ‰у „их ‰и ‡ „‡м м‡х). Что -
бы по ил лю с т и о ‚‡ть это ут ‚еж ‰е ние, пи ‚е ‰ем пи ме ‰и ‡ „‡м мы ‚з‡ и -
мо ‰ей ст ‚иfl, по з‡ им ст ‚о ‚‡н ный н‡ ми с с‡й т‡ http://www.agilemodeling.com/
(‡ точ нее,  http://www.agilemodeling.com/style/collaborationDiagram.htm)
(ис. 5.13):

К‡к  ‚и ‰и те,  ‰и ‡ „‡м м‡  ил лю с т и у ет  по куп ку  не ко то о „о  то ‚‡ ‡

(‚е о flт но,  ‚  он л‡й не)  и  оп л‡ ту  с  по мо щью  ке ‰ит ной  к‡ ты.  Еще  о‰ н‡
ин те ес н‡fl ‚ещь, ко то ую мож но у‚и ‰еть н‡ этой ‰и ‡ „‡м ме — это 

со об -

ще ниfl

,  ‚е нее,  то,  к‡к  они  изо б ‡ ж‡ ют сfl.  Со об ще ниfl  по к‡ з‡ ны  ‚  ‚и ‰е

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

но ме:퇠炇 ние_со об ще ниfl

. Пи чем ч‡ с то ис поль зу ют и

со ст‡‚ ные  но ме ‡

.  Н‡ пи ме,  объ ект  от п‡ ‚ил  ‰у „о му  объ ек ту  со об ще -

ние с но ме ом 1. Ко„ ‰‡ объ ект-по лу ч‡ тель ‚ с‚ою оче е‰ь от п‡‚ лfl ет со -
об ще ниfl  ‰у „им  объ ек т‡м,  они  по лу ч‡ ют  но ме ‡  1.1,  1.2  и  т.  ‰.  Ино „‰‡
нуж но  по к‡ з‡ть  о‰ но ‚е мен ную  от п‡‚ ку  со об ще ний.  Что бы  от ме тить

п‡ ‡л лель ные по то ки со об ще ний

, их но ме ‡ пе‰ ‚‡ fl ют бук ‚‡ ми A, B, C, D

99

Лекциfl 5

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

Рис. 5.13


background image

и  т.  ‰.  Вот  пи ме  т‡ ких  обо зн‡ че ний,  по з‡ им ст ‚о ‚‡н ный  опflть-т‡ ки  с
http://www.agilemodeling.com/ (ис. 5.14):

Еще  о‰ н‡  «ме лочь»,  н‡  ко то ую  хо те лось  бы  об ‡ тить  ‚ни м‡ ние

поль зо ‚‡ те лfl  —  это 

муль ти объ ек ты

.  Муль ти объ ект  по к‡ зы ‚‡ ет,  что  н‡

«‰‡ль нем» кон це ‡с со ци ‡ ции н‡ хо ‰ит сfl не о‰ин, ‡ це лый 

н‡ бо

объ ек то‚.

Т‡ к‡fl кон ст ук циfl ис поль зу ет сfl, что бы по к‡ з‡ть опе ‡ цию, ко то ‡fl н‡ -
це ле н‡  н‡  це лый  н‡ бо  объ ек то‚.  Муль ти объ ект  изо б ‡ ж‡ ет сfl  к‡к  ‰‚‡
пfl мо у„оль ни к‡, сме щен ных по от но ше нию ‰у„ к ‰у „у, что со з‰‡ ет ‚пе -
ч‡т ле ние «ко ло ‰ы к‡т». Со об ще ние, от п‡‚ лен ное муль ти объ ек ту, оз н‡ -
ч‡ ет со об ще ние к н‡ бо у объ ек то‚, н‡ пи ме, опе ‡ циfl ‚ы бо ‡ — по ис -
к‡ оп е ‰е лен но „о объ ек т‡. Пи ме по ‰об ной ‰и ‡ „‡м мы по к‡ з‡н н‡ и -
сун ке (ис. 5.15):

Смысл ‰и ‡ „‡м мы ‚пол не по нfl тен: ‰лfl пе ч‡ ти ‰о ку мен т‡ из не ко то -

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

с‚fl зи со сте ео -

Кус

100

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

Рис. 5.14

Рис. 5.15