(57)【要約】【課題】  現実の開発においては、画一的に改造が行われない、つまり、求められるアプリケーションの機能と改造の元になるアプリケーションの機能との関係などでその内容や規模は変わるものである。それにも関わらず、改造規模の算出は、画一的に行われていた。【課題を解決するための手段】  本発明では、各小機能に改造対象のアプリケーションを細分化し、それぞれをＰ層、Ｆ層、Ｄ層ごとに、改造規模に関する機能情報を設けておき、小機能と中機能、大機能をそれぞれ対応付けて階層的に管理し、これらのデータと操作者からの入力によって改造生産性を算出するものである。【選択図】  図１
2010026669.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションの改造による開発工数の見積もりを実行するアプリケーション改造見積もりシステムであって、前記改造対象のアプリケーションの見積もり情報を格納するサーバ装置と前記サーバ装置に対して改造プロジェクト用工数見積もり情報の入出力を行う端末装置がネットワークを介して接続されたアプリケーション改造プロジェクト用工数見積もりシステムにおいて、
前記サーバ装置は、前記改造対象のアプリケーション毎に、当該アプリケーションの複数の機能それぞれについての機能に関する機能情報であって、各機能毎に当該機能における新規生産性および所定の係数を含む機能情報を階層的に記憶しておき、
前記端末装置は、
前記サーバ装置に対して、前記改造対象のアプリケーションおよび当該アプリケーションの機能情報を要求する要求情報を送信し、
前記サーバ装置から、前記要求情報に対応する機能情報を受信し、
操作者から当該改造対象のアプリケーションの改造における再利用率を受け付け、
前記再利用率および前記機能情報に含まれる新規生産性と所定の係数を用いて、当該改造対象のアプリケーションの改造生産性を算出することで、開発工数の見積もりを行うことを特徴とするアプリケーション改造プロジェクト用工数見積もりシステム。
【請求項２】
請求項１に記載のアプリケーション改造プロジェクト用工数見積もりシステムにおいて、
前記端末装置は、前記操作者からの入力に応じて、前記新規生産性および前記所定の係数を変更することを特徴とするアプリケーション改造プロジェクト用工数見積もりシステム。
【請求項３】
請求項１または２のいずれかに記載のアプリケーション改造プロジェクト用工数見積もりシステムにおいて、
前記端末装置は、前記開発工数の見積もりに関する情報を表示することを特徴とするアプリケーション改造プロジェクト用工数見積もりシステム。
【請求項４】
アプリケーションの改造による開発工数の見積もり実行するアプリケーション改造見積もりシステムであって、前記改造対象のアプリケーションの見積もり情報を格納するサーバ装置と前記サーバ装置に対して改造見積もり情報を入出力する端末装置がネットワークを介して接続されたアプリケーション改造プロジェクト用工数見積もりシステムを用いたアプリケーション改造プロジェクト用工数見積もり方法において、
前記サーバ装置において、前記改造対象のアプリケーション毎に、当該アプリケーションの複数の機能それぞれについての機能に関する機能情報であって、各機能毎に当該機能における新規生産性および所定の係数を含む機能情報が階層的に記憶されており、
前記端末装置において、前記サーバ装置に対して、前記改造対象のアプリケーションおよび当該アプリケーションの機能情報を要求する要求情報を送信し、前記サーバ装置から、前記要求情報に対応する機能情報を受信し、操作者から当該改造対象のアプリケーションの改造における再利用率を受け付け、前記再利用率および前記機能情報に含まれる新規生産性と所定の係数を用いて、当該改造対象のアプリケーションの改造生産性を算出することで、開発工数の見積もりを行うことを特徴とするアプリケーション改造プロジェクト用工数見積もり方法。
【請求項５】
請求項４に記載のアプリケーション改造プロジェクト用工数見積もり方法において、
前記端末装置において、前記操作者からの入力に応じて、前記新規生産性および前記所定の係数を変更することを特徴とするアプリケーション改造プロジェクト用工数見積もり方法。
【発明の詳細な説明】
【背景技術】
【０００１】
現在、いわゆるソフトウェアの開発について、０からそれを開発するのでなく、既存のソフトウェアを改造して開発する手法が取られている。その一手法として、特許文献１が提案されている。特許文献１は、ソフトウェア開発工数見積もり技術の提供を目的とする。この目的を達成するために、特許文献１では、予め用意される複数のサービスで実行される業務機能について、どのサービスがその業務機能を実行するのかという情報と、どのサービス項目で実行するのかという情報と、それらの情報に対応付けて定義されるソフトウェアの改造規模の情報とを記憶する手段と、それらのサービスで提供するサービス項目の一覧情報に対応付ける形で記述されて、ユーザの要求するサービスがどれで、どのサービス項目を改造するのかということについて記述する情報を入力する手段と、入力した情報に基づいて、ユーザの要求するサービスを実現するために、そのサービスのどのサービス項目を改造する必要があるのかを検出する手段と、検出した情報に従って記憶手段を参照することでソフトウェア改造規模の情報を取得して、それに基づいて改造工数を見積もる手段とを備えるように構成する
【特許文献１】特開2007-323226号公報
【発明の開示】
【発明が解決しようとする課題】
【０００２】
しかしながら、特許文献１においては、予め、業務機能に因った改造規模を記憶しておく必要がある。言い換えると、画一的に改造規模(改造の目安)が決まっている。しかし、現実の開発においては、画一的に改造が行われるのでなく、求められるアプリケーションの機能と改造の元になるアプリケーションの機能との関係などでその内容や規模は変わるものである。このこともあり、改造規模の算出には、きめ細かな設定が求められている。
【課題を解決するための手段】
【０００３】
上記の課題を解決するために、本発明では、各小機能に改造対象のアプリケーションを細分化し、それぞれをユーザインタフェースを提供するプレゼンテーション層(Ｐ層)、ユーザに提供するデータの加工を行うファンクション層(Ｆ層)、データベースにアクセスするためのデータベースアクセス層(Ｄ層)ごとに、改造規模に関する機能情報を設けておき、小機能と中機能、大機能をそれぞれ対応付けて階層的に管理し、これらのデータと操作者からの入力によって改造生産性を算出するものである。
【０００４】
この本発明には、以下の態様も含まれる。
アプリケーションの改造による開発工数の見積もり実行するアプリケーション改造プロジェクト用工数見積もりシステムであって、前記改造対象のアプリケーションの見積もり情報を格納するサーバ装置と前記サーバ装置に対して改造プロジェクト用工数見積もり情報を入出力する端末装置がネットワークを介して接続された改造プロジェクト用工数見積もりシステムにおいて、
前記サーバ装置は、前記改造対象のアプリケーション毎に、当該アプリケーションの複数の機能それぞれについての機能に関する機能情報であって、各機能毎に当該機能における新規生産性および所定の係数を含む機能情報を階層的に記憶しておき、
前記端末装置が、前記サーバ装置に対して、前記改造対象のアプリケーションおよび当該アプリケーションの機能情報を要求する要求情報を送信し、
前記端末装置は、操作者から当該改造対象のアプリケーションの改造における再利用率を受け付け、
前記端末装置は、前記再利用率および前記機能情報に含まれる新規生産性と所定の係数を用いて、当該改造対象のアプリケーションの改造生産性を算出することで、開発工数の見積もりを行うアプリケーション改造プロジェクト用工数見積もりシステム。
【０００５】
また、このアプリケーション改造プロジェクト用工数見積もりシステムにおいて、
前記端末装置は、前記操作者からの入力に応じて、前記新規生産性および前記所定の係数を変更するものも本発明に含まれる。
【発明の効果】
【０００６】
本発明によれば、より実体に則した形で開発工数を見積もることが可能になる。
【発明を実施するための最良の形態】
【０００７】
本発明の実施の形態におけるブロック図を図1に示す。端末20は、ネットワークを介してアプリケーションサーバ装置に接続されている。また、端末20は、ＣＰＵなどの演算装置30、メモリ、ハードディスクを含む記憶装置40を有し、演算装置が処理を実行するものである。尚、プログラムの実装場所は端末20に限定するものではなく、サーバ装置に実装しても良いものとする。ユーザは端末20の入出力装置50から計算に必要な情報を入力する。演算装置30はユーザからの入力に応じて、入出力装置50に計算結果を出力する。本実施の形態は、アプリケーションサーバ装置10とDBサーバ装置60を物理的に別のサーバ装置として実現したものを例に説明するが、本発明はそれに限定されるものではない。例えば、アプリケーションサーバ装置10とDBサーバ装置60を一台のサーバ装置で実現する場合や、サーバ装置と端末20を単一の装置に実現する場合も請求の範囲に含むものとする。また、端末20は複数存在する場合もあり得る。なお、ＤＢサーバ装置内の各データについては、図６に示すとおりである。
【０００８】
以下、本実施の形態の処理内容について、図２のフローチャートに従い説明する。尚、本発明の範囲はフローチャートでF10〜F90の番号を付記した箇所であり、それ以外の記述は実現形態を特定するものではない。
【０００９】
まず、端末20がユーザのIDとパスワードを受け付ける。ユーザからIDとパスワードを入力されると、端末20がログイン権限の判定を行う。判定の結果、ログイン権限が無ければ装置が処理を中断し、ログイン権限があれば、装置が初期画面の表示を行う。なお、以下、端末20が実行する処理は、図示しないプログラムに従って演算装置30が実行するものである。
【００１０】
F10：端末20が、DBサーバ装置60から各係数を一括で取得する(各係数を受信する)。このとき、取得する係数は装置に登録されている見積もりデータごとに保持しており、ユーザが入力したコードに一致する係数をDBサーバ装置60から端末20が取得する。
【００１１】
F20：端末20が改造の対象となるアプリケーションのプロフィールを、入出力装置50に表示する。プロフィールは、新規にユーザが入出力装置50を使用して入力する場合と、既にDBサーバ装置60に保存されているデータを装置が見積もり情報テーブル540から取得する場合が考えられる。本例（図示したフローチャート）では、プロフィールをDBサーバ装置60から取得する場合を仮定する。DBサーバ装置60からのデータの取得は、ユーザからの入出力装置50を介しての50見積もりデータ固有のコードの入力を受け付け、端末20が見積もり情報540から見積もりコードに対応する見積もりデータを取得する。ただし、取得する見積もりデータの特定方法はこれに限定するものではない。
【００１２】
F30：端末20が見積もりデータ(再利用率511,改造母体ステップ544,改造/新規545)の入力を受け付ける。見積もりデータの入力は機能階層1030の最下層の機能ごとに受け付ける。
【００１３】
F40：端末20は、改造用工数算出に必要な情報の入力を改造対象となる機能の数分受け付ける。改造の対象となる機能の指定は機能階層1030の最下層の機能ごとに行い、改造または新規の識別を546に設定する。本実施の携帯では装置の画面において機能階層1030で対象の機能の選択を受け付け、選択された機能に対して画面から見積もりデータを入力する方法を想定している。
【００１４】
F50：ユーザから機能単位、層単位に改造母体ステップの入力を受け付ける。
ここで、ステップとは、プログラムのソースコードの行数を指し、改造母体ステップとは改造の対象となる機能の改造後の出来上がりのステップ数を指す。
【００１５】
F60：端末20は、どの程度改造前のプログラムソースを使用できるかを表す「再利用率」の入力を受け付ける。本実施の形態では再利用率を再利用レベル512ごとに設定しテーブルに保持し、ユーザが画面から入力する際は再利用レベル512を選択することにより再利用率を設定する方法を想定している。
※改造母体と再利用率の入力は、装置に入力されている見積もり情報のうち、改造の対象となるアプリケーションの機能を木構造で表した機能階層の各機能単位かつアプリケーションの構造における区分(以下、層と記す)単位に受け付ける。
【００１６】
F70：端末20は、入力された再利用率とサーバから取得した改造用生産性算出のための係数(α522、β523、および新規開発の場合の生産性533から、改造用生産性を算出する。
F80：装置は入力された改造母体ステップと改造用生産性から改造時の工数を算出する。
※F70とF80の詳細な計算方法と具体例は後述とする。
F90：改造用工数の算出は、機能階層の機能単位かつ層単位に行い、算出した改造用工数は、アプリケーション開発の工程毎に集計して画面に表示する。
F90の終了後、ユーザが作成した見積もりデータの保存を行う。保存時には見積もりデータ固有のコードを設定して保存する。最後に装置が見積もりデータを見積もり情報540に保存して終了する。ただし、見積もりデータの保存に関しては、どのような方法を用いてもよい。
【００１７】
以下、F70、F80の詳細な算出方法と具体例を以下に示す。F70において改造用の生産性の算出は、下記数１によって行う。
【００１８】
【数１】
2010026669.tif 000003
【００１９】
例えば、再利用率90%、α=0.5、β=3.0、新規生産性=100[KS/人月]の場合、下記数２のように改造生産性を算出する。
（数２）
改造生産性  =  100÷{0.5+3.0×(1-0.9)}  =  125  [KS/人月] …(数２)
また、再利用率を60%とすると、下記（数３）で示され、生産性が下がる
（数３）
改造生産性  =  100÷{0.5+3.0×(1-0.6)}  ≒  59  [KS/人月]…（数３）
F70において改造時の工数は、下記数４を用いて装置が算出する。
【００２０】
【数４】
2010026669.tif 000004
【００２１】
例えば、改造母体ステップが250[KS]の場合、次式のように改造工数を算出する。
改造工数  =  250÷125  =  2  [人月]  ・・・  再利用率90%の場合
改造工数  =  250÷ 59  ≒ 4  [人月]  ・・・  再利用率60%の場合
※再利用率が低いと工数が増大する。
【００２２】
F30の繰り返しは機能階層1030の機能毎に行う。また各機能は、P、F、Dの三層に分け、1040に示すように、機能毎かつ層毎に改造母体ステップ、再利用率を設定し改造用工数を算出する。1040において小機能１の改造用工数は改造用工数１〜改造工数３を足したものである。以上の処理を機能階層1030の最下層の機能(1030の例では小機能１、小機能２、小機能３)に対して行い、全機能分の改造用工数を合計する。
【００２３】
また、1040において、α、βはアプリケーション開発の開発工程毎に決められた値を持っており、改造用工数の集計は開発工程毎に行う。例えば、工程１の時のα、βを用いて改造用工数を算出する。次に工程２の時のα、βを用いて改造用工数を算出する、というように各工程に対して改造用工数を算出する。なお、改造母体ステップ、再利用率、生産性、α、βの入力については、図５に示している。
【００２４】
なお、見積もりデータの指定および係数の取得に関しては、図３に示すように行う。また、機能階層と層の考え方は、図４に示すとおりである。端末20では改造の対象となるアプリケーションのプロフィールとして下記のような機能階層の入力を可能とし、DBサーバ60の見積もり情報540の機能階層542に保存することができる。また、アプリケーションの機能を、表示(P層)、業務ロジック(F層)、データベースアクセス(D層)の三層に分ける考えを取り入れ、機能単位かつ層単位にプロフィールや見積もりデータを保持する。具体的な機能階層と改造用工数算出のイメージは図４のとおりである。
【図面の簡単な説明】
【００２５】
【図１】本発明の一実施形態のブロック図。
【図２】本発明の一実施形態におけるフローチャート。
【図３】本発明の一実施形態における見積もりデータと係数の取得を示す模式図。
【図４】本発明の一実施形態における機能階層と層の考え方を示す図。
【図５】本発明の一実施形態における改造母体ステップ、再利用率、生産性、α、βの入力を説明するための図。
【図６】本発明の一実施形態におけるデータテーブルを示す図。
【符号の説明】
【００２６】
１０…アプリケーションサーバ装置、２０…端末、６０…ＤＢサーバ装置
【図１】
2010026669.tif 000005
【図２】
2010026669.tif 000006
【図３】
2010026669.tif 000007
【図４】
2010026669.tif 000008
【図５】
2010026669.tif 000009
【図６】
2010026669.tif 000010