ооп 4. Цикл разработки ПО с использованием ООП: анализ, проектирование, эволюция, модификация. Рабочие продукты объектно ориентированного анализа. - keykranz/oop_ex GitHub Wiki
Цикл разработки ПО с использованием ООП: анализ, проектирование, эволюция, модификация.
Этапы разработки ПП в структурном программировании:
- Анализ
- Проектирование
- Кодирование
- Тестирование
ООП направлено на то, чтобы в дальнейшем легко модифицировать программу. В ООП этапы:
- Этап анализа - построение модели задачи. Этап анализа проходит вместе с заказчиком. Анализ строится на основе физического мира.
- Требования к модели:
-
- Полная
-
- Понятная всем заинтересованным лицам
-
Этап проектирования. На современном уровне как правильно автоматизирован. Создаем проектные документы.
-
Этап эволюции. Эволюция = кодирование + тестирование + рекурсивный дизайн (от простого состояния системы развиваем до сложного).
Разница между эволюцией и модификацией:
- Эволюция - в рамках разработки продукта. До этапа сдачи продукта.
- Модификация - изменения, вносимые уже после сдачи продукта заказчику. Этапы эволюции и модификации выполняют разные люди.
Преимущества выделения этапа эволюции:
- Предоставляется обширная обратная связь
- Получаются разные версии системы - дает механизм отката и можно выпускать альтернативные версии продукта.
- Можно рассматривать каждую версию для демонстрации и обсуждения с заказчиком. Уже на начальных этапах есть результаты.
- Интерфейс разрабатывается отдельно от модели.
Какие изменения могут быть реализованы при эволюции:
- Добавление новых классов.
- Изменение реализации класса.
- Изменение представления класса.
- Реорганизация структуры класса.
- Самое страшное - изменение интерфейса базового класса. (До такой ситуации лучше не доводить)
- Модификация Модификация затрагивает анализ и затрагивает проектирование.
Рабочие продукты объектно-ориентированного анализа.
Когда мы проводим анализ, мы разрабатываем рабочие документы. Они лягут в основу проектных документов (на этапе проектирования).
Какие документы создаются при анализе:
- Для всей программы:
- 1.1. Схема доменов (разбиваем задачу на домены)
- 1.2. Проектная матрица (нужна для четкого оценивания на какой стадии разработки мы находимся)
- Для каждого домена: Если в домене больше 30-50ти классов, разбиваем домен на подсистемы. Разбиваем граф связности "по слоям" (по минимуму связей) - внутри подсистемы связей много, между подсистемами связей мало. (не подсистемы)
- 2.1. Модель связей подсистем ()
- 2.2. Модель доступа подсистем ()
- 2.3. Модель взаимодействия подсистем ()
- Для каждой подсистемы:
- 3.1. Информационная модель (диаграмма-сущность-связь)
-
- Описание классов и их атрибутов (членов данных)
-
- Описание связей
- 3.2. Модель (диаграмма) взаимодействия объектов
-
- Список событий в подсистеме
- 3.3. Модель доступа к объекту
- 3.4. Таблица процессов состояний
- Для каждого класса:
- 4.1. Модель состояний (диаграмма переходов состояний)
- 4.2. Алгоритм действий состояний
- Для каждого состояния:
- 5.1 Диаграмма потоков данных действий
- Для каждого действия:
- 6.1. Описание процессов
С чего начинать разработку проекта: разбили задачу на домены, рассматриваем прикладной домен (наш). Разработка прикладного домена начинается с информационного моделирования. Информационное моделирование начинаем всегда с физических объектов. Смотрим, какие объекты существуют. Пытаемся эти объекты сгруппировать по принципу одних и тех же характеристик. Выделяем, чем характеризуется объект - выделяем атрибуты объектов.