Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ПрИС / Бабич UML первое знакомство

.pdf
Скачиваний:
99
Добавлен:
05.02.2016
Размер:
11.15 Mб
Скачать

Лекциfl 1

Что т‡кое The UML

Пе ей‰ем к п оекти нию. Д‡, UML поз‚олflет ст оить мо‰ели п о„ ‡ммных систем (‚ообще „о‚о fl Ñ ЛЮБЫХ систем). По этим мо‰е- лflм потом может п оиз‚о‰итьсfl „ене ‡циfl к‡ к‡сно„о к п оекти уемых п иложений. Более то„о, ‚озможен п оцесс, кото ый ч‡сто н‡зы‚‡- ют Ç е‚е с-инжини ин„омÈ, Ñ т. е. со片ние UML-мо‰ели из сущест‚у- юще„о к п иложениfl. Не бу‰ем сейч‡с обсу扇ть к‡чест‚о получ‡юще„осfl к или мо‰елей п и е‚е с-инжини ин„е. Пок‡ оно ‚есьм‡ ‰‡леко от и‰е‡л‡, но ‚е‰ь техноло„ии и инст ументы постоflнно со‚е шенст‚уютсfl, т‡к что можно 퇉еflтьсfl, что к‡-нибу‰ь мы сможем со片‚‡ть п иложениfl ‚изу‡льно, не п иб儇fl к flзыку п о„ ‡мми о- ‚‡ниfl, ‡ пользуflсь лишь UML...

И после‰нее из это„о н‡бо ‡ сло‚ Ñ Ç‰окументи ниеÈ. По большому счету, UML-мо‰ели с‡ми по себе уже fl‚лflютсfl ‰окумент‡ми (и ‚есьм‡ понflтными, ‰‡же ‰лfl неспеци‡лист‡, к‡к мы уже мо„ли убе‰итьсfl, посмот е‚ н‡ п е‰ы‰ущий исунок; к оме это„о, к‡к мы еще упомflнем ‰‡лее, мо‰ели UML fl‚лflютсfl XML-‰окумент‡ми). П ичем любой элемент н‡ любой ‰и‡„ ‡мме может быть сн‡бжен ноутсом Ñ тексто‚ым коммент‡ ием. Т. е. пост оение н‡бо ‡ ‰и‡„ ‡мм уже fl‚лflетсfl п оцессом ‰окументи ниfl бу‰ущей системы. Более то„о, большинст‚о инст у- менто‚ UML-п оекти ниfl умеют из‚лек‡ть тексто‚ую инфо м‡цию из мо‰елей и „ене и ть относительно у‰обочит‡емые тексты.

Ит‡к, по‰fl ито„и, ск‡жем, что UML можно использть ‰лfl и- сниfl к‡ тинок, кото ые можно использть ‰лfl коммуник‡ций ‚ну- т и ком‡н‰ы и ‚ хо‰е ‚з‡имо‰ейст‚иfl с з‡к‡зчиком, т. е. он может служить с е‰ст‚ом обмен‡ инфо м‡цией. К оме это„о, к‡к мы уже „о‚о и- ли, UML fl‚лflетсfl отличным с е‰ст‚ом специфик‡ции систем, п ичем специфик‡ции ‚ п оцессе ‡з ‡ботки. Р‡з ‡бот‡нные ‡ хитекту ные е- шениfl, 燉окументи нные с помощью UML, мо„ут быть использ- ны по‚то но (что сейч‡с т‡кже очень Çмо‰ноÈ). К‡к уже упомин‡лось ‚ы- ше, о т‡ких ‚ещ‡х, к‡к „ене ‡циfl к, симулflциfl и ‚е ифик‡циfl мо‰е- лей, пок‡ се ьезно „о‚о ить не п ихо‰итсfl, но ‚ бу‰ущем, 퇉еемсfl, бу‰ет и это...

Тепе ь о том, ‰лfl че„о UML использть нельзfl, ‚е нее, чем он не fl‚лflетсfl. Во-пе ‚ых, UML не fl‚лflетсfl flзыком п о„ ‡мми ниfl, хотfl сущест‚уют с е‰ст‚‡ ‚ыполнениfl UML-мо‰елей к‡к инте п ети уемо„о к (Unimod, FLORA и ‰ .) и ‚озможн‡, к‡к уже „о‚о илось ‚ыше, ко‰о- „ене ‡циfl. Несмот fl н‡ это, UML Ñ с е‰ст‚о не п о„ ‡мми ниfl, ‡ мо‰ели ниfl, т. е. со片ниfl не п о„ ‡мм, ‡ мо‰елей любо„о у о‚нfl ‡бст-‡кции ‰лfl систем из любой п е‰метной обл‡сти. Во-‚то ых, UML не fl‚- лflетсfl и специфик‡цией к‡ко„о бы то ни было инст умент‡ мо‰ели - ниfl, хотfl т‡кие инст ументы (и ‚ больших количест‚‡х) имеютсfl. Н‡п и- ме , TAU G2 (с помощью кото о„о со片но большинст‚о ‰и‡„ ‡мм ‚ этой

21

Ку с

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

кни„е), Borland Together, Poseidon, Enterprize Architect, IBM Rational Rose, Dia, Visio и ‰ . К‡ким об ‡зом то или иное CASE-с е‰ст‚о е‡лизует UML-мо‰ели ние, ник‡к не е„л‡менти уетсfl и оп е‰елflетсfl с‡мими‡з ‡ботчик‡ми этих инст ументо‚. И, н‡конец, ‚-т етьих, UML не fl‚- лflетсfl и мо‰елью к‡ко„о-либо п оцесс‡ ‡з ‡ботки, ‰‡же Rational Unified Process (RUP), кото ый был опис‡н именно с помощью UML (‡ точнее, с помощью SPEM Ñ п оф‡йл‡ UML). UML можно использть не燂исимо от то„о, к‡кую мето‰оло„ию ‡з ‡ботки ПО ‚ы используете, и ‰‡же если ‚ы ‚ообще не пользуетесь ник‡кой мето‰оло„ией!

Ст укту ‡ оп е‰елениfl flзык‡

Это, 퇂е ное, с‡м‡fl ко отк‡fl ч‡сть лекции. З‰есь н‡м хотелось бы‡сск‡з‡ть о том, к‡к опис‡н UML е„о ‡‚то ‡ми. Но п еж‰е нужно по„о- ‚о ить о способ‡х опис‡ниfl искусст‚енных flзыко‚ ‚ообще (н‡п име , flзыко‚ п о„ ‡мми ниfl).

Конечно, ‚ы уже чит‡ли кни„и, ‚ кото ых описы‚‡лись flзыки п о- „ ‡мми ниfl, и не мо„ли не з‡метить, к‡к ‡‚то ы этих кни„ ‚се ‚ емfl с‡моот‚е женно б‡л‡нси уют меж‰у точностью и понflтностью опис‡- ниfl. Велик собл‡зн опис‡ть flзык фо м‡льно точно, но т‡кое опис‡ние с‚оей сложностью может отпу„нуть потенци‡льно„о пользтелfl но‚ой техноло„ии. С ‰ у„ой сто оны, ÇпонflтноеÈ, нефо м‡льное опис‡ние flзык‡ может получитьсfl очень ‰линным и неполным и п осто з‡пут‡ть чит‡телfl.

К‡к же оп е‰елен UML? До‚ольно ч‡сто компилflто ы и IDE flзыко‚ п о„ ‡мми ниfl н‡пис‡ны с использнием этих же flзыко‚ (‚спомните хотfl бы Turbo Pascal!). По‰обный мето‰ п именflетсfl и п и опис‡нии UML. А‚то ы использли т‡к н‡зы‚‡емое четы еху о‚не‚ое мет‡-мо‰е- ли ние. Пе ‚ый у о‚ень Ñ это с‡ми ‰‡нные. Вто ой Ñ это их мо‰ель, т. е., н‡п име , опис‡ние их ‚ п о„ ‡мме. Т етий Ñ мет‡мо‰ель, т. е. опи- с‡ние flзык‡ пост оениfl мо‰ели. Чет‚е тый Ñ мет‡-мет‡мо‰ель, т. е. опи- с‡ние flзык‡, н‡ кото ом опис‡н‡ мет‡мо‰ель. Длfl п име ‡ Ñ сле‰ующийисунок, поз‡имст‚нный из ст‡н‰‡ т‡ UML, пок‡зы‚‡ет п именение это„о по‰х к п остым з‡писflм о коти о‚к‡х ‡кций ( ис. 1.4).

UML, к‡к уже „о‚о илось ‚ыше, описы‚‡етсfl по‰обным об ‡зом. Ме- т‡мо‰ель Ñ опис‡ние с‡мо„о flзык‡, мет‡-мет‡мо‰ель Ñ опис‡ние фо м‡- лизм‡, с помощью кото о„о п оиз‚о‰итсfl опис‡ние flзык‡. Все это соп о- ‚о扇етсfl коммент‡ иflми н‡ естест‚енном flзыке и п име ‡ми мо‰елей. О „‡низнное т‡ким об ‡зом опис‡ние UML ‡сп ост ‡нflетсfl OMG ‡б- солютно с‚обо‰но и ÇлежитÈ н‡ с‡йте OMG, по ‡‰ есу http://www.omg.ru/. Этот „ ‡н‰иозный ‰окумент н‡считы‚‡ет около тысflчи ст ‡ниц, и непо- то‚ленному чит‡телю имеет смысл озн‡комитьсfl ‚ нем лишь с пе ‚ым и по-

22

Лекциfl 1

Что т‡кое The UML

Рис. 1.4

сле‰ним ‡з‰ел‡ми (к ‡ткий обзо и сл ь те мино‚). З‡то, если чело‚ек уже зн‡ком с UML, изучение мет‡мо‰ели flзык‡ Ñ ‚есьм‡ инте есное и полезное з‡нflтие.

Те миноло„иfl и нот‡циfl

Воп ос те миноло„ии ‚ п о„ ‡ммной инжене ии, ‡ тем более РУССКОЙ (не „о‚о fl уже об ук ‡инской) те миноло„ии, Ñ ‚оп ос сложный. Дело ‚ том, что о и„ин‡льн‡fl те миноло„иfl UML не ‚с儉‡ после‰о‚‡- тельн‡ и ‰о‚ольно з‡пут‡н‡. Русск‡fl же те миноло„иfl еще не успел‡ сложитьсfl, ‚е‰ь UML к‡к техноло„иfl п оекти ниfl с‡м по себе очень моло‰, ‰‡ и усскоflзычн‡fl лите ‡ту ‡ по нему ст‡л‡ поfl‚лflтьсfl, к‡к ‚с儉‡, с некото ым опо片нием. Некото ые ‡‚то ы пыт‡ютсfl к‡ж‰ый те мин пе 則ть ÇосмысленнымиÈ, Çхо ошими усскими слмиÈ, что не ‚с儉‡ у‰‡етсfl. С точки з ениfl ‡‚то ‡, иск‡ть усские ‡н‡ло„и уже п и‚ычных ‡н„лийских те мино‚ Ñ з‡нflтие ненужное и ‰‡же ‚ е‰ное: ‚спомните, к‡к т у‰но было ‚‡м н‡йти нужную ком‡н‰у ‚ меню усско„о MS Office, если ‚ы п и‚ыкли пользтьсfl ‡н„лийским (‚ т‡ких случ‡flх о‰ной flзык сильно з‡ме‰лflет ‡боту). Поэтому, 퇂е ное, п още использть т ‡нск ипцию и не изоб ет‡ть ‚елосипе‰! В конце концо‚, хо ошие ‡н„- лийские сл (‰‡же з‡пис‡нные усскими буꂇми) т‡к же хо оши, к‡к и хо ошие усские!

Тепе ь ‰‡‚‡йте по„о‚о им о нот‡ции. ÇНот‡циflÈ Ñ это то, что ‚ ‰ у- „их flзык‡х н‡зы‚‡ют Çсинт‡ксисомÈ. С‡мо сло‚о Çнот‡циflÈ по‰че к肇- ет, что UML Ñ flзык „ ‡фический и мо‰ели (‡ точнее ‰и‡„ ‡ммы) не Çз‡- писы‚‡ютÈ, ‡ исуют. К‡к уже „о‚о илось ‚ыше, о‰н‡ из 燉‡ч UML Ñ

23

Ку с

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

служить с е‰ст‚ом коммуник‡ции ‚нут и ком‡н‰ы и п и общении с з‡- к‡зчиком. ÇВ ‡бочем по fl‰кеÈ ‰и‡„ ‡ммы ч‡сто исуют н‡ бу쇄е от у- ки, п ичем обычно Ñ не слишком ‡кку ‡тно. Поэтому п и ‚ыбо е элементо‚ нот‡ции осно‚ным п инципом был отбо зн‡чко‚, кото ые хо о- шо смот елись бы и были бы п ‡‚ильно инте п ети ны ‚ любом случ‡е Ñ бу‰ь они н‡ исны к‡ ‡н‰‡шом н‡ с‡лфетке или со片ны н‡ компьюте е и ‡спеч‡т‡ны н‡ л‡зе ном п инте е.

Вообще же, ‚ UML используетсfl четы е ‚и‰‡ элементо‚ нот‡ции:

фи„у ы,

линии,

зн‡чки,

퇉писи.

Р‡збе ем ‚се по по fl‰ку. Фи„у ы используютсfl ÇплоскиеÈ Ñ п flмо- у„ольники, эллипсы, омбы и т. ‰. Но есть о‰но исключение Ñ к‡к мы у‚и‰им ‰‡лее, н‡ ‰и‡„ ‡мме ‡з‚е ты‚‡ниfl ‰лfl обозн‡чениfl узло‚ ин- ф ‡ст укту ы п именflетсfl Çт ехме ноеÈ изоб ‡жение п‡ ‡ллелепип則. Это е‰инст‚енное исключение из п ‡‚ил. Внут и любой фи„у ы мо„ут помещ‡тьсfl ‰ у„ие элементы нот‡ции.

Олиниflх стоит ск‡з‡ть лишь то, что с‚оими конц‡ми они ‰олжны сое‰инflтьсfl с фи„у ‡ми. Н‡ UML ‰и‡„ ‡мм‡х ‚ы не ‚ст етите линий, н‡-иснных Çс‡ми по себеÈ и не сое‰инflющих фи„у ы. П именflетсfl ‰‚‡ тип‡ линий Ñ сплошн‡fl и пункти н‡fl. Линии мо„ут пе есек‡тьсfl, и хотfl т‡ких случ‡е‚ сле‰ует по ‚озможности изб儇ть, ‚ этом нет ниче„о ст ‡ш- но„о.

Зн‡чки ‚ UML используютсfl ‚есьм‡ уме енно. К‡к и фи„у ы, они ÇплоскиеÈ, но не мо„ут со‰е ж‡ть ‰ у„ие фи„у ы и зн‡чки ‚нут и себfl.

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

Вообще же стоит ск‡з‡ть, что UML п е‰ост‡‚лflет исключительную с‚обо‰у Ñ можно исть что у„о‰но и к‡к ‚з‰ум‡етсfl, лишь бы можно было понflть смысл со片нных ‰и‡„ ‡мм. В изоб ‡жении фи„у и зн‡чко‚ тоже нет к‡ких-то жестких т ебний, и ‡з ‡ботчики CASE-с е‰ст‚ ‰лfl UML-п оекти ниfl ‚о‚сю используют эту с‚обо‰у, п именflfl ‡зличные стили исниfl, з‡ли‚ку фи„у ц‚етом, тени и т. ‰. Ин‡ это смо- т итсfl ‚есьм‡ симп‡тично, ‡ ин‡ ‰‡же ‡з‰ ‡ж‡ет.

Кст‡ти об инст умент‡х исниfl. Мы уже упомин‡ли, что т‡кое ПО сущест‚ует, и ‰‡лее мы ‡ссмот им этот ‚оп ос более по‰ обно (п о- ‚е‰fl с ‡‚нительные иссле‰о‚‡ниfl), пок‡ же ск‡жем лишь о нескольких н‡иболее з‡метных п о„ ‡мм‡х это„о кл‡сс‡. К т‡ким п‡кет‡м можно отнести:

24

Лекциfl 1

Что т‡кое The UML

IBM Rational Rose;

Borland Together;

Gentleware Poseidon;

Microsoft Visio;

Telelogic TAU G2.

Н‡иболее из‚естными из этой пflте ки fl‚лflютсfl Rational Rose и Together. Это ‰ейст‚ительно с е‰ст‚‡ ‰лfl п оекти ниfl, ‡ не исниfl, к‡к Visio. Дол„ое ‚ емfl ‡‚то этих ст ок использл Poseidon, б뇄о имеетсfl беспл‡тн‡fl Community edition-‚е сиfl это„о п о‰укт‡. Т‡к было ‰о тех по , пок‡ н‡ о‰ной из конфе енций по п о„ ‡ммной инжене ии он не у‚и‰ел TAU G2 от Telelogic. О TAU ‚се слыш‡ли, но никто е„о не ‚и‰ел. Это ле„е퉇 ное с е‰ст‚о мо‰ели ниfl, кото ое сочет‡ет ‚ себе мощь и п остоту использниfl, п е‰ост‡‚лflfl уник‡льную ‚озможность н‡ч‡льной ‚е ифик‡ции мо‰елей. И хотfl инте фейс TAU ‚ы„лfl‰ит несколько ‡скетично, е„о ‚озможности и у‰обст‚о ‡боты п осто пот flс‡ют. Все ‰и- ‡„ ‡ммы ‚ этой кни„е со片ны именно с использнием TAU, любезно п е‰ост‡‚ленным фи мой Telelogic (см. http://www.telelogic.com/).

Сейч‡с немно„о не к месту об этом „о‚о ить, но хочетсfl упомflнуть еще об о‰ном чу‰есном п о‰укте, кото ый очень помо„ н‡м ‚ н‡пис‡нии этой кни„и. Это Zicom Mentor от Sparx Systems, ‚ыпусти‚ше„о Enterprise Architect (см. http://www.sparxsystems.com.au/). Zicom Mentor Ñ это п о-

ст‡fl и понflтн‡fl утилит‡, п е‰ст‡‚лflющ‡fl собой сл ь/‡ссистент по UML 2.0. Zicom Mentor от‚етит н‡ ‚‡ши ‚оп осы, поможет получить и п о‚е ить ‚‡ши зн‡ниfl, н‡ч‡ть но‚ый п оект. Zicom Mentor ‚ключ‡ет инте ‡кти‚ные ку сы, элект онные кни„и и тесты и множест‚о ‰ у„ой сп ‡‚очной инфо м‡ции по UML.

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

Вы‚о‰ы

UML Ñ еще о‰ин фо м‡льный flзык, кото ый необхо‰имо ос‚оить к‡ж‰ому, кто соби ‡етсfl з‡ним‡тьсfl п о„ ‡ммной инжене ией.

С‡мо собой ‡зумеетсfl, что зн‡ние UML не „‡ ‡нти ует пост оениfl ‡зумных и понflтных мо‰елей, хотfl и fl‚лflетсfl ‰лfl это„о необхо‰имым.

UML п е‰ост‡‚лflет о„ омную с‚обо‰у п и иснии ‰и‡„ ‡мм и ‚ыбо е инст умент‡ исниfl. П оиз‚о‰ители инст ументо‚ т‡кже ‚оспользлись этой с‚обо‰ой, чтобы по с‚оему ‡зумению Çук ‡ситьÈ имеющуюсfl нот‡цию.

25

Ку с

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

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

К‡к ‡сшиф о‚ы‚‡етс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.

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

26

Лекциfl 2

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

Лекци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 ‚ LJ хитекту ной со„л‡снностиÈ п оект‡ ‰о то„о, к‡к он бу‰ете‡лизо‚‡н ‚ ко‰е.

Мы ст оим мо‰ели сложных систем, потому что не можем опис‡ть их полностью, Çокинуть о‰ним ‚з„л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

Ку с

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

этот ф‡кт не бу‰ет счит‡тьс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

Лекциfl 2

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

сем‡нтически з‡мкнутой ‡бст ‡кции системы ‚ fl‰ ли п оflснит ситу‡цию,

поэтому поп обуем объflснить Çс‚оими слмиÈ.

Мо‰ель Ñ это некий (м‡те и‡льный или нет) объект, отоб ‡ж‡ющий лишь н‡иболее зн‡чимые ‰лfl ‰‡нной 燉‡чи х‡ ‡кте истики системы. Мо‰ели бы‚‡ют ‡зные Ñ м‡те и‡льные и нем‡те и‡льные, искусст‚енные и естест‚енные, ‰еко ‡ти‚ные и м‡тем‡тические...

П и‚е‰ем несколько п име о‚. Зн‡комые ‚сем н‡м пл‡стм‡ссо‚ые и„ ушечные ‡‚томобильчики, кото ыми мы с т‡ким ‡з‡ том и„ ‡ли ‚ ‰етст‚е, это не что иное, к‡к м‡те и‡льн‡fl искусст‚енн‡fl ‰еко ‡ти‚н‡fl

мо‰ель е‡льно„о ‡‚томобилfl. Конечно, ‚ т‡ком LJ‚тоÈ нет ‰‚脇телfl, мы не з‡полнflем е„о б‡к бензином, ‚ нем не ‡бот‡ет (более то„о, ‚ообще отсутст‚ует) ко обк‡ пе 則ч, но к‡к мо‰ель эт‡ и„ ушк‡ с‚ои функции ‚полне ‚ыполнflет: он‡ ‰‡ет ебенку п е‰ст‡‚ление об ‡‚томобиле, поскольку отоб ‡ж‡ет е„о х‡ ‡кте ные че ты Ñ н‡личие четы ех колес, куз, ‰‚е ец, окон, способность ех‡ть и т. ‰.

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

У ‡‚нение, изоб ‡женное ‚ыше Ñ тоже мо‰ель, но это мо‰ель м‡те- м‡тическ‡fl, и описы‚‡ет он‡ ‰‚ижение м‡те и‡льной точки по‰ ‰ейст‚и- ем силы тflжести.

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

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

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

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

29

Ку с

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

из них не 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

Соседние файлы в папке ПрИС