Объектно-ориентированное проектирование КИС

Структурная декомпозиция ИС на основе объектно-ориентированного подхода отличается от функционально-ориентированного подхода лучшей способностью отражать динамическое поведение системы в зависимости от возникающих событий.

В этом плане модель предметной области рассматривается как совокупность взаимодействующих во времени объектов.

Конкретный процесс обработки информации формируется в виде последовательности взаимодействия объектов.

Одна операция обработки данных может рассматриваться как результат одного взаимодействия объектов.

Конечным результатом процесса объектно-ориентированного проектирования является множество классов объектов с присоединенными методами обработки атрибутов.

В функциональном подходе модели процессов (функций, операций) и данных разрабатываются относительно независимо друг от друга. Они только координируются между собой.

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

Поэтому система объектно-ориентированных моделей последовательно разворачивается от модели общего представления функциональности ИС к модели динамического взаимодействия объектов. На основе этой модели могут быть сгенерированы классы объектов в конкретной программно-технической среде.

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

При этом иерархический характер сложной системы отражается с использованием иерархии классов, а ее функционирование рассматривается как взаимодействие объектов.

Этот подход не является противопоставлением структурному подходу. Более того, фрагменты методологий структурного анализа, а именно базовые модели DFD, ERD и STD используются при объектно-ориентированном анализе для моделирования структуры и поведения самих объектов.

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

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

Каждый объект является представителем некоторого класса однотипных объектов, который определяет их свойства.

Все представители одного и того же класса имеют один и тот же набор операций и могут реагировать на одни и те же сообщения.

Объекты и классы организуются с использованием следующих принципов:

1. Принцип инкапсуляции (упрятывания информации), который декларирует запрещение любого доступа к атрибутам объекта, кроме как через его операции. В соответствии с этим принципом внутренняя структура объекта скрыта от пользователя, а любое его действие инициируется внешним сообщением, которое вызывает выполнение соответствующей операции.

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

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

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

· Объектные модели, которые отражают иерархию классов, связанных общностью структуры и поведения и отражающих специфику атрибутов и операций каждого из них. При этом одной из базовых нотаций объектной модели является ERD;

· Динамической модели, которая отражает временные аспекты и последовательность операций. При этом достаточно часто используется STD;

· Функциональной модели, которая описывает потоки данных с использованием DFD.

 

В настоящее время для объектно-ориентированного моделирования проблемной области широко используется унифицированный язык моделирования UML (Unified Modeling Language), который фактически является стандартом по объектно-ориентированным технологиям.

Язык UML реализован многими фирмами - производителями программного обеспечения в рамках CASE-технологий, например Rational Rose (Rational), Natural Engineering Workbench (Software AG), ARIS Toolset (IDS prof. Scheer) и др.

 

Система объектно-ориентированных моделей в соответствии с нотациями языка UML включает в себя следующие диаграммы:

1. диаграмма прецедентов использования (Use-case diagram), которая отражает функциональность ИС в виде совокупности выполняющихся последовательностей транзакций. Прецеденты использования инициируются из внешней среды пользователями ИС, называемыми актерами. На этом уровне моделирования не раскрывается механизм реализации процессов.

2. диаграмму классов объектов (Class diagram), которая отражает структуру совокупности взаимосвязанных классов объектов аналогично ER-диаграмме функционально-ориентированного подхода. Диаграмма классов объектов отображает статическую структуру классов объектов. Эта диаграмма рассматривает внутреннюю структуру проблемной области, иерархию классов объектов, статические связи объектов. Объекты, отражаемые в диаграмме классов объектов, связываются статическими отношениями, которые отражают постоянные связи между объектами независимо от выполнения конкретного бизнес-процесса.

3. диаграммы состояний (Statechart diagram). Каждая из диаграмм отображает динамику состояний объектов одного класса, связь состояний объектов с событиями и определяет:

· какие типовые состояния проходит объект;

· какие события ведут к изменению состояния объекта;

· какие действия объект выполняет, когда он получает сообщение об изменении состояния;

· как объекты создаются и уничтожаются (входные и выходные точки диаграммы).

4. диаграммы взаимодействия объектов (Integration diagram). Для каждого прецедента использования может быть построена модель динамического взаимодействия объектов, которая представляется в одной из двух форм:

· в форме диаграмм последовательностей (sequence diagram) показывающей последовательность взаимодействий на графе;

· в форме кооперативной диаграммы (collaboration diagram), показывающей взаимодействие объектов в табличной форме.

5. диаграммы деятельностей (Activity diagram). Диаграмма взаимодействий не отражает детально порядок выполнения операций в части разветвлений, циклических повторений, параллельности/произвольности действий. Диаграмма деятельностей исправляет этот недостаток. Под деятельностью понимается некоторая работа, которая может быть декомпозирована на совокупность действий. Диаграмма деятельностей может отражать взаимодействие объектов из нескольких прецедентов использования.

6. диаграммы пакетов (Package diagram). В объектно-ориентированном подходе пакет содержит множество взаимосвязанных классов объектов и соответствует понятию «подсистема функционально-ориентированного подхода. Один прецедент использования может требовать классы объектов из разных пакетов. Класс объектов обычно назначается одному пакету, но с позиции достижения разных подцелей может входить в состав разных пакетов. Обычно пакеты проблемной области содержат иерархии обобщения и агрегации. Классы объектов, требуемые в нескольких подсистемах, выделяются в самостоятельные пакеты. В одном пакете, как правило, определяется не более 20 компонентов. С обеспечивающей точки зрения информационную систему разбивают на пять основных пакетов: «Интерфейсы»; «Базы данных»; «Управление задачами»; «Утилиты»; обеспечивающие пакеты, т.е. работающие по принципу «клиент-серверной» архитектуры.

7. диаграммы компонентов (Component diagram). Диаграмма компонентов отображает зависимости программных компонентов, которые представляются в виде исходных, откомпилированных и исполняемых программных кодов объектов. Один компонент, как правило, соответствует программному коду одного пакета классов объектов. Компонент в своем составе имеет интерфейсный класс объектов, через который осуществляется доступ к остальным классам объектов компонента.

8. диаграммы размещения (Deployment diagram) отображают топологию расположения компонентов по узлам вычислительной сети. Отдельный компонент всегда располагается на одном компьютере-сервере. На одном компьютере-сервере может располагаться несколько компонентов.

Для технологической цепи проектирования на основе использования объектно-ориентированного подхода характерны последовательное расширение и уточнение моделей на различных стадиях жизненного цикла ИС:

- анализ системных требований;

- логическое проектирование;

- физическое проектирование;

- реализация.

(Эта технологическая цепь представляет собой обобщение методологий Objectory [Фаулер М., Скотт К. UML в кратком изложении: Применение стандартов языка объектного моделирования: Пер. с англ. – М.: МИР, 1999] Natural Engineering Workbench [Natural LightStorm. Concepts and Facilities. – Software AG, 1998].