2. Язык UML. Руководство пользователя. Буч_ Рамбо_ Якобсон (2-е издание) (2006) (1185732), страница 84
Текст из файла (страница 84)
Модель – это упрощение реальности, абстракция, создаваемая, чтобы лучше понять систему. Система, зачастую разложенная на ряд подсистем, – это множество элементов, организованныхнекоторым образом для выполнения определенной цели. Системаописывается набором моделей, по возможности рассматривающихее с различных точек зрения. Важными составными частями модели являются такие сущности, как классы, интерфейсы, компонентыи узлы.
В UML допускается моделирование систем и подсистем какединого целого – тем самым органично решается проблема масштабирования.Хорошо структурированные модели помогают визуализировать, специфицировать, конструировать и документировать системупод разными (но вместе с тем взаимосвязанными) углами зрения.Хорошо структурированные системы функционально, логическии физически согласованы, но при этом состоят из слабо связанныхдруг с другом подсистем.ВведениеДля постройки собачьей будки серьезной подготовки не требуется. Потребности собаки просты, так что для их удовлетворения –если, конечно, не попался особо привередливый пес – вы простосколачиваете будку без предварительного планирования.Системы и модели440Возведение дома, а уж тем более небоскреба, требует большихзатрат времени и сил.
Потребности семьи или арендаторов офисногоздания не столь примитивны, и для выполнения заказа даже самогопокладистого клиента нельзя моментально начать строительство.Предварительно придется заняться моделированием. Различныеучастники процесса смотрят на него с разных точек зрения и преследуют разные интересы. Вот почему при строительстве сложныхзданий предварительно создаются поэтажные планы, вертикальныеразрезы, планы прокладки систем отопления и кондиционирования,планы электропроводки, водоснабжения и, возможно, даже прокладки вычислительных сетей. Разумеется, однойFединственноймодели для адекватного учета всех этих аспектов недостаточно.ДиаграммыВ UML все абстракции программной системы организуютсяобсуждав виде моделей, каждая из которых представляет относительноются в гланезависимый, но важный аспект разрабатываемой системы.
Дляве 7, пятьвизуализации интересующих вас наборов этих абстракций можноразличныхиспользовать диаграммы. Рассмотрение пяти различных представпредставлений архитектуры системы особенно полезно для удовлетворениялений арпотребностей различных участников процесса разработки програмхитектурымного обеспечения. В своей совокупности эти модели дают полноесистемы –представление о структуре и поведении системы.в главе 2.В больших системах множество элементов можно подвергнутьдекомпозиции на более мелкие подсистемы, каждая из которыхна более низком уровне абстракции может рассматриваться какотдельная система.МеханизмыВ UML предусмотрены определенные средства для графичесрасширениякого представления систем и подсистем (см. рис.
32.1). Эта нотацияUML обсуж- позволяет визуализировать декомпозицию системы на меньшиедаютсяподсистемы. И система, и подсистема обозначаются пиктограмв главе 6, па- мой компонента со стереотипом. Для моделей и представленийТермины и понятияпредусмотрено особое графическое изображение (отличное от пакетов со стереотипом), хотя применяется оно редко, поскольку этисущности в основном являются объектами манипуляции инструментальных средств, которыми пользуются для организации различных аспектов системы.Разницамеждупостройкойсобачьейбудки и возведениемнебоскребаобсуждается в главе 1.кеты обсуждаютсяв главе 12.система«system»системарозничной торговли«subsystem»подсистемаобслуживания клиентов«subsystem»подсистемауправления магазиномподсистема«subsystem»подсистемауправления складомРис.
32.1. Системы и подсистемы441Термины и понятияСистема (system), возможно декомпозированная на ряд подсистем, – это множество элементов, организованных некоторымобразом для выполнения определенной цели. Она описывается набором моделей, зачастую с различных точек зрения.Подсистема (subsystem) – это объединение элементов, ряд которых составляет спецификацию поведения других ее элементов.Система и подсистема изображаются в виде пиктограммы компонента со стереотипом.Модель (model) – это упрощение реальности, абстракция, создаваемая для лучшего восприятия системы.Представление (view) – это проекция модели, рассматриваемаяпод определенным углом зрения: в ней отражены одни сущностии опущены другие, которые с данной точки зрения не представляютинтереса.Системы и подсистемыСтереотипыобсуждаются в главе 6,пакеты –в главе 12,классы –в главе 4,вариантыиспользования –в главе 17,автоматы –в главе 22,кооперации –в главе 28.Система, собственно, и есть та сущность, которую вы разрабатываете и для которой строите модели.
Система охватывает все артефакты, составляющие эту сущность, включая модели и элементыэтих моделей (такие как классы, интерфейсы, компоненты, узлыи связи между ними). Все, что необходимо для визуализации, специфицирования, конструирования и документирования системы,является ее частью, а все, что для этой цели не требуется, лежитза пределами системы.В UML система изображается в виде компонента со стереотипом, как показано на рис. 32.1. Являясь компонентом со стереотипом, она владеет некоторыми элементами.
Если заглянуть внутрьсистемы, то можно увидеть все ее модели и отдельные элементы(в том числе и диаграммы), зачастую декомпозированные на более мелкие подсистемы. Являясь классификатором, система может иметь экземпляры (допускается существование несколькихэкземпляров системы, размещенных в разных точках), атрибутыи операции (внешние по отношению к системе действующие лицаспособны воздействовать на систему в целом), варианты использования, автоматы и кооперации; все они могут принимать участие в специфицировании поведения системы.
В ряде случаев онаСистемы и модели442обладает даже интерфейсами, что оказывается важным при конструировании системы систем.Подсистема – это просто часть системы, которая используетсядля декомпозиции сложной системы на более простые, слабо зависящие друг от друга составляющие. То, что на одном уровне абстракции выглядит системой, на другом – более высоком – может рассматриваться как подсистема.Основная связь между системой и ее подсистемами – это комАгрегацияи обобщение позиция. Система (целое) может состоять из одной или несколькихобсуждают- подсистем (частей) либо вообще не содержать таковых.
Допускася в главе 10. ется наличие связей обобщения между подсистемами. Благодаряэтому можно моделировать семейства подсистем, ряд которыхпредставляет общие виды систем, а другие являют собой специализацию этих систем, рассчитанную на конкретные условия. Подсистемы могут быть соединены друг с другом различными способами.На заметку.
Система – это сущность самого высокого уровняв данном контексте; составляющие ее подсистемы представляют полное разбиение системы на непересекающиесячасти. Система – это подсистема верхнего уровня.Термины и понятияМодель владеет пакетами, которые, в свою очередь, состоят из неких элементов. Модели, ассоциированные с системой или подсистемой, исчерпывающим образом разбивают ее элементы.
Это означает, что каждый элемент принадлежит одному и только одномупакету. Как правило, артефакты системы или подсистемы организуются в несколько неперекрывающихся моделей. Все возможныемодели охватываются пятью представлениями архитектуры программного обеспечения.ДиаграммыМодель (к примеру, процесса) может содержать так много аробсуждают- тефактов – скажем, активных классов, связей и взаимодействий, –ся в главе 7.что в большой системе всю их совокупность нельзя охватить сразу.Представление системной архитектуры можно воспринимать какодну из проекций модели. Для каждой модели предусмотрен ряддиаграмм, с помощью которых удобно обозревать принадлежащиеей сущности.
Представление охватывает подмножество сущностей, входящих в состав модели. Границы моделей представленияобычно пересекать не могут. В следующем разделе будет показано,что между моделями нет прямых связей, хотя между элементами,содержащимися в различных моделях, могут существовать связитрассировки.Пятьразличныхпредставлений архитектурысистемыобсуждаются в главе 2.На заметку. UML не диктует вам, какими именно моделямиследует пользоваться для визуализации, специфицирования, конструирования и документирования системы, хотяRational Unified Process (см. приложение 2) предлагает некоторое множество моделей, проверенное на практике.Модели и представленияПакетыобсуждаютсяв главе 12.Модель – это упрощение реального мира; реальность в нейописывается в контексте моделируемой системы.
Проще говоря, модель – это абстракция системы. В то время как подсистемапредставляет собой разбиение множества элементов большей системы на независимые части, модель – это разбиение множестваабстракций, используемых для визуализации, специфицирования,констру ирования и документирования этой системы.