Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ООП Лекция!2.doc
Скачиваний:
7
Добавлен:
26.09.2019
Размер:
256 Кб
Скачать

Объектная декомпозиция.

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

Объектная декомпозиция – процесс представления предметной области задачи в виде совокупности объектов, обменивающихся сообщениями.

Черновой план процесса объектной декомпозиции:

  • Выделить классы и объекты

  • Определить, что они означают

  • Выявить связь между классами и объектами

  • Описать интерфейс и реализацию

Пример. Простейший графический редактор

  • Рисование круга и квадрата

  • Возможность изменения цвета, размера и координат центра.

активизировать

Круг  (нарисовать) управляющий блок  (нарисовать) квадрат

(изменить цвет) (изменить цвет)

(изменить размер) (изменить размер)

( Изменить координаты) (изменить координаты)

Пример. Адресная книга

Требуется написать программу, в которой можно:

  • Открывать адресную книгу

  • Добавлять записи о контактах

  • Вести поиск записей

Составим диаграмму состояний интерфейса

Овал 2 Группа 5

Прямая со стрелкой 15 Прямая со стрелкой 16

Прямая со стрелкой 30 Меню

Прямая со стрелкой 19 Прямая со стрелкой 20 Прямая со стрелкой 26

Прямая со стрелкой 17 Прямая со стрелкой 29

Режим открытия книги режим добавления записей режим поиска записей

Прямая со стрелкой 18 Прямая со стрелкой 27

«некорректное имя файла» нет информации о контакте

Диаграмма объектов

Прямая со стрелкой 6 Активизировать

Прямая со стрелкой 11 Прямая со стрелкой 13 Меню

Прямая со стрелкой 12

Активизировать активизировать активизировать

Форма открытия файла форма «добавления записей» Форма «поиск записей»

Прямая со стрелкой 7 Прямая со стрелкой 8 Прямая со стрелкой 9 Прямая со стрелкой 10 Прямая со стрелкой 14

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

Активизировать Активизировать

Сообщение «некорректное имя файла» Файл Сообщение «нет информации о контакте»

Объектная декомпозиция может быть многоуровневой.

Пример. Объектная декомпозиция меню, форма, файл.

Пример: Фермер

Управление

Прямая соединительная линия 22

Прямая соединительная линия 23 Прямая соединительная линия 25 Фермер

Прямая соединительная линия 24

Корова 3 Овца 3 курица 3

Корова 2 Овца 2 курица 2

Корова 1 Овца 1 курица 3

Алгоритм построения диаграммы классов:

  • Составить варианты использования

  • Выделить понятия-кандидаты на роль классов

  • Определить, какие из кандидатов действительно являются классами

  • Описать взаимосвязи классов

  • Установить атрибуты классов.

Варианты использования:

Для определения понятий-кандидатов на роли классов составляют варианты использования – описания того, каким образом разрабатываемая система может применятся пользователем.

Понятие-кандидат не подходит на роль класса, если:

  • Понятию соответствуют единственное число, переменная или простая структура в программе

  • Понятие строго соответствует более сложному понятию, например, входя в его состав.

В этом случае понятие скорее всего является атрибутом другого класса.

Пример:

  • понятие «возраст» описывается одной переменной и является атрибутом класса «студент»

  • Можно ли понять «дисциплина» назначить атрибутом класса преподаватель? (в целом может быть отдельным классом))

Обозначение классов:

Основным элементом диаграммы классов являются классы:

имя класса

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

Методы

Типы связей между классами:

  • Ассоциация

  • Обобщение (наследие)

  • Агрегация (композиция)

  • Использование

Ассоциация

  • Означает наличие сематической связи между 2мя классами.

  • Остальные отношения уточняют тип связи

  • Ассоциации могут иметь имя и направление, объектом ассоциации могут быть составлены роли.

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

  • Обозначения

*

От 0 до бесконечности

<целое>..*

От заданного числа до бесконечности

<целое>

Точно определенное количество объектов

<целое1>, <целое2>

Несколько вариантов точного количества

<целое1>..<целое2>

Диапазон объектов

Обобщение (наследование)

  • Обобщение - это отношение между понятиями вида «общее-частное»

  • Обобщающее понятие называется супертипом (родителем, предком)

Агрегация (композиция)

  • Агрегация – отношение между понятиями вида «целое-часть» (факультет кафедра)

Использование

  • Использование – отношение между понятиями вида «клиент-сервер» (студент 0---- отдел кадров)

Пример графический редактор

Пример разработки диаграммы классов

Графический редактор

Понятия-кандидаты на роль классов: фигура, меню, круг, квадрат, цвет, размер, координаты центра.

ФПрямоугольник 31 игура

Прямая соединительная линия 32

Центр

Размер

Координаты

Прямая со стрелкой 34

Круг квадрат

Пример адресная книга

Варианты использования:

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

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

Понятия-кандидаты: шаблон записей, шаблон поиска, шаблон имени файла, запись, файл, имя файла и тд.

МСоединительная линия уступом 35 Соединительная линия уступом 36 Прямая соединительная линия 37 еню

Вызывает Вызывает Вызывает

Шаблон ввода имени файла шаблон добавления шаблон голоса

Прямая соединительная линия 38 Добавляет запись

Запись

Файл

Имя файла

Сообщение

Текст

Пример калькулятор

Пример разработки диаграммы классов

Калькулятор:

  • Составить варианты использования

  • Выделить кандидатов на роль классов

  • Определить какие из кандидатов действительно являются классами

  • Описать взаимосвязи классов

  • Установить атрибуты классов

(ДЗ!!!)