Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курс лекций_САПР.doc
Скачиваний:
79
Добавлен:
10.11.2019
Размер:
1.06 Mб
Скачать

5.3 Объектно-ориентированные методы анализа

Важное место в разработках АС занимают объектно-ориенти­рованные методологии, основанные на объектной декомпозиции предметной области, представляемой в виде совокупности объек­тов, взаимодействующих между собой посредством передачи сообщений. Данный подход не является противопоставлением структур­ному подходу, более того, фрагменты методологий структурного анализа (а именно его базовые модели: DFD, ERD и STD) исполь­зуются при объектно-ориентированном анализе для моделирования структуры и поведения самих объектов.

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

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

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

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

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

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

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

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

  • динамической модели, отражающей временные аспекты и пос­ледовательность операций (при этом достаточно часто исполь­зуется STD);

  • функциональной модели, описывающей потоки данных (с использованием DFD).

Главными недостатками перечисленных объектно-ориентирован­ных методологий являются следующие:

  • отсутствие стандартизации в рассматриваемой области про­граммотехники (конкретно, для представления объектов и взаимосвязей между ними);

  • отсутствие метода, одинаково хорошо реализующего этапы анализа требований и проектирования (большинство методов предназначено для объектно-ориентированного анализа, не­которые содержат слабо развитые средства проектирования).

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

В UML используются следующие ключевые диаграммы:

  • диаграмма классов, демонстрирующая статическую структуру системы, ее содержимое – классы, объекты и отношения между ними;

  • диаграмма прецедентов, моделирующая набор действующих субъектов и прецедентов использования, с помо­щью которых они взаимодействуют;

  • диаграмма взаимодействий, обеспечивающая возможность моделирования условий в диаграммах последовательности и коллективного взаимодействия, которые представляют объекты и межобъектные взаимодействия в измерениях времени и от­ ношений, соответственно;

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

  • диаграмма компонентов, описывающая модули системы, в ко­торых определены классы;

  • диаграмма применения (развертывания), моделирующая схе­му расположения процессоров и устройств, задействованных в реализации системы, а также маршрутов передачи инфор­мации между ними.

При этом первые четыре диаграммы являются логическими пред­ставлениями разрабатываемой системы, а последние две — отража­ют ее физическое представление.