- •Модели решения функциональных и вычислительных задач
- •Основные понятия
- •Системный подход в моделировании систем
- •Классификация видов моделирования
- •Математические модели
- •Построение математической модели системы
- •Примеры построения динамических моделей
- •Информационные модели
- •Информационные объекты и связи.
- •Примеры информационных моделей
- •Базы знаний.
- •Моделирование информационных процессов
- •Модели разработки программного обеспечения
- •Методы проектирования программного обеспечения
- •Унифицированный язык моделирования uml
- •Концептуальная модель uml
- •Отношения в uml
- •Диаграммы
- •Инструментарий проектирования программного обеспечения
-
Унифицированный язык моделирования uml
В начале 90-х годов из всего множества языков объектно-ориентированного анализа и проектирования выделились три, наиболее часто используемых при разработке систем: Booch, созданный Грейди Бучем, OOSE (Object-Oriented Software Engineering), разработанный Айваром Джекобсоном и OMT (Object Modeling Technique), автором которого является Джеймс Рамбо. Каждый из этих методов является вполне законченным языком ООП, однако, метод BOOCH особенно удобен на этапах проектирования модели, OOSE – на этапе анализа и формулирования требований, а OMT – удобен при проектировании СУБД. Создание языка, объединяющего достоинства эти трёх методов началась в начале 1995 года, когда эти три автора объединили свои методы для создания унифицированного языка для фирмы Rational Software. В 1997 году была принята версия UML 1.1, взятая на вооружение всеми компаниями производителями систем автоматизированного проектирования. В 2001 году появилась версия 2.0. В настоящее время идёт утверждение UML в качестве стандарта ISO.
-
Концептуальная модель uml
Словарь UML включает три основных блока:
-
сущности;
-
отношения;
-
диаграммы.
Сущность – это основные структурные блоки языка. UML имеет четыре типа сущностей:
-
структурные;
-
поведенческие;
-
группирующие;
-
аннотационные.
Структурные сущности – это имена существительные, представляющие статические части модели, соответствующие физическим элементам системы. Среди них можно выделить следующие.
Класс – описание совокупности объектов с общими атрибутами, операциями, отношениями и семантикой.
Интерфейс – совокупность операций, которые определяют набор услуг (сервис), предоставляемый классом или компонентом. Он определяет только спецификацию операций, но не их исполнение. Обычно изображается с реализующим его классом или компонентом.
Кооперация определяет взаимодействие. Она представляет собой совокупность ролей и других элементов, которые, работая совместно, производят некоторый кооперативный эффект, не сводящийся к простой сумме слагаемых. Кооперация имеет как структурный, так и поведенческий аспект. Один и тот же класс может принимать участие в нескольких кооперациях. Кооперация является реализацией образцов поведения, формирующих систему.
Прецедент – это описание последовательности выполняемых системой действий, которая производит наблюдаемый результат для какого-нибудь актёра. Прецедент применяется для структурирования поведенческих сущностей модели. Прецеденты реализуются посредством кооперации.
Активный класс – класс, объекты которого вовлечены в один или несколько процессов или нитей (нить – процесс, создаваемый внутри другого процесса как его часть, но получающий свой квант времени процессора) и поэтому могут инициировать управляющие воздействия. Активный класс подобен обычному классу, кроме того, что его объекты представляют собой элементы, которые осуществляют свою деятельность одновременно с деятельностью других элементов.
Компонент – физическая заменяемая часть системы, которая соответствует некоторому набору интерфейсов и обеспечивает его реализацию. Компонент, как правило, представляет собой упаковку таких элементов как классы, интерфейсы, кооперации.
Узел – это вычислительный ресурс, обладающий обычно объёмом памяти и способностью обработки. Совокупность компонентов может размещаться в узле или мигрировать с одного узла на другой.
Для вышеперечисленных сущностей существуют разновидности:
-
классы – актёры, сигналы, утилиты;
-
компоненты – приложения, документы, файлы, страницы, таблицы.
Поведенческие сущности представляют собой глаголы языка, они описывают поведение модели во времени и пространстве.
Взаимодействие – поведение, заключающееся в обмене сообщениями.
Автомат – алгоритм поведения, определяющий последовательность состояний объекта в зависимости от событий и своего текущего состояния. Автомат – это граф состоящий из состояний и переходов. Переходы – линии с указанием события.
Группирующие сущности являются организующими частями модели. Это блоки, на которые можно разложить модель.
Пакет: его основное назначение – сгруппировать на этапе проектирования сущности так, чтобы яснее была видна концептуальная схема системы. В UML существуют так же разновидности пакетов: каркасы, модели и подсистемы.
Аннотационные сущности используются для дополнительного описания или замечания к любому элементу.