stringtranslate.com

Архитектурный образец

Архитектурный шаблон — это общее, повторно используемое решение часто встречающейся проблемы в архитектуре программного обеспечения в заданном контексте. [1] Архитектурные шаблоны решают различные проблемы в программной инженерии , такие как ограничения производительности компьютерного оборудования , высокая доступность и минимизация бизнес-рисков . Некоторые архитектурные шаблоны были реализованы в программных фреймворках . Существует две основные категории архитектурных шаблонов: монолитные и распределенные . [2]

Использование слова «шаблон» в индустрии программного обеспечения было обусловлено схожими концепциями, выраженными в традиционной архитектуре , такими как работа Кристофера Александра « Язык шаблонов» (1977), в которой обсуждалась практика с точки зрения создания лексикона шаблонов , что побудило специалистов в области компьютерной науки задуматься о собственном лексиконе дизайна.

Использование этой метафоры в профессии программной инженерии стало обычным явлением после публикации книги « Шаблоны проектирования » (1994) Эриха Гаммы , Ричарда Хелма , Ральфа Джонсона и Джона Влиссидеса , ныне широко известных как «Банда четырех», что совпало с ранними годами существования общедоступного Интернета , ознаменовав начало «пожирания мира» сложными программными системами [3] и соответствующую потребность в кодификации быстро разрастающегося мира разработки программного обеспечения на максимально глубоком уровне, при этом оставаясь гибкими и адаптивными.

Архитектурные шаблоны похожи на шаблоны проектирования программного обеспечения , но имеют более широкую область применения.

Определение

Хотя архитектурный шаблон передает образ системы, он не является архитектурой. Архитектурный шаблон — это концепция, которая решает и очерчивает некоторые существенные связные элементы архитектуры программного обеспечения. Бесчисленное множество различных архитектур могут реализовывать один и тот же шаблон и разделять связанные характеристики. Шаблоны часто определяются как «строго описанные и общедоступные». [4] [5]

Архитектурный стиль

Следуя традиционной архитектуре зданий, программный архитектурный стиль представляет собой особый метод строительства, характеризующийся особенностями, которые делают его заметным.

Архитектурный стиль определяет: семейство систем с точки зрения модели структурной организации; словарь компонентов и соединителей с ограничениями на то, как они могут быть объединены. [6]

Архитектурный стиль — это именованный набор архитектурных проектных решений, которые (1) применимы в данном контексте разработки, (2) ограничивают архитектурные проектные решения, характерные для конкретной системы в этом контексте, и (3) выявляют полезные качества в каждой полученной системе. [1]

Некоторые рассматривают архитектурные шаблоны и архитектурные стили как одно и то же, [7] некоторые рассматривают стили как специализации шаблонов. Общее у них то, что и шаблоны, и стили являются идиомами для использования архитекторами, они «предоставляют общий язык» [7] или «словарь» [6], с помощью которого можно описывать классы систем.

Главное отличие состоит в том, что шаблон можно рассматривать как решение проблемы, в то время как стиль является более общим и для своего появления не требует решения проблемы.

Анализ

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

Примеры

Некоторые примеры архитектурных моделей:

Смотрите также

Ссылки

  1. ^ ab Taylor, RN; Medvidović, N.; Dashofy, EM (2009). Архитектура программного обеспечения: основы, теория и практика. Wiley. ISBN 9780470167748.
  2. ^ abcde Основы архитектуры программного обеспечения: инженерный подход . O'Reilly Media. 2020. ISBN 978-1492043454.
  3. ^ Андрессен, Марк (20 августа 2011 г.). «Почему программное обеспечение пожирает мир». The Wall Street Journal . Получено 25 апреля 2020 г.
  4. ^ Chang, Chih-Hung; Lu, Chih-Wei; Lin, Chih-Hao; Yang, Ming-Feng; Tsai, Ching-Fu (июнь 2008 г.). "Опыт применения фреймворка программного обеспечения на основе шаблонов для улучшения качества разработки программного обеспечения: 4. Проектирование и реализация OS2F". Журнал исследований программной инженерии, том 2, № 6. Третья тайваньская конференция по программной инженерии (TCSE07). стр. 185–194. Архивировано из оригинала 2011-09-22 . Получено 2012-05-16 . Кроме того, шаблоны часто определяются как что-то "строго описанное и общедоступное". Например, многоуровневая архитектура является стилем вызова и возврата, когда она определяет общий стиль для взаимодействия.
  5. ^ "Архитектурные шаблоны: Определение". AAHN INFOTECH (INDIA) PVT. LTD. Архивировано из оригинала 2012-06-23 . Получено 2012-05-16 . Несмотря на то, что архитектурный шаблон передает образ системы, он не является архитектурой как таковой. Архитектурный шаблон — это скорее концепция, которая решает и очерчивает некоторые существенные связные элементы архитектуры программного обеспечения. Бесчисленное множество различных архитектур могут реализовывать один и тот же шаблон и, таким образом, иметь общие характеристики. Более того, шаблоны часто определяются как что-то "строго описанное и общедоступное".
  6. ^ ab Shaw, M.; Garlan, D. (1996). Архитектура программного обеспечения: перспективы новой дисциплины . Prentice Hall. ISBN 9780131829572.
  7. ^ ab "Гл. 3: Архитектурные шаблоны и стили". Microsoft Application Architecture Guide (2-е изд.). Microsoft Press. Октябрь 2009. ISBN 9780735627109.

Библиография