Объектно-ориентированные технологии проектирования прикладных программных систем

         

Глава 4.4. Методология OSA



4.4. Методология OSA

Методология OSA (Object-Oriented System Analysis) обеспечивает объектно-ориентированный анализ программных систем и не содержит возможностей, связанных с поддержкой этапа разработки.

Методологии объектно-ориентированного анализа нередко критикуются за то, что они являются больше реализационно-ориентированными, чем проблемно-ориентированными, обеспечивая больше предварительную разработку, чем анализ требований к системе. Действительно, все рассмотренные методологии (такие, как OMT, SA/SD, JSD) поддерживают прежде всего предварительную разработку программных систем, а не анализ требований к ним. Это следует из таблиц 4.1 и 4.2, в которых рассмотрены возможности различных методологий, поддерживающие процесс анализа (таблица 4.1) и процесс разработки (таблица 4.2).

Таблица 4.1. Аналитические возможности сравниваемых методологий объектно-ориентированного анализа

Возможность OSA OMT SA/SD JSD
Объекты: должны иметь индивидуальное и независимое состояние и поведение++++
Классы объектов: должны определять свойства своих членов и должны иметь место в памяти++++
Множества связей: множества соединений объектов++++
Реляционные классы объектов: рассматривают связи как объекты++-+
Полностью интегрированные подмодели: допускают произвольную интеграцию подмоделей анализа; знак "-" в таблице означает, что подмодели, представленные, например, блок-схемами, не могут комбинироваться с другими видами подмоделей (например, моделями поведения)+--+
Агрегация: часто используемый механизм абстракции, который представляет взаимосвязи между системами и их частями++++
Обобщение/наследование: механизм абстракции: если A есть специализация B, то свойства A подразумевают свойства B++-+
Полномасштабные ограничения мощности связей: допускают мощности связей, являющихся произвольными множествами неотрицательных целых чисел (не только 1-1, 1-M, M-1, M-M)+---
Синонимы и омонимы: допускают несколько имен для одной конструкции и многократное использование одного имени для различных конструкций; полезно при интеграции моделей+---
Полная система триггеров: допускаются только условия, только события, или комбинации условий и событий++--
Действия: описывают поведение, которое завершается++++
Недетерминированное поведение: описание поведения, которое при отсутствии внешних воздействий может и не завершиться++--
Межобъектный параллелизм: более одного объекта могут быть активными одновременно++++
Внутриобъектный параллелизм: в одном объекте допускается одновременное активное существование двух или более трэдов++--
Исключения: допускается обнаружение и обработка условий ошибок+---
Временные ограничения: обеспечивают средства ограничения времени на какое-либо действие+-++
Темпоральные условия: поддерживают возможность формулировать условия, ссылающиеся на события в прошлом, настоящем и будущем+---
Метамодель: определяет правильный экземпляр модели+---
Родовой класс: параметризация классов - механизм абстракции, помогающий осуществлять анализ, хотя иногда его считают особенностью языка----
Взаимодействие данных и событий: обеспечивает возможность объектам посылать и принимать данные и события+++-
Унифицированные взаимодействия: разрешают взаимодействие и по данным, и по событиям одновременно; многие модели разделяют взаимодействия по данным (поток данных) и по событиям+---
Детализация взаимодействий: показывает когда и почему объект взаимодействует с другими объектами+---
Непрерывные взаимодействия: допускает непрерывный поток информации+---
Взаимодействия по бродкастингу: разрешает иметь много приемников для одной передачи данных или события; бродкастинг разрешен только для данных, но не для событий+---
Общее число аналитических возможностей 29 13 8 9

Таблица 4.2.Возможности сравниваемых методов объектно-ориентированного анализа, используемые на этапе разработки системы

Возможность OSA OMT SA/SD JSD
Значения: имеют состояние, но не имеют поведения и индивидуальности; хотя значения можно считать постоянными объектами, во многих подходах существует различие между пространствами значений и объектов-+++
Атрибуты и/или методы: определяют классы объектов в терминах атрибутов и/или методов, аналогично тому, как классы объектов определяются в объектно-ориентированных языках-+++
Шаблоны классов объектов: шаблоны, по которым создаются экземпляры классов объектов, что подразумевает, что свойства экземпляра объекта определяет класс, а не свойства объекта определяют его класс-+-+
Абстрактные классы: шаблоны, которые определяют свойства, но не разрешают создавать экземпляры-+++
Псевдонаследование: разрешает, чтобы атрибуты и сигнатуры методов подкласса совпадали с атрибутами и сигнатурами методов суперкласса-+++
Тождественность по значениям: множества атрибутов (их обычно называют возможными ключами), используемые для определения тождественности объектов-++-
Изменение семантики: разрешает переопределять в подклассе семантику методов суперкласса-++-
Императивный вызов операций: позволяет вызов метода в отношении клиент-сервер---+
Общее число возможностей по разработке 0 7 6 6

Методология OSA сосредоточена только на проблемах анализа, предлагая ряд интересных соображений, связанных с объектно-ориентированным анализом систем и специально исключая из рассмотрения особенности, характерные для разработки. Предлагая удобные и тонкие методы анализа систем, методология OSA обеспечивает интерпретацию моделей на компьютере на самых ранних этапах анализа системы: OSA реализована в системе программирования C++ на рабочей станции Hewlett-Packard 700 под управлением ОС HP-UX 9.01.

Методология OSA, как и другие методологии, поддерживает три взаимно-ортогональных представления (модели) проектируемой системы:

  • модель зависимостей между объектами;
  • модель поведения объектов;
  • модель взаимодействия объектов.

Модель зависимостей между объектами аналогична объектной модели методологии OMT. В ней рассматриваются объекты, множества отношений между объектами и различные ограничения. Для ее представления используются диаграммы, которые, как видно из рисунке 4.1, очень похожи на диаграммы для представления объектной модели методологии OMT.



Содержание раздела