2.8. Объектно-ориентированный подход к проектированию ПО

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

Концептуальной основой объектно-ориентированного подхода является объектная модель, построенная на основных принципах:

- иерархия (hierarchy);

- абстрагирование (abstraction);

- инкапсуляция (encapsulation);

- модульность (modularity).

Кроме основных используются еще три дополнительных, не являющихся в отличие от основных строго обязательными:

- типизация (typing);

- параллелизм (concurrency);

- устойчивость (persistence).

Первые три основных принципа подробно рассмотрены в первой главе пособия, поэтому поясним остальные:

- модульность – это свойство системы, связанное с возможностью ее декомпозиции на слабо связанные между собой модули;

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

- параллелизм – свойство объектов находиться в активном или пассивном состоянии и различать активные и пассивные объекты между собой;

- устойчивость – свойство объекта существовать во времени (вне зависимости от процесса, породившего данный объект) и/или в пространстве (при перемещении объекта из адресного пространства, в котором он был создан).

Основные понятия ООП – объект и класс.

Объект определяется как осязаемая реальность (tangible entity) – предмет или явление, имеющее четко определяемое поведение. Объект обладает состоянием, поведением и индивидуальностью; структура и поведение схожих объектов определяют общий для них класс. Состояние объекта характеризуется перечнем всех возможных (статических) свойств данного объекта и текущими значениями (динамическими) каждого из этих свойств. Поведение характеризует воздействие объекта на другие объекты и, наоборот, относительно изменения состояния этих объектов и передачи сообщений. Иначе говоря, поведение объекта полностью определяется его действиями. Индивидуальность – это свойство объекта, отличающее его от всех других объектов.

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

Класс – это множество объектов, связанных общностью структуры и поведения. Любой объект является экземпляром класса. Определение классов и объектов – одна из самых сложных задач ООП.

Большинство существующих методов объектно-ориентированного анализа и проектирования включают как язык моделирования, так и описание процесса моделирова

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