~ソフトウェア品質の向上とそこに関わるすべての方へ~ Software Quality Profession

プロダクトライン開発における品質の向上効果

セイコーエプソン株式会社
島 敏博

5.機能を担当させる体制づくりにより品質を向上させる

 共通部と可変部に分けて開発するのがプロダクトライン開発ですが、これは必ずしも組織を2つに分けることではありません。組織作りにはいろいろな方法があると思いますが、図5のように担当者を決めて機能を担当させる方法がお薦めです。


図 5:機能を担当する体制づくり

 図5は機能ごとに担当者を割り振る方法です。ある特定の機能Aに注目すると、その機能の開発に責任をもっているリーダーAは、その機能の共通部と可変部の両方を担当しています。第2世代では、自分で作った共通部を使って、2つの機種の可変部を開発し、それぞれ組み合わせて製品をリリースします。

 リーダーは共通部を作ると共に可変部を作り、さらに同じ共通部を使って複数の派生機種を開発することをミッションとします。自分で実装しやすくすると同時に他人にも使ってもらいやすいインターフェースを作るわけです。このようにリーダーは作る側と使う側の両方を担当するということとなります。

 さらに派生機種を増やしていく段階で、次世代リーダーBさんを育成します。そのときはまず可変部を作ってもらいながらプロダクトラインの基本を伝授します。

 マスターした次世代リーダーBは、やがて機能BのリーダーBとなります。

6. テストもプロダクトライン開発することにより、製品もテストも一括して品質向上させる

 モデル駆動開発を活用することで、プロダクトライン開発を加速することができます。製品をモデル駆動開発する場合、テストもモデル駆動開発します。設計したものは開発者が自分でテストします。図6をご覧ください。


図 6:製品とテストの両方をモデル駆動開発する

 設計者は、製品用のモデル図面と、テストスイート用のモデル図面を同時に設計します。クラス図上に、製品用のクラスと、テスト用のクラスを描きます。状態マシン図なら、製品用の状態マシンを表した図のほかに、その状態マシンをテストするためのテストクラス側の状態マシンの図も描きます。

 それらの図からそれぞれコード生成させ、PC上でテストします。

 うまく動くかどうか確認しうまく動いたら、今度は両方のモデルから、それぞれ実機用のソースコードを生成させ、ターゲット上でテストをします。

 製品コードをリファクタリングした後も、それにあわせてテスト用コードもリファクタリングしてテストが通る状態を維持します。これにより品質が落ちていくのを防ぎます。テスト周期、リリース周期は1日以内とし、常に2つを同時にリリースします。

 このとき(テストコード行数/ソースコード行数)のメトリックスをモジュールごとに計測して見える化することをお薦めします。

 さらに、いったん作り上げたプロダクトラインプラットフォームが崩れないように監視していくプロセスも取り入れます。依存性構造マトリックスを作成し、認められない循環参照、逆向き参照、飛び越し参照などを追加してプラットフォームが崩れ出さないかも監視します。自動化し深夜プロセスに組み込みます。

 このように、プロダクトライン開発では、製品群開発を効率的に進められるように、世代を重ねてよい設計に変え、よいプロセスに変えつづけていくことが大切です。それにより、これまで述べたようにソフトウェア品質を高めることができます。

プロフィール

島 敏博 (しま としひろ)
セイコーエプソン株式会社
機器ソフトウェア統括センター 機器ソフトウェア企画設計部 研究副主幹
1982年 信州精器(現セイコーエプソン)入社。以来ドットインパクトプリンタ、熱転写プリンタ、インクジェットプリンタ、レーザープリンタに組み込まれるソフトウェアの開発設計実装を担当。現在はプロダクトラインを支えるフレームワークのアーキテクチャ設計を担当。モデル駆動開発ツールを使用して大規模組込み開発を加速中。全社に対してモデリング教育、モデルレビュー、オブジェクト指向の普及、事業ドメインを越えたアーキテクチャ展開を行う。SESSAME会員。SESSAMEセミナー「モデル駆動開発を組み合わせたソフトウェア・プロダクトライン開発入門セミナー」の講師を担当。

最新号目次へ2. 人材育成へ

ソフトウェア品質のホンネ
SQuBOKソフトウェア品質体系ガイド
セミナー
SQiPセミナー
SQiPセミナー開催レポート
研究会
ソフトウェア品質管理研究会
シンポジウム
ソフトウェア品質シンポジウム
資格試験
ソフトウェア品質技術者資格試験
JSTQB 認定テスト技術者資格
国際会議
世界ソフトウェア品質会議
ASQN
ニュース
SQiPニュース
webマガジン「QualityOne
コミュニティ
ソフトウェア品質確証部長の会(東京)
ソフトウェア品質保証責任者の会(大阪)
SQiPコミュニティ
SQiP SIG
SQiPアーカイブ(研究成果や実践事例集
SQiPライブラリ
ソフトウェア品質管理の宝箱
調査・研究
ソフトウェア品質実態調査
調査・研究
 SQuBOK®ガイド