Введение в UML с помощью AllFusion Component ModelerКозодаев А.А.
Оглавление
Целью данной статьи является желание автора познакомить читателя с основами унифицированного языка моделирования (UML) на примере AllFusion Component Modeler (Paradigm Plus) (далее по тексту ACM) - программного продукта компании Computer Associates. Что такое UML?Унифицированный язык моделирования (UML, Unified Modeling Language) является преемником методов объектно-ориентированного анализа и проектирования (OOA&D), которые появились в конце 80-х и начале 90-х годов. Первое упоминание об унифицированном методе (Unified Method) версии 0.8 появилось в 1995 году на конференции OOPSLA ’95. Данный метод был предложен Гради Бучом и Джимом Рамбо. В дальнейшем к ним присоединился Айвар Якобсон и в течение 1996 года Г. Буч, Д. Рамбо, А. Якобсон, получившие широкую известность как «трое друзей» (amigos) продолжали работа над своим методом, который к тому времени получил название унифицированный язык моделирования (UML). Однако помимо данного метода сообществом разработчиком были предложены и другие методы. Для стандартизации этих методов в рамках OMG (Object Management Group) была сформирована инициативная группа. В результате работы группы появилась версия языка UML 1.1. Текущей версией языка UML является версия 1.5, также ведется работа над спецификацией языка UML версии 2.0. UML - это название языка моделирования, но не метода. Следует различать эти понятия. Большинство методов включают в себя помимо языка моделирования процесс. Язык моделирования - это нотация (главным образом графическая), которая используется разработчиками для описания проекта. Процесс - это рекомендация относительно этапов, которых необходимо придерживаться при выполнении проекта. Язык UML в его текущем состоянии включает в себя нотацию и метамодель. Нотация представляет собой совокупность графических элементов, которые используются в моделях. Метамодель является средством придания языку UML большей строгости. UML включает в себя двенадцать типов диаграмм, разделенных на три категории: 1) диаграммы, описывающие статическую структуру системы:диаграмма классов (Class Diagram)Диаграмма классов по праву занимает одно из центральных мест не только в UML, но и в объектно-ориентированном подходе вообще. Данная диаграмма включает в себя большой набор понятий моделирования. Диаграмма классов описывает типы объектов системы и различные статические отношения, которые существуют между ними. Существуют два основных вида статических отношений, это ассоциации и подтипы. На диаграммах классов также изображаются атрибуты классов, операции классов и ограничения, которые накладываются на связи между объектами. Рисунок 1. Диаграмма классов. диаграмма объектов (Object Diagram)Диаграмма, на которой изображаются объекты и их отношения в конкретный момент времени. Данную диаграмму можно считать особым случаем диаграммы классов, где могут отображаться как экземпляры, так и сами классы. Инструментам моделирования не нужно поддерживать отдельный формат для диаграмм объектов, поэтому Вы не найдете в ACM диаграмму данного типа. На диаграмме объектов изображено множество объектов и связей, представляющих собой состояние системы в данный момент времени, т.е. на ней изображены не описания объектов, а сами объекты и их значения. Сами объекты во многих случаях могут быть прототипными. диаграмма компонентов (Component Diagram)Диаграмма компонентов отображает организацию компонентов и зависимости между ними. Компонент - это физический элемент реализации (компоненты исходного кода, бинарного кода, выполняемые компоненты) с четко определенным интерфейсом, предназначенный для использования в качестве заменяемой части системы. Каждый компонент представляет собой реализацию некоторых классов системы. Рисунок 2. Диаграмма компонентов. диаграмма развертывания (Deployment Diagram)Диаграмма развертывания отражает физические взаимосвязи между программными и аппаратными компонентами разрабатываемой системы. Одним из существенных понятий данного вида диаграмм является понятие узел. Узел представляет собой некоторый тип вычислительного устройства, как правило, самостоятельную часть аппаратуры. Рисунок 3. Диаграмма развертывания. 2) диаграммы, описывающие динамическое поведение системы:диаграмма use case (Use Case Diagram)Use case (вариант использования) это функциональное требование. Данный вид диаграмм в основном используется для описания функциональных требований к системе, для описания предметной области с целью лучшего понимания функционирования системы. Основные элементы диаграммы use case: собственно use case (вариант использования), актеры (представляют собой некоторую роль, которую играет пользователь по отношению к системе), связи и отношения между актерами и use case. Данный вид диаграмм был предложен А. Якобсоном в 1994 году и сейчас по праву является частью языка UML. Рисунок 4. Диаграмма use case. диаграмма деятельности (Activity Diagram)Данный вид диаграмм полезен для описания поведения, включающего в себя множество параллельных процессов, именно по этому они являются мощным средством моделирования потоков работ, программирования многопоточности. Рисунок 5. Диаграмма деятельности. диаграмма последовательности (Sequence Diagram)Это диаграмма, на которой изображено упорядоченное во времени взаимодействие объектов. На ней изображаются участвующие во взаимодействии объекты и последовательность сообщений, которыми они обмениваются. Одно из основных назначений данной диаграммы - отобразить последовательность действий для части или целого варианта использования (use case). Как правило, по вертикали отображена временная ось, а по горизонтали указаны объекты, участвующие в данном процессе.
Рисунок 6. Диаграмма последовательности. диаграмма кооперации (Collaboration Diagram)На такой диаграмме экземпляры объектов изображаются в виде пиктограмм, также как на диаграмме последовательности стрелки обозначают сообщения, однако их временная последовательность указывается посредством нумерации сообщений. Можно сказать, что диаграммы кооперации и последовательности очень похожи, они несут одну и ту же информацию, отличаются они лишь представлением информации. диаграмма состояния (Statechart Diagram)Диаграммы состояний являются хорошо известным методом описания поведения систем. Они изображают все возможные состояния, в которых может находиться конкретный объект, а также изменения состояния объекта, которые происходят в результате влияния некоторых событий на этот объект. В большинстве объектно-ориентированных методов диаграммы состояний строятся для единственного класса, чтобы показать динамику поведения единственного объекта. Рисунок 7. Диаграмма состояния. 3) диаграммы управления моделью включая Пакеты, Подсистемы и МоделиОсновная цель данного вида диаграмм - дать возможность разработчикам распределять систему на составные части. В средствах моделирования данные диаграммы могут быть выражены с помощью диаграмм классов или диаграмм вариантов использования (use case). В данном разделе статьи речь пойдет собственно о AllFusion Component Modeler как программном средстве, поддерживающем UML. Текущей версией продукта является версия 5.0, в нее введен ряд функций, которые поднимают продукт на качественно-новый уровень. К этим функциям можно отнести:
ACM для целей хранения элементов моделей использует MSDE - одну из версий MS SQL Server 2000. В состав продукта включен Xpert Engine - функция продукта, позволяющая в реальном времени проверять строимые модели на соответствие канонам UML (действие данной функции можно увидеть на примере рисунков № 1 и 6, где некоторые элементы подчеркнуты волнистой зеленой чертой - что свидетельствует о некритических ошибках, допущенных на стадии моделирования) Как бы ни велики были возможности UML, иногда разработчикам необходимо их расширить. UML обладает такими возможностями к расширению, которые должны покрывать обычные нужды, при этом не затрагивая основных положений языка. Основными понятиями UML, служащими для целей расширения, являются понятия: стереотипа, именованного значения (tagged value) и ограничения. В ACM встроен специальный редактор профилей (Profile editor), который позволяет настроить определенное количество профилей (набор стереотипов, именованных значений и ограничений) языка UML. Однако, к расширению языка UML, как и к расширению любого другого языка следует подходить очень осторожно, так как очень легко можно создать новый диалект языка, непонятный другим разработчикам. Стоит также упомянуть о связи ACM с AllFusion ERwin Data Modeler. Для этих функций в продукт встраивается специальный дополнительный модуль AllFusion Component Modeler-ERwin Data Modeler Add-In позволяющий трансформировать UML модели в модели данных. Эта интеграция является двунаправленной и может осуществляться как из ACM, так и из ERwin Data Modeler. Следует признать, что язык UML приобретает все большую популярность среди сообщества разработчиков и автоматизированные средства, поддерживающие язык UML, в том числе получают все большую распространенность. AllFusion Component Modeler является продуктом, поддерживающим UML версии 1.4 и по праву является одним из лучших продуктов, представленных на рынке. |