Объектно-ориентированный подход использует объектную декомпозицию, при этом статическая структура системы описывается в терминах объектов и связей между ними, а поведение системы описывается в терминах обмена сообщениями между объектами. Каждый объект системы обладает своим собственным поведением, моделирующим поведение объекта реального мира. Модель предметной области рассматривается как совокупность взаимодействующих объектов во времени. Конкретные процессы обработки данных формулируются в виде последовательности взаимодействия объектов. Конкретным результатом ООП является множество классов объектов и методов обработки.
Наиболее значительный вклад в объектный подход был внесен объектными и объектно-ориентированными языками программирования: Simula, Smalltalk, C++, Object Pascal. На объектный подход оказали влияние также развивавшиеся достаточно независимо методы моделирования БД, в особенности подход «сущность-связь».
Концептуальной основой объектно-ориентированного подхода является объектная модель. Основными ее элементами являются: абстрагирование, инкапсуляция, модульность, иерархия. Кроме основных имеются еще три дополнительных элемента, не являющихся строго обязательными: типизация, параллелизм, устойчивость.
Абстрагирование — это выделение существенных характеристик некоторого объекта, которые отличают его от всех других видов объектов.
Инкапсуляция — это процесс отделения друг от друга отдельных элементов объекта, определяющих его устройство и поведение.
Модульность — это свойство системы, связанное с возможностью ее декомпозиции на ряд внутренне связных, но слабо связанных между собой модулей.
Иерархия — это ранжированная или упорядоченная система абстракций, расположение их по уровням.
Типизация — это ограничение, накладываемое на класс объектов и препятствующее взаимозаменяемости различных классов
Параллелизм — свойство объектов находиться в активном или пассивном состоянии и различать активные и пассивные объекты между собой.
Устойчивость — свойство объекта существовать во времени и/или в пространстве.
Следующую группу важных понятий составляют наследование и полиморфизм. Полиморфизм — способность класса принадлежать более чем одному типу. Наследование — построение новых классов на основе существующих с возможностью добавления или переопределения данных и методов.
В ООП создается система объектно-ориентированных моделей, начиная с модели общего представления функциональности и кончая моделями динамического взаимодействия объектов, на основе которых может быть сгенерированы классы объектов в конкретной программной среде.
Основными понятиями объектно-ориентированного подхода являются объект и класс. Объекты, обладающие тремя свойствами (состояние, поведение, идентичность), образуют системы с естественным поведением. Объекты в ИС моделируют реальные «сущности» с помощью поведенческих свойств или операций. Объект определяется как осязаемая реальность — предмет или явление, имеющие четко определяемое поведение. Объект обладает состоянием, поведением и индивидуальностью (идентичностью). Структура и поведение схожих объектов определяют общий для них класс. Определенное воздействие одного объекта на другой с целью вызвать соответствующую реакцию называется операцией (методом).
Класс — это множество объектов, связанных общностью структуры и поведения. Любой объект является экземпляром класса.
Язык моделирования — это нотация, которая используется методом для описания проектов. Нотация представляет собой совокупность графических объектов, которые используются в моделях. Это язык для определения, представления, проектирования и документирования программных систем, организационно-экономических, технических и др. UML содержит стандартный набор диаграмм и нотаций самых разнообразных видов.
Система объектно-ориентированных моделей в соответствии с нотациями UML включает в себя следующие диаграммы:
диаграмму прецедентов использования, которая отображает функциональность ЭИС в виде совокупности выполняющихся последовательностей транзакций, которые должны выполняться целиком, когда выполнение обособленного подмножества действий не имеет значения без выполнения всей последовательности;
диаграмму классов объектов, которая отображает структуру совокупности взаимосвязанных классов объектов аналогично ER-диаграмме функционально-ориентированного подхода, а также рассматривает внутреннюю структуру проблемной области, иерархию классов объектов, статические связи объектов;
диаграммы состояний, каждая из которых отображает динамику состояний объектов одного класса и связанных с ними событий и определяет:
какие типичные состояния проходит объект;
какие события ведут к изменению состояния объекта;
какие действия объект выполняет, когда он получает сообщение об изменении состояния;
какие объекты создаются и уничтожаются (входные и выходные точки диаграммы);
диаграммы взаимодействия объектов, каждая из которых отображает динамическое взаимодействие объектов в рамках одного прецедента использования. Для каждого прецедента использования может быть построена модель динамического взаимодействия объектов, которая представляется в одной из форм:
в форме диаграммы последовательностей, показывающей последовательность взаимодействия на графе;
в форме кооперативной диаграммы, показывающей взаимодействие объектов в табличной форме;
диаграммы деятельностей, которые отображают потоки работ во взаимосвязанных прецедентах использования (могут декомпозироваться на более детальные диаграммы);
диаграммы пакетов, которые отображают распределение объектов по функциональным или обеспечивающим подсистемам (могут декомпозироваться на более детальные диаграммы);
диаграмму компонентов, которая отображает физические модули программного кода;
диаграмму размещения, которая отображает распределение объектов по узлам вычислительной сети.