2. Язык UML. Руководство пользователя. Буч_ Рамбо_ Якобсон (2-е издание) (2006) (1185732), страница 85
Текст из файла (страница 85)
Различиетонкое, но важное. Вы декомпозируете систему на подсистемы, чтобы их можно было разрабатывать и размещать в некоторой степенинезависимо друг от друга. Абстракции же системы или подсистемывы разбиваете на модели, дабы лучше понять то, что собираетесьразрабатывать или размещать. Сложная система, например самолет,состоит из многих частей (каркас, реактивные двигатели, авиационная электроника, подсистема обслуживания пассажиров), причемэти подсистемы и система в целом могут моделироваться с разныхточек зрения – в частности, с точки зрения конструкции, динамики,электросистемы, моделей отопления и кондиционирования.Модель содержит набор пакетов.
Явно представлять ее приходится не так уж часто. Однако инструментальные средства должныкакимFто образом манипулировать моделями и обычно используютдля их представления нотацию пакетов.443ТрассировкаСвязи обсужСпецифицирование связей между такими элементами, как класдаютсясы, интерфейсы, компоненты и узлы, – важная структурная составв главе 5ляющая модели. Для управления артефактами процесса разработи 10.ки сложных систем, многие из которых существуют в несколькихЗависимости обсуждаютсяв главе 5,стереотипы –в главе 6.версиях, большую роль играет определение связей между такимиэлементами, как документы, диаграммы и пакеты, присутствующиев разных моделях.В UML концептуальные связи между элементами, содержащимися в разных моделях, можно представлять с помощью трассировки (trace relationship).
К элементам в рамках одной модели трассировку применять нельзя. Изображается она в виде зависимостисо стереотипом. Часто можно не обращать внимания на направление такой зависимости, хотя стрелка обычно указывает на элемент, возникший раньше по времени или более специфическийСистемы и модели444(см. рис. 32.2). Чаще всего связи трассировки используются, чтобыпоказать путь от требований до реализации, на котором лежат всепромежуточные артефакты, а также для отслеживания версий.Sales ManagementVision Statement«trace»445ПредставлениепроектированияПредставлениереализацииПредставлениевариантовиспользованияSalesManagement«trace»SalesManagement{version = 7.1}ПредставлениевзаимодействияПредставлениеразмещения{version = 7.2}Рис. 32.2. ТрассировкаНа заметку.Как правило, вместо явного изображения связей трассировки имеет смысл пользоваться гиперссылками.Типичные приемы моделированияМоделирование архитектуры системыНаиболее распространенный случай применения систем и моделей – это организация элементов, используемых с целью визуализации, специфицирования, конструирования и документирования архитектуры системы.
При этом затрагиваются все артефакты,встречающиеся в проекте разработки программного обеспечения.Моделируя системную архитектуру, вы сводите воедино решения,принятые относительно требований к системе, ее логических и физических элементов. Моделируются структурные и поведенческиеаспекты системы, а также образцы, формирующие ее различныепредставления. Наконец, следует обратить внимание на соединения между подсистемами и трассировку решений, начиная от формулировки требований до размещения.Для моделирования архитектуры системы необходимо: Идентифицировать представления, которые вы будете испольПять раззовать для моделирования архитектуры. Чаще всего это предличных представления с точки зрения вариантов использования, проекставленийтирования, взаимодействия, реализации и размещения, какархитектупоказано на рис. 32.3.ры системы Специфицировать контекст системы, включая окружающиеобсуждаютее действующие лица.ся в главе 2,При необходимости декомпозировать систему на элементарныедиаграммы –подсистемы.в главе 7.Архитектураи моделирование обсуждаютсяв главе 1.Типичные приемы модеированияРис.
32.3. Моделирование архитектуры системыПри моделировании системы в целом и ее подсистем вам понадобится: Специфицировать представление системы с точки зрениявариантов использования, которые описывают поведениесистемы, каким оно представляется конечным пользователям, аналитикам и тестировщикам. Для моделирования статических аспектов применить диаграммы вариантов использования, а для моделирования динамических – диаграммывзаимодействия, состояния и деятельности. Специфицировать представление системы с точки зренияпроектирования, куда входят классы, интерфейсы и кооперации, формирующие словарь предметной области и предлагаемого решения. Для моделирования статических аспектовприменить диаграммы классов и объектов, а для моделирования динамических – диаграммы взаимодействия, состояний и деятельности.
Специфицировать представление системы с точки зрениявзаимодействия, куда входят потоки, процессы и сообщения,формирующие механизмы параллелизма и синхронизациив системе. Использовать те же диаграммы, что и для представления проектирования, но основное внимание уделитьактивным классам и объектам, которыми представлены процессы и потоки, а также сообщениям и потоку управления.
Специфицировать представление системы с точки зренияреализации, куда входят артефакты, используемые для сборки и выпуска физической системы. Для моделирования статических аспектов использовать диаграммы артефактов, длямоделирования динамических – диаграммы взаимодействия, состояний и деятельности. Специфицировать представление системы с точки зренияразмещения, куда входят узлы, формирующие топологию446Системы и моделиаппаратных средств, на которых работает система. Для моделирования статических аспектов применить диаграммы размещения, а для моделирования динамических – диаграммывзаимодействия, состояний и деятельности. Смоделировать архитектурные образцы и образцы проектирования, формирующие перечисленные модели, с помощьюТехнологиякоопераций.RationalНеобходимо понимать, что системная архитектура не рождаUnifiedется сразу, под влиянием моментального озарения.
Хорошо струкProcessобсуждается турированный процесс применения UML подразумевает последов приложевательное (итерационное и пошаговое) уточнение архитектуры нании 2.основе анализа вариантов использования.Если не брать в расчет простейшие системы, вам необходимоМеханизмыуправлять версиями системных артефактов.
Для представлениярасширенияUML обсуж- решений о версиях каждого элемента можно воспользоваться медаютсяханизмами расширения UML, в частности помеченными значев главе 6.ниями.Моделирование системы системТо, что на одном уровне абстракции выглядит как система, надругом, более высоком, представляется подсистемой. Аналогичнымобразом то, что на одном уровне является подсистемой, вполне может рассматриваться как полноценная система группой разработчиков, ответственных за ее создание.Такая иерархия наблюдается во всех сложных системах.
По меревозрастания сложности системы вы встаете перед необходимостьюее декомпозиции на более простые, каждую из которых можно разрабатывать отдельно, а затем постепенно объединять их. Разработка подсистемы и системы подчиняется одним и тем же принципам.Чтобы смоделировать систему систем, вам следует: Идентифицировать основные функциональные составляющиесистемы, которые можно разрабатывать, выпускать и размещать до некоторой степени независимо. На результаты этогоразбиения системы часто влияют технические, политические и юридические факторы. Для каждой подсистемы специфицировать ее контекст также, как это делается для системы в целом (притом в числодействующих лиц, окружающих подсистему, включаютсявсе соседние подсистемы, поэтому необходимо проектировать их совместную работу).
Смоделировать архитектуру каждой подсистемы так же, какэто делается для всей системы.Советы и подсказки447Советы и подсказкиВажно выбрать правильное множество моделей для визуализации, специфицирования, конструирования и документированиясистемы. Хорошо структурированная модель: дает упрощенное представление реальности с одной относительно независимой точки зрения; самодостаточна, то есть не требует для понимания ее семантики никакой дополнительной информации; слабо связана с другими моделями посредством связей трассировки; совместно с другими смежными моделями дает полное представление об артефактах системы.Столь же важно бывает представить сложную систему в видедекомпозиции хорошо структурированных подсистем.
Хорошоструктурированная система: функционально, логически и физически согласована; может быть декомпозирована на почти независимые подсистемы, которые сами являются системами на более низкомуровне абстракции; может быть визуализирована, специфицирована, сконструирована и документирована в виде набора взаимосвязанных,неперекрывающихся моделей.Для моделей в UML предусмотрен специальный графическийсимвол, однако лучше им не пользоваться; моделируйте толькосистему, а не саму модель.
Инструментальные средства обычно располагают возможностями просмотра, организации и управлениянаборами моделей.При изображении системы или подсистемы в UML: используйте каждую из них как начальную точку для всехартефактов, ассоциированных с ней; показывайте только основные виды агрегации между системой и ее подсистемами.
Выносите детали связей между нимина диаграммы более низкого уровня.Часть VIIИтогиГлава 33. Применение UMLПереход к UMLГлава 33. Применение UMLВ этой главе:Переход к UMLЧто дальшеПростые задачи моделируются с помощью UML без труда. Легко поддаются моделированию и сложные задачи, особенно есливы уже приобрели некоторый опыт использования этого языка.Одного только чтения литературы о языке UML недостаточно, –чтобы в полной мере овладеть языком, необходимо применять егона практике. В зависимости от того, что вы уже знаете, начинатьработу с UML можно поFразному. По мере приобретения опытавы поймете и оцените более сложные его конструкции.Если вы способны рассматривать и оценивать какойFлибо предмет с разных позиций, то UML поможет его смоделировать.Переход к UMLСогласно известному правилу 80/20, 80% большинства проблем можно смоделировать, используя 20% средств UML.
Основных структурных сущностей – таких как классы, атрибуты, операции, варианты использования и пакеты, вместе с основнымиструктурными связями – такими как зависимость, обобщениеи ассоциация, вполне достаточно для создания статических моделей большинства типов проблемных областей. Добавьте к этомуосновные поведенческие сущности, например простые автоматыи взаимодействия, – и вы сможете моделировать множество полезных аспектов динамики систем. Необходимость в более развитыхсредствах UML вы почувствуете только тогда, когда столкнетесьс необходимостью моделирования более сложных вещей (скажем,параллельных и распределенных систем).КонцепХорошей стартовой площадкой в использовании UML можеттуальныебыть моделирование некоторых базовых абстракций или поведемодели UML ния, которые уже присутствуют в ваших системах.