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