第Ⅴ章

注目技術

Ⅴ－５

ソフトウエア大規模再利用の為の共通フレームワーク構築

Common Framework Construction for The Software Large Scale Reusing

森 勇仁 Yujin MORI
榎並
株式会社リコー

崇史

ＭＦＰ事業本部

Takashi ENAMI

第三設計センター

3rd Designing Center, MFP Business Group, RICOH COMPANY,LTD.
[要旨]

engine control software of a product by reusing

エンジン制御ソフトウエア開発において、

software of other products. Currently, we develop

UML(Unified Modeling Language)を用いたオブジェク

the common framework that focus on the essence of

ト指向により、品質向上・開発効率向上を行ってきた

the control, and develop software for various

が近年の開発製品数や開発機能の増加に伴い、開発工products by combining the common framework and数の増加が課題となってきた。

differences according to the products. And we also

そこで、従来製品ごとにソフトウエアを流用していmake core assets including not only develop models

たソフトウエア開発プロセスから、制御の本質に着目

and source code, but also the test environment and

した共通フレームワークを構築し、その共通フレーム

the manuals of development using those deliverables.

ワークと製品差分との組み合わせにより多製品同時開In this way, we can develop software for various

発を行う方法に切り替えた。また、モデルとソースコ

products by reusing those core assets.

ードだけでなく、テスト環境、製品展開マニュアルもBy changing the development process, and having

含めコア資産化し、それを再利用することで多製品へ

constructed the common framework, the softwareの展開を行った。

quality and the development efficiency are improved

その結果、開発プロセスの変更と、共通フレームワ

still more.

ークの構築により、更なる品質・開発効率の向上を実現した。

１．背景、目的[ABSTRACT]
To

複写機やプリンタのエンジンを制御するソフトウエ

improvetheアの開発において、オブジェクト指向によるモデリン

Objectグ設計主体のソフトウエア開発を行ってきた。しかし、Oriented Method with UML(Unified Model Language) to

近年同時並行で開発する製品数が増えた為、更なる生

develop the engine control software. However, the

産性向上と品質向上が課題となった。

development

thesoftware

efficiency,

wequalityhaveandused

development man-hour has increased because of the

本取り組みでは、複数製品で利用可能な共通フレー

increase of the number of products and functions

ムワークを基本とした、ソフトウエア開発のコア資産

that should develop.

を構築し、それを大規模再利用することにより、多製Then, we changed the approach to develop theengine control software. Previously, we developed-1-品並行開発における生産性向上と品質向上を目指す。

注目技術
スキャナ

２．大規模再利用の為の共通フレームワーク構築

原稿

ＤＦ：シートスルー方式

従来から、ソフトウエアの開発工数削減の為に、ソ給紙フトウエアを再利用することが試みられてきた。しか排紙し、小規模のライブラリなどは再利用できても、ソフ走査＋搬送トウエアの規模が大きくなると、再利用は上手くでき白基準板

コンタクトガラスなかった。

レンズ

HPセンサ

ランプ
キャリッジ

FAN

その理由としては、従来は、ある製品開発が終了し、DCC

第Ⅴ章

Fig.1 Sheet-through document feeder.

次の製品開発が始まる段階で、前製品との差分を調査し、ソフトウエアの変更点を検討していた。前製品との差分が小さければ変更は部分的で済むが、差分が大きくなると変更個所が多くなる。変更箇所が多くなるに従い、ソフトウエアの品質も低下し、メンテナンス

フラットベッド方式（Fig.2）：原稿を読み取り台（コンタクトガラス）上に搬送させ、原稿は動かさずスキャナキャリッジ位置を動かしながら読み取る。読み取り原稿の最大サイズに応じて装置が大きくなる。

も難しくなってくる為、最終的には全部作り直した方スキャナが良い、ということになる。

ＤＦ：フラットベッド方式

本取り組みでは、ソフトウエアの大規模再利用を行原稿給紙

う為、エンジン制御に共通な本質的な機能とは何かの違い、ハードウエアやレイアウトの違いに影響しない、

白基準板

コンタクトガラス

ランプ

ランプ

キャリッジ

キャリッジ

レンズ

HPセンサ

多製品展開可能な共通フレームワークを構築した。共通フレームワークを再利用し、レイアウト情報などの排紙

原稿

FAN

DCC分析から行った。それにより、製品ごとの制御方式のFig.2 Flat bed document feeder.

製品固有の差分（製品変動部）を開発し、共通部と変動部を組み合わせることで、製品開発を行うようにした。

従来の開発方法では、①共通フレームワークを構築する為に、ソフトウエアの開発方法をどのように変えたかを、エンジン制御ソフトウエアの一部分である、スキャナの DF（DocumentFeeder）制御ソフトウエアの開発で、説明する。

1 製品目：シートスルー方式の DF を制御するソフトウエアを、制御仕様通りに動作するように開発。
（この時点では、共通部・変動部の切り分けは意識していない。）②

最初に開発する製品（1 製品目）の DF はシートスルー方式の DF を搭載し、次に開発する製品（2 製品目）の DF はフラットベッド方式の DF を搭載する場合の開発例を示す。

2 製品目：フラットベッド方式の DF の制御と、シートスルー方式の DF 制御との共通部・変更部を検討。
共通部を流用し、フラットベッド方式の制御ソフトウエアを開発する。
この方法では、1 製品目と 2 製品目の制御仕様を基

シートスルー方式（Fig.1）：スキャナキャリッジ位置は固定で、原稿を搬送させながら読み取る。長い原稿も読み取り可能で、装置をコンパクトにできる。に、共通部／変更部の切り分けを行う為、共通部の作りや範囲は、個々の製品の制御仕様によって決まる。
開発の初期には共通部としていたものが、その後製品の仕様変更により、共通部を変更することもありえる。
共通部が製品仕様の影響を受けると、共通部の範囲が小さくなり、共通部/変動部の切り分けが曖昧になる。

-2-

第Ⅴ章

注目技術
けが曖昧になる事も無い。

フラットベッドＤＦ
制御ソフトウエア（差分）仕様変更

フラットベッドＤＦ
制御ソフトウエア（差分）

今回は、DF 制御ソフトウエアの開発を例に説明した

制御共通部？

が、本取り組みでは、Fig.5 に示すように共通フレー

シートスルーとの制御共通部

ムワーク構築をエンジン制御全体で行うことで、共通・共通部は，個々の製品仕様によって決まる．
・共通部／変動部の分離が曖昧になる．

部を増やし、ソフトウエアの大規模再利用を実現した。

Fig.3 Example of remaking software.

コントローラシステムドメイン
プロッタＲａｐｉ

本取り組みでの開発方法では、
①

スキャナ

機内調整

プロッタ機内監視

印刷要求管理本質的な共通の機能を分析する。シートスルー方
課金式やフラットベッド方式など、DF の方式は色々あるが、画像紙搬送

そもそも DF とは何を行うものかの分析から行う。結果、
DF の方式やハードウエアの違いに影響しない、共通のプロコン 色ズレ サプライ カウンタ 印画形成 定着 本体ユニット 作像ユニット 課金ユニット 紙搬送ユニット

機能を見出す。本質的な共通の機能を実現するソフトウエアの設計を行い、共通フレームワークを構築する。
②

1 製品目：共通フレームワーク（共通部）を使用

画像処理

書き込みし、シートスルー方式の DF の製品差分（変動部）を開ＩＰＵデバイス

書き込みデバイス発。共通部と変動部の組み合わせにより、製品開発を行う。
③

デバイス

Fig.5 Class diagram of common framework.

2 製品目：フラットベッド方式の DF も 1 製品目と同様に製品差分を開発し、共通部と変動部の組み合わせにより、製品開発を行う。
「共通フレームワーク」
ＤＦユニットスキャナの本質的な機能

シートスルーＤＦ
ハード制御差分

フラットベッドＤＦ
ハード制御差分

３．多製品展開の為のコア資産の構築

共通部：固定変動部

・共通部は個々の製品仕様に影響されなく，固定．
・共通部／変動部の分離が明確

ソフトウエアコア資産
制御要求仕様書

設計仕様書

ＵＭＬモデルソースコード製品展開手順書

開発チェックリスト

テスト仕様書シミュレーション環境

Fig.4 Example of reusing the common framework.
Fig.6 Contents of core assets.
この方法では、共通の機能を分析し、共通フレームワークを構築している為、共通部は、個々の製品仕様

従来の開発手法では、ソフトウエアの共通部の多くによって影響されること無く、固定にすることができは製品の仕様に依存していた。その為、ソフトウエアる。共通部が固定である為、共通部と製品変動部との共通部の製品展開の仕方や、運用の方法が製品ごとに分離が明確である。従来のように、制御仕様の変更にばらばらであり、また、ソフトウエアの品質や開発効より、共通部に変更が加わり、共通部/変動部の切り分率は、開発者のスキルに依存する部分が多かった。

-3-

第Ⅴ章

注目技術

本取り組みでは、製品の仕様に影響を受けない共通フレームワークを構築したことにより、その共通フレームワークを製品展開する仕方や、運用方法に関しても共通化し手順化することが可能となった。具体的に

製品Ａ

製品Ｂ

製品Ｃ

リーダー

リーダー

リーダー

開発者

開発者

開発者

開発者

開発者

開発者

開発者

開発者

開発者

は、共通フレームワークの設計仕様書、UML モデルとソースコードだけではなく、制御要求仕様書、製品開発に展開する為の手順書、開発チェックリスト、またテスト仕様書や実機の動作を PC 上でシミュレーショ開発者ンする環境も併せてコア資産化し、製品開発で再利用を行った。その結果、対象ドメインに精通していない

Fig.8 System of development of each product.

開発者でも、従来に比べ、より短期間で品質の高いソフトウエア開発をすることができるようになった。
実際に製品開発に展開した結果をフィードバックし、従来の開発体制では、Fig.8 のように製品ごとに開発者を割り振っていた。この体制では開発製品数が少洗練化しつづけることで、コア資産の品質をより向上ない場合には効率的だが、開発製品数が多くなると、させることができる。

同じようなソフトウエアを複数の開発者が作成するこ

本取り組みでは、コア資産構築直後に複数の製品にとになり、非効率である。また開発者は担当製品の対展開するのではなく、まずは先行開発製品（1 製品目）応に専念し、他製品の情報を知らない為、先に述べたに展開し、十分品質確保した後、他の多くの製品開発共通フレームワークの構築ができない。またある製品に展開した。

で行った改善や不具合対策を他の製品に展開することが難しく、品質向上の点でも課題があった。

コア資産構築
①先行製品
展開

③再利用
②結果
フィードバック

先行製品開発④結果
フィードバック
統括
リーダー

製品開発
機種開発
機種開発

Fig.7 Core assets construction and various products
development.

製品Ａ

製品Ｂ

製品Ｃ

リーダー

リーダー

リーダー

機能αリーダー開発者

開発者

機能βリーダー

開発者

開発者

機能γリーダー

開発者

開発者

４．共通フレームワーク構築、製品展開の為の開Fig.9 System of development of each function.

発体制
共通フレームワークを構築し、それを効率的に製品本取り組みでは、Fig.9 のように機能ごとの開発チ展開する為に、開発体制の見直しも行った。
ームが、複数製品の開発を担当する体制とした。
これにより、開発者は製品の共通部や変動部を把握しやすくなり、ソフトウエアの重複開発も防げる。またソフトウエアの改善や不具合対策の水平展開も容易となった。

-4-

第Ⅴ章

注目技術

５．ソフトウエア開発の上流工程と設計工程の分離

このように、上流工程と設計工程を分離する事で、製品開発に影響される事無く、共通フレームワーク構シ ス テ ムテ ス ト

要 求 分 析築が加速した。更には、複数人で成果物を共有する為、

上 流 工 程分 析

1 人で一連の工程を進めていたときの曖昧さが無くな結 合 テ ス トり、品質向上にも繋がった。また上流工程と設計工程設 計

単 体 テ ス トを並行に進めることで、開発期間短縮にも繋がった。

設 計 工 程実 装６．結果
6-1 開発工数

Fig.10 Separation of software development process.

Fig.12 において、製品開発初期の開発工数の改善例を示す。

従来の全ての開発者が一連の工程（要求分析からシ試作機械を入手後、その機械で立ち上げから 1 枚印ステムテストまで）を行う開発プロセスでは、製品開刷などの基本動作を確認する実機確認において、前製発の状況により設計工程以降に工数が取られることが品で品質が保証されているコア資産を再利用した結果、多く、上流工程がおろそかになり、結果として共通フ開発手順や評価内容が明確となり、障害が少ない為、レームワーク構築に支障をきたす傾向にあった。

工数を従来の 1／3 に抑えることができた。

この問題を解決する為に、機能開発チームを要求分
析・分析を行う上流工程担当者と、設計・実装・テス

１枚印刷確認工数
１／３

トを行う設計工程担当者に分離し、開発を行った。
まず、上流工程担当者が、ある機能に対しソフトウエアの分析まで行う（Fig.11 分析 1）。その分析結果

開発
工数を受け、設計工程担当者は、同じ機能に対しソフトウエア設計から実装、テストまでを行う（Fig.11 実装 1）。
従来機

設計工程担当者が実装 1 を行っている間、上流工程担当者は別の機能に対してソフトウエアの分析まで行う

最新開発環境Fig.12 Development man-hour.

（Fig.11 分析 2）。
また Fig.13、14 において、コア資産を多製品に展開

上流工程

分析１

分析２

分析３することで、開発工数全体が低減した例を示す。

成果物

設計工程

1 製品目の開発では、コア資産の構築により工数が実装１多くなっている。しかし 2 製品目以降は、コア資産構実装２築工数が不要となり、コア資産を再利用した結果、全開発サイクルての製品開発において開発工数が 1／3 に削減できた。

Fig.11 The upstream process charge and design（Fig.13）

process charge.

-5-第Ⅴ章

注目技術

コア資産構築工数
開発作業工数障害総合指数①

コア資産構築工数
不要

開発
工数

２機種目以降開発工数１／３②

フレームワーク
構築③
再利用第１世代(コア開発)

Ｃ
品
製
代
２世
第代
２世
第第２世

代

製

製品

品

Ｂ

Ａ

品
製
代
第１世

モ
用
利
再初

Fig.13 Development man-hour.

デル

開
発

３製品目

デル

２製品目

モ

１製品目

製

製品

品

再利用第２世代(多製品同時展開)

Fig.15 Transition of software quality.

このように、コア資産構築にかかる初期投資（工数）は必要であるが、数製品に再利用する事で回収できる。
また、製品への再利用が増えるほど削減効果も増えていくことになる。（Fig.14）

半期ごとのソフトウエア開発工数の推移を Fig.16に示す。
グラフの左半分①の時期は、開発製品数の増加、コ従来方式改善方式

ア資産構築により工数は増加していた。次にグラフの初期投資回収

開発
工数

７．結論

右半分②の時期は、開発製品数は増加しているが、コア資産の再利用により、工数は減少傾向を示している。
トータル工数削減
フレームワーク完成②12345678910開発機種数

Fig.14 Development man-hour reduction by reusing

開発
工数

①

core assets.

6-2 ソフトウエア品質
Fig.15 にコア資産を構築したときの製品、及びそれFig.16 Transition of development man-hour.

を再利用した製品での、開発時に発生した障害の量の推移を示す。障害が少ないほど、品質が良いといえる。

共通部と変動部の組み合わせによる製品開発プロセ

グラフ上①のフレームワーク構築では、上流工程にスに変更すること。また、品質を確保したコア資産を工数をかけ、障害総合指数は大幅に低減した。次にグ多製品に展開すること。これら 2 点の考え方によりソラフ上②の再利用第 1 世代では、コア資産の構築を行

フトウエア大規模再利用を可能とし、多製品並行開発った事で品質が更に向上した。グラフ上③の再利用第においても、品質を向上させ、更に開発効率をも向上

２世代では、品質が安定しているコア資産を多製品展させることが実証できた。

開した事により、全ての製品において品質向上を達成する結果が得られた。

-6-

第Ⅴ章

注目技術

禁 無 断 転 載2008 年度「ビジネス機器関連技術調査報告書」“Ⅴ―５”部
発行

2009 年 3 月
社団法人 ビジネス機械･情報システム産業協会（JBMIA）
技術委員会 技術調査小委員会〒105-0003 東京都港区西新橋三丁目 25 番 33 号 NP 御成門ビル
電話 03-5472-1101(代表) ／ FAX 03-5472-2511-7-