フリーキーズ | 独学プログラミング

ADDとは

最終更新日
c1-normal-4

ADD(Attribute-Driven Design: 属性駆動型設計)とは、ソフトウェアアーキテクチャを設計するための手法の一つです。カーネギーメロン大学のソフトウェア工学研究所(SEI)によって開発された。ADD法は、品質属性シナリオのセットを入力とし、そのシナリオを満たすソフトウェアアーキテクチャ設計を行うものです。

ADDの手順

ここでは、ADDの仕組みを簡単な手順で説明します。

c1-happy-1

1. システムの駆動属性を選択する

最初のステップは、システムの主要な品質属性を特定することです。これは、システムが備えていなければならない主な特徴や品質です。例えば、性能、セキュリティ、信頼性などです。

2. 建築設計要素を作成する

特定された属性に基づき、アーキテクチャ要素の初期セットが設計されます。これらの要素は、通常、モジュール、コンポーネント、コネクタ、およびコンフィギュレーションに分類されます。

3. 精緻化と反復

アーキテクチャ要素は、属性シナリオに基づき、複数回の反復を経て改良されます。各反復では、要素の設計、設計ルールとパターンの適用、設計の選択に関する推論を行います。

4. 文書化と伝達

最終設計は文書化され、関係者に伝達されます。アーキテクチャは、実装プロセスをガイドするのに十分な詳細さで文書化されます。

ADDの例

例えば、高性能を重要な属性とするシステムを設計するとします。ADD方式では、まず、システムの文脈で高性能が何を意味するかを定義します。そして、パフォーマンスを意識して最初のアーキテクチャ要素を設計し、パフォーマンスを向上させることが知られているデザインパターンやストラテジーを選びます。そして、設計を何度も繰り返し、その都度、設計上の決定が期待通りに性能を向上させていることを確認しながら、設計を改良していきます。最後に、設計を文書化し、関連するステークホルダーに伝えます。

まとめ

ADD法は、品質属性がシステムの成功に重要な役割を果たす複雑なシステムで特に有効です。これは、アーキテクトがシステムの品質属性に基づき、情報に基づいた設計上の決定を下すのに役立つ体系的なアプローチです。