Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ООП_Иванова_10_43.doc
Скачиваний:
8
Добавлен:
15.08.2019
Размер:
325.12 Кб
Скачать

Объектная декомпозиция сложных предметных областей.

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

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

В качестве кандидатов на роль программных объектов могут выступать:

  • физические и материальные объекты, например дом, самолет;

  • характеристики объектов, например, цвет, размер, стиль;

  • место действия, например, офис, аэропорт;

  • роль человека, например, покупатель, менеджер по продажам;

  • абстрактные понятия, например, графический образ;

  • организация, например, конкретная фирма;

  • событие, например, встреча, продажа;

  • совокупность записей, например, чек, книга учета и т.п.

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

Полученный перечень понятий-кандидатов на роль объектов предметной области анализируют, определяя:

  • целесообразность реализации понятия в виде объекта;

  • взаимосвязи понятий между собой.

При этом различают два типа связей: ассоциацию и обобщение.

Имя класса

Имя класса Атрибуты

а б

Рис. 1.13. Обозначение класса:

а – упрощенное; б – с уточнением атрибутов

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

Ассоциации могут иметь имя и направление, а объектам ассоциации могут быть сопоставлены роли. Например, в системе учета студентов некоторого института объекты Институт и Студент ассоциированы между собой. Если считать, что эта ассоциация направлена от Института к Студенту, то ее можно назвать “Обучает”, причем Институт при этом выступает в роли “Обучающая организация”, а Студент – в роли “Обучаемый” (рис. 1.14).

Институт Институт Институт

Место 1

Обучается обучения

▼ Обучаемый 12000

Студент Студент Студент

а б в

Рис. 1.14. Обозначение ассоциации:

а - с указанием имени ассоциации и ее направления; б – с указанием имен ролей;

в - с указанием множественности

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

*- от 0 до бесконечности;

<целое>.. * - от заданного числа до бесконечности;

<целое> - точно определенное количество объектов;

<целое 1>, <целое 2> - несколько вариантов точного количества объектов;

<целое 1>..<целое 2> - диапазон объектов.

Обобщением называют отношение между однотипными (имеющими общие признаки, но все же разными понятиями), при котором одно из понятий является обобщающим и включает в себя второе понятие. Такое обобщающее понятие называют супертипом. Так, понятие Студент и Студент-первокурсник имеют некоторые общие признаки. Любой студент первого курса может быть отнесен к категории Студент, но не любой студент является Студентом-первокурсником. Следовательно, понятие Студент является более общим, и его можно рассматривать как супертип для типа Студент-первокурсник. На рис. 1.15 показано условное обозначения на контекстной диаграмме классов.

Супертип

Тип

Рис. 1.15. Обозначение обобщения

В процессе анализа понятий-кандидатов учитывают, что некоторые понятия предметной области нецелесообразно реализовывать как программные объекты.

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

Разработку вариантов использования и контекстных диаграмм классов выполним для Простейшего графического редактора (см. пример 1.4) и программы “Записная книжка” (см. пример 1.5), рассмотренных ранее.

Пример 1.6. Контекстная диаграмма классов для простейшего графического редактора (вариант 2). Определим варианты использования, т.е. действия, которые пользователь будет осуществлять с помощью программы:

  • выбор изображаемой фигуры с использованием меню;

  • изображение фигуры;

  • изменение цвета контура;

  • изменение размера фигуры;

  • изменение координат центра фигуры.

Поскольку программа очень проста, сценарии вариантов использования можно не описывать. Множество понятий-кандидатов определим из отражающих содержание названий вариантов использования:

фигура, круг, квадрат, цвет, размер, координаты центра, меню.

На роль объектов претендуют понятия Фигура, Круг и Квадрат. Они сложнее понятий Цвет, Размер, Координаты центра, которые можно рассматривать как характеристики геометрических фигур, т.е. атрибуты объектов типа Фигура – понятие более общее, чем Круг и Квадрат. Следовательно, между ними просматривается отношение обобщения.

Меню – объект, через который программа будет осуществлять общение с пользователем. Используя этот объект, пользователь будет управлять Фигурами. Таким образом, между классами Фигура и Меню существует связь типа “ассоциация” с именем роли “Управляет” (рис. 1.16).

Пример 1.7. Разработка контекстной диаграммы классов программы “Записная книжка” (вариант 3). Для данного примера можно сразу определить два варианта использования: Добавление и Поиск записей. Соответственно необходимо обеспечить возможность выбора одного из этих вариантов, что предполагает наличие варианта использования Работа с меню. Кроме этого целесообразно предусмотреть возможность работы одной программы с несколькими файлами-книжками. Тогда необходим еще один вариант использования – Ввод имени файла. Опишем эти варианты.

◄ Управляет

Фигура Меню

Цвет

Размер

Координаты

Круг Квадрат

Рис. 1.16. Контекстная диаграмма классов простейшего графического редактора

Название варианта Добавление записей

Цель Формирование файла записей

Действующие лица Пользователь

Краткое описание Заполнение пользователем шаблона

записей и добавление их к файлу

Три варианта Основной

Название варианта Поиск записей

Цель Поиск записей в файле

Действующие лица Пользователь

Краткое описание Заполнение пользователем шаблона

поиска и просмотр найденных записей.

Должен предусматривать вывод сообщения

об отсутствии информации

Тип варианта Основной

Название варианта Ввод имени файла

Цель Настройка на нужный файл

Действующие лица Пользователь

Краткое описание Заполнение пользователем шаблона

имени файла и открытие нужного файла.

Должен предусматривать вывод сообщения

о недопустимом имени файла

Тип варианта Дополнительный

Название варианта Работа с меню

Цель Обеспечение возможности выбора операции

Действующие лица Пользователь

Краткое описание Выбор пользователем необходимой операции

из меню

Тип варианта Вспомогательный

Определяем список понятий – кандидатов на роли объектов:

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