Язык описания архитектуры

редактировать

Языки описания архитектуры (ADL ) используются в нескольких дисциплинах: системная инженерия, разработка программного обеспечения и моделирование предприятия и инженерия.

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

Сообщество разработчиков программного обеспечения использует описание архитектуры язык как компьютерный язык для создания описания архитектуры программного обеспечения. В случае так называемой технической архитектуры архитектура должна быть доведена до сведения разработчиков программного обеспечения; a доводится до сведения различных заинтересованных сторон и пользователей. Некоторые разработанные ADL: (разработаны CMU ), AADL (стандартизированы SAE ), (разработаны UCI ), SBC-ADL (разработан Национальным университетом Сунь Ятсена ), Дарвин (разработан Имперским колледжем Лондона ) и Райт (разработан CMU).

Содержание

  • 1 Обзор
  • 2 История
  • 3 Характеристики
    • 3.1 Положительные элементы ADL
    • 3.2 Отрицательные элементы ADL
  • 4 Общие концепции архитектуры
    • 4.1 Архитектура соединения объектов
    • 4.2 Архитектура соединения интерфейса
  • 5 Архитектура и дизайн
  • 6 Примеры
  • 7 Подходы к архитектуре
  • 8 См. Также
  • 9 Ссылки
  • 10 Внешние ссылки

Обзор

В документе ISO / IEC / IEEE 42010, Системная и программная инженерия - Описание архитектуры, язык описания архитектуры определяется как «любая форма выражения для использования в описаниях архитектуры» и указывается минимум Требования к ADL.

Сообщество разработчиков и разработчиков корпоративного моделирования также разработало языки описания архитектуры, обслуживаемые на уровне предприятия. Примеры включают ArchiMate (теперь стандарт The Open Group ), DEMO, ABACUS (разработан University of Technology, Сидней ). Эти языки не обязательно относятся к программным компонентам и т. Д. Однако большинство из них относится к архитектуре приложения как к архитектуре, которая сообщается разработчикам программного обеспечения.

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

Стандартная нотация (ADL) для представления архитектур помогает продвигать взаимное общение, воплощение ранних проектных решений и создание переносимой абстракции системы. В прошлом архитектуры в основном представлялись в виде прямоугольников с аннотациями, в которых указывались такие вещи, как природа компонента, свойства, семантика соединений и общее поведение системы. ADL являются результатом лингвистического подхода к формальному представлению архитектур и, как таковые, устраняют его недостатки. Также важны сложные ADL, которые позволяют проводить ранний анализ и технико-экономическое обоснование архитектурных проектных решений.

История

ADL были разделены на три широкие категории: прямоугольные неформальные чертежи, формальный язык описания архитектуры и на основе UML (Unified Modeling Language ). обозначения.

Прямоугольник долгое время был наиболее распространенным средством описания SA. Предоставляя полезную документацию, уровень неформальности ограничивал полезность описания архитектуры. Требовался более строгий способ описания SA. Цитируя Аллена и Гарлана (1997), «хотя эти [прямоугольные] описания могут предоставить полезную документацию, текущий уровень неформальности ограничивает их полезность. Поскольку обычно неточно, что подразумевается под такими архитектурными описаниями, это может быть невозможно анализировать архитектуру на предмет согласованности или определять ее нетривиальные свойства. Более того, нет способа проверить, что реализация системы соответствует ее архитектурному проекту ". Аналогичный вывод сделан в Perry and Wolf (1992), который сообщает, что: «Помимо предоставления ясной и точной документации, основная цель спецификаций - обеспечить автоматический анализ документов и выявить различные виды проблем, которые в противном случае могли бы возникнуть. незамеченным ".

С тех пор был проведен ряд исследований формальных языков для описания SA. Были предложены десятки формальных ADL, каждый из которых характеризуется различными концептуальными архитектурными элементами, разным синтаксисом или семантикой, ориентирован на конкретную операционную область или подходит только для различных методов анализа. Например, доменные ADL были представлены для работы со встроенными системами и системами реального времени (такими как AADL, EAST-ADL и EADL), приложениями контура управления (DiaSpec), архитектурами линейки продуктов (Koala) и динамическими системами. (Π-ADL)). ADL, ориентированные на анализ, были предложены для работы с доступностью, надежностью, безопасностью, потреблением ресурсов, качеством данных и анализом производительности в реальном времени (AADL, поведенческий анализ (Fractal)) и анализом надежности (TADL).

Однако эти усилия не нашли должного применения в промышленной практике. Некоторые причины отсутствия промышленного внедрения были проанализированы Вудсом и Хиллиардом, Панди, Клементсом и другими: формальные ADL редко интегрируются в жизненный цикл программного обеспечения, они редко поддерживаются зрелыми инструментами, почти не документированы, уделяя особое специфические потребности и не оставляя места для расширений, позволяющих добавлять новые функции.

В качестве способа преодоления некоторых из этих ограничений UML был указан как возможный преемник существующих ADL. Было представлено множество предложений по использованию или расширению UML для более точного моделирования программных архитектур.

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

Характеристики

Существует большое разнообразие ADL, разработанных академическими или промышленными группами. Многие языки не предназначались для ADL, но они оказались подходящими для представления и анализа архитектуры. В принципе ADL отличаются от языков требований, потому что ADL базируются на пространстве решений, тогда как требования описывают проблемные области. Они отличаются от языков программирования, потому что ADL не привязывают архитектурные абстракции к конкретным точечным решениям. Языки моделирования представляют поведение, в котором ADL сосредоточены на представлении компонентов. Однако существуют предметно-ориентированные языки моделирования (DSML), которые фокусируются на представлении компонентов.

Минимальные требования

Язык должен:

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

У ADL есть общие черты:

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

ADL различаются по своей способности:

  • Обработка конструкций в реальном времени, таких как крайние сроки и приоритеты задач, на уровне архитектуры
  • Поддержка спецификации различных архитектурных стилей. Немногие обрабатывают объектно-ориентированное наследование классов или динамические архитектуры
  • Поддержка анализа архитектуры
  • Обработка различных экземпляров одной и той же архитектуры по отношению к архитектурам линейки продуктов

Положительные элементы ADL

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

Отрицательные элементы ADL

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

Общие концепции архитектуры

Сообщество ADL в целом соглашается с тем, что архитектура программного обеспечения - это набор компонентов и связей между ними. Но существуют разные типы архитектур, например:

Архитектура объектного соединения

  • Конфигурация состоит из интерфейсов и соединений объектно-ориентированной системы
  • Интерфейсы определяют функции, которые должны быть предоставлены модулями. соответствие интерфейсу
  • Соединения, представленные интерфейсами вместе с графом вызовов
  • Соответствие, обычно обеспечиваемое языком программирования
    • Декомпозиция - связывание интерфейсов с уникальными модулями
    • Соответствие интерфейса - статическая проверка синтаксических правил
    • Целостность связи - видимость между модулями

Архитектура соединения интерфейса

  • Расширяет роль интерфейсов и соединений
    • Интерфейсы определяют как "обязательные", так и " предоставленные "функции
    • Соединения определяются между" обязательными "функциями и" предоставленными "функциями
  • Состоит из интерфейсов, соединений и ограничений
    • Ограничения ограничивают поведение интерфейсов и соединений в архитектуре
    • Ограничения в архитектуре соответствуют требованиям системы

Большинство ADL реализуют архитектуру интерфейсных соединений.

Архитектура и дизайн

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

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

Часто часть архитектуры выполняется во время концептуализации приложения, системы или сети и может появиться в нефункциональных разделах документации требований. Канонически дизайн не оговаривается в требованиях, а скорее определяется ими.

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

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

Примеры

Ниже в списке приведены кандидаты на звание лучшего ADL на сегодняшний день.

Актуальный список существующих в настоящее время архитектурных языков см. В Актуальный список ADL.

Подходы к архитектуре

Подходы к архитектуре

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

См. также

Ссылки

Externa l линки

  • Медвидович, Н.; Тейлор, Р. (Январь 2000 г.). «Структура классификации и сравнения языков описания архитектуры программного обеспечения». IEEE Transactions по разработке программного обеспечения. 26 (1): 70–93. doi : 10.1109 / 32.825767.
  • Малаволта, Ивано; Лаго, Патрисия; Муччини, Генри; Пелличчоне, Патрицио; Тан, Энтони (2013). «Что нужно индустрии от архитектурных языков: обзор». IEEE Transactions по разработке программного обеспечения. 39 (6): 869–891. doi : 10.1109 / TSE.2012.74.
  • Языки описания архитектуры // Университет Мелардален
  • Clements, P.C. (1996). «Обзор языков описания архитектуры» (PDF). Материалы 8-го Международного семинара по спецификации и дизайну программного обеспечения. С. 16–25. doi : 10.1109 / IWSSD.1996.501143. ISBN 0-8186-7361-3. Архивировано из оригинала (PDF) 24 декабря 2013 года.
  • ABACUS
  • ACME
  • ADML
  • Aesop
  • AO-ADL
  • ArchiMate An пример ADL для корпоративной архитектуры
  • ByADL (Build Your ADL) - University of L'Aquila
  • C2 SADL
  • DAOP-ADL
  • DEMO Другой пример корпоративной архитектуры ADL
  • DiaSpec подход и инструмент для создания распределенной структуры из программной архитектуры
  • Malavolta, I.; Muccini, H.; Pelliccione, P.; Тамбурри, Д. (январь – февраль 2010 г.). «Обеспечение функциональной совместимости архитектурных языков и инструментов с помощью технологий преобразования моделей». IEEE Transactions по разработке программного обеспечения. 36 (1): 119–140. doi :10.1109/TSE.2009.51.DUALLy
  • Rapide
  • SSEP
  • Unicon
  • Wright
Последняя правка сделана 2021-06-12 00:52:30
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте