ソフトウェアアーキテクティングのメリットThe Rational Edge(2/2 ページ)

» 2006年06月21日 12時00分 公開
[Peter Eeles(IBMシニアITアーキテクト),@IT]
前のページへ 1|2       

◆ アーキテクティングはアーキテクチャの整合性を推進する

 アーキテクティングのプロセスにとって最大の目的の1つは、設計者や実装者が引き受けた作業に対し、アーキテクチャが堅牢なフレームワークを確実に提供できるようすることだ。この作業がアーキテクチャのビジョンを伝達するだけの単純なものではないことは明らかだ。結果として生まれるアーキテクチャの整合性を保証するため、アーキテクトはアーキテクチャ本体を明確に定義しなくてはならない。これが、システムのコンポーネント、そのインターフェイス、そしてこれら相互のやりとりなど、アーキテクチャ上重要な要素の特定につながる。

 アーキテクトはさらに、設計者や実装者の作業指針となる適切な手法、標準、およびガイドラインも定義しなくてはならない。アーキテクティングの目的の1つが、設計者や実装者側の不要な創造性の排除だ。これは、自分にできることに対して必要な制約を課し、その制約から逸脱するとアーキテクチャの破壊につながる可能性があると明言することで実現できる。このような理由から、適切な審査および評価方法を採用することが、アーキテクチャの整合性を保証するのに役立つことになる。これらの作業が重点を置いているのは、設計者や実装者の作業を検討し、用意されたアーキテクチャ標準やガイドラインへの準拠の度合いを判断することだ。

◆ アーキテクティングは複雑性への対処に役立つ

 今日のシステムはかつてないほど複雑化しており、この複雑性は何とかする必要がある。アーキテクチャは重要な要素にしか重点を置いていないため、これがシステムの抽象概念の提供につながり、従って複雑性を管理する手段が提供される。また、アーキテクティングのプロセスはコンポーネントの再帰的分解も考慮している。これが、大きな問題をいくつもの小さい問題に分解するのに優れた方法であることは明らかだ。

 複雑性は、アーキテクチャの抽象概念を伝達可能にするテクニックを使い、さらに簡単に管理できるようになる。従って、今日の業界におけるソフトウェアシステムのドキュメント化では、このような抽象概念を表現できるUMLなどの業界標準を採用することが一般化している。

◆ アーキテクティングは再利用のための基盤を実現する

 アーキテクティングのプロセスでは、再利用可能な資産の利用と作成の両方をサポートすることができる。再利用可能な資産は全体のシステムコストを削減し、再利用可能な資産が実証済みであれば(つまり、すでに利用されているということなので)品質も向上させられ、組織にとってメリットがある。

 アーキテクチャを作成することは、再利用可能な機会の特定を支援する。例えば、アーキテクチャ上重要なコンポーネントと、これらのインターフェイスや品質の検証は、これらのコンポーネントのインプリメントに利用可能な既製コンポーネント、既存システム、パッケージアプリケーションなどの選択を助ける。また、アーキテクチャ自身も今後のシステム向けのリファレンスアーキテクチャとして再利用できる可能性がある。さらに、そのアーキテクチャの中のコンポーネントでも、ほかの場面で再利用可能だと見なされる場合がある。

 アーキテクティングのプロセスは、現行のプロジェクト内で再利用できる機会を特定することができるが、プロジェクト全体および組織全体での再利用を検討する場合はさらに大きな影響がある。

 ただし、再利用について話をする場合は必ず注意が必要だ。技術およびそれ以外のさまざまな理由から、いままでに成功した再利用可能プログラムは非常に少ない。技術的観点から見た場合、再利用プログラムは適切な標準、プロセス、そしてツールを確実に用意しておく必要がある。幸いにも、基盤となる要素のいくつかは対応が進んできた。再利用可能な資産、再利用可能な資産のパッケージング、そしてRASレポジトリサービスとのインターフェイスの標準を定義するOMG(Object Management Group)のRAS(Reusable Asset Specification)の標準化はその好例だ。注1


注1 「Reusable Asset Specification」参照。Object Management Group Inc.刊、書籍番号04-06-06:2004年6月


 技術以外の観点から見た場合、再利用戦略を進めるに当たって組織が常に考慮すべきこともある。例えば、さまざまな場面で利用されることを考えた場合の再利用可能な資産の開発責任者、(資産を開発したチームが解散した場合も含め)開発された資産の維持管理者、再利用可能な資産の開発と利用に対する動機付け、再利用可能な資産の開発コスト(これは再利用可能でないものの開発コストを上回るケースがほとんど)をどう正当化するかなどだ。

◆ アーキテクティングは維持管理費用を削減する

 アーキテクティングのプロセスはさまざまな側面から維持管理費用の削減に役立つ。第一に、アーキテクティングのプロセスは、システムの維持管理者が重要な関係者であり、そのニーズに対応することを後回しにせず最重要課題として常に保証する必要がある。その結果が、システムの維持管理を容易にする目的で適切にドキュメント化されたアーキテクチャだけでは不十分だ。アーキテクトはさらに、システムを維持管理するための適切なメカニズムが確実に組み込まれるようにするとともに、アーキテクチャ作成時にはシステムの順応性と拡張性についても考慮することになる。

 アーキテクトはまた、システムの中で変更や切り分けの作業が最も必要だと思われる部分についても考慮する必要がある。これは、1つあるいは少数のコンポーネントにしか変更の影響がない場合はかなり分かりやすい。しかし、システムの品質に関係するパフォーマンスや信頼性といった一部の変更がこのようには切り分けられないことを認識する必要がある。アーキテクトが、現行システムの設計中に将来考えられる要件も確実に考慮しなくてはならないのはそのためだ。数十人ではなく数千人のユーザーをサポートできるようシステムをスケーリングするようなことは、根本的にアーキテクチャを変更しない限り通常は不可能だからだ。

◆ アーキテクティングは影響の分析をサポートする

 アーキテクティングの重要なメリットは、変更に着手する前にその影響を推測できる点だ。アーキテクチャは、主なコンポーネント、これら相互のやりとり、コンポーネント間の依存関係、そしてこれらのコンポーネントからこれらが実現する要件までのトレーサビリティを特定する。

 この情報があれば、共同でこの要件を実現するコンポーネントへの影響の観点から要件の変更などを分析できるようになる。同様に、これに依存するほかのコンポーネントの観点からコンポーネント変更の影響も分析できる。

 このような分析は、変更に関するコスト、変更がシステムに与える影響、そして変更に関連するリスクの判断に大きく役立つ。この情報はその後、変更の優先順位付けや、間違いなく必要な変更の処理に利用される。


本記事は「The Rational Edge」に掲載された「The benefits of software architecting」をアットマーク・アイティが翻訳したものです。


「The Rational Edge」バックナンバー
前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ