На этом шаге рассмотрим типичные приемы моделирования различных представлений системы в UML.
Система – это набор подсистем, организованных для достижения определенной цели и описанных с помощью набора моделей (возможно, с различных точек зрения).
Подсистема – группа элементов, часть которых составляет спецификацию поведения, представленного другими ее составляющими.
Модель – семантически завершенная абстракция системы, которая создана по принципу полного и самодос-таточного упрощения реальности, ставящего целью лучшее понимание системы.
В контексте архитектуры представление – это проекция организации и структуры системной модели, сфокусированная на одном из ее аспектов.
При моделировании системы с разных точек зрения вы параллельно конструируете ее во многих измерениях. Выбирая правильный набор представлений, запускается процесс, который помогает ставить правильные вопросы о системе и выявлять риски, которым она будет подвергаться. Если подойти к выбору этих представлений неграмотно, то некоторые важные обстоятельства могут выпадать из поля зрения – таким образом, в будущем можно столкнуться с проблемами, которые серьезно повредят работе над проектом.
Чтобы смоделировать систему с разных точек зрения, необходимо:
К примеру, вы моделируете простое монолитное приложение, которое исполняется на одном компьютере. Для этого потребуется не так уж много диаграмм:
Если ваша система реактивная или же сосредоточена на потоке процессов, не исключено, что для моделирования ее поведения вы захотите использовать соответственно диаграммы состояний и диаграммы деятельности.
Если же вы работаете над системой с архитектурой "клиент/сервер", вам, вероятно, понадобятся диаграммы компонентов и диаграммы развертывания, чтобы смоделировать ее физические особенности.
Наконец, при подготовке сложной распределенной системы вам придется задействовать полный набор диаграмм UML, чтобы выразить ее архитектуру и выявить технические риски проекта:
На следующем шаге рассмотрим типичные приемы моделирования различных уровней абстракции.