ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 05.12.2019
Просмотров: 6254
Скачиваний: 39
В не т‡ кие уж и ‰‡ ле кие 80-е „о ‰ы бы ло мно же ст ‚о ‡з лич ных ме то -
‰о ло „ий мо ‰е ли о ‚‡ ниfl. К‡ж ‰‡fl из них име л‡ с‚ои ‰о сто ин ст ‚‡ и не ‰о -
ст‡т ки, ‡ т‡к же с‚ою но т‡ цию. То смут ное ‚е мfl по лу чи ло н‡ з‚‡ ние «‚ой -
ны ме то ‰о‚». По бле м‡ ‚ том, что ‡з ные лю ‰и ис поль зо ‚‡ ли ‡з ные но -
т‡ ции, и ‰лfl то „о что бы по нflть, что опи сы ‚‡ ет т‡ или ин‡fl ‰и ‡ „‡м м‡,
з‡ ч‡ с тую те бо ‚‡л сfl «пе е ‚о‰ чик». О‰ин и тот же сим ‚ол мо„ оз н‡ ч‡ть ‚
‡з ных но т‡ ци flх ‡б со лют но ‡з ные ‚е щи! Н‡ и сун ке ни же мож но у‚и -
‰еть лишь м‡ лую ч‡сть мно „о об ‡ зиfl ме то ‰о‚, ко то ые су ще ст ‚о ‚‡ ли ‚ то
‚е мfl и ‚ к‡ кой-то ме е по ‚ли fl ли н‡ UML (ис. 1.1).
К то му же пи ме но ‚ это же ‚е мfl (н‡ ч‡ ло 80-х) ст‡ то ‚‡ л‡ «объ ект -
но-ои ен ти о ‚‡н н‡fl э‡». Все н‡ ч‡ лось с по fl‚ ле ни ем се мей ст ‚‡ flзы ко‚
по „‡м ми о ‚‡ ниfl SmallTalk, ко то ые пи ме нfl ли не ко то ые по нfl тиfl
flзы к‡ Simula-67, ис поль зо ‚‡‚ ше „о сfl ‚ 60-х „о ‰‡х. По fl‚ ле ние объ ект но-
ои ен ти о ‚‡н но „о по‰ хо ‰‡ ‚ пе ‚ую оче е‰ь бы ло обус ло‚ ле но у‚е ли че -
ни ем слож но с ти з‡ ‰‡ч. Объ ект но-ои ен ти о ‚‡н ный по‰ хо‰ ‚нес ‰о ст‡ -
точ но ‡ ‰и к‡ль ные из ме не ниfl ‚ с‡ ми пин ци пы со 片 ниfl и функ ци о ни -
о ‚‡ ниfl по „‡мм, но, ‚ то же ‚е мfl, поз ‚о лил су ще ст ‚ен но по ‚ы сить
по из ‚о ‰и тель ность ту ‰‡ по „‡м ми с то‚, по-ино му ‚з„лfl нуть н‡ по бле -
мы и ме то ‰ы их е ше ниfl, с‰е л‡ть по „‡м мы бо лее ком п‡кт ны ми и ле„ ко
Кус
16
UML: Пе‚ое зн‡комст‚о
Рис. 1.1
‡с ши fl е мы ми. К‡к е зуль т‡т, flзы ки, пе ‚о н‡ ч‡ль но ои ен ти о ‚‡н ные
н‡ т‡ ‰и ци он ный по‰ хо‰ к по „‡м ми о ‚‡ нию, по лу чи ли fl‰ объ ект но-
ои ен ти о ‚‡н ных ‡с ши е ний. О‰ ной из пе ‚ых, ‚ се е ‰и не 80-х, бы л‡
фи м‡ Apple со с‚о им по ек том Object Pascal. Ко ме это „о, объ ект но-ои -
ен ти о ‚‡н ный по‰ хо‰ по о ‰ил мощ ную ‚ол ну и ‡б со лют но но ‚ых по -
„‡мм ных тех но ло „ий, ‚е ши н‡ ми ко то ой ст‡ ли т‡ кие об ще пиз н‡н ные
се „о ‰нfl пл‡т фо мы, к‡к Microsoft .NET Framework и Sun Java.
Но с‡ мое „л‡‚ ное, что по fl‚ ле ние ООП те бо ‚‡ ло у‰об но „о ин ст у -
мен т‡ ‰лfl мо ‰е ли о ‚‡ ниfl, е‰и ной но т‡ ции ‰лfl опи с‡ ниfl слож ных по -
„‡мм ных си с тем. И ‚от «ти ‡ми „о», ти куп ней ших спе ци ‡ ли с т‡, ти
‡‚ то ‡ н‡ и бо лее по пу лfl ных ме то ‰о‚ е ши ли объ е ‰и нить с‚ои ‡з ‡ -
бот ки. В 1991-м к‡ж ‰ый из «тех ‡ми „о» н‡ ч‡л с н‡ пи с‡ ниfl кни „и, ‚ ко -
то ой из ло жил с‚ой ме то‰ ОО АП. К‡ж ‰‡fl ме то ‰о ло „иfl бы л‡ по-с‚о е му
хо о ш‡, но к‡ж ‰‡fl име л‡ и не ‰о ст‡т ки. Т‡к, ме то‰ Бу ч‡ был хо ош ‚
по ек ти о ‚‡ нии, но сл‡ бо ‚‡т ‚ ‡н‡ ли зе. OMT Р‡м бо был, н‡ обо от, от -
лич ным се‰ ст ‚ом ‡н‡ ли з‡, но плох ‚ по ек ти о ‚‡ нии. И н‡ ко нец,
Objectory Якоб со н‡ был ‰ей ст ‚и тель но хо ош с точ ки зе ниfl user expe-
rience, н‡ ко то ый ни ме то‰ Бу ч‡, ни OMT не об ‡ щ‡ ли осо бо „о ‚ни м‡ -
ниfl. Ос но‚ ной и‰е ей Objectory бы ло то, что ‡н‡ лиз ‰ол жен н‡ чи н‡ть сfl с
пе це ‰ен то‚, ‡ не с ‰и ‡ „‡м мы кл‡с со‚, ко то ые ‰олж ны быть по из -
‚о‰ ны ми от них.
К 1994-му су ще ст ‚о ‚‡ ло 72 ме то ‰‡, или ч‡ ст ные ме то ‰и ки. Мно „ие из
них «пе е кы ‚‡ лись», т. е. ис поль зо ‚‡ ли по хо жие и‰еи, но т‡ ции и т. ‰. К‡к
уже „о ‚о и лось ‚ы ше, чу‚ ст ‚о ‚‡ л‡сь ос т ‡fl по теб ность, «со ци ‡ль ный з‡ -
к‡з» — з‡ кон чить «‚ой ну ме то ‰о‚» и объ е ‰и нить ‚ о‰ ном уни фи ци о ‚‡н -
ном се‰ ст ‚е ‚се луч шее, что бы ло со 片 но ‚ об л‡ с ти мо ‰е ли о ‚‡ ниfl.
И ‚от Р‡мбо пи со е ‰и нил сfl к Бу чу ‚ Rational Inc. Они объ е ‰и ни ли
с‚ои но т‡ ции и со 片 ли пе ‚ую ‚е сию UML. В 1995 „о ‰у н‡ кон фе ен -
ции OOPSLA они пе‰ ст‡ ‚и ли е„о к‡к Unified Method, ко то ый по том и
по лу чил н‡ з‚‡ ние UML. Чуть поз же к ним пи со е ‰и нил сfl Якоб сон, ко -
то ый ‰о б‡ ‚ил к е зуль т‡ т‡м их ту ‰‡ эле мен ты Objectory и н‡ ч‡л ‡ бо ту
퇉 Rational Unified Process (RUP). В 1997 „о ‰у UML был от  лен ‚
Object Management Group (OMG) ‰лfl ст‡н ‰‡ ти з‡ ции. Ко ме тех но т‡ -
ций «тех ‡ми „о» UML ‚о б‡л ‚ се бfl эле мен ты мно „их ‰у „их ме то ‰о ло -
„ий, что опflть-т‡ ки хо о шо ‚и‰ но из и сун к‡, пи ‚е ‰ен но „о ‚ы ше.
А что сей ч‡с? The UML жи ‚ет и ‡з ‚и ‚‡ ет сfl. Сей ч‡с мы име ем UML
2.0 и ‰е сflт ки CASE-се‰ст‚, по‰ ‰е жи ‚‡ ю щих UML, о мно „их из ко то -
ых бу ‰ет ‡с ск‡ з‡ но ‚ се‰ь мой лек ции. Во пе ки по пу лfl но му мне нию, ‚
н‡ ши ‰ни Rational не ‚л‡ ‰е ет UML, но по ‰ол ж‡ ет ‡ бо т‡ть 퇉 ним.
UML же пи 퇉 ле жит OMG, ‡ с‡ м‡ Rational ны не fl‚ лfl ет сfl о‰ ним из по‰ -
‡з ‰е ле ний IBM и фи „у и у ет ‚о ‚сех ‰о ку мен т‡х к‡к IBM Rational. UML
же по лу чил мно же ст ‚о п‡ ке то‚ ‡с ши е ний, н‡ зы ‚‡ е мых
по ф‡й л‡ ми
и
17
Лекциfl 1
Что т‡кое The UML
поз ‚о лfl ю щих ис поль зо ‚‡ть е„о ‰лfl мо ‰е ли о ‚‡ ниfl си с тем из спе ци фи че -
с ких пе‰ мет ных об л‡ с тей.
Вот т‡ к‡fl ис то иfl!
Спо со бы ис поль зо ‚‡ ниfl flзы к‡
Н‡ ч‡ть хо те лось бы с ‰е мон ст ‡ ции из ‚е ст ной к‡ тин ки, ко то ‡fl
уже бо лее ‰‚ух ‰е сfl ти ле тий «жи ‚ет» ‚ Ин те не те, но ис точ ник ее ни ко му
не из ‚е с тен (ес ли кто-то из чи т‡ те лей смо жет по лить с‚ет н‡ ее по ис -
хож ‰е ние, ‡‚ то бу ‰ет очень бл‡ „о ‰‡ ен з‡ ин фо м‡ цию). Эт‡ к‡ тин к‡
пе к‡с но ил лю с т и у ет ти пич ный по цесс со 片 ниfl по ‰ук т‡, или «е -
ше ниfl» (по сколь ку по ‰укт е ш‡ ет по бле му з‡ к‡з чи к‡), к‡к лю бflт „о ‚о -
ить ‚ Microsoft (ис. 1.2).
З‰есь мы ‚и ‰им ‚се по бле мы по „‡мм ной ин же не ии, ‚ ч‡ ст но с -
ти по бле мы с ком му ни к‡ ци ей и по ни м‡ ни ем, ‚ы 炇н ные от сут ст ‚и ем
чет кой спе ци фи к‡ ции со 片 ‚‡ е мо „о по ‰ук т‡. Т‡к ‚от, ‡‚ то ы UML оп е -
‰е лfl ют е„о к‡к „‡ фи че с кий flзык мо ‰е ли о ‚‡ ниfl
об ще „о
н‡ зн‡ че ниfl (т. е.
е„о мож но пи ме нflть ‰лfl по ек ти о ‚‡ ниfl че „о у„о‰ но — от по стой к‡ -
Кус
18
UML: Пе‚ое зн‡комст‚о
Рис. 1.2
че ли, к‡к н‡ и сун ке, ‰о слож но „о ‡п п‡ ‡т но-по „‡мм но „о ком плек с‡
или ‰‡ же ко с ми че с ко „о ко ‡б лfl), пе‰ н‡з н‡ чен ный ‰лfl
спе ци фи к‡ ции
,
‚и зу ‡ ли з‡ ции
,
по ек ти о ‚‡ ниfl
и
‰о ку мен ти о ‚‡ ниfl
‚сех ‡ те ф‡к то‚, со 片 -
‚‡ е мых ‚ хо ‰е ‡з ‡ бот ки.
Ит‡к, UML ‚ пе ‚ую оче е‰ь — это
спе ци фи к‡ ции
. З‡ „лfl нем сно ‚‡ ‚
„лос с‡ ий и об н‡ у жим, что
Спе ци фи к‡ циfl —
по ‰об ное опи с‡ ние си с те мы, ко то ое пол но стью
оп е ‰е лfl ет ее цель и функ ци о н‡ль ные ‚оз мож но с ти. Р‡з ли ч‡ ют:
•
сло ‚ес ные спе ци фи к‡ ции н‡ ес те ст ‚ен ном flзы ке;
•
мо ‰ель ные спе ци фи к‡ ции;
•
фо м‡ль ные спе ци фи к‡ ции.
glossary.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, по су ти, м‡ те м‡ ти че с кой мо ‰е лью з‡ ‰‡ чи и по то му ‰лfl
‚ы чис ли тель ных з‡ ‰‡ч ‚се ‚ы „лfl ‰ит ‰о ст‡ точ но по сто. Фо м‡ ли з‡ циfl
же з‡ ‰‡ч из ‰у „их об л‡ с тей зн‡ ний мо жет ок‡ з‡ть сfl бо лее слож ной и ту -
‰о ем кой по бле мой, чем ‡з ‡ бот к‡ с‡ мо „о пи ло же ниfl ‚‚и ‰у от сут ст -
‚иfl чет кой м‡ те м‡ ти че с кой мо ‰е ли. О‰ин из пин ци по‚ пи к뇉 ной
«ме фо ло „ии» „л‡ сит, что луч шей спе ци фи к‡ ци ей по „‡м мы fl‚ лfl ет сfl ее
текст. Т‡к же, к‡к и боль шин ст ‚о ос т‡ль ных з‡ ко но‚ Ме фи, это ут ‚еж -
‰е ние по сто по ‡ ж‡ ет с‚о ей  ‰и ‚о с тью...
19
Лекциfl 1
Что т‡кое The UML
Ко„ ‰‡ мы „о ‚о им о том, что UML — это се‰ ст ‚о
‚и зу ‡ ли з‡ ции
,
мы име ем ‚ ‚и ‰у
мо ‰ель ные
спе ци фи к‡ ции. Все мы зн‡ ем, к‡к ино „‰‡
ту‰ но з‡ ст‡ ‚ить се бfl «‚ник нуть» ‚ суть м‡ те и ‡ л‡, из л‡ „‡ е мо „о ‚ оче -
е‰ ном учеб ни ке или м‡ ну ‡ ле. Изу че ние че „о-то но ‚о „о и‰ет „о ‡з ‰о
по ще, ес ли ‰о ку мент со ‰е жит не толь ко текст, ‡ еще и ил лю с т ‡ ции
к не му. А ес ли у ко ‚о‰ ст ‚о или учеб ник ‚ы „лfl ‰flт к‡к к‡ тин ки с по‰ -
пи сfl ми (‚спом ни те м‡й ко соф то‚ ские учеб ни ки и тей не-ки ты или
у ко ‚о‰ ст ‚‡ поль зо ‚‡ те лfl мо биль ных те ле фо но‚!), то ус ‚о е ние но ‚о „о
м‡ те и ‡ л‡ по ис хо ‰ит еще по ще и эф фекти‚ нее. Не ‰‡ ом ‰о сих по
т‡к по пу лfl ны ко мик сы, ко то ые т‡к же пе‰ ст‡‚ лfl ют со бой к‡ тин ки с
тек с том!
Т‡к ‚от, т‡ кие к‡ тин ки с по‰ пи сfl ми н‡ „лfl‰ ны и ин ту и ти‚ но по -
нflт ны, пи чем поч ти о‰ но зн‡ч но по ни м‡ ют сfl лю бы ми з‡ ин те е со ‚‡н -
ны ми ли ц‡ ми, т‡к что мо „ут ис поль зо ‚‡ть сfl ‚ к‡ че ст ‚е се‰ ст ‚‡ об ще ниfl
меж ‰у лю‰ь ми. UML поз ‚о лfl ет со 片 ‚‡ть т‡ кие по стые и по нflт ные к‡ -
тин ки (мо ‰е ли), опи сы ‚‡ ю щие си с те му с ‡з ных сто он, ко то ые мож но
по к‡ з‡ть з‡ к‡з чи ку и об су ‰ить с ним, т. е. слу жит се‰ ст ‚ом
ком му ни к‡ -
ции
‚ ко м‡н ‰е. По смо т и те н‡ и су нок ни же (ис. 1.3). Все ‚е‰ь по нflт но,
 ‰‡?
Кус
20
UML: Пе‚ое зн‡комст‚о
Рис. 1.3