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

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

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

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

Добавлен: 05.12.2019

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

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

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

Ко неч но же! Ве‰ь это по сле‰ ний пи ме, ко то ый мы ‡с см‡ т и -

‚‡ ли,  „о ‚о fl  о  ‰и ‡ „‡м м‡х  по сле ‰о ‚‡ тель но с тей,  —  мо биль ный  те ле -
фон! К‡к ‚и ‰им, 

это по сто ‰󠄇fl фо м‡ пе‰ ст‡‚ ле ниfl

, к то му же, н‡

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

Ди ‡ „‡м м‡ со сто fl ний (statechart diagram)

Объ ек ты х‡ ‡к те и зу ют сfl по ‚е ‰е ни ем и со сто fl ни ем

, ‚ ко то ом н‡ хо -

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

Ди ‡ „‡м мы со сто fl ний

пи ме нfl ют сfl ‰лfl то „о, что -

бы объ flс нить, к‡ ким об ‡ зом ‡ бо т‡ ют слож ные объ ек ты

. Не смо т fl н‡ то

что смысл по нfl тиfl «со сто fl ние» ин ту и ти‚ но по нfl тен, ‚се же пи ‚е ‰ем е„о
оп е ‰е ле ние ‚ т‡ ком ‚и ‰е, ‚ к‡ ком е„о ‰‡ ют кл‡с си ки и Zicom Mentor:

Со сто fl ние (state) —

си ту ‡ ци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 е мых  си с тем

пу тем  пfl мо „о  и  об ‡т но „о  по ек -

ти о ‚‡ ниfl. И они ‰ей ст ‚и тель но с ус пе хом пи ме нfl ют сfl ‚ т‡ ком к‡ че ст -

Кус

46

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


background image

‚е, ‚спом ним су ще ст ‚у ю щие ‚‡ и ‡н ты «ис пол нfl е мо „о UML», т‡ кие к‡к
UNIMOD, FLORA и ‰.

Но по „о ‚о им об обо зн‡ че ни flх н‡ ‰и ‡ „‡м м‡х со сто fl ний. Ску„ лен -

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

‰‚‡ ‚и ‰‡ псе‚ ‰о со -

сто fl ний: н‡ ч‡ль ное

, ‚ ко то ом н‡ хо ‰ит сfl объ ект с‡ зу по сле е„о со з‰‡ ниfl

(обо зн‡ ч‡ ет сfl сплош ным куж ком), и 

ко неч ное

, ко то ое объ ект не мо жет

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

Пи ‚е ‰ем пи ме по стей шей ‰и ‡ „‡м мы со сто fl ний (ис. 2.18):

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

пи ме (ис. 2.19):

47

Лекциfl 2

Ви‰ы ‰и‡„‡мм UML

Рис. 2.18

Рис. 2.19


background image

З‰есь  мы  ‚и ‰им  со ст‡‚ ное  со сто fl ние,  ‚клю ч‡ ю щее  ‰у „ие  со сто fl -

ниfl, о‰ но из ко то ых со ‰е жит т‡к же п‡ ‡л лель ные по‰ со сто fl ниfl. Мы не
„о ‚о и ли ‡ нее о том, к‡к ‚се это обо зн‡ ч‡ ет сfl, но ‚е‰ь и т‡к по нflт но —
это  ‰и ‡ „‡м м‡  по хож ‰е ниfl  ‡к‡ ‰е ми че с ко „о  ку с‡  сту ‰ен том.  Длfl  то „о
что бы пой ти кус, сту ‰ент ‰ол жен ‚ы пол нить л‡ бо ‡ то ные ‡ бо ты, з‡ -
щи тить ку со ‚ой по ект и с‰‡ть эк з‡ мен. Все по сто!

А ‚от еще о‰ин пи ме (ис. 2.20):

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

неч но же, т‡й ме! Т‡ кой пи бо мо жет пи ме нflть сfl ‚ со ст‡ ‚е ‡з лич ных
е ле, н‡ пи ме, ‰лfl от клю че ниfl те ле ‚и зо ‡ по ис те че нии ук‡ з‡н но „о по -
ме жут к‡ ‚е ме ни. Ос но‚ ное е„о н‡ зн‡ че ние — кон толь ‚е ме ни (по ‚е -
к‡, не ис тек ли ук‡ з‡н ный по ме жу ток), но у не „о есть еще о‰ин е жим ‡ -
бо ты — ус т‡ но‚ к‡. По ис те че нии ук‡ з‡н но „о по ме жут к‡ ‚е ме ни или пи
«сбо се» ус т ой ст ‚о от клю ч‡ ет сfl. В кон це кон цо‚, о чем мы „о ‚о им — ‚ы
с‡ ми мно „о ‡з ус т‡ н‡‚ ли ‚‡ ли слип-т‡й ме ‚ те ле ‚и зо е или ус т‡ н‡‚ ли ‚‡ -
ли оп цию «Вы клю чить по з‡ ‚е ше нии» ‚ Nero Burning ROM!

Ди ‡ „‡м м‡ ‡к ти‚ но с ти (‰е fl тель но с ти, activity diagram)

Ко„ ‰‡-то н‡ уо к‡х ин фо м‡ ти ки ‚ шко ле мы и со ‚‡ ли блок-схе мы,

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

Кус

48

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

Рис. 2.20


background image

‰и ‡ „‡м мы ‰е fl тель но с ти

, fl‚ лfl ю щи е сfl ч‡ ст ным слу ч‡ ем ‰и ‡ „‡мм со сто fl -

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

Д‡, кст‡ ти, н‡ ‰е ем сfl, ‚ы по мни те, что т‡ кое ‡л „о итм? Су ще ст ‚у ет

о„ ом ное ко ли че ст ‚о оп е ‰е ле ний это „о по нfl тиfl. Вот о‰ но из них:

Ал „о итм  —

по сле ‰о ‚‡ тель ность  оп е ‰е лен ных  ‰ей ст ‚ий  или  эле -

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

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

этом. Вспом ни те ку ли н‡ ные е цеп ты или у ко ‚о‰ ст ‚‡ по экс плу ‡ т‡ ции
бы то ‚ых  пи бо о‚!  Ко неч но,  оте че ст ‚ен ный  по те би тель  пи ‚ык  жить
по пин ци пу «ес ли ни че „о не по мо „‡ ет, по чти те, н‡ ко нец, ин ст ук цию»,
но ф‡кт ос т‡ ет сfl ф‡к том: чем слож нее ус т ой ст ‚о или си с те м‡, тем ‚‡ж -
нее сто „о сле ‰о ‚‡ть ‡л „о ит му.

Обо зн‡ че ниfl н‡ ‰и ‡ „‡м ме ‡к ти‚ но с ти т‡к же н‡ по ми н‡ ют те, ко то -

ые мы ‚сте ч‡ ли н‡ блок-схе ме, хо тfl есть, к‡к мы у‚и ‰им ‰‡ лее, и не ко -
то ые  су ще ст ‚ен ные  от ли чиfl.  С  ‰у „ой  сто о ны,  но т‡ циfl  ‰и ‡ „‡мм  ‡к -
ти‚ но с ти очень по хо ж‡ н‡ ту, ко то ‡fl ис поль зу ет сfl ‚ ‰и ‡ „‡м м‡х со сто fl -
ний. Но, н‡ ‚е ное, луч ше бу ‰ет по сто по к‡ з‡ть пи ме (ис. 2.21):

49

Лекциfl 2

Ви‰ы ‰и‡„‡мм UML

Рис. 2.21


background image

Мно „ие из н‡с имен но т‡к н‡ чи н‡ ют с‚ой ‰ень, не п‡‚ ‰‡ ли? Об ‡ -

ти те ‚ни м‡ ние н‡ то, к‡к изо б ‡ же но п‡ ‡л лель ное пе ние и пи нfl тие ‰у -
ш‡, — н‡ обыч ной блок-схе ме это бы ло бы не ‚оз мож но! А ‚от еще пи -
ме(ис. 2.22):

И опflть ‚се по нflт но — это офом ле ние з‡ к‡ з‡ ‚ ин те нет-м‡ „‡ зи не!

Ну и н‡ пос ле ‰ок еще о‰ н‡ ‰и ‡ „‡м м‡ (ис. 2.23).

До „‡ ‰‡ лись,  что  он‡  опи сы ‚‡ ет?  Смо же те  от ли чить  этот  тип  ‰и ‡ -

„‡мм? То„ ‰‡ по ш ли ‰‡ль ше!

Ди ‡ „‡м м‡ ‡з ‚е ты ‚‡ ниfl (deployment diagram)

Ко„ ‰‡ мы пи шем по „‡м му, мы пи шем ее ‰лfl то „о, что бы з‡ пу с к‡ть

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

ИТ-ин -

ф‡ ст ук ту ы

, х‡ нflт ин фо м‡ цию ‚ б‡ з‡х ‰‡н ных, ‡с по ло жен ных „‰е-

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

„‡ фи че с кое пе‰ ст‡‚ ле ние

Кус

50

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

Рис. 2.22