Атрибутно-ориентированный дизайн
Атрибутно-ориентированный дизайн [1] [2] (также называемый ADD или методом проектирования на основе атрибутов) — это методология создания архитектур программного обеспечения, учитывающая атрибуты качества программного обеспечения. Ранее он был известен как метод проектирования на основе архитектуры (или ABD), но из-за проблем с товарными знаками примерно в 2001 году название было изменено на проектирование, основанное на атрибутах. [3]
Метод атрибутивного проектирования
[ редактировать ]В книге Архитектура программного обеспечения на практике. [4] авторы описывают ADD как итеративный метод, который на каждой итерации помогает архитектору выполнить следующие шаги:
- Выберите часть системы для проектирования.
- Упорядочите все архитектурно значимые требования к выбранной детали. Это означает, что вы выбираете все атрибуты качества и бизнес-цели, которые могут повлиять на архитектуру этого этапа.
- Создайте для выбранной части архитектуру, отвечающую выбранным архитектурно значимым требованиям, и протестируйте эту конструкцию.
Требуемый ввод
[ редактировать ]ADD можно успешно запустить только в том случае, если следующие ресурсы уже доступны:
- функциональные требования
- требования к качеству
- ограничения
Конечно, мы не можем ждать, пока все эти требования будут окончательно согласованы, поскольку это может занять некоторое время. Процесс ADD может начаться, как только станет доступен набор ASR (архитектурно значимых требований, которые представляют собой три ресурса, перечисленные выше).
Этапы процесса
[ редактировать ]- Выберите элемент системы для проектирования
- Выберите элемент системы, который еще не спроектирован. В первой итерации это будет сама система. В дальнейшем нужно будет сделать выбор между несколькими элементами. Этот выбор может основываться на наличии персонала, доступности входных ресурсов, снижении рисков и т. д. Если у вас нет каких-либо из этих ограничений, рекомендуется использовать стратегию, ориентированную на ширину.
- Определите архитектурно значимые требования (ASR) для выбранного элемента.
- Определите ASR, которые являются наиболее важными для этого выбранного элемента. Вам следует расставить приоритеты среди этих требований, чтобы убедиться, что ваш проект отражает наиболее важные ASR.
- Сгенерировать дизайнерское решение для выбранного элемента
- Этот шаг является основой ADD, поскольку на этом этапе будет создана архитектура. Создаваемая вами архитектура должна отражать выбранные ASR. Вы можете сделать это, используя архитектурные шаблоны или тактики. В большинстве случаев вам придется искать компромисс между несколькими тактиками и ASR.
- Проанализируйте оставшиеся потребности в запасах и выберите входные данные для следующей итерации.
- Взгляните на перечисленные ASR и посмотрите, соответствуют ли они уже имеющемуся у вас дизайну. Для каждого ASR вам придется проверить, удовлетворена ли она, делегирована одному из дочерних элементов, распределена между дочерними элементами или не может быть удовлетворена. В последнем случае вам нужно будет изменить свою архитектуру.
- Повторяйте шаги 1–4, пока все ASR не будут удовлетворены.
- Повторить!
Выход
[ редактировать ]Набор эскизов архитектурных видов, а не полноценная детальная архитектура.
ДОБАВИТЬ 3.0
[ редактировать ]В последние годы ADD был существенно обновлен и теперь включает в себя проектирование, специфичное для платформы, например, выбор технологий и рамок через каталоги концепций дизайна, а также уделяет особое внимание принятию и документированию архитектурных решений . [5]
Ссылки
[ редактировать ]- ^ Войчик, Роб; Бахманн, Феликс; Басс, Лен; Клементс, Пол С.; Мерсон, Пауло; Норд, Роберт; Вуд, Уильям Г. (ноябрь 2006 г.). «Атрибутно-ориентированное проектирование (ADD), версия 2.0» . СЭИ .
- ^ «Метод атрибутно-ориентированного проектирования» . СЭИ .
- ^ Бахманн, Феликс; Басс, Лен (2001). «Введение в метод проектирования, основанный на атрибутах» . ИИЭЭ . стр. 745–746. CiteSeerX 10.1.1.97.5395 .
- ^ Басс, Лен; Клементс, Пол; Казман, Рик (2013). «Глава 17». Архитектура программного обеспечения на практике (третье изд.). Пирсон. ISBN 978-0-321-81573-6 .
- ^ Сервантес Х., Казман Р., Проектирование архитектуры программного обеспечения, Аддисон Уэсли, 2016.