Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OOAiPIS_Ok.doc
Скачиваний:
457
Добавлен:
07.06.2015
Размер:
2.62 Mб
Скачать

Банкомата

Простейшая информационная система – программа для обработки какой-либо информации – может иметь двух актеров (обычного пользователя и администратора) и два базовых варианта использования («Ввод и модификация данных» и «Обработка данных»). Кроме того, возможны дополнительные сервисы – «Проверка имени и пароля» (используется постоянно для отличия простого пользователя от администратора, поэтому связано отношением включения) и «Формирование отчета» (используется пользователем при необходимости, поэтому связано отношением расширения). Полученная диаграмма представлена на рис. 15.

Рисунок 15 – Диаграмма вариантов использования для модели

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

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

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

2.3.1 Диаграмма классов (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 – Пример отношения обобщения

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]