プロローグ 体系的な再利用を実現するプロセス
魅力ある製品を生み出すためのソフトウェア開発とは?

はじめに

 本特集記事は,組み込みシステム商品群におけるソフトウェア開発プロジェクトのリアルなシミュレーションです.現場のソフトウェアエンジニアが組み込み商品群のソフトウェアを開発する際に,常に納期に追われ「取りあえずやれることをやる」というアプローチによって陥ってしまう悪循環を,プロダクトラインという考え方を使って好循環に変え,魅力ある商品を次々に生み出せる体質を作ることが,本特集記事の目的です.

 このイメージは,組み込みシステム商品群を開発していく中で作成された,混沌としたソフトウェア資産の固まりを,きれいに整理して再利用可能な単位に分類し,ソフトウェア資産の中でも再利用性が高く商品価値が凝縮されているコア資産を摘出し,摘出したコア資産を使ってさまざまなバリエーションをもたせることで,商品ラインナップをそろえていくというものです(図1図2).

〔図1〕体系的な再利用の実現

〔図2〕ラインナップの実現

 体系的な再利用を行うのは,ソフトウェアの資産だけではありません.商品開発のプロセスや開発環境,ドキュメント,テスト手法など同じ製品群で繰り返し使う知識や手法なども,再利用の単位になります.

1 プロセスの進め方

 体系的な再利用を使った組み込み機器の商品開発をシミュレーションするにあたって,次のような章立て・ストーリを考えました.

第1章:組み込みシステムを分析し,対象となる組み込み商品の特徴を把握する

第2章:体系的な再利用とは何かを,プロダクトラインという考え方を通して解説し,対象となる商品群のいろいろなロードマップを描いてみる

第3章:商品群のロードマップをもとに,要求仕様から機能を洗い出し,再利用可能な機能ブロックを単位としたドメイン構造図を作成する

第4章:ドメイン構造図からコア資産と成り得るドメインを摘出し,その中身を実装する

第5章:組み込みシステムに対する安全性・信頼性を分析し,どのようにテストするかを考える

 本特集記事の工程の流れ(プロセスフロー),各工程(プロセス)からのアウトプット,体系的な再利用活動の関係については,図3を見てください.

〔図3〕特集記事のマッピング

2 オブジェクト指向設計の必要性について

 第4章では,摘出したコア資産の実装について,UML(Unified Modeling Language)を使って分析・設計を行い,オブジェクト指向言語であるC++を使ってコードを作成しています.しかし,体系的な再利用を行うにあたって,UMLやC++の使用が絶対条件になっているわけではありません.

 第1章で組み込みシステムの特徴を把握し,第2章でロードマップを描き,第3章でコア資産を摘出し,第5章でシステムの安全性・信頼性を分析・検証することができれば,実装は従来のプログラミング手法を使ったとしても,体系的な再利用は実現可能であり,このような取り組みを行っていなかったときから比べると,はるかに効率のよい商品開発ができるようになるはずです.

3 どのような組み込み機器にも使えるのか

 体系的な再利用は,どんな組み込みシステム開発にも生かすことは可能ですが,それぞれの領域・分野に合わせてアレンジする必要はあります.本稿では,このようなアレンジを実施しやすいように,電子ポット商品群というリアルな具体例を示し,この具体例をいろいろな角度でながめ分析することによって,抽象的概念への転換がしやすいような構成をとっています.よって,家電商品群以外の組み込み機器業務ドメインへの投影・適用も可能です.

4 組織としての取り組み

 体系的な再利用を実現するためには,組織としての取り組みも重要です.部門間の障壁を引き下げ,それぞれの部門が所有している資産の中で共有できるものを摘出してマネージメントすることが,組織全体の開発効率を上げることに貢献します(図4).

 さあ,読者のみなさんも,体系的な再利用による組み込み商品群のソフトウェア開発シミュレーションを体験してみてください.

〔図図4〕部門間の壁を引き下げ,体系的な再利用を実現する

インデックス
◆プロローグ 魅力ある製品を生み出すためのソフトウェア開発とは?
第1章 組み込みシステムの特徴を考える

今月号特集トップページへ戻る


Copyright 2003 酒井由夫