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