~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ 64091ED5B78D4AE0FBBC38ACC81DB4E7__1708152180 ✰
Заголовок документа оригинал.:
✰ Architecture description language - Wikipedia ✰
Заголовок документа перевод.:
✰ Язык описания архитектуры — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Architecture_description_language ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/64/e7/64091ed5b78d4ae0fbbc38acc81db4e7.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/64/e7/64091ed5b78d4ae0fbbc38acc81db4e7__translat.html ✰
Дата и время сохранения документа:
✰ 21.06.2024 09:51:53 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 17 February 2024, at 09:43 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

Язык описания архитектуры — Википедия Jump to content

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

Из Википедии, бесплатной энциклопедии

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

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

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

Обзор [ править ]

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

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

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

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

История [ править ]

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

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

С тех пор было проведено исследование формальных языков описания SA. Были предложены десятки формальных ADL, каждый из которых характеризуется разными концептуальными архитектурными элементами, разным синтаксисом или семантикой, ориентирован на конкретную операционную область или подходит только для разных методов анализа. Например, были представлены доменно-ориентированные ADL для работы со встроенными системами и системами реального времени (такими как AADL, [4] ВОСТОК-АДЛ, [5] и ЕАДЛ [6] ), приложения контура управления (DiaSpec [7] ), архитектуры продуктовой линейки (Koala [8] ) и динамические системы (Π-ADL [9] )). ADL, предназначенные для анализа, были предложены для решения задач доступности, надежности, безопасности, потребления ресурсов, качества данных и анализа производительности в реальном времени (AADL, поведенческий анализ (Fractal) [10] )) и анализ надежности (TADL [11] ).

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

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

Исследование 2013 года [17] обнаружили, что специалисты-практики в целом удовлетворены конструктивными возможностями ADLS, которые они использовали, но у них есть несколько серьезных проблем: им не хватает функций анализа и возможности определять дополнительные функциональные свойства; те, которые используются на практике, в основном возникли в результате промышленного развития, а не академических исследований; им требовалось больше формальности и удобство использования.

Характеристики [ править ]

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

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

Язык должен:

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

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

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

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

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

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

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

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

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

Общие понятия архитектуры [ править ]

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

Архитектура соединения объектов [ править ]

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

Архитектура подключения интерфейса [ править ]

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

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

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

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

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

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

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

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

Примеры [ править ]

Подходы к архитектуре [ править ]

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

См. также [ править ]

Ссылки [ править ]

  1. ^ Комитет ISO/IECJTC 1/SC 7 (01 марта 2011 г.). «ISO/IEC FDIS42010» (PDF) . Архивировано из оригинала (PDF) 26 апреля 2012 г. Проверено 5 декабря 2011 г. {{cite web}}: CS1 maint: числовые имена: список авторов ( ссылка )
  2. ^ Аллен, Р.; Гарлан, Д. (1997). «Формальная основа архитектурного соединения». Транзакции ACM по программной инженерии и методологии . 6 (3): 213. CiteSeerX   10.1.1.40.66 . дои : 10.1145/258077.258078 . S2CID   326385 .
  3. ^ Перри, Делавэр; Вольф, Алабама (1992). «Основы изучения архитектуры программного обеспечения» (PDF) . Заметки по разработке программного обеспечения ACM SIGSOFT . 17 (4): 40. CiteSeerX   10.1.1.40.5174 . дои : 10.1145/141874.141884 . S2CID   628695 .
  4. ^ «AADL — язык архитектурного анализа и проектирования» . Институт программной инженерии Университета Карнеги-Меллон. июль 2019.
  5. ^ «ВОСТОК-АДЛ» .
  6. ^ Ли, Дж.; Пилкингтон, Северная Каролина; Се, Ф.; Лю, К. (2010). «Язык описания встроенной архитектуры». Журнал систем и программного обеспечения . 83 (2): 235. CiteSeerX   10.1.1.134.8898 . дои : 10.1016/j.jss.2009.09.043 . S2CID   8075069 .
  7. ^ «ААДЛ» . Архивировано из оригинала 1 июня 2013 г. Проверено 10 декабря 2012 г.
  8. ^ Ван Оммеринг, Р.; Ван Дер Линден, Ф.; Крамер, Дж.; Маги, Дж. (2000). «Компонентная модель Koala для программного обеспечения бытовой электроники». Компьютер . 33 (3): 78. CiteSeerX   10.1.1.469.8243 . дои : 10.1109/2.825699 .
  9. ^ Окендо, Флавио (2004). «П-АДЛ». Заметки по разработке программного обеспечения ACM SIGSOFT . 29 (3): 1–14. дои : 10.1145/986710.986728 . ISSN   0163-5948 . S2CID   10781129 .
  10. ^ Брюнетон, Э.; Купай, Т.; Леклерк, М.; Кема, В.; Стефани, Дж.Б. (2006). «Компонентная модель FRACTAL и ее поддержка в Java». Программное обеспечение: практика и опыт . 36 (11–12): 1257. CiteSeerX   10.1.1.471.4374 . дои : 10.1002/спе.767 . S2CID   12541723 .
  11. ^ Мохаммад, Мубарак Сами (29 апреля 2009 г.). ТАДЛ (доктор философии). Университет Конкордия.
  12. ^ Вудс, Э.; Хиллиард, Р. (2005). «Языки описания архитектуры на практике. Отчет о сессии». 5-я рабочая конференция IEEE/IFIP по архитектуре программного обеспечения (WICSA'05) . п. 243. дои : 10.1109/WICSA.2005.15 . ISBN  978-0-7695-2548-8 . S2CID   18175375 .
  13. ^ Панди, РК (2010). «Языки архитектурного описания (ADL) против UML». Заметки по разработке программного обеспечения ACM SIGSOFT . 35 (3): 1–5. дои : 10.1145/1764810.1764828 . S2CID   18848376 .
  14. ^ Клементс, ПК (1996). «Обзор языков описания архитектуры». Материалы 8-го международного семинара по спецификации и проектированию программного обеспечения . стр. 16–00. CiteSeerX   10.1.1.208.3401 . дои : 10.1109/IWSSD.1996.501143 . ISBN  978-0-8186-7361-0 . S2CID   7307554 .
  15. ^ "Гарлан_ТР" . 31 марта 2004 г.
  16. ^ Перес-Мартинес, Х.Э.; Сьерра-Алонсо, А. (2004). «UML 1.4 и UML 2.0 как языки описания архитектур программного обеспечения» . Архитектура программного обеспечения . Конспекты лекций по информатике. Том. 3047. с. 88. дои : 10.1007/978-3-540-24769-2_7 . ISBN  978-3-540-22000-8 .
  17. ^ Малаволта, Ивано; Лаго, Патрисия; Муччини, Генри; Пелличчоне, Патрицио; Тан, Энтони (2013). «Чего промышленности нужны архитектурные языки: обзор». Транзакции IEEE по разработке программного обеспечения . 39 (6): 869–891. дои : 10.1109/TSE.2012.74 . S2CID   6383726 .

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: 64091ED5B78D4AE0FBBC38ACC81DB4E7__1708152180
URL1:https://en.wikipedia.org/wiki/Architecture_description_language
Заголовок, (Title) документа по адресу, URL1:
Architecture description language - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)