Loading
|
@IT > Software Factoriesによるソフトウェア開発手法 |
|
> モデリング・プラクティス コーナー
前回「『工業生産の効率的手法』をソフトウェア開発に適用する」では、Software Factoriesが目指すソフトウェア開発の工業化の理念を説明した。今回は、その理念を実現する具体的なソフトウェア開発手法を解説しよう。 「『工業生産の効率的手法』をソフトウェア開発に適用する」で、企業システムにおける大規模開発ではアーキテクチャ構築が有効で、そのためにプロダクトライン・アーキテクチャで開発プロセスを規定して、ソフトウェアの開発の効率及び品質の向上を図ることを示した。企業システムの開発で重要なもう1つの点は、大規模開発にかかわる多くのステークホルダー(利害関係者)の役割を整理し、協同作業を成功させることである。経営者、業務担当者、業務分析者、アーキテクト、プログラマー、テスト担当者、データベース管理者、システム運用者などのステークホルダーはそれぞれが別々の課題、要求、関心を持っている。それらの異なる要求を整理し、合意を形成して、関心を表現する最適なモデルを選択し、システムを表現することが必要だ。 ◆ DSLを利用した関心を分離 大規模システムの開発では、業務領域、問題の課題、IT技術分野の分析、設計、実装、運用管理レベルなどのドメインに分割し、それぞれのドメインでステークホルダーの関心を表現し、ソフトウェア開発を進めていく。これが関心の分離の原則だが、そのために、Software Factoriesではドメイン特化言語(DSL:Domain Specific Language)を用いる。DSLと従来の汎用モデル言語UML(Unified Modeling Language)も併用可能だが、UMLはDSLの観点では表現方法の1つの選択肢にすぎない。例えば、UMLで表現が困難なものでDSLでの表現が適するドメインは、業務領域の業務フロー図、文書管理図、組織図、物品の配置図などがあり、IT技術分野では、要求定義図、Webサービス定義図、コンピュータネットワークの構成図などがある。また、DSLには過去のベストプラクティスとしてのパターンと拡張性が組み込まれている。 ◆ Software Factoriesによるソフトウェア開発の自動化 Software Factoriesは開発基盤として、それぞれのステークホルダーの視点からDSLのうち最適な表現方法の選択肢、開発の手順や作業項目、テストの定義、コード改良やビルドの方法、変更時の既存の成果物への影響範囲を明示する。そして、開発環境としてVisual StudioなどのIDEツールが品質の保証、アーキテクチャの提供とフレームワークやコンポーネントの再利用、開発の自動化の推進を行う。従来のオブジェクト指向開発で必要とされた、アーキテクチャの構築、拡張性のための設計、開発手順の考察、チーム開発のための役割と作業項目の分担の決定などを極力自動化するのである。その結果、開発プロジェクトのリスクを減らすことが可能で、手作業的ソフトウェア開発は工業的な開発に生まれ変わる。
◆ ソフトウェア開発の工場を再利用 従来のソフトウェアコンポーネントの流通と再利用による生産性の効果は一定の成果を上げたが、ソフトウェア開発の工業化のレベルには至らなかった。Software Factoriesでは、ソフトウェアコンポーネントの再利用は依然として継続するが、それよりも、プロダクトライン・アーキテクチャにより構築された開発基盤をソフトウェア開発のための工場として再利用する。つまり、ソフトウェアの成果物そのものの再利用ではなく、成果物を生み出す工場を再利用する発想である。現在の製造業で部品や組み立てを行う工場の拠点が点在し、それらの機能を再利用して製品を作る姿に似ている。この点が、Software Factoriesが最新のソフトウェア工学を応用した次世代開発基盤技術といわれるゆえんである。
Software Factoriesとは、仕様(漠然とした意図)を生産ラインに乗せるだけで自動的にソフトウェア(システム)ができあがるという開発基盤技術ということになる。具体的な作業手順としては、まず問題領域(ビジネスドメイン)をDSLによってモデリングするが、その過程において、前回「『工業生産の効率的手法』をソフトウェア開発に適用する」で少し説明した必須のフィーチャー(提供される機能)と可変的なフィーチャーとを識別する。いったんフィーチャーが洗い出されると、それを実行するためのアーキテクチャを設計し、そのアーキテクチャに基づいて再利用可能なアセット(ソフトウェア資産)を実装する。ここでいうアセットには、コンポーネントやフレームワーク、開発プロセス、成果物一覧、ドキュメント・テンプレートなどがすべて含まれる。これら一連の作業がプロダクトライン(生産ライン)と呼ばれるものである。次に、似通ったソフトウェアを構築するには、構築済みのプロダクトラインからの差分を扱えば十分である。一度生成されたアセットの管理モデルをインポートすることで、プロダクトを開発するために最適化(カスタマイズ)されたプロダクトライン環境(工場に相当)をすぐに構築することが可能だ。 マイクロソフトが2005年リリースを予定しているVisual Studio 2005統合開発環境には、この一連のプロセスを可能にする機能が実装されることになっており、ソフトウェア開発の生産性をこれまで以上に格段に向上させることにつながるだろう。
提供:マイクロソフト株式会社
企画:アイティメディア 営業局 制作:@IT編集部 掲載内容有効期限:2005年7月31日 |
|