Заключительные замечания к разделу
Цель анализа – обеспечить правильную постановку и адекватное понимание рассматриваемой прикладной задачи, помочь убедиться, что предварительно спроектированная прикладная система сможет удовлетворить заказчика. Хороший анализ охватывает все существенные особенности задачи, не внося каких-либо реализационных особенностей в предварительный проект системы. Тем самым обеспечивается свобода реализационных решений на этапе реализации.
Объектная модель показывает статическую структуру проблемной области, для которой разрабатывается система. Сначала определяются классы объектов, затем зависимости между объектами, включая агрегацию. Для упрощения структуры классов используется наследование. Объектная модель должна содержать краткие комментарии на естественном языке.
Динамическая модель показывает поведение системы, в особенности последовательность взаимодействий. Сначала готовятся сценарии типичных сеансов взаимодействия с системой, затем определяются внешние события, отражающие взаимодействие системы с внешним миром; после этого строится диаграмма состояний для каждого активного объекта, на которой представлены образцы событий, получаемых системой и порождаемых ею, а также действий, выполняемых системой. Построенные диаграммы состояний сравниваются между собой, чтобы убедиться в их непротиворечивости. На этом построение динамической модели заканчивается.
Функциональная модель показывает функциональный вывод значений безотносительно к тому, когда они вычисляются. Сначала определяются входные и выходные значения системы как параметры внешних событий. Затем строятся диаграммы потоков данных, показывающие, как вычисляется каждое выходное значение по входным и промежуточным значениям. Диаграммы потоков данных выявляют взаимодействие с внутренними объектами системы, которые служат хранилищами данных в периоды между сеансами работы системы. В заключение определяются ограничения и критерии оптимизации.
Контрольные вопросы
1. Анализ требований и предварительное проектирование системы.
2. Понятие объектов и классов (приведите примеры).
3. Экземпляры класса и предметная область.
4. Свойства и поведение (приведите примеры).
5. Объектная модель системы.
6. Атрибуты объектов: классификация и примеры.
7. Операции и методы.
8. Зависимости между классами (объектами).
9. Этапы построения объектной модели.
10. Определение классов при построении объектной модели. Выявление ненужных классов.
11. Подготовка словаря данных при построении объектной модели.
12. Определение зависимостей при построении объектной модели. Критерии поиска ненужных и неправильных зависимостей.
13. Уточнение атрибутов при построении объектной модели.
14. Исследование и усовершенствование модели. Приёмы бескомпьютерного поиска и исправления ошибок в объектной модели.
15. Понятие подсистемы и её интерфейс. Приведите примеры.
16. Внутреннее и внешнее окружение подсистемы.
17. События, состояния объектов, диаграммы состояний.
18. Сценарии и трассы событий. Приведите примеры.
19. Условия, активности и действия.
20. Одновременные события. Синхронизация.
21. Функциональная модель подсистемы.
3. Вторая фаза жизненного цикла – конструирование системы
После того как прикладная задача исследована и результаты её исследования зафиксированы в виде объектной, динамической и функциональной моделей, можно приступить к конструированию системы. На этапе конструирования системы принимаются решения о распределении подсистем по процессорам и другим аппаратным устройствам и устанавли-ваются основные принципы и концепции, которые формируют основу последующей детальной разработки программного обеспечения системы.
Внешняя организация системы называется архитектурой системы. Выбор архитектуры системы является ещё одной задачей, решаемой на этапе её конструирования.
Конструирование системы завершается конструированием её объектов. На этом этапе разрабатываются полные определения классов и зависимостей, используемые на этапе реализации системы. Кроме того, определяются и конструируются внутренние объекты и оптимизируются структуры данных и алгоритмы.