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

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

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

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

Добавлен: 05.12.2019

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

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

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

Кон толь ные ‚о по сы

К‡к ‡с ши ф о ‚ы ‚‡ ет сfl ‡б бе ‚и ‡ ту ‡ UML?

К‡ к‡fl ‚е сиfl UML fl‚ лfl ет сfl те ку щей?

Кто бы ли ‡‚ то ‡ ми UML?

Чем НЕ fl‚ лfl ет сfl UML?

К‡ кие по „‡мм ные се‰ ст ‚‡, по‰ ‰е жи ‚‡ ю щие UML, ‚ы зн‡ е те?

Ис поль зу ют сfl ли ‚ UML «тех ме ные» фи „у ы?

Спи сок ис поль зо ‚‡н ных ис точ ни ко‚

1.

М‡ те и ‡ лы ку с‡ «Ан‡ лиз и по ек ти о ‚‡ ние н‡ UML», ‡з ‡ бо т‡н -
ные Но ‚и ко ‚ым Ф.А.

1

2.

Introduction to the Unified Modeling Language. Terry Quatrani, UML
Evangelist. – Copyright © IBM Rational (http://www.rational.net/),
2001.

3.

UML Tutorial. Ian Graham or Alan Wills. – Copyright © MMI –
Trireme International Ltd, 2001.

4.

Ле о нен ко‚. С‡ мо учи тель по UML. – http://khpi-iip.mipk.
kharkiv.edu/library/case/leon/index.html.

5.

OMG Unified Modeling Language Specification. – Copyright © 2000,
Object Management Group. – http://www.omg.org/cgi-bin/apps/
doc?formal/03-03-01.pdf.

Кус

26

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

1

Г뇂 ным ис точ ни ком пи н‡ пи с‡ нии этой лек ции бы ли м‡ те и ‡ лы ку с‡ «Ан‡ -
лиз и по ек ти о ‚‡ ние н‡ UML», ‡з ‡ бо т‡н ные Но ‚и ко ‚ым Ф.А.


background image

Лек циfl 2. Ви ‰ы ‰и ‡ „‡мм UML

Пе‰ ме том  этой  кни „и  fl‚ лfl ет сfl  The  UML  —  уни фи ци о ‚‡н ный

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

По че му нуж но не сколь ко ‚и ‰о‚ ‰и ‡ „‡мм.

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

ООП и по сле ‰о ‚‡ тель ность по ст о е ниfl ‰и ‡ „‡мм.

Пеж ‰е  чем  пе ей ти  к  об суж ‰е нию  ос но‚ но „о  м‡ те и ‡ л‡  этой  лек -

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

Мы сто им мо ‰е ли слож ных си с тем, по то му что не мо жем опи с‡ть

их  пол но стью,  «оки нуть  о‰ ним  ‚з„лfl ‰ом».  По это му  мы  ‚ы ‰е лfl ем  лишь
су ще ст ‚ен ные ‰лfl кон кет ной з‡ ‰‡ чи с‚ой ст ‚‡ си с те мы и сто им ее мо -
‰ель,  ото б ‡ ж‡ ю щую  эти  с‚ой ст ‚‡.  Ме то‰  объ ект но-ои ен ти о ‚‡н но „о
‡н‡ ли з‡ поз ‚о лfl ет опи сы ‚‡ть е ‡ль ные слож ные си с те мы н‡ и бо лее ‡‰ек -
‚‡т ным об ‡ зом. Но с у‚е ли че ни ем слож но с ти си с тем ‚оз ни к‡ ет по теб -
ность ‚ хо о шей тех но ло „ии мо ‰е ли о ‚‡ ниfl. К‡к мы уже „о ‚о и ли ‚ пе -
‰ы ‰у щей лек ции, ‚ к‡ че ст ‚е т‡ кой «ст‡н ‰‡т ной» тех но ло „ии ис поль зу ет -
сfl  уни фи ци о ‚‡н ный  flзык  мо ‰е ли о ‚‡ ниfl  (Unified  Modeling  Language,
UML), ко то ый fl‚ лfl ет сfl „‡ фи че с ким flзы ком ‰лfl спе ци фи к‡ ции, ‚и зу -
‡ ли з‡ ции,  по ек ти о ‚‡ ниfl  и  ‰о ку мен ти о ‚‡ ниfl  си с тем.  С  по мо щью
UML мож но ‡з ‡ бо т‡ть по ‰об ную мо ‰ель со з‰‡ ‚‡ е мой си с те мы, ото б -
‡ ж‡ ю щую не толь ко ее кон цеп цию, но и кон кет ные осо бен но с ти е ‡ -
ли з‡ ции.  В  ‡м к‡х  UML-мо ‰е ли  ‚се  пе‰ ст‡‚ ле ниfl  о  си с те ме  фик си у -
ют сfl ‚ ‚и ‰е спе ци ‡ль ных „‡ фи че с ких кон ст ук ций, по лу чи‚ ших н‡ з‚‡ -
ние ‰и ‡ „‡мм.

Пи ме ч‡ ние. 

Мы  ‡с смо т им  не  ‚се,  ‡  лишь  не ко то ые  из  ‚и ‰о‚  ‰и ‡ -

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

27

Лекциfl 2

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


background image

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

По че му нуж но не сколь ко ‚и ‰о‚ ‰и ‡ „‡мм

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

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

Си с те м‡ —

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

объ е ‰и нен ных об щей це лью функ ци о ни о ‚‡ ниfl.

БСЭ н‡ slovari.yandex.ru

Д‡,  не  слиш ком  ин фо м‡ ти‚ но.  А  что  же  т‡ кое  то„ ‰‡  по‰ си с те м‡?

Что бы по 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т ное оп е ‰е ле ние 

мо ‰е ли к‡к

Кус

28

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


background image

се м‡н ти че с ки з‡ мк ну той ‡б ст ‡к ции си с те мы

‚fl‰ ли по flс нит си ту ‡ цию,

по это му по по бу ем объ flс нить «с‚о и ми сло ‚‡ ми».

Мо ‰ель

— это не кий (м‡ те и ‡ль ный или нет) объ ект, ото б ‡ ж‡ ю щий

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

Пи ‚е ‰ем не сколь ко пи ме о‚. Зн‡ ко мые ‚сем н‡м пл‡ст м‡с со ‚ые

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

м‡ те и ‡ль н‡fl  ис кус ст ‚ен н‡fl  ‰е ко ‡ ти‚ н‡fl

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

В хо ‰е ме ‰и цин ских ис сле ‰о ‚‡ ний опы ты н‡ жи ‚от ных ч‡ с то пе‰ -

ше ст ‚у ют кли ни че с ким ис пы т‡ ни flм ме ‰и цин ских пе п‡ ‡ то‚ н‡ лю ‰flх.
В  т‡ ком  слу ч‡е  жи ‚от ное  ‚ы сту п‡ ет  ‚  о ли 

м‡ те и ‡ль ной  ес те ст ‚ен ной

мо ‰е ли че ло ‚е к‡.

У‡‚ не ние, изо б ‡ жен ное ‚ыше — то же мо ‰ель, но это мо ‰ель 

м‡ те -

м‡ ти че с к‡fl

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

ем си лы тfl же с ти.

Ос т‡ лось лишь ск‡ з‡ть, что т‡ кое ‰и ‡ „‡м м‡. 

Ди ‡ „‡м м‡

— это „‡ -

фи че с кое  пе‰ ст‡‚ ле ние  мно же ст ‚‡  эле мен то‚.  Обыч но  изо б ‡ ж‡ ет сfl  ‚
‚и ‰е „‡ ф‡ с ‚е ши н‡ ми (сущ но с тfl ми) и е б ‡ ми (от но ше ни fl ми). Пи -
ме о‚ ‰и ‡ „‡мм мож но пи ‚е с ти мно же ст ‚о. Это и зн‡ ко м‡fl н‡м ‚сем со
школь ных  лет  блок-схе м‡,  и  схе мы  мон т‡ ж‡  ‡з лич но „о  обо у ‰о ‚‡ ниfl,
ко то ые мы мо жем ‚и ‰еть ‚ у ко ‚о‰ ст ‚‡х поль зо ‚‡ те лfl, и ‰е е ‚о ф‡й ло‚
и  к‡ т‡ ло „о‚  н‡  ‰ис ке,  ко то ое  мы  мо жем  у‚и ‰еть,  ‚ы пол ни‚  ‚  кон со ли
Windows  ко м‡н ‰у 

tree

,  и  мно „ое-мно „ое  ‰у „ое.  В  по ‚се‰ не‚ ной  жиз ни

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

Но ‚е нем сfl к по ек ти о ‚‡ нию ПО (и не толь ко). В этой от ‡с ли 

с

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

.  О‰ н‡  из  ‰и ‡ „‡мм,  н‡ пи ме,  мо жет  опи сы ‚‡ть  ‚з‡ и мо ‰ей ст ‚ие

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

29

Лекциfl 2

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


background image

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

Не смо т fl н‡ то что ‚ пе ‰ы ‰у щем ‡б з‡ це мы ‚есь м‡ ‚оль „от но обо -

шлись с по нfl ти ем мо ‰е ли, сле ‰у ет по ни м‡ть, что ‚ кон тек с те пи ‚е ‰ен -
ных  ‚ы ше  оп е ‰е ле ний 

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

лью

. Ди ‡ „‡м мы — лишь 

се‰ ст ‚о ‚и зу ‡ ли з‡ ции

мо ‰е ли, и эти ‰‚‡ по нfl -

тиfl сле ‰у ет ‡з ли ч‡ть. Лишь 

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

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

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

UML 1.5 оп е ‰е лflл 

‰‚е н‡‰ ц‡ть ти по‚ ‰и ‡ „‡мм

, ‡з ‰е лен ных н‡ ти

„уп пы:

че ты е  ти п‡  ‰и ‡ „‡мм  пе‰ ст‡‚ лfl ют 

ст‡ ти че с кую  стук ту у

пи ло же ниfl;

пflть пе‰ ст‡‚ лfl ют 

по ‚е ‰ен че с кие ‡с пек ты

си с те мы;

ти пе‰ ст‡‚ лfl ют 

фи зи че с кие ‡с пек ты

функ ци о ни о ‚‡ ниfl си с те -

мы (‰и ‡ „‡м мы е ‡ ли з‡ ции).

Те ку щ‡fl ‚е сиfl UML 2.1 ‚не сл‡ не слиш ком мно „о из ме не ний. Ди -

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

Впо чем, точ ное чис ло к‡ но ни че с ких ‰и ‡ „‡мм ‰лfl н‡с ‡б со лют -

но не ‚‡ж но, т‡к к‡к мы ‡с смо т им не ‚се из них, ‡ лишь не ко то ые —
по той пи чи не, что ко ли че ст ‚о ти по‚ ‰и ‡ „‡мм ‰лfl кон кет ной мо ‰е -
ли  кон кет но „о  пи ло же ниfl  не  fl‚ лfl ет сfl  сто „о  фик си о ‚‡н ным.  Длfl
по стых  пи ло же ний  нет  не об хо ‰и мо с ти  сто ить  ‚се  без  ис клю че ниfl
‰и ‡ „‡м мы.  Н‡ пи ме,  ‰лfl  ло к‡ль но „о  пи ло же ниfl  не  обfl з‡ тель но
сто ить ‰и ‡ „‡м му ‡з ‚е ты ‚‡ ниfl. В‡ж но по ни м‡ть, что пе е чень ‰и ‡ -
„‡мм з‡ ‚и сит от спе ци фи ки ‡з ‡ б‡ ты ‚‡ е мо „о по ек т‡ и оп е ‰е лfl ет сfl
с‡ мим ‡з ‡ бот чи ком. Ес ли же лю бо пыт ный чи т‡ тель ‚се-т‡ ки по же л‡ -
ет уз н‡ть обо ‚сех ‰и ‡ „‡м м‡х UML, мы ото шлем е„о к ст‡н ‰‡ ту UML
(http://www.omg.org/technology/documents/modeling_spec_catalog.htm#UML).
Н‡ пом ним,  что  цель  этой  кни „и  —  не  опи с‡ть  ‡б со лют но  ‚се  ‚оз мож -
но с ти UML, ‡ лишь по зн‡ ко мить с этим flзы ком, ‰‡ть пе ‚о н‡ ч‡ль ное
пе‰ ст‡‚ ле ние об этой тех но ло „ии.

Ит‡к, мы к‡т ко ‡с смо т им т‡ кие ‚и ‰ы ‰и ‡ „‡мм, к‡к:

Кус

30

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