ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 05.12.2019
Просмотров: 6281
Скачиваний: 39
Ди ‡ „‡м мы ко о пе ‡ ции и их но т‡ ци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
‡с пек то‚ мо ‰е ли у е мой си с те мы. Обыч но они пи ме н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: купным пл‡ном
Ко о пе ‡ циfl изо б ‡ ж‡ ет сfl ‚ ‚и ‰е
эл лип с‡ с пунк ти ной „‡ ни цей
,
пи чем сим ‚ол этот мо жет ис поль зо ‚‡ть сfl ‰‚у мfl спо со б‡ ми. Вот пе ‚ый
спо соб (ис. 5.11):
Мы ‚и ‰им, что эт‡ ‰и ‡ „‡м м‡ бук ‚‡ль но ил лю с т и у ет н‡ ши сло ‚‡ о
ко о пе ‡ ции к‡к н‡ бо е о лей, ис поль зу е мых ‚ме с те, что бы по к‡ з‡ть не -
кую функ ци о н‡ль ность, ‚ ‰‡н ном слу ч‡е — ‚ы пол не ние еже ме сflч но „о
е зе‚ но „о ко пи о ‚‡ ниfl. Вто ой спо соб по к‡ зы ‚‡ ет пи кеп лен ные к
объ ек т‡м (кл‡с с‡м) о ли ‚ ‡м к‡х ‰‡н ной ко о пе ‡ ции. Н‡ зн‡ че ние о ли
изо б ‡ ж‡ ет сfl пунк ти ной ли ни ей со стел кой н‡ кон це, н‡ п‡‚ лен ной ‚
сто о ну объ ек т‡. Имfl о ли ук‡ зы ‚‡ ет сfl н‡ кон це ли нии, fl ‰ом с объ ек -
том. По смо т и те, н‡ пи ме, н‡ эту ‰и ‡ „‡м му (ис. 5.12):
Все ‚е‰ь по нflт но,  ‰‡? Ви‰ но, кто к‡ кую оль и„ ‡ ет и ‚ к‡ ком
‚з‡ и мо ‰ей ст ‚ии (ко о пе ‡ ции). А еще по к‡ з‡ н‡ „е не ‡ ли з‡ циfl и ко о пе ‡ -
ции и с‡ мих ис пол ни те лей.
С ко о пе ‡ ци ей ‡ зо б‡ лись. От ме тим, что, ско ее ‚се „о, ‚ е ‡ль ном
мо ‰е ли о ‚‡ нии ‚ы с ней бу ‰е те ‚сте ч‡ть сfl к‡й не е‰ ко. Сле ‰у ю щие
Кус
98
UML: Пе‚ое зн‡комст‚о
Рис. 5.11
Рис. 5.12
эле мен ты, ко то ые мож но у‚и ‰еть н‡ ‰и ‡ „‡м ме ‚з‡ и мо ‰ей ст ‚и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
и т. ‰. Вот пи ме т‡ ких обо зн‡ че ний, по з‡ им ст ‚о ‚‡н ный оп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