Объектно-ориентированный подход использует объектную декомпозицию, при этом статическая структура системы описывается в терминах обмена сообщениями между объектами /6/. Каждый объект системы обладает своим собственным поведением, моделирующим поведение реального мира.
Концептуальной основой объектно-ориентированного подхода является объектная модель, построенная на основных принципах:
- иерархия (hierarchy);
- абстрагирование (abstraction);
- инкапсуляция (encapsulation);
- модульность (modularity).
Кроме основных используются еще три дополнительных, не являющихся в отличие от основных строго обязательными:
- типизация (typing);
- параллелизм (concurrency);
- устойчивость (persistence).
Первые три основных принципа подробно рассмотрены в первой главе пособия, поэтому поясним остальные:
- модульность – это свойство системы, связанное с возможностью ее декомпозиции на слабо связанные между собой модули;
- типизация – это ограничение, накладываемое на класс объектов и препятствующее взаимозаменяемости различных классов. Типизация позволяет запретить использование объектов одного класса вместо другого или по крайней мере управлять таким использованием;
- параллелизм – свойство объектов находиться в активном или пассивном состоянии и различать активные и пассивные объекты между собой;
- устойчивость – свойство объекта существовать во времени (вне зависимости от процесса, породившего данный объект) и/или в пространстве (при перемещении объекта из адресного пространства, в котором он был создан).
Основные понятия ООП – объект и класс.
Объект определяется как осязаемая реальность (tangible entity) – предмет или явление, имеющее четко определяемое поведение. Объект обладает состоянием, поведением и индивидуальностью; структура и поведение схожих объектов определяют общий для них класс. Состояние объекта характеризуется перечнем всех возможных (статических) свойств данного объекта и текущими значениями (динамическими) каждого из этих свойств. Поведение характеризует воздействие объекта на другие объекты и, наоборот, относительно изменения состояния этих объектов и передачи сообщений. Иначе говоря, поведение объекта полностью определяется его действиями. Индивидуальность – это свойство объекта, отличающее его от всех других объектов.
Определенное воздействие одного объекта на другой с целью вызвать соответствующую реакцию называют операцией. Как правило, в объектных и объектно-ориентированных языках операции, выполняемые над данным объектом, называют методами и являются составной частью определения класса.
Класс – это множество объектов, связанных общностью структуры и поведения. Любой объект является экземпляром класса. Определение классов и объектов – одна из самых сложных задач ООП.
Большинство существующих методов объектно-ориентированного анализа и проектирования включают как язык моделирования, так и описание процесса моделирова
ния. Язык моделирования – это нотация (в основном графическая), которая используется методом для описания проектов. Нотация представляет собой совокупность графических объектов, которые используются в моделях; она является синтаксисом языка моделирования.