JP2018041262A - コスト算出プログラム - Google Patents
コスト算出プログラム Download PDFInfo
- Publication number
- JP2018041262A JP2018041262A JP2016174859A JP2016174859A JP2018041262A JP 2018041262 A JP2018041262 A JP 2018041262A JP 2016174859 A JP2016174859 A JP 2016174859A JP 2016174859 A JP2016174859 A JP 2016174859A JP 2018041262 A JP2018041262 A JP 2018041262A
- Authority
- JP
- Japan
- Prior art keywords
- cost
- conceptual model
- model
- starting point
- type
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000004364 calculation method Methods 0.000 claims abstract description 53
- 238000010586 diagram Methods 0.000 claims abstract description 34
- 238000011161 development Methods 0.000 claims abstract description 33
- 238000011156 evaluation Methods 0.000 claims abstract description 12
- 238000012905 input function Methods 0.000 claims abstract description 3
- 230000008859 change Effects 0.000 claims description 39
- 230000018109 developmental process Effects 0.000 claims description 35
- 238000013509 system migration Methods 0.000 claims description 15
- 238000001514 detection method Methods 0.000 claims description 13
- 230000033772 system development Effects 0.000 claims description 5
- 230000007704 transition Effects 0.000 abstract description 5
- 238000013210 evaluation model Methods 0.000 description 43
- 238000000034 method Methods 0.000 description 27
- 230000006870 function Effects 0.000 description 19
- 238000012423 maintenance Methods 0.000 description 19
- 238000010276 construction Methods 0.000 description 18
- 239000000047 product Substances 0.000 description 16
- 238000013461 design Methods 0.000 description 15
- 238000006243 chemical reaction Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 14
- 230000010354 integration Effects 0.000 description 6
- 238000013508 migration Methods 0.000 description 4
- 230000005012 migration Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 239000012925 reference material Substances 0.000 description 2
- 230000004931 aggregating effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000009419 refurbishment Methods 0.000 description 1
- 238000009418 renovation Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
Landscapes
- Stored Programmes (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
【課題】概念モデルを入力としてシステム移行に伴うコストを算出する。
【解決手段】ソフトウェア設計のためのデータ構造を抽象化して表現した複数のクラス図によって構成される概念モデルを用いて、システム移行に伴うコストを算出するコスト算出プログラムは、コンピュータに、システム移行前の起点となる概念モデルと、システム移行後の評価対象の概念モデルとを入力する概念モデル入力機能と、前記起点となる概念モデルの部品の情報と、前記評価対象の概念モデルの部品の情報とを、所定の式に入力して、開発コスト及び運用コストを算出するコスト算出機能と、前記開発コスト及び運用コストを出力する出力機能とを実現させる。
【選択図】図1
【解決手段】ソフトウェア設計のためのデータ構造を抽象化して表現した複数のクラス図によって構成される概念モデルを用いて、システム移行に伴うコストを算出するコスト算出プログラムは、コンピュータに、システム移行前の起点となる概念モデルと、システム移行後の評価対象の概念モデルとを入力する概念モデル入力機能と、前記起点となる概念モデルの部品の情報と、前記評価対象の概念モデルの部品の情報とを、所定の式に入力して、開発コスト及び運用コストを算出するコスト算出機能と、前記開発コスト及び運用コストを出力する出力機能とを実現させる。
【選択図】図1
Description
本発明は、システム移行に伴うコストを算出するコスト算出プログラムに関する。
オブジェクト指向プログラミングにおけるソースコードは、設計段階で設計された各クラス図に基づいてコーディングされる。そのため、現行システムから次期システムへの移行に伴い、クラスに変更があった場合には、プログラム各部への影響が生じることなり、特にソフトウェアが大規模化するにしたがって、プログラム各部への影響が大きくなる。そのため、精度の高い設計と共に、設計の早い段階でのコスト算出が行われることが重要となっている。
ソフトウェアの開発規模を算出する1つの手法として、ファンクションポイント法がある(非特許文献1参照)。ファンクションポイント法は、ソフトウェアの機能に着目し、その処理内容に応じてポイント(点数)を付けてソフトウェア全体に対する開発規模や工数を算出する手法である。ファンクションポイント法は、プログラミング前に必要な機能が抽出できた段階で開発規模を概算し、システム開発コストを算出することができる。
小川明子,渡辺浩史,"ファンクションポイント法実践−見積の可視化を目指して−",SOFTECS, VOL.28, NO. 1,63-68ページ,2005年7月15日発行
従来のファンクションポイント法は、ソフトウェアの機能に着目して開発規模や工数を算出するため、ある程度実装する機能等が明確にならなければシステム開発コストを算出することができない。すなわち、ファンクションポイント法では、設計段階の中でもある程度設計が作り込まれた段階でのコスト算出となるため、ソフトウェアの開発に要するコストがわからない段階で設計をある程度進めることとなり、開発要否等の判断によっては、手戻りが大きいという課題がある。
また、ファンクションポイント法は、コスト算出においてシステムの構造を考慮しないため、運用コストを見積もることができないという課題がある。
このような従来の課題を解決するため、本発明は、概念モデルを入力としてシステム移行に伴うコストを算出することを目的とする。
本発明の一形態に係るコスト算出プログラムは、
ソフトウェア設計のためのデータ構造を抽象化して表現した複数のクラス図によって構成される概念モデルを用いて、システム移行に伴うコストを算出するコスト算出プログラムであって、コンピュータに、
システム移行前の起点となる概念モデルと、システム移行後の評価対象の概念モデルとを入力する概念モデル入力機能と、
前記起点となる概念モデルの部品の情報と、前記評価対象の概念モデルの部品の情報とを、所定の式に入力して、開発コスト及び運用コストを算出するコスト算出機能と、
前記開発コスト及び運用コストを出力する出力機能と、
を実現させることを特徴とする。
ソフトウェア設計のためのデータ構造を抽象化して表現した複数のクラス図によって構成される概念モデルを用いて、システム移行に伴うコストを算出するコスト算出プログラムであって、コンピュータに、
システム移行前の起点となる概念モデルと、システム移行後の評価対象の概念モデルとを入力する概念モデル入力機能と、
前記起点となる概念モデルの部品の情報と、前記評価対象の概念モデルの部品の情報とを、所定の式に入力して、開発コスト及び運用コストを算出するコスト算出機能と、
前記開発コスト及び運用コストを出力する出力機能と、
を実現させることを特徴とする。
本発明によれば、概念モデルを入力としてシステム移行に伴うコストを算出することが可能になる。
以下、図面を参照して本発明の実施例について説明する。
本発明の実施例では、ソフトウェア設計のためのデータ構造を抽象化して表現した複数のクラス図によって構成される概念モデルを用いて、システム移行に伴うコストを算出するコスト算出プログラムについて説明する。なお、コスト算出プログラムに関する説明の便宜上、プログラムの各機能をコンピュータ上に実現したコスト算出装置を例に挙げて説明する。
図1は、本発明の実施例に係るコスト算出装置100の機能ブロック図である。コスト算出装置100は、概念モデル入力部101と、概念モデル構造検出部103と、コスト算出部105と、出力部107とを有する。
概念モデル入力部101は、システム移行前の起点となる概念モデルと、システム移行後の評価対象の概念モデルとを入力する。以下の説明において、起点となる概念モデルを起点モデル又はAsIs概念モデルと呼ぶ。また、評価対象の概念モデルを評価モデル又はToBe概念モデルと呼ぶ。概念モデルはソフトウェア設計のためのデータ構造を抽象化して表現した複数のクラス図によって構成され、例えば、オブジェクト指向分析のために用いられるUML(Unified Modeling Language)に従って定義される。
図2は、概念モデルの定義を示す図である。図2に示す概念モデルの定義は、UMLによる定義である。概念モデルは、オブジェクトを表現するためのクラスと、オブジェクト間の関連と、クラスの継承と、対象となるモデルのまとまりを表すパッケージとで定義される。クラスには、名称、システム名、属性等の情報が含まれ、その性質(属性)も定義される。関連には、名称、多重度、関連端名称、誘導可能性、関連するクラス等の情報が含まれ、その性質も定義される。継承には、継承等の情報が含まれ、パッケージには名称等の情報が含まれる。概念モデルを表現するための個々の構成要素である情報及び性質を部品と呼び、これらの情報及び性質には必須の部品と任意選択の部品がある。
概念モデル構造検出部103は、起点モデル及び評価モデルの概念モデル構造を検出する。コストの算出のため、概念モデル構造検出部103は、起点モデルの部品種類毎の部品数、評価モデルの部品種類毎の部品数、起点モデルから評価モデルへの変更種類毎の変更数等を検出する。起点モデル及び評価モデルの部品数は、図2に示す部品種類毎に検出される。また、起点モデルから評価モデルへの変更数は、図3に示す変更種別毎に検出される。
図3は、概念モデルの変更数を示す図である。変更内容が評価モデルへの部品の追加である場合、起点モデルから評価モデルへの変更数は+1となる。変更内容が部品の名称・内容変更である場合、起点モデルから評価モデルへの変更数は0となる。変更内容が評価モデルへの部品の削除である場合、起点モデルから評価モデルへの変更数は−1となる。変更内容が部品の統合である場合、起点モデルから評価モデルへの変更数は1−(起点モデルの統合前の部品数)となる。ただし、起点モデルの統合前の部品数は2以上の整数値である。変更内容が部品の分割である場合、起点モデルから評価モデルへの変更数は(評価モデルの分割後の部品数)−1となる。ただし、評価モデルの分割後の部品数は2以上の整数値である。変更内容がパッケージをまたぐ部品の移動である場合、起点モデルから評価モデルへの変更数は0となる。なお、分割・統合・移動が発生するのは、クラス単位又はパッケージ単位だけとし、関連のレベル、継承のレベル、クラス又はパッケージが持つ情報・性質のレベルでは分割・統合・移動は発生しない。
また、概念モデル構造検出部103は、起点モデルと評価モデルの冗長構造パターン毎の冗長構造の数を検出する。概念モデルの冗長構造は、概念モデルに関して予め作成されたチェック項目に基づいて冗長構造パターン種類(チェック項目種類)毎に検出される。更に、概念モデル構造検出部103は、概念モデルに関して予め作成されたチェック項目に基づいて、概念モデルの表記エラーを検出する。概念モデル構造検出部103において検出された冗長構造及び表記エラーは、出力部107においてハイライト表示されてもよく、画面中心に配置されて表示されてもよい。その結果、ユーザーの検索の手間が削減可能になる。
図4は、概念モデルの冗長構造を検出するためのリストを示す図である。図4は、概念モデルに記載されていると冗長な悪い表現であるという観点から定義しており、概念モデルを修正することで、より簡単な概念モデルに修正できる可能性が高い表現である。必要に応じて閾値との比較により、エラーが検出される。図4に示すチェック内容には、必ずしも冗長構造のエラーと判別できないものも含まれるが、エラーの可能性があるものとして検出される。冗長構造は運用コストに影響を与えると考えられることから、この冗長構造の数は、コスト算出部105におけるコスト算出要素の1つとなる。
図5は、概念モデルの表記エラーを検出するためのリストを示す図である。図5は、概念モデルに記載されていると悪い表現であるという観点から定義している。図5に示すチェック内容は、概念モデル上で表現されていれば必ず表記のエラーとして検出される。すなわち、このチェック内容に合致する表現はエラーとなるため、概念モデルの修正が必要となる。従って、表記エラーの数は、コスト算出部105におけるコスト算出要素とはならないが、表記エラーによる概念モデルの修正によって、コスト算出精度の向上が図られる。
コスト算出部105は、起点モデルの部品の情報と、評価モデルの部品の情報とを、所定の式に入力して、開発コスト及び運用コストを算出する。
図6は、コスト算出部105におけるコスト算出の概要を示す図である。コスト算出部105は、起点モデル及び評価モデルを取得し、その差分を把握してコストを算出する。例えば、コストは、起点モデルから評価モデルへの変更要素に適切な係数を乗算したものを、変更内容毎に集計し、更に、企画・計画、要件定義、設計・構築、テスト、移行・導入、プロジェクト支援等の工程毎に集計することにより算出される。なお、図6にはコスト算出の概要の一部が記載されており、詳細については以下に説明する。
図7は、システムの費用項目を示す図である。システム移行に伴うコストは、現行システム運用保守費、現行業務運用費、次期業務システム構築費、次期システム運用保守費、次期業務運用費に分類することができる。現行システム運用保守費、現行業務運用費は現状調査から集計することができる。次期業務運用費は、以下に説明する次期システム運用保守費と同列での試算は可能であるが、変動幅が大きいため、算出したとしても参考値レベルとする。
コスト算出部105は、起点モデル及び評価モデルの情報から、設計・構築コストを算出し、設計・構築コストに適切な係数(係数a〜係数e)を乗算することにより企画・計画、要件定義、テスト、移行・導入、プロジェクト支援のコストをそれぞれ算出する。その結果、開発(Initial)コストである次期業務システム構築費を算出することができる。コスト算出部105は、起点モデル及び評価モデルの情報から、運用(Running)コストである次期システム運用保守費及び次期業務運用費を算出する。
図8は、開発コスト及び運用コストの算出の概要を示す図である。コスト算出部105は、起点モデルから評価モデルへの差分情報の中から、部品の変化を捉え、開発コストである次期業務システム構築費を算出する。例えば、クラスCが増えてクラスA及びBが変更された場合、クラスCの増加、クラスA及びBの変更、クラス間の関連の増加が差分情報の中から検出できる。その検出結果は、開発コストの算出の基礎となる。また、コスト算出部105は、起点モデルから評価モデルへの差分情報の中から、冗長構造の変化を捉え、運用コストである次期システム運用保守費及び次期業務運用費を算出する。例えば、クラスA及びBがクラスCに集約された場合、ばらばらに存在する情報が集約されたことが検出できる。この検出結果は保守性等の向上につながると考えられるため、運用コストの算出の基礎となる。
次に、図9を参照して、開発コストである次期業務システム構築費について詳細に説明する。
次期業務システム構築費は、以下のように、基準コストに工程毎の相対コストを乗算した和として定義でき、また、工程毎に基準コストとコスト換算係数を乗算した和として定義できる。
次期業務システム構築費=基準コスト+Σ工程相対コスト
=Σ工程[基準コスト×工程毎のコスト換算係数]
ここで、工程とは、図7に示す企画・計画、要件定義、設計・構築、テスト、移行・導入、プロジェクト支援を示す。基準コストは、概念モデルの要素(部品)を評価して算出する特定の工程(設計・構築)のコストである。相対コストは、基準コストに係数(図7の係数a〜係数e)を乗算して算出する特定の工程のコストである。ここでは、設計・構築のコストを基準コストとし、相対コストは「ソフトウェア開発データ白書」又は「ユーザー企業ソフトウェアメトリックス調査」等によって公開されている統計量を使用して、基準コストに係数を乗算して算出する。
次期業務システム構築費=基準コスト+Σ工程相対コスト
=Σ工程[基準コスト×工程毎のコスト換算係数]
ここで、工程とは、図7に示す企画・計画、要件定義、設計・構築、テスト、移行・導入、プロジェクト支援を示す。基準コストは、概念モデルの要素(部品)を評価して算出する特定の工程(設計・構築)のコストである。相対コストは、基準コストに係数(図7の係数a〜係数e)を乗算して算出する特定の工程のコストである。ここでは、設計・構築のコストを基準コストとし、相対コストは「ソフトウェア開発データ白書」又は「ユーザー企業ソフトウェアメトリックス調査」等によって公開されている統計量を使用して、基準コストに係数を乗算して算出する。
本発明の実施例では、基準コストを以下のように展開する。
基準コスト=起点モデルと評価モデルの差分情報×基準コストのコスト換算係数
=起点モデルと評価モデルの部品種類毎の部品数の差×部品種類毎のコスト換算係数+起点モデルと評価モデルの変更種類毎の変更数×変更種類毎のコスト換算係数
=Σ部品種類[(|評価モデルの部品数(部品種類毎)−起点モデルの部品数(部品種類毎)|)×コスト換算係数(部品種類毎)]+Σ変更種類[起点モデルと評価モデルの変更数(変更種類毎)×コスト換算係数(変更種類毎)]
ここで、部品種類は図2に示す部品の種類であり、部品種類毎のコスト換算係数は、図2に示す部品の種類毎に事前に設定される。変更種類は、図3に示す変更の種類であり、変更種類毎のコスト換算係数は、図3に示す変更の種類毎に事前に設定される。上記の式において、部品数の差は絶対値として求められている。この理由は、部品を増やしても減らしても次期業務システム構築費が増加すると考えられるためである。
基準コスト=起点モデルと評価モデルの差分情報×基準コストのコスト換算係数
=起点モデルと評価モデルの部品種類毎の部品数の差×部品種類毎のコスト換算係数+起点モデルと評価モデルの変更種類毎の変更数×変更種類毎のコスト換算係数
=Σ部品種類[(|評価モデルの部品数(部品種類毎)−起点モデルの部品数(部品種類毎)|)×コスト換算係数(部品種類毎)]+Σ変更種類[起点モデルと評価モデルの変更数(変更種類毎)×コスト換算係数(変更種類毎)]
ここで、部品種類は図2に示す部品の種類であり、部品種類毎のコスト換算係数は、図2に示す部品の種類毎に事前に設定される。変更種類は、図3に示す変更の種類であり、変更種類毎のコスト換算係数は、図3に示す変更の種類毎に事前に設定される。上記の式において、部品数の差は絶対値として求められている。この理由は、部品を増やしても減らしても次期業務システム構築費が増加すると考えられるためである。
このように、開発コストである次期業務システム構築費は、起点モデルの部品種類毎の部品数と評価モデルの部品種類毎の部品数との差、及び起点モデルから評価モデルへの変更種類毎の変更数を、所定の式に入力して算出できる。
次に、図10を参照して、運用コストである次期システム運用保守費及び次期業務運用費について詳細に説明する。
次期システム運用保守費及び次期業務運用費は、以下のように、現行システム運用保守費及び現行業務運用費にコスト増減比率を乗算して得られる。
次期システム運用保守費=現行システム運用保守費×コスト増減比率
次期業務運用費=現行業務運用費×コスト増減比率
本発明の実施例では、コスト増減比率を以下のように展開する。以下の式は、冗長構造の増加によりコストが増加することを示しており、冗長構造が無い場合は、最低限のコストのみが掛かることを示している。
コスト増減比率=[評価モデルの情報量×(1+評価モデルの冗長構造数)]/[起点モデルの情報量×(1+起点モデルの冗長構造数)]
ここで、冗長構造数とは、クラス図の構造に関して図4に示す冗長構造パターンに合致した数である。
次期システム運用保守費=現行システム運用保守費×コスト増減比率
次期業務運用費=現行業務運用費×コスト増減比率
本発明の実施例では、コスト増減比率を以下のように展開する。以下の式は、冗長構造の増加によりコストが増加することを示しており、冗長構造が無い場合は、最低限のコストのみが掛かることを示している。
コスト増減比率=[評価モデルの情報量×(1+評価モデルの冗長構造数)]/[起点モデルの情報量×(1+起点モデルの冗長構造数)]
ここで、冗長構造数とは、クラス図の構造に関して図4に示す冗長構造パターンに合致した数である。
評価(又は起点)モデルの情報量、評価(又は起点)モデルの冗長構造数は以下のように展開できる。
評価(又は起点)モデルの情報量=評価(又は起点)モデルの部品種類毎の部品数×部品種類毎のコスト換算係数
=Σ部品種類[評価(又は起点)モデルの部品数(部品種類毎)×コスト換算係数(部品種類毎)]
評価(又は起点)モデルの冗長構造数=評価(又は起点)モデルの冗長構造パターン種類毎のパターン数×冗長構造パターン種類毎のコスト換算係数
=Σ冗長構造パターン種類[評価(又は起点)モデルの冗長構造パターン数(冗長構造パターン種類毎)×コスト換算係数(冗長構造パターン種類毎)]
ここで、部品種類は図2に示す部品の種類であり、部品種類毎のコスト換算係数は、図2に示す部品の種類毎に事前に設定される。冗長構造パターン種類は、図4に示すチェック項目の種類であり、冗長構造パターン種類毎のコスト換算係数は、図4に示すチェック項目の種類毎に事前に設定される。
評価(又は起点)モデルの情報量=評価(又は起点)モデルの部品種類毎の部品数×部品種類毎のコスト換算係数
=Σ部品種類[評価(又は起点)モデルの部品数(部品種類毎)×コスト換算係数(部品種類毎)]
評価(又は起点)モデルの冗長構造数=評価(又は起点)モデルの冗長構造パターン種類毎のパターン数×冗長構造パターン種類毎のコスト換算係数
=Σ冗長構造パターン種類[評価(又は起点)モデルの冗長構造パターン数(冗長構造パターン種類毎)×コスト換算係数(冗長構造パターン種類毎)]
ここで、部品種類は図2に示す部品の種類であり、部品種類毎のコスト換算係数は、図2に示す部品の種類毎に事前に設定される。冗長構造パターン種類は、図4に示すチェック項目の種類であり、冗長構造パターン種類毎のコスト換算係数は、図4に示すチェック項目の種類毎に事前に設定される。
このように、運用コストである次期システム運用保守費及び次期業務運用費は、起点モデルの部品種類毎の部品数、評価モデルの部品種類毎の部品数、及び起点モデルと評価モデルの冗長構造パターン種類毎の冗長構造の数を、所定の式に入力して算出できる。
次に、既存システムに対してパッケージ製品を導入する場合の考え方について説明する。
図11は、既存システムに対してパッケージ製品を導入する場合の概念モデルの概要を示す図である。この場合の起点モデルは、既存システムの概念モデルに、パッケージ製品の標準的に搭載されている機能の概念モデルを加えたものになる。評価モデルは、既存システムに対してパッケージ製品を導入した後の概念モデルである。評価モデルにおいては、既存システムの一部がパッケージ製品に置き換わり、既存システム及びパッケージ製品にカスタマイズが発生し、インタフェース等の追加が発生する。
開発コストである次期業務システム構築費は、図9と同様に以下のように算出できる。
次期業務システム構築費=Σ工程[基準コスト×工程毎のコスト換算係数]
基準コスト=Σ部品種類[(|既存システム及びパッケージ製品の評価モデルの部品数(部品種類毎)−既存システム及びパッケージ製品の起点モデルの部品数(部品種類毎)|)×コスト換算係数(部品種類毎)]+Σ変更種類[既存システム及びパッケージ製品の起点モデルと評価モデルの変更数(変更種類毎)×コスト換算係数(変更種類毎)]
一方、運用コストである次期システム運用保守費及び次期業務運用費は、起点モデルと評価モデルの比率を算出し、現行システム運用保守費及び次期業務運用費にその比率を掛けて求めるため、パッケージ製品の情報量及び冗長構造を考慮する必要はない。すなわち、次期システム運用保守費及び次期業務運用費は以下のように算出できる。
次期システム運用保守費=現行システム運用保守費×コスト増減比率
次期業務運用費=現行業務運用費×コスト増減比率
コスト増減比率=[既存システム及びパッケージ製品の評価モデルの情報量×(1+既存システム及びパッケージ製品の評価モデルの冗長構造数)]/[既存システムの起点モデルの情報量×(1+既存システムの起点モデルの冗長構造数)]
このように、概念モデルに含まれる部品が既存システムに属するかパッケージ製品に属するかを区別しておき、運用コストである次期システム運用保守費及び次期業務運用費は、起点となる概念モデルにおいてパッケージ製品の部品の情報を除外して算出する。
次期業務システム構築費=Σ工程[基準コスト×工程毎のコスト換算係数]
基準コスト=Σ部品種類[(|既存システム及びパッケージ製品の評価モデルの部品数(部品種類毎)−既存システム及びパッケージ製品の起点モデルの部品数(部品種類毎)|)×コスト換算係数(部品種類毎)]+Σ変更種類[既存システム及びパッケージ製品の起点モデルと評価モデルの変更数(変更種類毎)×コスト換算係数(変更種類毎)]
一方、運用コストである次期システム運用保守費及び次期業務運用費は、起点モデルと評価モデルの比率を算出し、現行システム運用保守費及び次期業務運用費にその比率を掛けて求めるため、パッケージ製品の情報量及び冗長構造を考慮する必要はない。すなわち、次期システム運用保守費及び次期業務運用費は以下のように算出できる。
次期システム運用保守費=現行システム運用保守費×コスト増減比率
次期業務運用費=現行業務運用費×コスト増減比率
コスト増減比率=[既存システム及びパッケージ製品の評価モデルの情報量×(1+既存システム及びパッケージ製品の評価モデルの冗長構造数)]/[既存システムの起点モデルの情報量×(1+既存システムの起点モデルの冗長構造数)]
このように、概念モデルに含まれる部品が既存システムに属するかパッケージ製品に属するかを区別しておき、運用コストである次期システム運用保守費及び次期業務運用費は、起点となる概念モデルにおいてパッケージ製品の部品の情報を除外して算出する。
最後に、出力部107は、コスト算出部105において算出された開発コスト及び運用コストを出力する。システム開発が複数のまとまりに分割できる場合、出力部107は、システム開発のまとまり毎にコスト算出部105において算出された開発コスト及び運用コストを出力してもよい。これにより、改修の必要性の高いまとまりを把握することが可能になる。
<コスト算出の具体例>
既存業務システムを表す概念モデル(AsIs)に対して、業務システムの改修・統合により変換された概念モデル(ToBe)を作成し、クラスを追加したときのコスト算出を行う具体例について説明する。
既存業務システムを表す概念モデル(AsIs)に対して、業務システムの改修・統合により変換された概念モデル(ToBe)を作成し、クラスを追加したときのコスト算出を行う具体例について説明する。
図12は、既存業務システムのAsIs概念モデルの例を示す図である。既存業務システムは、外部契約を扱うシステムとグループ契約を扱うシステムとを有する。また、複数のシステムで共通して利用する情報を扱う基盤システムが存在する。
外部契約を扱うシステムとグループ契約を扱うシステムは、似た構造を持っている。従って、概念モデル構造検出部103は、図4に示すリストに基づいて冗長構造を検出することができる。検出された冗長構造は、クラスを集約することにより最適化される。また、概念モデル構造検出部103は、表記エラーが存在するか否かを図5に示すリストに基づいて検出することができる。表記エラーが存在する部品は修正が行われる。
図13は、図12の概念モデルを変換したToBe概念モデルの例を示す図である。図12に示す外部契約を扱うシステムとグループ契約を扱うシステムは、複数の契約種別を扱うことができるように最適化されている。複数のシステムで共通して利用する情報を扱う基盤システムは、他システムでも利用されるため基本的な構造の変更は行わないが、複数の契約種別を扱うシステムとのインタフェースは改修する必要がある。図12の概念モデルと比べて図13の概念モデルは冗長構造が修正されて、部品数が少なくなり簡略化されていることが分かる。
更に、図13の概念モデルに、以下のクラスを追加することを想定する。
・クラス:1
<イベントクラス>:1
<主要概念>:1
一般クラス:1
・主要属性:1
・補助属性:1
・関連:2
まず、クラス追加によるコスト算出の前提として、一定レベルのシステム規模への適用を想定して、起点モデル(AsIs)のクラス数は100、関連数は200とする。
・クラス:1
<イベントクラス>:1
<主要概念>:1
一般クラス:1
・主要属性:1
・補助属性:1
・関連:2
まず、クラス追加によるコスト算出の前提として、一定レベルのシステム規模への適用を想定して、起点モデル(AsIs)のクラス数は100、関連数は200とする。
図14は、クラスを追加したときの部品集計表を示す図である。上記のクラスの追加により、部品種類毎に部品数の差異が求められる。また、変更種類毎に変更数が求められる。
また、部品種類毎のコスト換算係数を図15に示し、変更種類毎のコスト換算係数を図16に示す。コスト換算係数は、1つのクラス及び2つの関連の追加したときの開発を1つの開発単位として、この開発単位に関わる作業を経験値によって決定する。
部品種類毎の部品数の差に図15の係数値を乗算したコストは9.5(人日)であり、変更種類毎の変更数に図16の係数値を乗算したコストは39.9(人日)である。その結果、基準コストである設計・構築のコストは、49.4(人日)と算出できる。
図17は、工程毎のコスト換算係数を示す図である。図17に示す係数値は、「ソフトウェア開発データ白書」(参考資料1)又は「ユーザー企業ソフトウェアメトリックス調査」(参考資料2)により決定できる。
基準コストである設計・構築のコストに他の工程の係数を乗算することで、企画・計画のコストが4.9(人日)、要件定義のコストが7.9(人日)、テストのコストが20.7(人日)、移行・導入のコストが7.9(人日)、プロジェクト支援のコストが6.9(人日)と算出でき、最終的な次期業務システム構築費が4.9(人月)と算出できる。
図18は、冗長構造パターン種類毎のコスト換算係数を示す図である。この算出例では冗長構造パターンに合致するものはないと想定し、運用コスト算出のためのコスト増減比率=900.5(評価モデルの情報量)/891(起点モデルの情報量)=101.1%と算出できる。
<本発明の実施例の効果>
従来のコスト算出法は、概念モデルをインプットとしたコスト算出ではないため、ある程度実装する機能が明確になるまでコストの算出はできなかった。また、AsIs概念モデルからToBe概念モデルへシステムを改良したときの開発コストの算出や運用コストの算出ができなかった。更に、開発コストの算出根拠が不明で、複数開発ベンダの見積りを比較できなかった。
従来のコスト算出法は、概念モデルをインプットとしたコスト算出ではないため、ある程度実装する機能が明確になるまでコストの算出はできなかった。また、AsIs概念モデルからToBe概念モデルへシステムを改良したときの開発コストの算出や運用コストの算出ができなかった。更に、開発コストの算出根拠が不明で、複数開発ベンダの見積りを比較できなかった。
本発明の実施例では、概念モデルを構成するクラス図、部品等を開発コストや運用コストに関連付けることにより、概念モデルからシステム移行に伴うコストを算出することが可能になる。本発明の実施例によれば、設計の早い段階でコストを算出できるため、開発要否等の判断の手戻り等を最小限とすることができ、品質の高いソフトウェア設計が可能となる。
本発明の実施例は、AsIsに対し、ToBe要件に応じてスクラッチ開発を前提にToBe概念モデルを作成した場合のコスト算出に適用可能である。また、本発明の実施例は、AsIsに対し、ToBe要件に応じてパッケージ開発を前提に、ToBe概念モデルを作成した場合のコスト算出にも適用可能である。すなわち、現行システムの一部にパッケージ製品を適用する場合、又はパッケージ製品をベースに現行システムに合わせてカスタマイズやアドオンを実施する場合のコスト計算に適用可能である。
また、本発明の実施例に係るコスト算出装置は、異なるToBe概念モデルをコストに基づいて比較して評価することもでき、本発明の実施例により作成されたToBe概念モデルを更に改善することも可能である。なお、必要に応じて元の概念モデルに戻すことも可能である。すなわち、コスト値を評価関数とするToBe概念モデルの比較及び最適化が可能である。
<ハードウェア構成例>
図19に、本発明の実施例に係るコスト算出装置100のハードウェア構成例を示す。コスト算出装置100は、CPU(Central Processing Unit)151等のプロセッサ、RAM(Random Access Memory)やROM(Read Only Memory)等のメモリ装置152、ハードディスク等の記憶装置153等から構成されたコンピュータでもよい。例えば、コスト算出装置100の機能及び処理は、記憶装置153又はメモリ装置152に格納されているデータやプログラムをCPU151が実行することによって実現される。また、コスト算出装置100に必要な情報は、入出力インタフェース装置154から入力され、コスト算出装置100において求められた結果は、入出力インタフェース装置154から出力されてもよい。
図19に、本発明の実施例に係るコスト算出装置100のハードウェア構成例を示す。コスト算出装置100は、CPU(Central Processing Unit)151等のプロセッサ、RAM(Random Access Memory)やROM(Read Only Memory)等のメモリ装置152、ハードディスク等の記憶装置153等から構成されたコンピュータでもよい。例えば、コスト算出装置100の機能及び処理は、記憶装置153又はメモリ装置152に格納されているデータやプログラムをCPU151が実行することによって実現される。また、コスト算出装置100に必要な情報は、入出力インタフェース装置154から入力され、コスト算出装置100において求められた結果は、入出力インタフェース装置154から出力されてもよい。
<補足>
説明の便宜上、本発明の実施例に係るコスト算出装置は機能的なブロック図を用いて説明しているが、本発明の実施例に係るコスト算出装置は、ハードウェア、ソフトウェア又はそれらの組み合わせで実現されてもよい。例えば、本発明の実施例は、コンピュータに対して本発明の実施例に係るコスト算出装置の機能を実現させるプログラム、コンピュータに対して本発明の実施例に係る方法の各手順を実行させるプログラム等により、実現されてもよい。また、各機能部が必要に応じて組み合わせて使用されてもよい。また、本発明の実施例に係る方法は、実施例に示す順序と異なる順序で実施されてもよい。
説明の便宜上、本発明の実施例に係るコスト算出装置は機能的なブロック図を用いて説明しているが、本発明の実施例に係るコスト算出装置は、ハードウェア、ソフトウェア又はそれらの組み合わせで実現されてもよい。例えば、本発明の実施例は、コンピュータに対して本発明の実施例に係るコスト算出装置の機能を実現させるプログラム、コンピュータに対して本発明の実施例に係る方法の各手順を実行させるプログラム等により、実現されてもよい。また、各機能部が必要に応じて組み合わせて使用されてもよい。また、本発明の実施例に係る方法は、実施例に示す順序と異なる順序で実施されてもよい。
以上、概念モデルを入力としてシステム移行に伴うコストを算出するための手法について説明したが、本発明は、上記の実施例に限定されることなく、特許請求の範囲内において、種々の変更・応用が可能である。
100 コスト算出装置
101 概念モデル入力部
103 概念モデル構造検出部
105 コスト算出部
107 出力部
151 CPU
152 メモリ装置
153 記憶装置
154 入出力インタフェース装置
101 概念モデル入力部
103 概念モデル構造検出部
105 コスト算出部
107 出力部
151 CPU
152 メモリ装置
153 記憶装置
154 入出力インタフェース装置
Claims (5)
- ソフトウェア設計のためのデータ構造を抽象化して表現した複数のクラス図によって構成される概念モデルを用いて、システム移行に伴うコストを算出するコスト算出プログラムであって、コンピュータに、
システム移行前の起点となる概念モデルと、システム移行後の評価対象の概念モデルとを入力する概念モデル入力機能と、
前記起点となる概念モデルの部品の情報と、前記評価対象の概念モデルの部品の情報とを、所定の式に入力して、開発コスト及び運用コストを算出するコスト算出機能と、
前記開発コスト及び運用コストを出力する出力機能と、
を実現させるコスト算出プログラム。 - 前記起点となる概念モデルの部品種類毎の部品数、前記評価対象の概念モデルの部品種類毎の部品数、前記起点となる概念モデルから前記評価対象の概念モデルへの変更種類毎の変更数、及び、前記起点となる概念モデルと前記評価対象の概念モデルの冗長構造パターン種類毎の冗長構造の数を検出する概念モデル構造検出機能を更に実現させ、
前記コスト算出機能は、前記起点となる概念モデルの部品種類毎の部品数と前記評価対象の概念モデルの部品種類毎の部品数との差、及び前記起点となる概念モデルから前記評価対象の概念モデルへの変更種類毎の変更数を、所定の式に入力して、開発コストを算出し、前記起点となる概念モデルの部品種類毎の部品数、前記評価対象の概念モデルの部品種類毎の部品数、及び前記起点となる概念モデルと前記評価対象の概念モデルの冗長構造パターン種類毎の冗長構造の数を、所定の式に入力して、運用コストを算出する、請求項1に記載のコスト算出プログラム。 - 前記概念モデル構造検出機能は、概念モデルに関して予め作成されたチェック項目に基づいて、前記概念モデルの表記エラー及び冗長構造を検出する、請求項2に記載のコスト算出プログラム。
- 前記コスト算出機能は、起点となる概念モデルにおいてパッケージ製品の部品の情報を除外して運用コストを算出する、請求項1乃至3のうちいずれか1項に記載のコスト算出プログラム。
- 前記出力機能は、システム開発のまとまり毎に前記開発コスト及び運用コストを出力する、請求項1乃至4のうちいずれか1項に記載のコスト算出プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016174859A JP2018041262A (ja) | 2016-09-07 | 2016-09-07 | コスト算出プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016174859A JP2018041262A (ja) | 2016-09-07 | 2016-09-07 | コスト算出プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018041262A true JP2018041262A (ja) | 2018-03-15 |
Family
ID=61626051
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016174859A Pending JP2018041262A (ja) | 2016-09-07 | 2016-09-07 | コスト算出プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2018041262A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11755318B2 (en) | 2019-08-28 | 2023-09-12 | Mitsubishi Electric Corporation | Proposing device and improvement proposing method |
-
2016
- 2016-09-07 JP JP2016174859A patent/JP2018041262A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11755318B2 (en) | 2019-08-28 | 2023-09-12 | Mitsubishi Electric Corporation | Proposing device and improvement proposing method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8745588B2 (en) | Method for testing operation of software | |
US9612831B2 (en) | System and method to measure and incentivize software reuse | |
JP2015087973A (ja) | 生成装置、生成方法、およびプログラム | |
US20090094007A1 (en) | System for defining simulation model | |
US11521077B1 (en) | Automatic recommendation of predictor variable values for improving predictive outcomes | |
JP2017146888A (ja) | 設計支援装置及び方法及びプログラム | |
JP2010211684A (ja) | データ処理方法、データ処理プログラム、データ処理装置 | |
CN112597062A (zh) | 军用软件结构化质量数据抽取方法、装置及软件测试装置 | |
JP5791121B2 (ja) | コスト算出装置、コスト算出方法、及びプログラム | |
WO2016063502A1 (ja) | 知識管理装置、知識管理方法、及び、プログラムの記録媒体 | |
JP6213552B2 (ja) | 非機能評価によるプロジェクト管理システム、非機能評価によるプロジェクト管理方法および非機能評価によるプロジェクト管理用プログラム | |
US8166453B2 (en) | Method and system for inconsistency resolution with cycle detection in a model-driven software environment | |
JP2018041262A (ja) | コスト算出プログラム | |
US20140310248A1 (en) | Verification support program, verification support apparatus, and verification support method | |
Tarwani et al. | Predicting maintainability of open source software using gene expression programming and bad smells | |
JP2012014308A (ja) | 変更影響予測方法及び変更影響予測装置 | |
Muñoz | Measuring the fidelity of digital twin systems | |
JP2023060106A (ja) | 機械学習モデル運用管理システム、運用管理方法及びコンピュータプログラム | |
CN106844218B (zh) | 一种基于演化切片的演化影响集预测方法 | |
US20230153491A1 (en) | System for estimating feature value of material | |
JP6665576B2 (ja) | 支援装置、支援方法及びプログラム | |
JP2016076012A (ja) | 設計流用支援装置、設計流用支援方法およびプログラム | |
JP2023020541A (ja) | 生産計画装置、生産計画システムおよび生産計画方法 | |
Kumar et al. | Testing time and effort-based successive release modeling of a software in the presence of imperfect debugging | |
Schneider et al. | Using informal knowledge for improving software quality trade-off decisions |