Принципы моделирования системной архитектуры в языке UML
Наиболее распространенный случай применения систем и моделей - это организация элементов, используемых с целью визуализации, специфицирования, конструирования и документирования архитектуры системы. При этом затрагиваются практически все артефакты, встречающиеся в процессе разработки программного обеспечения. Моделируя системную архитектуру, мы собираем в единое целое решения, принятые относительно требований к системе, ее логических и физических элементов. Моделируются структурные и поведенческие аспекты системы, образцы, формирующие ее различные представления. Следует также обратить внимание на стыковку подсистем и трассировку решений, начиная от формирования требований до этапа развертывания.
Моделирование системной архитектуры производится следующим образом:
· Идентифицируйте сущности, которые вы будете использовать для представления архитектуры. Чаще всего это виды с точки зрения прецедентов, процессов, реализации и развертывания.
· Специфицируйте контекст системы, включая окружающих ее актеров.
· При необходимости разложите систему на элементарные подсистемы.
При моделировании системы в целом и ее подсистем выполняются следующие действия:
1. · Специфицируйте вид системы с точки зрения вариантов ее использования или прецедентов, которые описывают поведение системы таким образом, каким оно представляется конечным пользователям, аналитикам и тестерам. Для моделирования статических аспектов примените диаграммы прецедентов, а для моделирования динамических - диаграммы взаимодействия, состояний и деятельности.
2. · Специфицируйте вид системы с точки зрения проектирования, в который входят классы, интерфейсы и кооперации, формирующие словарь предметной области и предлагаемого решения. Для моделирования статических аспектов применяйте диаграммы классов и объектов, а для моделирования динамических - диаграммы последовательностей, состояний и деятельности.
3. · Специфицируйте вид системы с точки процессов, в который входят процессы и нити, формирующие механизмы параллельности и синхронизации в системе. Используйте те же диаграммы, что и для вида с точки зрения проектирования, но основной внимание уделите активным классам и объектам, которыми, собственно говоря, в UML и представлены процессы и нити.
4. · Специфицируйте вид системы с точки зрения реализации, в который входят компоненты, используемые для сборки и выпуска готовой физической системы. Для моделирования статических аспектов примените диаграммы компонентов, а для моделирования динамических - диаграммы взаимодействия, состояний и деятельности.
5. · Специфицируйте вид системы с точки зрения развертывания, который содержит узлы, формирующие топологию аппаратных средств, на которых выполняется система. Для моделирования статических аспектов примените диаграммы развертывания, а для моделирования динамических - диаграммы взаимодействия, состояний и деятельности.
6. · Смоделируйте архитектурные образцы (паттерны) и образцы проектирования с помощью коопераций. Образец (pattern) - это типичное решение типичной проблемы в данном контексте.
Системная архитектура не рождается в ходе единичного акта творения. Напротив, хорошо структурированный процесс применения UML подразумевает последовательное итеративное и инкрементное уточнение архитектуры на основе анализа прецедентов.