8. Моделирование логической структуры системы. 8.1. Диаграмма классов Диаграмма классов служит для моделирования классов и отношений между ними.

Презентация:



Advertisements
Похожие презентации
7. Классы и отношения между ними Классы Класс это реализация типа объектов, т.е. класс определяет множество объектов и множество операций, допустимых.
Advertisements

Диаграммы UML Диаграмма классов (Class Diagram). Основные вопросы Что такое диаграмма классов Компоненты диаграммы классов и их назначение Пример диаграммы.
Объектно-ориентированный анализ и дизайн Copyright © Мухортов В. В., Няньчук-Татарский Н. А., Copyright © ООО «Интекс»,
4. Моделирование функциональных требований к системе.
Диаграмма классов (class diagram). Объект Объект (object) – это некоторая сущность реального мира Объект обладает тремя характеристиками: состоянием,
2. UML – унифицированный язык моделирования систем.
Технология программирования в историческом аспекте.
Докладчик: Проектирование информационных систем всегда начинается с определения цели проекта. Основная задача любого успешного проекта.
Теория экономических информационных систем Семантические модели данных.
Разработка объектно- ориентированного ПО Итеративная модель разработки (развитие водопадной модели) анализ проектирование кодирование тестирование.
Моделирование данных Модель «сущность-связь». Рассматриваемые вопросы: Элементы модели «сущность-связь» Диаграммы «сущность-связь» Слабые сущности Подтипы.
1 Диаграммы реализации (implementation diagrams).
Проектирование архитектуры ИСО 1. UML 2 Структура определения языка 4.
Разработка структуры программного обеспечения при объектом подхода.
Стандарт IDEF1X Рассмотрим методологию IDEF1X. Методология IDEF1X представляет собой формализованный язык семантического (контекстного) моделирования данных,
Диаграммы UML Диаграмма вариантов использования. Основные вопросы Назначение диаграммы вариантов использования Компоненты диаграммы вариантов использования.
Разработка программного обеспечения при объектном подходе Объектно-ориентированный подход.
В. Дихтяр ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ (для бакалавров) Российский университет дружбы народов Институт гостиничного бизнеса и туризма Раздел 1.Разработка.
Этап моделирования предметной области в методологии RUP.
Элементы модели «сущность-связь» Сущность - Класс сущностей - Экземпляр сущности Атрибуты - Композитные атрибуты - Многозначные атрибуты Идентификаторы.
Транксрипт:

8. Моделирование логической структуры системы

8.1. Диаграмма классов Диаграмма классов служит для моделирования классов и отношений между ними.

Элементы диаграммы классов –Class – класс. –Association – отношение ассоциации между классами. –Dependency – отношение зависимости между классами.

Графическое обозначение элементов

Графическое обозначение класса В общем случае графическое обозначение класса содержит три прямоугольных области, в которых отображаются: –имя класса (обязательно); –атрибуты класса (может отсутствовать); –операции класса (может отсутствовать). Имя класса Атрибуты Методы

Синтаксис описания атрибута visibility name : type-expression [ multiplicity ordering ] = initial-value { property-string } где –visibility – область видимости атрибута; может принимать одно из следующих значений: + : public visibility – видим вне класса; - : private visibility – не видим вне класса; # : protected visibility – видим вне класса только друзьями класса; ~ : package visibility – видим внутри пакета; –name – имя атрибута; –type – тип атрибута; –initial-value – начальное значение атрибута; –multiplicity – количество значений, которые может содержать атрибут, задается в виде: lower_bound..upper_bound –ordering –используется когда атрибут хранит более одного значения и обозначает упорядоченность этих значений, может принимать одно из значений: unordered – неупорядочено (по умолчанию); ordered – упорядочено; –property-string – свойства значений или другими словами ограничения на значения атрибута.

Синтаксис описания операции visibility name ( parameter-list ) : return-type-expression { property-string } где –visibility – область видимости операции; может принимать одно из следующих значений: + : public visibility – видима вне класса; - : private visibility – не видима вне класса; # : protected visibility – видима вне класса только друзьями класса; ~ : package visibility – видима внутри пакета; –name – имя операции; –parameter-list – список формальных параметров операции, каждый параметр задается в виде: kind name : type-expression = default-value где –kind – обозначает вид параметра может быть опущен или принимать одно из следующих значений: »in – входной, значение по умолчанию; »out – выходной; »inout – входной и выходной (модифицируемый); –return-type-expression – тип возвращаемого методом значения или списка значений, если опущен, то операция не возвращает значения; –property-string – свойства операции или другими словами ограничения на операцию.

8.2. Стереотипы классов Стереотипы классов используются для того, чтобы разбить классы на категории. В UML предопределены некоторые стереотипы классов. Эти стереотипы классов имеют в UML специальные графические обозначения.

Интерфейс Interface – интерфейс, это абстрактный класс, все методы которого являются чисто виртуальными функциями. Графическое обозначение интерфейса:

Граничный класс Boundary class – граничный класс, это класс, который находится на границе системы с её окружением. Графическое обозначение граничного класса:

Использование граничного класса Предполагается, что в системе должен быть, по крайней мере, один граничный класс между актером и вариантом использования, с которым связан этот актер. Граничный класс позволяет актеру взаимодействовать с системой. Как правило, такой граничный класс носит имя актера, которому он позволяет взаимодействовать с системой.

Класс сущность Entity class – класс сущность, это класс, содержащий информацию, которая требует хранения в постоянной памяти. Графическое обозначение класса сущности:

Контроллер Control class – контроллер, управляющий класс, это класс, который управляет работой других классов. Графическое обозначение контроллера

Использование контроллера Обычно для каждого варианта использования существует один управляющий класс.

Другие стереотипы Стереотип > показывает, что класс не имеет реализации. Стереотип > показывает, что класс является реализацией некоторого типа.

8.3. Стереотипы отношения ассоциации Для отношения ассоциации в UML предопределены следующие стереотипы: –обобщение (generalization); –агрегация (aggregation); –композиция (composition);

Отношение обобщения Отношение обобщения моделирует отношение is-a между классами. Графически обозначение обобщения:

Отношение агрегации Отношение агрегации определяет отношение «целое-часть», т. е. показывает, что объекты одного класса принадлежат (являются частями) объектам другого класса. Такое отношение также называется «слабой агрегацией». Графическое обозначение агрегации:

Отношение композиции Отношение композиции – это отношение агрегации, при котором время существования объектов одного класса зависит от времени существования другого класса. Такое отношение также называется «сильной агрегацией». Графическое обозначение композиции:

Отношение принадлежности пространству имен Если один класс определен внутри другого класса, т.е. является вложенным, то для обозначения этого используется отношение ассоциации, которое называется «принадлежность пространству имен» и имеет стереотип «namespace- ownedElement».

Графическое обозначение отношения принадлежности пространству имен:

8.4. Стереотипы отношения зависимости – > – показывает, что один пакет имеет доступ к открытым элементам другого пакета; – > – показывает связь параметров шаблона с действительными типами для создания не параметризованного класса; – > - показывает вычислительную зависимость одного элемента от другого; – > - показывает, что один пакет имеет доступ к открытым элементам другого пакета и может помещать имена этих элементов в свое пространство имен; – > - показывает, что один элемент является улучшением другого элемента; – > - показывает, что один элемент отслеживает другой элемент в различных смыслах этого слова; – > - показывает, что один элемент использует другой элемент в различных смыслах этого слова.

Использование стереотипа > На уровне классов стереотип > отношения зависимости обычно показывает следующие виды зависимости: –операции одного класса используют другой класс как тип своих параметров или тип возвращаемого значения; –при реализации операций одного класса используются объекты другого класса.

Использование стереотипа > Для связи класса-типа, или интерфейса, или пакета с его реализацией используется отношение зависимости, которое имеет стереотип >.

Графическое обозначение зависимости со стереотипом >:

Графическое обозначение зависимости типа >, когда она отмечает реализацию интерфейса:

8.5. Концептуальная модель системы Концепция – это множество типов, удовлетворяющих определенным требованиям. Тип, принадлежащий концепции, называется моделью концепции. Отсюда следует, что концепцию можно определить через произвольный тип, принадлежащий этой концепции.

Концептуальный класс Концептуальный класс (conceptual class, analysis class) – это класс, который является абстрактным представлением (моделью) концепции. Концептуальные классы описывается только свойствами объектов, входящих в этот класс.

Концептуальная модель системы Концептуальная модель системы (domain model, conceptual model, domain object model, analysis object model) описывает концепции из прикладной области системы и отношения между ними. Все концепции, которые включаются в концептуальную модель, должны быть определенные в глоссарии системы. Концепции описываются концептуальными классами, для описания отношений между концепциями используются отношение ассоциации без стереотипов.

Использование отношения ассоциации Отношение ассоциации в концептуальной модели может иметь следующие спецификации: –имя; –направление; –роли; –количество экземпляров роли (multiplicity).

Определение концептуальных классов Для определения концептуальных классов используются два дополняющих друг друга подхода: –анализ текстового описания прикладной области (документы, сценарии, глоссарий и другие материалы) и определение ключевых понятий для кандидатов в концептуальные классы; –использование списка концептуальных классов, разбитых по категориям.

Категории концептуальных классов –роли актеров, например, доктор; –события, например, получение сообщения; –транзакции; –физические объекты; –контейнеры; –элементы контейнеров; –другие системы; –организации, например, отдел; –спецификации; –местоположения; –процессы; –политики; и т. д.

Ассоциации между концептуальными классами Для определения ассоциаций между концептуальными классами используются те же подходы, что и для определения концептуальных классов. Ассоциации между концептуальными классами могут быть разбиты по следующим категориям: –отношение включения друг в друга; –отношение взаимного расположения в пространстве; –отношение взаимного нахождения во времени; –отношение взаимодействия; – отношение использования; и т. д.

Пример концептуальной модели

8.6. Логическая модель системы Логическая модель системы описывает логическую структуру системы при помощи классов и отношений между ними. Для построения логической модели системы используются диаграммы классов (class diagram). Логическая модель системы строится в два этапа: –сначала строится концептуальная модель (domain model) системы; –затем на базе концептуальной модели строится полная логическая модель, которая представляет собой детально проработанную диаграмму классов.

Разработка логической модели системы после построения концептуальной модели включает следующие этапы: –определение функциональности концептуальных классов и связей между ними; –детализация концептуальных классов; –спецификация исполнения вариантов использования посредством функциональных классов; –доработка (refine) концептуальных классов в модели классов системы (design classes).

Пример логической модели системы