Конспект книги Software System Architecture
(автор Nick Rozanski, Eoin Woods)
Книга рассматривает три основные концепции, которые используются при построении архитектуры любой системы:
1. Stackholders (заказчики системы) – люди, которые принимают решения относительно того, какие функции должны быть реализованы, а какие нет
2. Viewpoins и view (представление) – это способ структурировать систему, дать описание каждого важного аспекта системы как самостоятельной сущности. Для построения представлений используется принцип «разделяй и властвуй». Каждое преставление описывает «что» должна делать программа или система, а так же взаимодействие и влияние представлений между собой.
Обычно через представления описываются «функциональная структура», «информационная организация», «среда развертывания» и т.д.
3. Perspective (архитектурные перспективы) это аналог представлений, но используются они для того чтобы описать «как» должна работать система. Обычно через представления описываются вопросы относящиеся к качественным характеристикам – безопасность, надежность, производительность. Перспективы могут быть общими для многих представлений.
Архитектура - это базовая организация системы, воплощенная в ее компонентах, их отношениях между собой и с окружением, а также принципы, определяющие проектирование и развитие системы.
Структуры в архитектуре:
- статичные структуры – определяют то чем является проектируемая система (описание интерфейсов, аппаратного обеспечения, модулей и т.д.)
- динамические структуры – описывают как именно работает система, обычно эти структуры создаются и используются в рантайме.
Свойства системы - такие свойства, которые может увидеть или оценить внешний наблюдатель, воспринимая систему как черный ящик. То ради чего система создается.
Качественные характеристики – это целевые показатели системы, которые важны для разработки системы.
Архитектурные кандидаты – варианты организации архитектуры.
Архитектурные элементы – это элементы из которых состоит система.
Ключевые атрибуты архитектурных элементов:
- четко определенные обязанности
- четко определенные ограничения
- набор строго определенных интерфейсов, которые определяют сервисы для взаимодействия архитектурных элементов.
Post #766
1.74K