Важное место в разработках АСУП занимают объектно-ориентированные методологии, основанные на объектной декомпозиции предметной области, представляемой в виде совокупности объектов, взаимодействующих между собой посредством передачи сообщений. Данный подход не является противопоставлением структурному подходу, более того, фрагменты методологий структурного анализа (а именно его базовые модели: DFD, ERD и STD) используются при объектно-ориентированном анализе для моделирования структуры и поведения самих объектов.
В качестве объектов предметной области могут рассматриваться конкретные предметы, а также абстрактные или реальные сущности (например, клиент, заказ, предприятие и т. п.). Каждый объект характеризуется своим состоянием (точнее, набором атрибутов, значения которых определяют состояние), а также набором операций для проверки и изменения этого состояния. Каждый объект является представителем некоторого класса однотипных объектов, определяющего их общие свойства. Все представители (экземпляры) одного и того же класса имеют один и тот же набор операций и могут реагировать на одни и те же сообщения.
Объекты и классы организуются с использованием следующих принципов:
1. Принцип инкапсуляции (упрятывания информации) декларирует запрещение любого доступа к атрибутам объекта, кроме как через его операции. В соответствии с этим внутренняя структура объекта скрыта от пользователя, а любое его действие инициируется внешним сообщением, вызывающим выполнение соответствующей операции.
2. Принцип наследования декларирует создание новых классов от общего к частному. Такие новые классы сохраняют все свойства классов-родителей и при этом содержат дополнительные атрибуты и операции, характеризующие их специфику.
|
3. Принцип полиморфизма декларирует возможность работы с объектом без информации о конкретном классе, экземпляром которого он является. Каждый объект может выбирать операцию на основании типов данных, принимаемых в сообщении, т. е. реагировать индивидуально на это (одно и то же для различных объектов) сообщение.
Таким образом, объектно-ориентированный подход заключается в представлении моделируемой системы в виде совокупности классов и объектов предметной области. При этом иерархический характер сложной системы отражается с использованием иерархии классов, а ее функционирование рассматривается как взаимодействие объектов. Жизненный цикл такого подхода содержит этапы анализа требований, проектирования, эволюции (объединяющей программирование, тестирование и отладку, а также комплекса-цию системы) и модификации. При этом в отличие от каскадной модели отсутствует строгая последовательность выполнения перечисленных этапов.
Известные объектно-ориентированные методологии базируются на интегрированных моделях трех типов:
• объектной модели, отражающей иерархию классов, связанных общностью структуры и поведения и отражающих специфику атрибутов и операций каждого из них (при этом одной из базовых нотаций объектной модели является диалект ERD);
•динамической модели, отражающей временные аспекты и последовательность операций (при этом достаточно часто используется STD);
•функциональной модели, описывающей потоки данных (с использованием DFD).
|
В табл. 5 приведены оценки объемов продаж объектно-ориентированных методологий поданным International Data Corp. на 1995 г.
Главными недостатками перечисленных объектно-ориентированных методологий являются следующие:
• отсутствие стандартизации в рассматриваемой области программотехники (конкретно, для представления объектов и взаимосвязей между ними);
• отсутствие метода, одинаково хорошо реализующего этапы анализа требований и проектирования (большинство методов предназначено для объектно-ориентированного анализа, некоторые содержат слабо развитые средства проектирования, метод Booch ориентирован на проектирование). Для преодоления этих недостатков авторы известных методологий Буч (Booch), Рамбо (Rumbaugh) и Якобсон (Jacobson) объеди-
Таблица 5
Название методологии | Объем продаж, % |
Rumbaugh (OMT) | |
ShIaer—Mellor | |
Booch | |
Martin— Odell | |
другие |
нились с целью выработки унифицированной методологии, получившей название UML (Unified Modeling Language). При создании UML его авторы руководствовались целями ускорения эволюции наиболее популярных методологий в направлении сближения их друг с другом, обобщения накопленного опыта их использования, обеспечения стабильности проектов на основе единого целостного метода.
В UML используются следующие ключевые диаграммы:
•диаграмма классов, демонстрирующая статическую структуру системы, ее содержимое — классы, объекты и отношения между ними;
• диаграмма прецедентов, моделирующая набор действующих субъектов (акторов) и прецедентов использования, с помощью которых они взаимодействуют;
|
• диаграмма взаимодействий, обеспечивающая возможность моделирования условий в диаграммах последовательности и коллективного взаимодействия, которые представляют объекты и межобъектные взаимодействия в измерениях времени и отношений, соответственно;
•диаграмма состояний, моделирующая изменения (переходы) состояний вследствие взаимодействия конкретного объекта с другими объектами (т. е. в отличие от диаграммы взаимодействий описывает состояния только одного класса или объекта);
•диаграмма компонентов, описывающая модули системы, в которых определены классы;
•диаграмма применения (развертывания), моделирующая схему расположения процессоров и устройств, задействованных в реализации системы, а также маршрутов передачи информации между ними.
При этом первые четыре диаграммы являются логическими представлениями разрабатываемой системы, а последние две — отражают ее физическое представление.