« プロダクトラインと派生開発(その1) | トップページ | 構造化設計にこだわるわけ »

2011年2月 5日 (土)

プロダクトラインと派生開発(その2)

ソフトウェアプロダクトライン(以下、SPL)と、派生開発のプロセスXDDP(eXtreme Derivative Development Process)についての話の続きになります。

すこし前のことになります。
「SPLとXDDPによる多品種開発の品質と生産性の向上 ~一見矛盾する2つのアプローチの関係をどう捉えるか~」
と題したセミナーが行われ、参加してきました。

はて、疑問です。この二つは対立軸にはないと思われるからです。
その疑問は、最後のパネルディスカッションでも取り上げられ、4名のパネラーの皆さんともに、やはり対立するものではないというコメントでした。

その中で、九州大学の中西先生が、次のように二つを対比してまとめられています。

 
【SPL と XDDP の比較】
SPL XDDP
パラダイム メソトロジ
全体理解を志向 部分理解を容認
組合せを志向
(変化点の抽出が重要)
摺合せの容認
(変化点の概念が希薄)
計画駆動 変化駆動
アーキテクチャ駆動 アーキテクチャ希薄

なるほど、二つの考え方の違いがよく分かります。

SPLは、トップダウン・ボトムアップ2種類のアプローチがありますが、ポイントは全体志向であることでしょう。かならずシリーズ製品全体の仕様を考え、計画的な開発を行う。全体を通して変わらぬアーキテクチャを構築する事で、部分部分の変化点で個別の製品に対応する。そこは、SPLの譲れない考え方です。

対して、XDDPは完全にボトムアップのアプローチです。そして、派生開発の差分となる部分に関連したところだけの部分理解を容認しています。
実は、ここがSPLよりもXDDPの方が取り組みやすいところであり、危険なところであると思います。

既存製品のソフトウェアを隅々まで理解するということは、とても困難で、時間のかかる作業です。その点、部分理解容認というこの手法は、取り組み易い手法といえます。
しかし、製品としてリリースするからには、変更に抜け漏れや勘違いが混入してはいけません。つまりは、部分理解をする際、どこまでを理解すればよいかが、肝になります。その点について、強力な対策が示されていないため、レビューなどによってその点に十分なチェックが必要となるでしょう。


システムクリエイツの清水氏は、二つの関係について次のように言っていました。

SPLは2階建て構造であり、SPLに取り組むには次のような前提が満たされていることが条件である。

【SPLの前提】
  ・SPLに耐えるアーキテクチャ技術はあるか
  ・再利用性の高いモジュール技術はあるか
  ・劣化しにくい最初からの設計技術はあるか
  ・劣化しにくい変更技術はあるか
  ・計画通りに作業を進めることが出来るか

これら前提が満たされていなければ、SPLは遠い存在であり、実施できない。
また、XDDPによる派生開発を乗り越えられないようでは、SPLは成功しない。XDDPは、これらの前提を身に着け、2階(SPL開発)に登るための梯子の役割ともなる。

なるほどと思いました。
アプローチは異なるものの、いずれの方法論にも、ソフトウェア工学の基礎となる設計力、プロセス構築等は必須である。これらを習得せずして、SPLでもXDDPでも、開発の成功はありえないといことです。

ソフトウェア工学の基礎を学習し、XDDPという方法論を用いて日々学習を実践に活かしていくことで、将来SPLへの道筋が見えるのではないかと思いました。

« プロダクトラインと派生開発(その1) | トップページ | 構造化設計にこだわるわけ »

派生開発」カテゴリの記事

コメント

この記事へのコメントは終了しました。