NTTグループのソリューションガイド

ICTソリューション総合誌 月刊ビジネスコミュニケーション

ビジネスコミュニケーション
第36回 アスペクト指向要求工学 NTTデータ 技術開発本部 副本部長 山本修一郎

(株)NTTデータ 技術開発本部 システム科学研究所 所長 工学博士 山本修一郎

2004年にはアスペクト指向要求工学のワークショップが開催される[1]など、アスペクト指向開発のための要求工学手法が注目されている。今回は、アスペクト指向開発における要求工学AORE(Aspect Oriented Requirements Engineering)がどういうものなのかについて紹介しよう。

アスペクト指向開発とは

アスペクト指向開発は、オブジェクト指向開発における次のような問題を解決するために提案された。

【分散(scatter)問題】

オブジェクトに機能が隠蔽されるため、同様の記述が複数のオブジェクトに分散する

【友連れ(tangle)問題】

オブジェクトの中で複数の機能が同時に混在して記述される

このため、複数のオブジェクトに対して横断的に出現する共通的な関心事を抽出して独立に記述しておき、必要に応じて参照するという考え方としてアスペクト指向が提案された。

このように共通的な関心事(アスペクト)を分離することをSoC(Separation of Concerns)という[2]

SoCでは、できるだけ機能を単純化することが求められる。これによって、機能定義の重複を削減することができる。このような考え方は、ソフトウェア工学の基本原理の一つでもある。つまり機能の定義は1箇所に限定しておき必要な箇所で参照するのである。

なぜアスペクト指向要求工学が必要なのか?

この理由は以下の3点に整理できるだろう[3]

共通関心事を識別する必要がある

そうしないと、複数個所に同じ要求が分散して重複記述されるために変更時の影響範囲が特定できないだけでなく、理解容易性も低下する。

要求のモジュール化

共通関心事を独立に記述することで要求のモジュール化が可能になり、理解容易性を向上できる。

影響範囲の明確化と限定

アスペクトを独立に記述し参照元との関係を明示的に記述することで、アスペクトの影響範囲を限定できる。

クロスカット要求とは

要求Bの構成要素が要求Aを考慮しないと満足できないとき、要求Aが要求Bをクロスカットするという。この場合、要求Aがクロスカット要求になる[2]

クロスカット要求の形態は、オブジェクトの分散問題と友連れ問題と同様に、分散要求と友連れ要求の2つがある(図1)。

図1 クロスカット形態
図1 クロスカット形態

分散要求

同じ要求が異なる複数の要求に散在する。このとき、複数の要求で必要とされる要求がクロスカット要求になる。

友連れ要求

ある要求が、複数の性質や機能要求を同時に必要とする。このとき同時に必要とされるクロスカット要求が友連れ要求になる。

クロスカット要求の例(表1)

表1 クロスカット要求の例
要求 要求 クロスカット要求
応答時間
システムはプラットフォームXと相互接続する
10秒以内にすべてのシステム応答が完了する
セキュリティ
要求された場合、ユーザー名、生年月日、住所を表示する
認証されたユーザーだけに個人情報を表示する
例外
システムが指定されたftpサイトからコンポーネントをダウンロードする
指定された時間内にftpミラーサイトとの接続が出来ない場合、ダウンロードプロセスを中断する

(例1)応答時間要求

R2は、R1の相互接続時の応答時間に関する制約条件を与えるクロスカット要求の例である。

R1. システムはプラットフォームXと相互接続する

R2. 10秒以内にすべてのシステム応答が完了する

(例2)セキュリティ要求

R4は、R3を実行するときの事前条件を与えるクロスカット要求の例である。

R3. 要求された場合、ユーザー名、生年月日、住所を表示する

R4. 認証されたユーザーだけに個人情報を表示する

(例3)例外要求

R6は、R5を実行するときの制約条件を与えるクロスカット要求の例である。

R5. システムが指定されたftpサイトからコンポーネントをダウンロードする

R6. 指定された時間内にftpミラーサイトとの接続ができない場合、ダウンロードプロセスを中断する

クロスカット要求の記述形態

クロスカット要求をどのように記述すればいいだろうか?以下では、銀行口座処理を例にこの問題を考えよう[4]

簡単のために、銀行口座の預金への利子の追加処理と口座からの預金の引出処理を考える。これらの処理では、トランザクションの完了確認処理とトランザクションの履歴を記録する処理が必要になる。つまり処理完了確認と処理履歴登録の2つがクロスカット要求である。図2に示すように、以下の3つの記述形態が考えられる。

図2 クロスカット要求の構成方法
図2 クロスカット要求の構成方法

分散記述

2つのクロスカット要求を利子処理と引出処理の中に分散して埋め込む方法である。

この方法では、クロスカット要求を分離できないので、記述が重複してしまいモジュール化できていないという問題がある。

暗黙的関心記述

この方法ではクロスカット要求としての関心事を独立に定義し、参照もとの要求からクロスカット要求への関係は定義しているが、クロスカット要求から利子処理と引出処理への関係が暗黙的であるため、クロスカット要求の変更時の影響範囲を追跡しにくいという問題がある。

明示的関心記述

この方法ではクロスカット要求としての関心事を独立に定義するだけでなく、参照もとの要求とクロスカット要求との関係を双方向で定義する。このためクロスカット要求から利子処理と引出処理への関係が明示的であるため、クロスカット要求の変更時の影響範囲を特定できるという特徴がある。

そういう意味では、クロスカット要求の記述は、要求間の共通性を分析し、記述の独立性を高めると同時に追跡性を管理する手法であるといえる。

アスペクト指向要求分析プロセス

アスペクト指向要求工学のプロセスには、表2に示すように次の4ステップがある[4]

表2 AORE のプロセス
ステップ 説明
識別
要求の中からクロスカット要求を探索してアスペクトを識別する。
獲得
各要求が一つだけの関心事に対応することを確認する。
合成
クロスカット要求が影響を与える要求の範囲を明示的に特定する。つまりクロスカット要求を参照する全ての要求を列挙する。
分析
アスペクトとしての関心事と他の要求との矛盾がないことや一貫性を確認する。

識別

要求の中からクロスカット要求を探索してアスペクトを識別する。

アスペクトを探すときには、セキュリティ、一貫性、信頼性、性能などの品質特性や非機能要求を表すような言葉に着目すると良い。

獲得

各要求が一つだけの関心事に対応することを確認する。たとえば、暗黙的関心記述で示したように、分散記述されている関心事を独立させるのである。

合成

クロスカット要求が影響を与える要求の範囲を明示的に特定する。つまりクロスカット要求を参照するすべての要求を列挙する。たとえば、明示的関心記述で示したように、分離された関心事が参照元の要求に対応することを確認する。

分析

アスペクトとしての関心事と他の要求との矛盾がないことや一貫性を確認する。

AOREの特徴[3]

AOREの特徴をまとめると、次のようになる(表3)。

表3 AORE の特徴
ステップ 説明
抽象化
共通関心事の詳細を隠蔽して抽象化することで、要求を複数個所に分散することなく一意に記述できる。
モジュール化
共通関心事を分離独立させておくことで、影響範囲を限定できる。
一貫性
共通関心事と他の要求との相互関係を明示的に記述できるようになるのでその一貫性を系統的に保証できる。

抽象化

共通関心事の詳細を隠蔽して抽象化することで、要求を複数個所に分散することなく一意に記述できる。

モジュール化

共通関心事を分離独立させておくことで、影響範囲を限定できる。

一貫性

共通関心事と他の要求との相互関係を明示的に記述できるようになるのでその一貫性を系統的に保証できる。

関連する要求工学手法

AOREは従来の要求工学を補完する技術であって、ゴール指向要求工学やシナリオ指向要求工学などと組み合わせることができる[5]

たとえば、ゴール指向手法でも、関心事を扱うことができるが、すべてを同列に扱うため組合せが系統的に支援されていないこと、手段目的分析がアクタごとに局所的にしかできないことなどの問題がある。そこで、ゴール指向で抽出したアクタとしてのステークホルダのニーズをAOREでモジュール化して組み合わせることができる。

シナリオ指向要求工学では、機能シナリオをユースケースとして識別すると、それに対する品質特性として、たとえば性能やセキュリティをアスペクトとして識別することができる。

まとめ

今回はアスペクト指向要求工学について説明した。アスペクト指向もオブジェクト指向と同様にはじめはプログラミング技法として提案され、アーキテクチャ設計法、要求工学手法へと下流から上流に向けて研究が進んできた。そういう意味でアスペクト指向要求工学はまだ研究の初期段階にある。今後アスペクト指向要求工学の研究が進展することを期待したい。


■参考文献
第59回以前は要求工学目次をご覧下さい。


会社概要 NTT ソリューション 広告募集 ページ先頭へ
Copyright:(C) 2000-2017 BUSINESS COMMUNICATION All Rights Reserved. ※本サイトの掲載記事、コンテンツ等の無断転載を禁じます。