Понятие объектной декомпозиции
Объектная декомпозиция
Объектной декомпозицией называют процесс представления предметной области задачи в виде совокупности функциональных элементов – объектов, обменивающихся в процессе выполнения программы входными воздействиями – сообщениями.
Каждый выделяемый объект предметной области должен уметь выполнять некоторые действия, зависящие от полученных сообщений и параметров самого объекта.
Совокупность значений параметров объекта называют его состоянием, а совокупность реакций на получаемые сообщения – поведением. Параметры состояния и элементы поведения объектов определяются условием задачи.
В процессе решения задачи объект, получив некоторое сообщение, выполняет заранее определенные действия, например, может изменить собственное состояние, выполнить некоторые вычисления, нарисовать окно или график и, в свою очередь, сформировать сообщения другим объектам. Таким образом, процессом решения задачи управляет последовательность сообщений. Передавая эти сообщения от объекта к объекту, система выполняет необходимые действия.
Различие процедурной и объектной декомпозиции предметной области задачи рассмотрим на примере разработки программы исследования элементарных функций, приведенной в примере 4.
Пример 5. Разработать программу исследования элементарных функций, которая для функций y=sin x, y=cos x, y=tg x, y=ln x, y=ex выполняет следующие действия на заданном отрезке:
· строит таблицу значений функции с заданным шагом;
· определяет корни функции;
· определяет максимум и минимум функции.
В основе объектной декомпозиции также лежит граф состояний интерфейса (см. рисунки 6–7). Будем считать, что каждое состояние интерфейса – это состояние некоторого функционального элемента системы, т. е. объекта. Состояний интерфейса пять, соответственно получаем пять объектов. Назовем эти объекты следующим образом: Главное меню, Меню операций, Табулятор, Определитель корней, Определитель экстремумов. Эти объекты передают управление друг другу, генерируя сообщение Активизировать.
Кроме этого можно выделить еще один объект Функция, который должен обеспечивать вычисление выбранной функции по заданному аргументу. Номер функции сообщается данному объекту Главным меню, после того, как пользователь осуществит выбор.
Результат объектной декомпозиции изображают в виде диаграммы объектов (см. рисунок 6).
Рисунок 9 - Диаграмма объектов
Согласно определению схемы структурной, как схемы, отражающей состав программного обеспечения и взаимодействие по управлению его частей, диаграмма объектов является также схемой структурной сравнительно небольшой программы при объектной декомпозиции. Для сложных программных систем схема структурная отражает взаимодействие между более сложными частями программы – подсистемами, и обычно выглядит так же, как при структурной декомпозиции.
Полная характеристика объекта включает идентифицирующее условное имя, а также перечень и описание параметров состояния и аспектов поведения.
Так состояние объекта Функция характеризуется единственным параметром: номером функции, который передает ему Главное меню. А поведение включает реакции на два типа сообщений: получив номер функции, объект должен сохранить его, изменив свое состояние, а получив запрос на вычисление значения функции, сопровождающийся определенным значением аргумента – вернуть значение функции в заданной точке.
Таким образом, при выполнении объектной декомпозиции определяют и описывают множество объектов предметной области и множество сообщений, которое формирует и получает каждый объект.