ソフトウェアアーキテクティングのプロセス:The Rational Edge(1/2 ページ)
ソフトウェアアーキテクティングは、ソフトウェア開発分野において最近その存在が認められた新しい学問だ。ソフトウェアアーキテクチャシリーズの第3回となる本稿では、ソフトウェアプロジェクトのライフサイクルにおいてソフトウェアアーキテクトが進める作業を説明する。
The Rational Edgeより:ソフトウェアアーキテクティングは、ソフトウェア開発分野において最近その存在が認められた新しい学問だ。ソフトウェアアーキテクチャシリーズの第3回となる本稿では、ソフトウェアプロジェクトのライフサイクルにおいてソフトウェアアーキテクトが進める作業を説明する。
本シリーズの第1回「ソフトウェアアーキテクチャって何なの?(前篇)」ではソフトウェアアーキテクチャについて説明し(関連記事1、関連記事2)、第2回「ソフトウェアアーキテクトの役割」ではソフトウェアアーキテクトが果たす役割を定義した。3回目となる今回は、アーキテクトの話を土台にし、ソフトウェアアーキテクティングのプロセスの根底にあるテーマ、あるいは特性を検討する。
ソフトウェアアーキテクティング:その定義と範囲
IEEEによるとソフトウェアアーキテクティングは以下のようになる。
アーキテクチャの適切なインプリメンテーションを定義、ドキュメント化、保守、改善、および認証する作業(注1)
注1 IEEE Computer Society、IEEE Recommended Practice for Architectural Description of Software-Intensive Systems:IEEE Std 1471-2000。
アーキテクティングの範囲はかなり広い。図1は、ソフトウェアアーキテクティングのプロセスの各側面を定義するメタモデルを示している。これは、IEEE 1471標準のものから派生したメタモデルで、アーキテクトが関与するアーキテクティングのさまざまな側面を通じてロードマップと見なすことができる。
図1にある色の付いたボックスの中の要素はIEEE 1471標準から直接取ってきたもので、これらのさまざまな関係は、システムとそのアーキテクチャに関する多くの特性を示している。
- システムにはアーキテクチャがある
- システムはミッションを遂行する
- システムは環境の中に存在し、その環境の影響を受ける
- システムには1人以上の利害関係者がいる
- アーキテクチャはアーキテクチャ定義によって説明される
- アーキテクチャ定義は1人以上の利害関係者を特定する
- アーキテクチャ定義は1つ以上の関心事を特定する
- アーキテクチャ定義は論理的根拠を提供する
- 利害関係者には1つ以上の関心事があり、1つの関心事は1人以上の利害関係者にとって重要な意味を持つ
IEEE 1471標準になく、図1にはある(色なしのボックス)そのほかの要素や関係は次のように説明される。
- 開発プロジェクトはチームが担当する
- 開発プロジェクトは開発プロセスに従う
- 開発プロジェクトはシステムを提供する
- 開発プロセスにはアーキテクティングも含まれる
- チームにはアーキテクトが含まれる
- アーキテクトはアーキテクティングを行う
- アーキテクトも利害関係者の中に含まれる
- アーキテクティングによってアーキテクチャが完成する
- アーキテクトがアーキテクチャを作成する
- アーキテクティングは科学だ
ソフトウェアアーキテクティング作業は、まだ新しいものの、ソフトウェア開発分野において認められた学問だ。しかし、そのような認識から、重点はアーキテクティングプロセスを完成させるテクニック、プロセス、そして資産に置かれる。このような完成度を高める方法の1つが、既存の多数の知識を利用することだ。大まかにいえば、アーキテクトがアーキテクチャを開発する際は、わざわざ一からやり直すのではなく、実証済みのソリューションを探し求める。参考になるアーキテクチャの観点から体系化された経験や、アーキテクチャおよびデザインパターンなどの再利用可能な各種要素には、それぞれに役割がある。
しかし、ソフトウェアアーキテクティングのプロセスが土木工学のプロセスに少しでも完成度で近づくにはまだ時間が掛かるだろう。この完成度は、標準の利用や、最優良事例、テクニック、およびプロセスの理解など、多くの側面から検討することができる。その結果、現時点ではアーキテクトの経験がプロジェクトの成功を大きく左右する。
Copyright © ITmedia, Inc. All Rights Reserved.