Аппаратной архитектуры – это совокупность важнейших решений об организации программной системы. Данный термин относится к архитектурной конструкции физического устройства или системы, часто включающий аппаратное и программное обеспечение.
Архитектура включает:
- выбор структурных элементов и их интерфейсов, с помощью которых составлена система, а также их поведения в рамках сотрудничества структурных элементов
- соединение выбранных элементов структуры и поведения во всё более крупные системы
- архитектурный стиль, который направляет всю организацию — все элементы, их интерфейсы, их сотрудничество и их соединение
Документирование архитектуры программного обеспечения (ПО) упрощает процесс коммуникации между разработчиками, позволяет зафиксировать принятые проектные решения и предоставить информацию о них эксплуатационному персоналу системы, повторно использовать компоненты и шаблоны проекта в других.
Архитектура ПО обычно содержит несколько видов, которые аналогичны различным типам чертежей в строительстве зданий. В онтологии виды являются экземплярами точки зрения, где точка зрения существует для описания архитектуры с точки зрения заданного множества заинтересованных лиц.
Архитектурный вид состоит из 2 компонентов:
- элементы
- отношения между элементами
Архитектурные виды можно поделить на 3 основных типа:
- module views (модульные виды) - показывают систему как структуру из различных программных блоков.
- component and connector views (представление компонентов и коннекторов) - показывают систему как структуру из параллельно запущенных элементов (компонентов) и способов их взаимодействия (коннекторов).
- allocation views (размещение) - показывает размещение элементов системы во внешних средах.
Примеры модульных видов:
- decomposition view (декомпозиция) - состоит из модулей в контексте отношения «является подмодулем»
- uses view (использование) - состоит из модулей в контексте отношения «использует» (т.е. один модуль использует сервисы другого модуля)
- layered view (вид уровней) - показывает структуру, в которой связанные по функциональности модули объединены в группы (уровни)
- class/generalization view (вид классов/обобщений) - состоит из классов, связанные через отношения «наследуется от» и «является экземпляром»
Примеры видов компонентов и коннекторов:
- процессный вид - состоит из процессов, соединённых операциями коммуникации, синхронизации и/или исключения
- параллельный вид - состоит из компонентов и коннекторов, где коннекторы представляют собой «логические потоки»
- вид обмена данными - состоит из компонентов и коннекторов, которые создают, сохраняют и получают постоянные данные
- вид клиент-сервер - состоит из взаимодействующих клиентов и серверов, а также коннекторов между ними (например, протоколов и общих сообщений)
Примеры видов размещения:
- развертывание - состоит из программных элементов, их размещения на физических носителях и коммуникационных элементов
- внедрение - состоит из программных элементов и их соответствия файловым структурам в различных средах (разработческой, интеграционной и т.д.)
- распределение работы - состоит из модулей и описания того, кто ответственен за внедрение каждого из них