Лекция №8Архитектура ПО
Лекция посвящена важному уровню проектирования программных систем — созданию архитектуры. Архитектура ПО определяет, каким образом организована система и каким образом в ней выделяются отдельные компоненты. По сравнению с проектированием элементов системы, архитектура является более абстрактной и меньше связана с реализацией.
Проектирование программных систем связано с предыдущим этапом разработки — инженерией требований. При этом архитектура призвана реализовать нефункциональные требования (например, производительность, безопасность), а функциональные требования соответствуют компонентам системы.
Для представления архитектуры используются диаграммы UML или неформальные методы. Существует пять основных видов представлений (так называемая модель представлений 4+1). В классических моделях жизненного цикла документирование архитектуры играет важную роль (ему отводится ключевое место в документе спецификации); в гибкой методологии считается, что этому процессу нужно уделять столько внимания, чтобы он не мешал собственно разработке ПО.
Обычно архитектуру программных систем не создают с нуля, а используют готовые наработки (архитектурные шаблоны), которые подходят в конкретном случае. Среди часто используемых архитектурных шаблонов можно выделить:
- MVC (Model — View — Controller) — основная архитектура для веб-сайтов и прочих веб-приложений;
- многослойная архитектура — применятся для комплексных систем с высокими требованиями к переносимости;
- клиент-сервер — базовая архитектура для распределенных систем;
- конвейерная архитектура — часто используется в системах интеллектуальной обработки данных.