
- •Введение
- •Управление моделью
- •Сноски (Note)
- •Общие механизмы расширения
- •Ограничение (constraint)
- •Комментарии (comment)
- •Свойства элементов
- •Стереотипы
- •Диаграммы статических структур
- •Диаграмма классов
- •Диаграмма объектов
- •Классификатор (Classifier)
- •Семантика
- •Нотация
- •Варианты представления
- •Рекомендации по оформлению
- •Секция названия Нотация
- •Секция список Нотация
- •Варианты представления
- •Атрибут
- •Семантика
- •Нотация
- •Варианты представления
- •Нотация
- •Интерфейсы Семантика
- •Нотация
- •Параметризованный класс (шаблон) Семантика
- •Нотация
- •Варианты представления
- •Связанный элемент Семантика
- •Нотация
- •Импортирование пакета Семантика
- •Нотация
- •Варианты представления
- •Варианты представления
- •Рекомендации по оформлению
- •Варианты
- •Варианты представления
- •Рекомендации по оформлению
- •Семантика
- •Нотация
- •Нотация
- •Рекомендации по проектированию
- •Варианты представления
- •Подробности
- •Нотация
- •Диаграммы последовательности Виды диаграмм взаимодействия
- •Диаграмма последовательности Семантика
- •Нотация
- •Варианты представления
- •Варианты представления
- •Время переходов Семантика
- •Нотация
- •Диаграммы сотрудничества
- •Сотрудничество Семантика
- •Нотация
- •Диаграмма сотрудничества Семантика
- •Нотация
- •Структура шаблона Семантика
- •Нотация
- •Взаимодействия
- •Семантика
- •Нотация
- •Активный объект
- •Варианты представления
- •Нотация
- •Составные состояния Семантика
- •Нотация
- •События Семантика
- •Нотация
- •Простые переходы Семантика
- •Нотация
- •Переходы во вложенные состояния Семантика
- •Нотация
- •Варианты представления
- •Внутренние переходы Семантика
- •Состояние действия Семантика
- •Нотация
- •Пиктограммы управления
- •Стереотипы
- •Диаграммы реализации
- •Компонентная диаграмма Семантика
- •Нотация
- •Диаграммы развертывания Семантика
- •Нотация
- •Узлы Семантика
- •Нотация
- •Компоненты Семантика
- •Нотация
UML
Введение
Унифицированный язык моделирования (Unified Modeling Language - UML) это язык для специфицирования, визуализации, конструирования и документирования программных систем, а так же бизнес моделей и прочих не программных систем. UML представляет собой объединение инженерных приемов, которые ранее успешно использовались при моделировании больших и сложных систем. Составной частью UML является OCL (Object Constraint Language - язык ограничения объектов).
С середины 70-х по конец 80-х объектно-ориентированные языки моделирования возникают в виде методологий экспериментирующих с различными подходами к объектно-ориентированному анализу и проектированию. За период с 1989 по 1994 годы число языков ОО моделирования возросло с менее чем 10 до более чем 50. Однако эти методы были узко ориентированы на конкретные задачи и большинство пользователей не могли подобрать полностью отвечающего их потребностям языка. Это привело к тому, что с середины 90-х годов начинается объединение различных методов в единые, "полные" языки моделирования.
Разработка UML началась в октябре 1994 года, когда Гради Буч (Grady Booch) и Джим Рамбег (Jim Rumbaugh) из Rational Software Corporation начали работу по унифицированию метода Буча и OMT (Object Modeling Technique - техника объектного моделирования). В октябре 1995 года была представлена предварительная версия 0.8 унифицированного метода, так он был тогда назван. Во время экономического спада 1995 года Иве Иакобсон (Ivar Jacobson) и его компания Objectory объединились с Rational. Результатом объединения стало слияние унифицированного метода с методом OOSE (Object-Oriented Software Engineering).
При создании универсального языка моделирования Гради Буч, Джим Рамбег и Иве Иакобсон поставили перед собой следующие цели:
обеспечить моделирование систем (а не только ПО) используя ОО подход;
создать ясную концепцию языка;
решить проблему объема, возникающую в сложных системах;
создать язык моделирования, который может использоваться как человеком, так и машиной.
Попытка Буча, Рамбега и Иакобсона завершилась созданием в июне и октябре 1996 года документов на версии 0.9 и 0.91 UML. В течение 1996 года Rational создает консорциум UML партнеров. Консорциум включает: DEC, HP, i-Logix, IntelliCorp, IBM, ICON Computing, MCI Systemhouse, Microsoft, Oracle, Rational Software, TI и Unisys. Результатом их сотрудничества стало создание в январе 1997 года спецификации на UML версии 1.0.
В январе 97 к UML партнерам присоединились Object Time, Platinum Technology, Ptech, Taskon&Reich Technologies, Softeam и 1 сентября 1997 года была опубликована спецификация UML версии 1.1.
Управление моделью
Основой управления и организации модели в UML являются пакеты.
Пакеты предназначены для группировки элементов модели. В них могут быть упакованы все виды элементов и диаграмм UML. В качестве элемента может выступать другой пакет, т.е. пакеты могут быть вложенными друг в друга. Пакеты являются основой для хранения, управления формой и доступом.
Пакет изображается как большой прямоугольник с маленьким прямоугольником ("ярлыком"), присоединенным к одному из углов (обычно слева/сверху) большого прямоугольника.
Если содержимое пакета не показано, то его название помещается внутри большого прямоугольника, иначе название помещается в ярлык.
Над названием может быть помещена ключевая строка. Ключевые слова subsystem и model показывают, что этот пакет является метамоделью подсистемы или модели. Предопределенные стереотипы: system, facade, framework и topLevelPackage записываются вместе с ключевыми словами. Определенные пользователем стереотипы одного из предопределенных видов пакетов так же записываются рядом с ключевыми словами, но они не должны конфликтовать с ними.
System (система) стереотип пакета, который представляет набор моделей одной и той же моделируемой системы. Модели описывают моделируемую систему с различных точек зрения, которые не обязательно непересекающиеся. Поэтому система содержит всестороннее описание моделируемой системы и является самым верхним структурным элементом спецификации
Facade (фасад) является стереотипом пустого пакета, который ссылается на элементы модели, содержащиеся в другом пакете. Он обеспечивает общедоступное представление содержимого пакета.
Framework (скелет) является стереотипом пакета, в основном содержащего шаблоны.
TopLevelPackage (пакет верхнего уровня) является стереотипом пакета означающим самым верхний пакетом модели, представляющим все не связанные с окружением части модели.
Список свойств может быть помещен в фигурные скобки после или ниже названия пакета. Например: {abstract}.
Содержимое пакета может быть показано в большом прямоугольнике.
Видимость элемента вне пакета может быть указана предшествующим названию элемента символом видимости ('+' для общедоступных (public), '-' для частных (private), '#' для защищенных (protected)). Если элемент это внутренний пакет, видимость его элементов как экспортируемых наружу пакета определяется комбинацией видимости элементов внутри пакета с видимостью самого пакета: результат должен в наибольшей степени ограничивать видимость.
Чтобы показать наличие отношения между элементами пакетов, отношение может отображаться между символами пакетов. В частности, зависимость между пакетами подразумевает, что существует одна или более зависимость между их элементами.
Рисунок 1. Пакеты и связи между ними