Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ООП_Лекции 2010.doc
Скачиваний:
69
Добавлен:
17.03.2015
Размер:
954.37 Кб
Скачать
      1. Диаграмма объектов предметной области программы «Записная книжка»

Полученный вариант объектной декомпозиции (диаграмма объектов предметной области) проектируемой системы представлен на Рис. 1.7..

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

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

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

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

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

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

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

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

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

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

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

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

  1. Обозначение класса: а - упрощенное; б - с уточнением атрибутов

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

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

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

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

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

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

      1. Обозначение ассоциации: а - с указанием имени ассоциации и ее направления; б - с указанием имен ролей; в - с указанием множественности

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

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

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

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

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

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

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

  1. Обозначение обобщения

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

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

Разработку вариантов использования и контекстных диаграмм классов выполним для Простейшего графического редактора (см. 1.1Пример 4.1) и программы «Записная книжка» (см. 1.1Пример 5.1), рассмотренных ранее.

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

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

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

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

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

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

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

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

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

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

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

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

Название варианта

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

Цель

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

Действующие лица

Пользователь

Краткое описание

Заполнение пользователем шаблона записей и добавление их к файлу

Тип варианта

Основной

Название варианта

Поиск записей

Цель

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

Действующие лица

Пользователь

Краткое описание

Заполнение пользователем шаблона поиска и просмотр найденных записей.

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

Тип варианта

Основной

Название варианта

Ввод имени файла

Цель

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

Действующие лица

Пользователь

Краткое описание

Заполнение пользователем шаблона имени файла и открытие нужного файла.

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

Тип варианта

Дополнительный

Название варианта

Работа с меню

Цель

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

Действующие лица

Пользователь

Краткое описание

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

Тип варианта

Вспомогательный

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

меню, шаблон имени файла, шаблон ввода, шаблон поиска, запись, файл, имя файла, сообщение об отсутствии информации, сообщение о недопустимом имени файла.

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

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

Запись - более простое понятие, которое не обязательно рассматривать как объект. Имя файла - простое понятие, значение которого неразрывно связано с файлом, поэтому будем считать его атрибутом объекта Файл.

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