Современные технологии создания программного обеспечения

       

Методы анализа и проектирования ПО


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

Все современные ТС ПО реализуют ту или иную методику анализа и проектирования ПО. Одна из типичных методик ООАП реализована в технологии RUP. Согласно этой методике, объектно-ориентированный анализ включает два вида деятельности: архитектурный анализ и анализ вариантов использования. Архитектурный анализ выполняется архитектором системы и включает в себя:

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

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

  • Граничные классы (Boundary) - служат посредниками при взаимодействии внешних объектов с системой. Типы граничных классов: пользовательский интерфейс (обмен информацией с пользователем, без деталей интерфейса - кнопок, списков, окон), системный интерфейс и аппаратный интерфейс (используемые протоколы, без деталей их реализации).
  • Классы-сущности (Entity) - представляют собой основные абстракции (понятия) разрабатываемой системы, рассматриваемые в рамках конкретного варианта использования.
  • Управляющие классы (Control) - обеспечивают координацию поведения объектов в системе. Примеры управляющих классов: менеджер транзакций, координатор ресурсов, обработчик ошибок.

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

    Наиболее важной частью объектно-ориентированного анализа является распределение обязанностей между классами (в виде операций классов). Оно выполняется с помощью диаграмм взаимодействия. При построении диаграмм взаимодействия возникают проблемы правильного распределения обязанностей между классами. Для их решения существует ряд образцов .

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

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

    Объектно-ориентированное проектирование включает два вида деятельности:

  • проектирование архитектуры системы;
  • проектирование элементов системы.


  • Проектирование архитектуры системы выполняется архитектором системы и включает в себя:

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


  • Проектирование элементов системы включает в себя:

  • проектирование классов (детализация классов, уточнение операций и атрибутов, моделирование состояний, уточнение связей между классами);
  • проектирование баз данных (в зависимости от типа используемой для хранения данных СУБД - объектной или реляционной).


  •                


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