連載次世代開発基盤技術“Software Factories”詳解第5回 ビューポイントによる関心の分離と開発プロセスの実現マイクロソフト株式会社 萩原 正義2005/08/03 |
|
|
◆ビューポイントを用いたプロダクト生産プロセス
ビューポイントを単位としてプロダクト生産プロセスを推進する方法を図4で説明する。
図4 ビューポイントを用いたプロダクト生産プロセス |
ソフトウェア・プロダクトラインの資産の一部として提供されるビューポイントを用いてプロダクト生産プロセスを実行する。ビューポイントによって分離された関心に従って開発成果物が管理される。プロダクト生産プロセスは、各ビューポイントが強制する微視的な開発プロセスと、複数のビューポイントを組み合わせたプロダクト生産全体の開発プロセスから構成される。特定のビューポイントにおけるモデルや開発成果物への変更を、ほかのビューポイントのモデルや開発成果物のどこまで波及させるかがリンク(図中の矢印線)を通じて管理される。Software Factoriesは「Factoryスキーマ定義」を使ってビューポイント間の関係を管理し、Software Factories対応ツールはこの管理機構を利用して、モデル間の一貫性や制約条件、変更の波及範囲の見積もりを実現する。 |
図4では、ビューポイントをだ円形で示し、各ビューポイント間の関係をリンク(矢印線)で表している。
例えば、物理レベル・ビューポイントとして「データベース定義」や「XML、プロジェクト、コンフィグ、クラス、コード」が存在する。あるいは、概念レベル・ビューポイントとして「ビジネスのプロセスとエンティティ」、また、インフラストラクチャ・ドメインでは、「物理マシンとネットワーク・セグメント」が存在する。
●個々のビューポイントと全体開発プロセス
これらのビューポイントは、UMLのほか、ERD(Entity Relationship Diagram)、DFD(Data Flow Diagram)、物理マシン構成DSLなどのモデルや、パターン、フレームワーク、ツール、その視点での微視的な開発プロセスなどの開発成果物を含む。
従って、プロダクト生産プロセスは、個々のビューポイントのスコープではアーキテクトが提供し、それ自身が強制する微視的な開発プロセスに従うが、プロダクト生産全体の開発プロセスとしては、必要に応じて選択したビューポイントの組み合わせのリンクをたどる任意の開発プロセスを選択することが可能である。すなわち、概念レベルからのトップダウン・アプローチや、既存資産を活用しての物理レベルからのボトムアップ・アプローチ、両者のアプローチを組み合わせたミドルアウト・アプローチなどの開発プロセスを、開発戦略に合わせて選択可能である。
個々のビューポイントのスコープでは、開発プロセスを強制してソフトウェア品質を確保する一方で、全体開発プロセスに選択の自由度を与えることにより、できるだけ多くのソフトウェア開発に対して開発基盤を提供するのが狙いである。
●ビューポイント間のリンクの意味
ビューポイント間のリンクは開発プロセスの方向性を示すと同時に、ビューポイント間のモデルや開発成果物の依存関係を示している。実際の依存関係は、ビューポイントに含まれるモデルや開発成果物のそれぞれの間に存在するが、図4ではそれらをビューポイント間の1本のリンクとして抽象的に表現している。
同時に、依存関係は変更の波及範囲も示している。例えば、ビジネス・エンティティ・モデルのエンティティ属性の追加はデータベース定義のカラムに影響する。このように特定のビューポイントにおけるモデルや開発成果物への変更をほかのビューポイントのモデルや開発成果物のどこまで波及させるかがリンクを通じて管理される。
Software Factoriesでは、「Factoryスキーマ定義」を使いビューポイント間の関係(=リンク)を管理し、Software Factories対応ツールはこの管理機構を利用して、モデル間の一貫性や制約条件、変更の波及範囲の見積もりを実現する。
従って、Software Factories対応ツールは、ビューポイント定義だけでなく、Factoryスキーマ定義を理解し、それに従った管理機構を動作させる必要がある。Factoryスキーマ定義は現在まだ公開されていないが、将来的にはXML定義として公開される見込みである。
●ビューポイント間での開発プロセスのトレーサビリティの実現
図5は、ビューポイント間のモデルの一貫性や制約条件、変更の波及範囲の様子を示している。
図5 ビューポイント間での開発プロセスのトレーサビリティ |
ビューポイント間のモデルの一貫性や制約条件、変更の波及範囲を、モデル間の依存関係として矢印で示している。この依存関係に従って開発プロセスのトレーサビリティを実現する。 |
この図では、次の内容が示されている。
(1)「アプリケーション」のクラス構造は、クラスを束ねて保守、再利用の単位となるか、あるいは、配布や管理の単位となるコンポーネントやサービス(=「アプリケーション・ホスティング」)と関連付けられる。
(2)コンポーネントやサービスは、それらの実行可能な条件を持つノード(=「論理サーバ&ネットワーク・レイアウト」)に配置される。
(3)ノードはコンポーネントやサービス実行に必要な属性(セキュリティ・ポリシーや実行に必要なキャパシティなど)を持つ仮想的なサーバ定義であり、運用では実際の物理マシン(=「ハードウェア」)への割り当てが行われる。
これらのビューポイント間のモデルの関係はリンクの矢印として表現される。この依存関係に従って、ビューポイント間での開発プロセスのトレーサビリティを実現する。
◆まとめ
ITシステムに対する要求の多様化、アーキテクチャの大規模化と複雑化に対応するために、Software Factoriesはビューポイントという関心の分離に基づく表現を管理する機構をIEEE std 1471-2000のアーキテクチャ記述の推奨プラクティスに従って導入した。
ビューポイントは、ソフトウェア・プロダクトラインを基盤とし、プロダクト生産プロセスに対して部品表を提供する。そして部品表は、関心の分離と、微視的開発プロセスを含む開発成果物の用意(調達)と構築を強制し、ソフトウェア品質の確保をするとともに、各種のプロダクト生産開発プロセスへの柔軟な対応を実現する。
また、ビューポイントはソフトウェアのアスペクトを抽出する基盤ともなり、将来有望なアスペクト指向パラダイム*3とも有機的に結び付くのである。
*3 本連載の第4回で解説したサブジェクト指向パラダイムもこの中に含まれる。 |
次回はビューポイントに含まれるDSLの説明とその設計法を解説する予定である。
|
1993年マイクロソフト入社。北海道大学、早稲田大学非常勤講師。.NET開発、アーキテクチャの調査研究と技術啓蒙に従事。アスペクト指向、フレームワーク実装技術、開発方法論、データ中心アプローチとオブジェクト指向分析/設計との融合、モデル駆動型アーキテクチャ、サービス指向アーキテクチャなどが現在の興味対象。趣味は、IT業界の著名人との雑談とウインター・スポーツ。ソフトウェア技術の発展に貢献することが夢。 |
INDEX | ||
次世代開発基盤技術“Software Factories”詳解 | ||
第5回 ビューポイントによる関心の分離と開発プロセスの実現 | ||
1.アーキテクチャ記述の推奨プラクティス | ||
2.ビューポイントとは? | ||
3.ビューポイントを用いたプロダクト生産プロセス | ||
「次世代開発基盤技術“Software Factories”詳解」 |
- 第2回 簡潔なコーディングのために (2017/7/26)
ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている - 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう - 第1回 明瞭なコーディングのために (2017/7/19)
C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える - Presentation Translator (2017/7/18)
Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|