Простейшей информационной системы 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Простейшей информационной системы



 

Диаграммы логического моделирования

 

Следующие пять диаграмм – классов, кооперации, последовательности, состояний и деятельности – описывают логический уровень модели (как статические аспекты структуры, так и динамические аспекты функционирования). Основные элементы этих диаграмм – классы, объекты и отношения между ними.

 

Диаграмма классов (class diagram)

 

Центральное место в методологии ООАП занимает разработка логической модели системы в виде диаграммы классов.

Диаграмма классов служит для представления статической структуры модели системы в терминологии классов объектно-ориентиро­ванного программирования. Диаграмма классов может отражать, в част­ности, различные взаимосвязи между отдельными сущностями предмет­ной области, такими, как объекты и подсистемы, а также описывает их внутреннюю структуру и типы отношений. На данной диаграмме не ука­зывается информация о временных аспектах функционирования системы.

Базовыми элементами диаграммы классов являются классы сами (со своими атрибутами и операциями) и отношения между ними.

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

 
 

 


Рисунок 16 – Изображение класса

 

Как правило, если даже какая-то секция оказывается пустой, в обозначении класса она все равно показывается. Различные примеры изображения классов представлены на рис. 17

 

           
 
     
 

 


Рисунок 17 – Примеры изображений различных классов

 

Имя класса должно быть уникальным в пределах пакета (в пакете может содержаться несколько диаграмм). Записывается по центру секции полужирным шрифтом и должно начинаться с заглавной буквы. Если класс не может иметь экземпляров (объектов), то есть является абстрактным, его имя выделяется курсивом.

При обозначении имен класса рекомендуется использовать существительные, записанные без пробелов. Необходимо помнить, что имена классов образуют словарь предметной области при ООАП.

Атрибут класса служит для представления отдельного свойства или признака, который является общим для всех объектов данного класса. Запись атрибута подчиняется синтаксическим правилам:

 

<квантор видимости> <имя атрибута> [кратность]:

<тип атрибута> = <исходное значение> {строка-свойство}

 

Квантор видимости (visibility) может принимать одно из четырех значений:

«+» – public – доступность без ограничений;

«#» – protected – доступность только для данного класса и его потомков;

«–» – private – доступность только для данного класса;

«~» – package – доступность только в пределах данного пакета.

Имя атрибута должно начинаться со строчной (малой) буквы и не может содержать пробелов.

Кратность характеризует общее количест во атрибутов данного типа, входящих в состав класса (по умолчанию равно 1), например:

[0..1] – либо такого атрибута нет, либо он есть;

[0..*] – либо такого атрибута нет, либо их сколько угодно;

[1..5] – таких атрибутов может быть от 1 до 5.

Тип атрибута определяется типом данных, например: «цвет: Color» или «имяСотрудника [1..2]: String».

Исходное значение служит для задания некоторого начального значения атрибута в момент создания экземпляра класса, например: «цвет:Color=(255,0,0)» или «имяСотрудника[1..2]:String=“Иван Иванович”».

Строка-свойство служит для указания дополнительных свойств атрибута, например: «заработнаяПлата:Деньги=500{frozen}» – фиксированная сумма.

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

Формат записи операции следующий:

 

<квантор видимости> <имя операции> (список параметров):

<возвращаемое значение> {строка-свойство}

 

Например:

 

+нарисовать (форма: Многоугольник = Прямоугольник)

–изменитьСчет (номерСчета: Integer): Деньги

 

Подробнее об операциях см. в [1-7].

 

Между классами могут быть следующие виды отношений:

– отношение ассоциации (association relationship);

– отношение обобщения (generalization relationship).

– отношение агрегации (aggregation relationship);

– отношение композиции (composition relationship);

– отношение зависимости (dependency relationship).

 

Отношение ассоциации соответствует наличию произвольной взаимосвязи между классами и может быть как ненаправленной (рис. 18), так и направленной (рис. 19). Если связаны два класса друг с другом, ассоциация называется бинарной, если класс связан сам с собой – рефлексивной. Ассоциация может иметь имя и содержать кратности классов-ролей ассоциации.

 

Рисунок 18 – Пример ненаправленной бинарной ассоциации

 

 

Рисунок 19 – Пример направленной бинарной ассоциации

 

Отношение обобщения представляет собой отношение между предком и потомком (рис. 20).

 

Рисунок 20 – Пример отношения обобщения

 

К стрелке-обобщению могут быть добавлены следующие ограничения:

{complete} – означает, что в данном отношении определены все классы-потомки, и других у данного класса-предка быть не может;

{incomplete} – означает, что, напротив, указаны не все классы-потомки данного класса-предка;

{disjoint} – означает, классы-потомки не могут содержать объектов, одновременно являющихся экземплярами двух и более классов;

{overlapping} – означает, что, напротив, отдельные экземпляры классов-потомков могут принадлежать одновременно нескольким классам.

Отношение агрегации имеет место между классами в том случае, если один из классов представляет собой некоторую сущность, которая включает в себя в качестве составных частей другие сущности (иерархия вида «часть – целое»). Изображается в виде отрезка линии с не закрашенным ромбом со стороны класса-контейнера (рис. 21).

 

Рисунок 21 – Пример отношения агрегации

 

Отношение композиции представляет собой частный случай агрегации, при котором составные части не могут существовать в отрыве от целого. Изображается в виде отрезка линии с закрашенным ромбом со стороны класса-контейнера (рис. 22).

 

Рисунок 22 – Пример отношения композиции

 

Отношение зависимости используется в случае наличия особых отношений между элементами, которые нельзя точно отнести ни к одному из вышеперечисленных. Изображается в виде пунктирной линии со стрелкой.

Интерфейс является особым случаем класса, у которого имеются только операции и отсутствуют атрибуты. Для изображения интерфейса используется стереотип <<interface>> или специальный графический символ – окружность.

На рис. 23 представлена диаграмма классов системы управления банкоматом из [2]. У ряда классов указаны их стереотипы: «Устройство чтения», «Экран банкомата», «Принтер банкомата» и «Устройство выдачи наличных» – <<boundary>>, «Контроллер банка» – <<interface>>, «Контроллер банкомата» – <<control>>.

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

 

Рисунок 23 – Диаграмма классов

Рисунок 24 – Упрощенная диаграмма классов

Рисунок 25 – Диаграмма конкретизации классов

 

На рис. 26 представлена диаграмма классов простейшей информационной системы. Здесь имеется два класса актеров – «Пользователь» и «Администратор», управляющий (<<control>>) класс «Программа» и два класса для работы с данными – «База данных» и «Отчет».

 

Рисунок 26 – Диаграмма классов для модели простейшей

Информационной системы

 



Поделиться:


Последнее изменение этой страницы: 2017-02-10; просмотров: 193; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.144.86.138 (0.025 с.)