Графическая нотация UML
Рис. 9-4. Разветвление перехода
а) б)
Рис. 9-5. а) условное обозначение процесса;
б) верхний уровень описания автоматики лифта
Язык SDL используется в основном как язык спецификаций, хотя возможны и существуют трансляторы с текстовой нотации языка на инструментальный язык программирования.
Унифицированный язык моделирования UML
UML (Unified Modeling Language) предназначен для спецификации, визуализации, проектирования и документирования отчуждаемых материалов существенно программных систем. Он существует и развивается с 1995 г., будучи создан как объединение трех объектно-ориентированных технологий: Booch, OMT и OOSE. Его стандартизацией, распространением и программной поддержкой занимается фирма Rational, основной продукт которой - Rational Rose. Хотя UML является строго определенным языком, он не ставит барьеров на пути развития средств моделирования: он может быть расширен без переопределения своего ядра. Предполагается использовать UML как основы для создания средств визуального моделирования. Многие компании, включая Microsoft, заявили о поддержке UML. В пакетах Visio и MS Visual Studio содержатся средства редактирования диаграмм UML.
Определение UML является самодостаточным и включает в себя следующие документы: Семантика, Нотация, Спецификации языка OCL (Object Constraint Language) и Расширение UML. Ниже следует обзор нотации UML.
Три вида строительных блоков: сущности, отношения и диаграммы. Сущности – это абстракции, являющиеся основными элементами модели. Отношения связывают различные сущности; диаграммы группируют представляющие интерес совокупности сущностей.
Таблица 9-1
Cущности | Отношения | Диаграммы… |
Структурные (имена существительные) – классы, интерфейсы, кооперации, прецеденты, активные классы, компоненты, узлы. Поведенческие (глаголы, описывают поведение модели во времени и пространстве) – взаимодействия, автоматы. Группирующие (организующая часть модели) – пакеты. Аннотационные (комментарии) – примечания. | Зависимость (отношение ис-пользования, согласно которо-му изменение в спецификации одного элемента может повли-ять на другой элемент, его использующий); Ассоциация (структурное отношение, описывающее совокупность связей; например, целое – часть); Обобщение (отношение “специализация-обобщение”; так потомок наследует свойства своего родителя); Реализация (семантическое от-ношение между классификато-рами; например, “интерфейс-класс”). | классов; объектов; прецедентов; последовательостей; кооперации; состояний; действий; компонентов; развёртывания; Диаграмма – это подмножетво всех комбинаций сущностей и отношений. |
Для проектирования используются диаграммы следующих видов:
· use case – прецедентов использования
· class – классов
· behavior – поведения:
o statechart – состояний
o activity – деятельности
o interaction– взаимодействия:
Ø sequence – следования
Ø collaboration – совместной работы, кооперации
· implementation – реализации:
o component – компонентов (конфигурации)
o deployment – распределения (размещения процессов на процессорах)
Вопрос 2.
Диаграммы классов
Класс (Class) – это описание совокупности объектов с общими атрибутами, операциями, отношениями и семантикой. Класс изображается прямоугольником с тремя разделами, в которых соответственно помещаются имя класса, атрибуты и операции. У объектов (экземпляров класса) к имени класса добавляется имя объекта и вся надпись подчеркивается. Например, класс Shape:
Классы и объекты могут участвовать в различных диаграммах, изображающих отношения между ними. На рис. 9-6 приведены примеры и нотация некоторых отношений. Кроме того, возможно изображение категорий - групп логически связанных между собой классов, изображение дружественных классов, области видимости и других возможностей современных ОО-языков программирования.
Рис 9-6. Изображение отношений между классами: ассоциации, зависимости и обобщения (наследования)
Агрегирование (Aggregation) – это особый тип отношения ассоциации, когда его можно рассматривать как отношение «часть-целое». Пример приведён на рис. 9-7, где объект класса Institute может состоять из произвольного количества объектов класса Faculty. Очевидно, что такая диаграмма близка к логической схеме данных типа ER.
Рис 9-7. Пример изображения отношений агрегирования между классами