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

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

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

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

Добавлен: 05.12.2019

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

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

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

лен ный  то ‚‡  ок‡ з‡л сfl  б‡ ко ‚‡н ным,  не пи „о‰ ным  к  ис поль зо ‚‡ нию
или  по по с ту  н‡м  не  по н‡ ‚ил сfl:  со сто fl ние  упо мfl ну той  б‡ зы  ‰‡н ных
‚но‚ь об но‚ лfl ет сfl — но те пеь уже ‚ сто о ну у‚е ли че ниfl ко ли че ст ‚‡ н‡ -
лич ных е‰и ниц оп е ‰е лен но „о то ‚‡ ‡. Т. е. об‡ этих ‰ей ст ‚иfl — и по куп -
к‡, и ‚оз ‚‡т — со ‰е ж‡т (‚клю ч‡ ют ‚ се бfl) т‡ кое ‰ей ст ‚ие, к‡к об но‚ ле -
ние со ‰е жи мо „о БД.

А  к‡к  же  изо б ‡ ж‡ ет сfl  ‚клю че ние?  Д‡  очень  по сто  —  к‡к  з‡ ‚и си -

мость  (пунк ти н‡fl  ли ниfl  со  стел кой,  по мни те?)  со  сте ео ти пом

<<include>>

. Пи этом стел к‡ н‡ п‡‚ ле н‡, ес те ст ‚ен но, ‚ сто о ну ‚клю -

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

ко т‡ ким об ‡ зом. А ‚от и ‰и ‡ „‡м м‡, ил лю с т и у ю щ‡fl ‚ы ше ск‡ з‡н ное,
ко то ую мы по з‡ им ст ‚о ‚‡ ли из Zicom Mentor (ис. 6.10):

121

Лекциfl 6

Д臄‡ммы пеце‰енто‚: купным пл‡ном

Рис. 6.10


background image

К‡к хо о шо ‚и‰ но из это „о пи ме ‡, ис поль зо ‚‡ ние ‚клю че ниfl поз -

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

Н‡  оче е ‰и  —  от но ше ние 

‡с ши е ниfl

.  Что бы  уflс нить  се бе  смысл

‡с ши е ниfl, пе‰ ст‡ ‚им се бе, что мы „о ‚о им об оп л‡ те не ко то о „о куп -
лен но „о н‡ ми то ‚‡ ‡. Мы мо жем оп л‡ тить то ‚‡ н‡ лич ны ми, ес ли сум м‡
не  пе ‚ы ш‡ ет  $  100.  Или  оп л‡ тить  ке ‰ит ной  к‡ той,  ес ли  сум м‡  н‡ хо -
‰ит сfl ‚ пе ‰е л‡х от $ 100 ‰о $ 1000. Ес ли же сум м‡ пе ‚ы ш‡ ет $ 1000, н‡м
пи ‰ет сfl  б‡ть  ке ‰ит.  Т‡ ким  об ‡ зом  мы 

‡с ши и ли 

по ни м‡ ние  опе ‡ -

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

Р‡с ши е ние 

‰о пол нfl ет

пе це ‰ент ‰у „и ми пе це ‰ен т‡ ми, «с‡ б‡ ты -

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

ны, мы ск‡ жем чуть поз же) по ‚е ‰е ние, опи с‡н ное ‚ пе це ‰ен те А. Пи -
ме по к‡ з‡н н‡ сле ‰у ю щей ‰и ‡ „‡м ме (ис. 6.11):

О‰ н‡ ко ‚ пи ‚е ‰ен ном пи ме е не ‚и‰ но, пи к‡ ких имен но ус ло ‚и -

flх че ло ‚ек ис поль зу ет к‡ж ‰ый кон кет ный спо соб оп л‡ ты. В то же ‚е мfl,
пи мо ‰е ли о ‚‡ нии с ис поль зо ‚‡ ни ем ‡с ши е ниfl мож но ук‡ з‡ть к‡к 

ус -

ло ‚иfl 

осу ще ст‚ ле ниfl ‡с ши ен но „о по ‚е ‰е ниfl, т‡к и ме с то — 

точ ку ‡с -

ши е ниfl

пе це ‰ен т‡, ‚ ко то ой по‰ клю ч‡ ют сfl ‰ей ст ‚иfl из ‡с ши fl ю щих

пе це ‰ен то‚.  Вспом ни те  опе ‡ то  бе зус ло‚ но „о  пе е хо ‰‡,  ко то ый  ‚ы,

Кус

122

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

Рис. 6.11


background image

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

Точ к‡  ‡с ши е ниfl  опи сы ‚‡ ет сfl  ‚  ‰о пол ни тель ном  ‡з ‰е ле  пе це -

‰ен т‡,  от ‰е лен ном  от  е„퇠炇 ниfl  „о и зон т‡ль ной  ли ни ей  —  точ но  т‡к
же, к‡к ‚ от ‰ель ных ‡з ‰е л‡х пе е чис лfl ют сfl ‡т и бу ты кл‡с с‡ и е„о опе ‡ -

ции. Ни же по к‡ з‡н пи ме опи с‡ ниfl точ ки ‡с ши е ниfl, по з‡ им ст ‚о ‚‡н -
ный н‡ ми из Zicom Mentor (ис. 6.12).

В этом пи ме е е „и с т ‡ циfl п‡с с‡ жи о‚ ‡‚и‡ ей с‡ ‚клю ч‡ ет ‚ се бfl

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

123

Лекциfl 6

Д臄‡ммы пеце‰енто‚: купным пл‡ном

Рис. 6.12


background image

изой ти толь ко по сле то „о, к‡к би лет пе‰ъ fl‚ лен н‡ стой ку е „и с т ‡ ции —
это  и  есть  точ к‡  ‡с ши е ниfl.  Он‡  опи с‡ н‡  (ее  имfl  ук‡ з‡ но)  ‚  ‰о пол ни -
тель ном  ‡з ‰е ле  пе це ‰ен т‡  по сле  слу жеб ной  ф‡ зы  «Extension  points:».
Пе‰ ‚‡ flfl  ‚о пос  чи т‡ те лfl,  ск‡ жем,  что  пе це ‰ент  мо жет  иметь  сколь
у„о‰ но  мно „о  то чек  ‡с ши е ниfl.  А  со по с т‡ ‚ить  кон кет ный  ‡с ши fl ю -
щий пе це ‰ент с оп е ‰е лен ной точ кой ‡с ши е ниfl мож но, по чи т‡‚ ус -
ло ‚иfl ‡с ши е ниfl, ук‡ з‡н ные ‚ ком мен т‡ и flх, — с‡ мо ус ло ‚ие з‡ пи сы ‚‡ -
ет сfl по сле слу жеб но „о сло ‚‡ «Condition:» ‚ фи „у ных скоб к‡х, з‡ ко то ы -
ми и‰ет слу жеб н‡fl ф‡ з‡ «Extension point:», и по сле нее ук‡ зы ‚‡ ет с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т но „о н‡ бо ‡ пе це ‰ен то‚. Мож но ск‡ з‡ть ‰‡ же, что ис поль зо ‚‡ ние
‚клю че ниfl  и  ‡с ши е ниfl  —  пи зн‡к  хо о ше „о  сти лfl  ‚  мо ‰е ли о ‚‡ нии
пе це ‰ен то‚.

Н‡ этом ‡з „о ‚о о но т‡ ции ‰и ‡ „‡мм пе це ‰ен то‚ мож но бы ло бы

и  з‡ ‚е шить.  Хо те лось  бы  толь ко  ск‡ з‡ть  еще  п‡ у  сло‚  о  со от но ше нии
меж ‰у по нfl ти fl ми пе це ‰ен т‡ и 

ко о пе ‡ ции

. О ко о пе ‡ ции мы уже „о ‚о -

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

Кус

124

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


background image

тель но не нуж но. Но пи пе е хо ‰е к е ‡ ли з‡ ции не пло хо бы зн‡ть, 

к‡ кие

имен но кл‡с сы (или ‰у „ие эле мен ты мо ‰е ли), со‚ ме ст но ‡ бо т‡fl, обес пе чи -
‚‡ ют нуж ное по ‚е ‰е ние

. То есть мы ло „ич но пе е шли от ‡з „о ‚о ‡ о пе -

це ‰ен т‡х к ‡з „о ‚о у о ко о пе ‡ ции! Не ‰‡ ом обо зн‡ че ниfl ко о пе ‡ ции и

пе це ‰ен т‡  очень  по хо жи  (чи т‡ тель,  ко неч но,  по мнит,  что  ко о пе ‡ циfl
обо зн‡ ч‡ ет сfl пунк ти ным эл лип сом) (ис. 6.13).

Т‡к  ‚  к‡ ком  же  от но ше нии  н‡ хо ‰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ть  их
смысл и по мочь ‚ их уточ не нии — ‚е‰ь к‡ тин ки (‡ тем бо лее ко -

125

Лекциfl 6

Д臄‡ммы пеце‰енто‚: купным пл‡ном

Рис. 6.13