Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Software Engineering2011.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.12 Mб
Скачать

Отличие архитектуры по от детального проектирования по

Архитектура ПО является реализацией нефункциональных требований к системе, в то время проектирование ПО является реализацией функциональных требований.

Архитектура ПО, которую также можно представить себе в виде разработки стратегии -

это деятельность, связанная с определением глобальных ограничений, накладываемых на

проектирование системы, такие как выбор парадигмы программирования, архитектурных

стилей, стандарты разработки ПО, основанные на использовании компонентов, принципы

проектирования и ограничения, накладываемые государственным законодательством. Детальное проектирование, т.е. разработка тактики - это деятельность, связанная с определением локальных ограничений проекта, такие как шаблоны проектирования, архитектурные модели, идиомы программирования и рефакторинга. Согласно "гипотезе напряжения/окрестности" (Intension/ Locality Hyphotysis), различие между архитектурным и детальным проектированием определяется критерием окрестности (Locality Criteria), согласно которому утверждение, что дизайн ПО не является локальным (а является архитектурным) истинно тогда и только тогда, когда программа, которая удовлетворяет этому критерию может быть расширена в программу, которая не удовлетворяет ему. Например, стиль приложения клиент-сервер является архитектурным стилем (стратегическим дизайном), потому что программа, которая построена на этом принципе, может быть расширена в программу, которая не является клиент-сервером, например, путем добавления peer-to-peer узлов. Архитектура является проектированием (дизайном), но не всякий дизайн является архитектурным дизайном. На практике, архитектор определяет грань между архитектурой программного обеспечения (архитектурным дизайном) и детальным дизайном (неархитектурном проектированием). Не существует правил или инструкций, как сделать это, которые подходят для

любого случая.

Примеры архитектурных стилей и моделей

Есть много распространенных способов разработки программных модулей и их связей, в томчисле:

  • Blackboard

  • Клиент-серверная модель (client-server)

  • Архитектуры, построенные вокруг базы данных (database-centric architecture)

  • Распределенныевычисления (distributed computing)

  • Событийнаяархитектура (event-driven architecture)

  • Front end and back end

  • Неявныевызовы (implicit invocations)

  • Монолитноеприложение (monolithic application)

  • Peer-to-peer

  • Пайпыифильтры (pipes and filters)

  • Plugin

  • Representational State Transfer

  • Rule evaluation

  • Поиск-ориентированная архитектуры

  • Сервис-ориентированная архитектура

  • Shared nothing architecture

  • Software componentry

  • Space based architecture

  • Структурированная

Паттерны проектирования

При разработке архитектуры часто применяются паттерны проектирования - готовые решения определённых проблем.

Главная польза каждого отдельного шаблона состоит в том, что он описывает решение целого класса абстрактных проблем. Также тот факт, что каждый шаблон имеет свое имя, облегчает дискуссию об абстрактных структурах данных между разработчиками, так как они могут ссылаться на известные шаблоны. Таким образом, за счёт шаблонов производится унификация терминологии, названий модулей и элементов проекта.

Условно все паттерны можно разделить на:

1. Структурные

2. Порождающие

3. Паттерны поведения

Рассмотрим некоторые из них.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]