JP2009086831A - プログラム変更工数見積装置、プログラム変更工数見積方法およびプログラム変更工数見積処理用プログラム - Google Patents

プログラム変更工数見積装置、プログラム変更工数見積方法およびプログラム変更工数見積処理用プログラム Download PDF

Info

Publication number
JP2009086831A
JP2009086831A JP2007253356A JP2007253356A JP2009086831A JP 2009086831 A JP2009086831 A JP 2009086831A JP 2007253356 A JP2007253356 A JP 2007253356A JP 2007253356 A JP2007253356 A JP 2007253356A JP 2009086831 A JP2009086831 A JP 2009086831A
Authority
JP
Japan
Prior art keywords
program
man
class
program change
hour
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.)
Granted
Application number
JP2007253356A
Other languages
English (en)
Other versions
JP4982725B2 (ja
Inventor
Shigenori Abe
重範 安部
Yoshiyuki Hara
圭志 原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu FIP Corp
Original Assignee
Fujitsu FIP Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu FIP Corp filed Critical Fujitsu FIP Corp
Priority to JP2007253356A priority Critical patent/JP4982725B2/ja
Publication of JP2009086831A publication Critical patent/JP2009086831A/ja
Application granted granted Critical
Publication of JP4982725B2 publication Critical patent/JP4982725B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

【課題】本発明は、名前空間を使ってクラスを分類するオブジェクト指向プログラムの一部を変更する場合に要求される工数を見積もる新たな見積技術の提供を目的とする。
【解決手段】見積対象のプログラムがどのような名前空間を用いているのかということを解析するとともに、画面定義体を単位にして、見積対象のプログラムがその名前空間を用いてどのようにクラスを分類しているのかということについて解析して、その解析結果に基づいて、互いに関連する処理を行うメソッドを持つクラスがどれであるのかということを視覚表示しながら、各クラスの持つ各メソッドについてプログラムの変更量を漏れなく入力して、その入力したプログラム変更量に基づいて、見積対象のプログラムの一部を変更する場合に要求される工数を見積もる。これにより、見積対象のプログラムの一部を変更する場合に要求される工数を簡単かつ正確に見積もることができるようになる。
【選択図】図1

Description

本発明は、オブジェクト指向プログラムの一部を変更する場合に要求される工数を見積もるプログラム変更工数見積装置およびその方法と、そのプログラム変更工数見積装置の実現に用いられるプログラム変更工数見積処理用プログラムとに関する。
プログラムを開発する場合には、スケジュールの計画立案を行う必要があることから、プログラムの開発工数を見積もる必要がある。
プログラムの開発工数の見積もりに関係して、製品開発プロジェクトにおいて、プロジェクトの日程計画を立案する際に、工数算出式の持つ係数を変化できるようにすることで、製品や製品を構成する部品の仕様が変化したり、製品開発における各作業の生産性が変化する場合にも、プロジェクトの日程計画立案に必要となる工数を高精度に見積もることができるようにするという発明が開示されている(例えば、特許文献1参照)。
また、プログラムの開発工数の見積技術として、開発途中の任意の時点において、過去の見積値や実績値を利用して、それ以降の工程で導出される成果物の量や作業の量を高精度に見積もることができるようにするという発明が開示されている(例えば、特許文献2参照)。
また、別のプログラムの開発工数の見積技術として、機能仕様書の情報よりユーザが要求する各種の機能を抽出し、その抽出した各機能の複雑度に従って機能量(ファンクションポイント)という値を求めて、プロジェクトを構成する全部の機能の機能量を総合計した総機能量を算出することで、複数の作業で構成されるプロジェクトを実行する場合における作業工数を見積もることができるようにするという発明が開示されている(例えば、特許文献3参照)。
特開2002−109173号公報 特開平10−240808号公報 特開平11−203351号公報
このように、従来から、プログラムの開発工数を見積もるための様々な手法が提案されている。
しかしながら、従来の手法は、基本的には、これから開発する新たなプログラムの開発工数を見積もることを想定しており、既存のプログラムの一部を変更する場合に要求される工数を見積もることを想定している訳ではない。
これから、現在までのところ、既存のプログラムをバージョンアップする場合などに、その変更に要求される工数がどの程度のものになるのかということを正確に見積もることができないというのが実情である。
このことは大規模なシステムの運用に用いられるプログラムを開発するメーカにとって極めて深刻な問題である。プログラムを使用しているユーザから、プログラムの一部を変更する要求がある場合に、その変更に要求される工数がどの程度のものになるのかということを正確に見積もることができないことから、誤った見積り価格により多大な損害が強いられることがあり、極めて深刻な問題なのである。
本発明はかかる事情に鑑みてなされたものであって、名前空間を使ってクラスを分類するオブジェクト指向プログラムを見積対象として、オブジェクト指向プログラムの一部を変更する場合に要求される工数を簡単かつ正確に見積もる新たなプログラム変更工数見積技術の提供を目的とする。
この目的を達成するために、本発明のプログラム変更工数見積装置は、名前空間を使ってクラスを分類するオブジェクト指向プログラムの一部を変更する場合に要求される工数を見積もることを実現するために、(1)工数見積対象プログラムを解析することで、工数見積対象プログラムがどのような名前空間を用いているのかということを解析するとともに、工数見積対象プログラムの定義する画面定義体を単位にして、その名前空間の各層がどのようなクラスを持っているのかということと、それらの各クラスがどのようなメソッドを持っているのかということについて解析する解析手段と、(2)解析手段の解析結果に基づいて、その解析結果を視覚化したデータを生成してディスプレイに表示する表示手段と、(3)表示手段の表示する視覚化データに記述されるクラスの中からプログラムの変更対象となるクラスが選択される場合に、解析手段の解析結果に基づいて、その選択されたクラスの持つメソッドに関係する処理を行うメソッドを持つクラスを特定して、表示手段の表示する視覚化データに記述されるそれらの特定したクラスを明示表示する関係クラス表示手段と、(4)関係クラス表示手段の明示表示するクラスの持つメソッドについて、プログラムの変更量を入力する入力手段と、(5)入力手段の入力したプログラム変更量を集計し、それに基づいて、工数見積対象プログラムの一部を変更する場合に要求される工数を見積もる見積手段とを備えるように構成する。
以上の各処理手段はコンピュータプログラムでも実現できるものであり、このコンピュータプログラムは、適当なコンピュータ読み取り可能な記録媒体に記録して提供されたり、ネットワークを介して提供され、本発明を実施する際にインストールされてCPUなどの制御手段上で動作することにより本発明を実現することになる。
このように構成される本発明のプログラム変更工数見積装置は、名前空間を使ってクラスを分類するオブジェクト指向プログラムを見積対象として、工数見積対象プログラムを解析することで、工数見積対象プログラムがどのような名前空間を用いているのかということを解析するとともに、工数見積対象プログラムの定義する画面定義体を単位にして、その名前空間の各層がどのようなクラスを持っているのかということと、それらの各クラスがどのようなメソッドを持っているのかということについて解析して、その解析結果に基づいて、その解析結果を視覚化したデータを生成してディスプレイに表示する。
この視覚化データの表示を受けて、プログラムの変更工数を見積もるユーザは、視覚化データに記述されるクラスの中から変更対象となるクラスを選択する。
これから、本発明のプログラム開発工数見積装置は、このユーザの選択操作を受けて、視覚化データに記述されるクラスの中からプログラムの変更対象となるクラスが選択されると、名前空間の解析結果に基づいて、その選択されたクラスの持つメソッドに関係する処理を行うメソッドを持つクラスを特定して、視覚化データに記述されるそれらの特定したクラスを明示表示する。
このクラスの明示表示を受けて、プログラムの変更工数を見積もるユーザは、明示表示されるクラスを順次選択して、その選択したクラスの持つ各メソッドについて、そのメソッドを変更する必要がある場合には、その変更のプログラム量を入力する。
これから、本発明のプログラム開発工数見積装置は、このユーザの入力操作を受けて、明示表示するクラスの持つメソッドについて、プログラムの変更量を入力する。そして、その入力したプログラム変更量を集計し、それに基づいて、工数見積対象プログラムの一部を変更する場合に要求される工数を見積もる。
このとき、プログラムの変更工数を見積もるユーザの便宜を図るために、画面定義体を単位にして各クラスについてプログラム変更率のデフォルト値を定義しておいて、そのデフォルト値とプログラム変更量の入力対象となるメソッドのプログラム量とに基づいて、そのメソッドのプログラム変更量を算出することで、そのメソッドのプログラム変更量を入力することがある。
また、プログラムの変更工数を見積もるユーザの便宜を図るために、明示表示するクラスに新たなメソッドを追加する変更を行う場合には、そのクラスの持つメソッドのプログラム量に基づいて、その新たなメソッドのプログラム量を決定することで、その新たなメソッドのプログラム変更量を入力することがある。
このようにして、本発明では、名前空間を使ってクラスを分類するオブジェクト指向プログラムを見積対象として、工数見積対象プログラムがどのような名前空間を用いているのかということを解析するとともに、画面定義体を単位にして、工数見積対象プログラムがその名前空間を用いてどのようにクラスを分類しているのかということについて解析して、その名前空間の解析結果に基づいて、互いに関連する処理を行うメソッドを持つクラスがどれであるのかということを視覚表示しながら、各クラスの持つ各メソッドについてプログラムの変更量を漏れなく入力して、その入力したプログラム変更量に基づいて、工数見積対象プログラムの一部を変更する場合に要求される工数を見積もるようにする。
これにより、本発明によれば、名前空間を使ってクラスを分類するオブジェクト指向プログラムの一部を変更する場合に要求される工数を、簡単かつ正確に見積もることができるようになる。
以下、実施の形態に従って本発明を詳細に説明する。
図1に、本発明のプログラム変更工数見積装置1の一実施形態例を図示する。
本発明のプログラム変更工数見積装置1は、プログラムの変更工数を見積もるユーザとの間の対話手段として機能する入出力端末2を備えて、名前空間を使ってクラスを分類するオブジェクト指向プログラムで構成される見積対象プログラム3の一部を変更する場合に要求される工数を見積もることを実現するために、プログラム入力部10と、見積対象プログラム格納部11と、名前解析部12と、名前解析結果記憶部13と、名前空間情報視覚化データ作成部14と、名前空間情報視覚化データ記憶部15と、プログラム変更量入力部16と、プログラム変更量集計部17と、プログラム変更量集計結果記憶部18と、プログラム変更工数見積部19とを備える。
プログラム入力部10は、見積対象プログラム3を入力して、見積対象プログラム格納部11に格納する。
名前解析部12は、見積対象プログラム格納部11に格納される見積対象プログラム3を解析することで、見積対象プログラム3がどのような名前空間を用いているのかということを解析するとともに、見積対象プログラム3の定義する画面定義体を単位にして、その名前空間の各層がどのようなクラスを持っているのかということと、それらの各クラスがどのようなメソッドを持っているのかということについて解析して、その解析結果を名前解析結果記憶部13に格納する。
このときに解析対象となる見積対象プログラム3は、例えば、アプリケーションレベルのプログラムである場合には、図2に示すように、ソリューション毎に、どのような画面定義体を用いるのかについてプログラムし、さらに、各レイヤ(各層)毎に、どのようにクラスを構成するのかということについてプログラムし、さらに、各クラスがどのようなメソッドを持つのかということについてプログラムする。
ここで、クラスの名前の中に所属層の名前を記述することで、そのクラスがどの層に所属しているのかということが分かるようになっているとともに、メソッドの名前の中に所属クラスの名前を記述することで、そのメソッドがどのクラスに所属しているのかということが分かるようになっている。
見積対象プログラム3にプログラムされる画面定義体は、画面デザインの具体的な内容について定義する画面デザイン定義と、その画面デザイン定義で定義される画面デザインの持つボタンなどのコントロールが操作されるときに、どのようなイベントを呼び出すのかについて定義するイベント呼出し定義とについて記述する。そして、見積対象プログラム3にプログラムされる各メソッドは、自メソッドが呼び出されるときに、どのような処理を実行するのかということについて記述するとともに、その処理の実行にあたって、どの層に所属するどのクラスの持つどのメソッドを呼び出していくのかということについて記述する。
これから、名前解析部12は、見積対象プログラム3の名前空間定義記述を解析することで、見積対象プログラム3がどのような名前空間を用いているのかということを解析するとともに、見積対象プログラム3の定義する画面定義体を単位にしてメソッドの呼び出し関係を辿っていくことで、その名前空間の各層がどのようなクラスを持っているのかということと、それらの各クラスがどのようなメソッドを持っているのかということについて解析する。
この名前解析によって、例えば、名前空間として、ユーザ・インタフェース層(UI層)、イベント層(IV層)、サービス・エージェント層(SA層)、サービス・インタフェース層(SI層)、ビジネス・ルール層(BR層)、ビジネス・ファサード層(BF層)、ビジネス・エンティティ・コンポーネント層(BEC層)、データ・アクセス・コントロール層(DAC層)というレイヤ構成を採る場合には、そのような名前空間を用いているということを解析するとともに、画面定義体を単位にして、それらの各層に属する各クラスの持つ各メソッドがどの層に属するどのグラスの持つどのメソッドと関係する処理を行っているのかという情報を得ることができることになる。
なお、イベント層は実際にはユーザ・インタフェース層の一部を構成しているものなので、ユーザ・インタフェース層とイベント層とを区分けしないレイヤ構成を用いるようにしてもよい。
名前空間情報視覚化データ作成部14は、名前解析結果記憶部13に格納される解析結果を視覚化した図3に示すような視覚化データ(以下、名前空間情報視覚化データと称する)を作成して、名前空間情報視覚化データ記憶部15に格納する。
すなわち、画面定義体(図3の例ではAフォーム(A.Form)という画面定義体)を単位にして、見積対象プログラム3がどのような名前空間を用いているのかということと、その名前空間の各層がどのようなクラスを持っているのかということと、それらの各クラスがどのようなメソッドを持っているのかということについて示す図3に示すような名前空間情報視覚化データを作成するのである。
ここで、図3に示す名前空間情報視覚化データからでは、各クラスがどのようなメソッドを持っているのかということについて知ることができないが、図4に示すように、この名前空間情報視覚化データに記述されるクラス名をダブルクリック(Tree 表示の+をクリックすることでよい)すると、そのクラスの持つメソッドの一覧とそれらのメソッドの属性情報とが表示されるように構成されているので、見積対象プログラム3の変更工数を見積もるユーザ(以下、ユーザと略記する)は、この名前空間情報視覚化データを参照することで、見積対象プログラム3がどのような名前空間を用いているのかということと、その名前空間の各層がどのようなクラスを持っているのかということと、それらの各クラスがどのようなメソッドを持っているのかということについて把握することができるのである。
名前空間情報視覚化データは、図4に示すように、メソッドの属性情報の一つとして“予定変更行数”欄を持っているが、ここには、ユーザによりプログラムの変更量が入力されることになる。
プログラム変更量入力部16は、名前空間情報視覚化データ記憶部15から名前空間情報視覚化データを読み出して入出力端末2のディスプレイに表示するとともに、その表示にあたって、名前解析結果記憶部13に格納される名前解析結果により特定される互いに関係のあるクラスを明示しつつ、入出力端末2を介してユーザと対話することで、名前空間情報視覚化データに記述される各クラスの持つ各メソッドについて、そのプログラムの変更量を入力する。このとき入力するプログラムの変更量については、名前空間情報視覚化データ記憶部15に格納される名前空間情報視覚化データの持つ“予定変更行数”欄に記録されることになる。
プログラム変更量集計部17は、名前空間情報視覚化データ記憶部15に格納される名前空間情報視覚化データに記録されるプログラム変更量を集計して、その集計結果の情報をプログラム変更量集計結果記憶部18に格納する。
プログラム変更工数見積部19は、プログラム変更量集計結果記憶部18に格納されるプログラム変更量集計結果に基づいて、見積対象プログラム3の一部を変更する場合に要求される工数を見積もる。
図5ないし7に、このように構成される本発明のプログラム変更工数見積装置1の実行するフローチャートを図示する。
ここで、図5のフローチャートは、プログラム入力部10/名前解析部12/名前空間情報視覚化データ作成部14の実行するフローチャートを示し、図6のフローチャートは、プログラム変更量入力部16の実行するフローチャートを示し、図7のフローチャートは、プログラム変更量集計部17の実行するフローチャートを示す。
次に、これらのフローチャートに従って、このように構成される本発明のプログラム変更工数見積装置1の実行する処理について説明する。
本発明のプログラム変更工数見積装置1は、見積対象プログラム3の一部変更の工数の見積りに先立って、ユーザから見積対象プログラム3の解析要求が発行されると、図5のフローチャートに示すように、先ず最初に、ステップS100で、見積対象プログラム3を入力する。
続いて、ステップS101で、入力した見積対象プログラム3の記述する名前空間の定義箇所を解析することで、見積対象プログラム3の用いている名前空間を特定する。
例えば、見積対象プログラム3がユーザ・インタフェース層(UI層)、イベント層(IV層)、サービス・エージェント層(SA層)、サービス・インタフェース層(SI層)、ビジネス・ルール層(BR層)、ビジネス・ファサード層(BF層)、ビジネス・エンティティ・コンポーネント層(BEC層)、データ・アクセス・コントロール層(DAC層)という名前空間を用いているということを特定するのである。
続いて、ステップS102で、見積対象プログラム3の持つ全てのソリューションを処理したのか否かを判断して、全てのソリューションを処理していないことを判断するときには、ステップS103に進んで、未処理のソリューションを1つ選択する。
続いて、ステップS104で、選択したソリューションの持つ画面定義体を抽出する。すなわち、図2に記載するように、各ソリューションはUI層でそのソリューションで用いている画面定義体について定義しているので、それらの画面定義体を抽出するのである。
続いて、ステップS105で、抽出した全ての画面定義体を処理したのか否かを判断して、全ての画面定義体を処理していないことを判断するときには、ステップS106に進んで、未処理の画面定義体を1つ選択する。
続いて、ステップS107で、選択した画面定義体の持つコントロールを起点としてメソッドの呼出し関係を辿ることで、名前空間の各層に属するクラスと、それらの各クラスの持つメソッドとを特定する。この特定結果(解析結果)については名前解析結果記憶部13に格納することになる。
続いて、ステップS108で、ステップS107で特定した情報に基づいて、選択した画面定義体についての名前空間情報視覚化データを作成する。すなわち、選択した画面定義体について、図3および図4に示すような名前空間情報視覚化データを作成するのである。
続いて、ステップS109で、作成した名前空間情報視覚化データを名前空間情報視覚化データ記憶部15に格納してから、ステップS105の処理に戻る。
そして、ステップS105〜ステップS109の処理を繰り返していくことで、ステップS105で、選択したソリューションから抽出した全ての画面定義体を処理したことを判断するときには、ステップS102の処理に戻る。
そして、ステップS102〜109の処理を繰り返していくことで、ステップS102で、見積対象プログラム3の持つ全てのソリューションを処理したことを判断するときには、処理を終了する。
このようにして、本発明のプログラム変更工数見積装置1は、見積対象プログラム3の一部を変更する工数の見積りに先立って図5のフローチャートを実行することで、図3および図4に示すような名前空間情報視覚化データを作成して、それを名前空間情報視覚化データ記憶部15に格納するように処理するのである。
これにより、名前空間情報視覚化データ記憶部15には、図8に示すように、見積対象プログラム3の持つソリューション毎に、そのソリューションの持つ画面定義体を単位にして作成された名前空間情報視覚化データが格納されることになる。
この後、ユーザから見積対象プログラム3の一部変更工数の見積り要求が発行されると、本発明のプログラム変更工数見積装置1は、図6のフローチャートに示すように、先ず最初に、ステップS200で、見積対象プログラム3の持つ全てのソリューションを処理したのか否かを判断して、全てのソリューションを処理していないことを判断するときには、ステップS201に進んで、未処理のソリューションを1つ選択する。
続いて、ステップS202で、名前空間情報視覚化データ記憶部15から、選択したソリューションの持つ各画面定義体に対応付けて作成した名前空間情報視覚化データを読み出す。
続いて、ステップS203で、読み出した全ての名前空間情報視覚化データを処理したのか否かを判断して、全ての名前空間情報視覚化データを処理していないことを判断するときには、ステップS204に進んで、未処理の名前空間情報視覚化データを1つ選択する。
続いて、ステップS205で、選択した名前空間情報視覚化データを入出力端末2のディスプレイに表示する。すなわち、図3に示すように表示するのである。
続いて、ステップS206で、ユーザから、ディスプレイに表示する名前空間情報視覚化データに記述されるBEC層のクラスとそのクラスの持つデータ項目とに対する選択操作が行われるのを待って、BEC層のクラス・データ項目の選択操作が行われることを検出すると、ステップS207に進んで、図5のフローチャートの実行により得た名前解析結果に基づいて、ユーザにより選択されたBEC層のクラス・データ項目に関係する処理を行うメソッドを持つ各層のクラスを特定して、それらの特定したクラスを名前空間情報視覚化データ上で明示表示する。
例えば、図3に示す名前空間情報視覚化データをディスプレイに表示しているときに、ユーザがBEC層に所属するBEC01というクラスの持つ項目03というデータ項目を選択する場合に、そのクラス・データ項目に関係する処理を行うメソッドを持つクラスとして、UI層のラジオボタン2と、IV層のクラスIV02,03,07と、SA層のクラスSA02,03と、SI層のクラスSI01と、BR層のクラスBR01,03と、BF層のBF02と、DAC層のクラスDAC01とがある場合には、図9に示すように、それらのクラスを名前空間情報視覚化データ上で明示表示するのである。
このとき、図10に示すように、例えば、BR層のクラスBR03の全ステップの中で、クラスBEC01を呼び出しているステップの割合を求めて、その割合をクラスBR03に対応付けてインジケータで表示するというように、明示表示するクラスと明示元のクラスとの影響度合いを求めて、それをインジケータで表示するようにしてもよい。
このようなインジケータ表示を行うと、ユーザは、明示表示するクラスの内で、明示元のクラスの持つメソッドの変更により大きな影響を受けることになるクラスがどれであるのかということを一目で把握できるようになる。
続いて、ステップS208で、明示表示するクラスの持つメソッドの内、ユーザにより選択されたBEC層のクラス・データ項目に関係する処理を行うメソッドについてプログラム変更量(例えばプログラム行数で表現する)を入力する。
すなわち、図9に示すような形態で名前空間情報視覚化データを表示しているときに、ユーザが明示表示するクラスの内の1つをダブルクリックすると、図11に示すように、そのダブルクリックされたクラスの持つメソッドの一覧とそれらのメソッドの属性情報とを表示して、ユーザに対して、ユーザが選択したBEC層のクラス・データ項目に関係する処理を行うメソッドについてプログラム変更量の入力を促すことで、そのプログラム変更量を入力するのである。
このとき、ダブルクリックされたクラスの持つメソッドの内、ユーザが選択したBEC層のクラス・データ項目に関係する処理を行うメソッドについては、そのメソッドの持つ“変更”欄にチェックマークを表示することで、プログラム変更量を入力しなければならないメソッドであることをユーザに知らせるようにしている。
また、図11では示していないが、ダブルクリックされたクラスについて、プログラム変更量を入力しなければならない全てのメソッドについてプログラム変更量を入力した場合には、そのクラスの明示表示の形態を変化させるようにすることで、プログラム変更量の入力が終了したクラスであることを明示するようにしている。
続いて、ステップS209で、明示表示する全てのクラスについてプログラム変更量の入力が終了したのか否かを判断して、まだプログラム変更量の入力が終了していない明示表示のクラスがあることを判断するときには、ステップS208に処理に戻っていく。
一方、ステップS209の判断処理に従って、明示表示する全てのクラスについてプログラム変更量の入力が終了したことを判断するときには、ステップS210に進んで、BEC層の全てのクラス・データ項目が選択されたのか否かを判断して、BEC層の全てのクラス・データ項目が選択されていないことを判断するときには、ステップS206の処理に戻り、BEC層の全てのクラス・データ項目が選択されたことを判断するときには、ステップS203の処理に戻る。
そして、ステップS203〜ステップS210の処理を繰り返していくことで、ステップS203で、選択したソリューションの持つ全ての名前空間情報視覚化データを処理したことを判断するときには、ステップS211に進んで、プログラム変更量を書き込んだステップS202で読み出した名前空間情報視覚化データを、名前空間情報視覚化データ記憶部15に書き戻してから、ステップS200の処理に戻る。
そして、ステップS200〜ステップS211の処理を繰り返していくことで、ステップS200で、全てのソリューションを処理したことを判断するときには、処理を終了する。
このようにして、本発明のプログラム変更工数見積装置1は、BEC層に所属するクラスの持つデータ項目(広義のメソッドと言える)が変更されることになるプログラム変更の見積りを行う場合には、図6のフローチャートを実行することで、ユーザに対してプログラムの変更箇所を提示して、その変更箇所のプログラム変更量の入力を促していくことで、そのプログラム変更に必要となるプログラム変更量を漏れのない形で入力するように処理するのである。
ここで、図6のフローチャートでは、データベースのカラムが変更されたり追加されたりするというプログラム変更を想定しているので、BEC層のクラス・データ項目を起点とするプログラム変更量の入力処理について記載したが、BEC層のクラス・データ項目を起点としないプログラム変更についても同様の処理に従ってプログラム変更量を入力していくように処理することになる。
また、図6のフローチャートでは、対象クラスの全てに対して処理を行わなければ処理を終了できないことで説明しているが、ユーザが処理対象とするクラスを任意に指定できるようにするという構成を採ることも可能である。
このようにして、名前空間情報視覚化データ記憶部15に格納される名前空間情報視覚化データに対して見積対象プログラム3についてのプログラム変更量を書き込むと、本発明のプログラム変更工数見積装置1は、図7のフローチャートに示すように、先ず最初に、ステップS300で、見積対象プログラム3の持つ全てのソリューションを処理したのか否かを判断して、全てのソリューションを処理していないことを判断するときには、ステップS301に進んで、未処理のソリューションを1つ選択する。
続いて、ステップS302で、名前空間情報視覚化データ記憶部15から、選択したソリューションの持つ各画面定義体に対応付けて作成した名前空間情報視覚化データ(プログラム変更量が記録されている)を読み出す。
続いて、ステップS303で、読み出した全ての名前空間情報視覚化データを処理したのか否かを判断して、全ての名前空間情報視覚化データを処理していないことを判断するときには、ステップS304に進んで、未処理の名前空間情報視覚化データを1つ選択する。
続いて、ステップS305で、選択した名前空間情報視覚化データに記録されているプログラム変更量を処理対象として、各層について、各クラス毎に、各クラスの持つメソッドに記録されているプログラム変更量を集計し、それに基づいて、選択した名前空間情報視覚化データ(画面定義体に対応付けられている)に対してユーザから入力されたプログラム変更量の総和を算出する。
続いて、ステップS306で、プログラム変更量集計結果記憶部18に、ソリューション名・画面定義体名に対応付ける形で、算出したプログラム変更量を記録してから、ステップS303の処理に戻る。
すなわち、ステップS301で選択したソリューションのソリューション名と、ステップS304で選択した名前空間情報視覚化データに対応付けられる画面定義体の画面定義体名とに対応付ける形で、算出したプログラム変更量を記録してから、ステップS303の処理に戻るのである。
一方、ステップS303の判断処理に従って、ステップS302で読み出した全ての名前空間情報視覚化データを処理したことを判断するときには、ステップS307に進んで、ステップS306の処理に従ってプログラム変更量集計結果記憶部18に記録した同一ソリューション(ステップS301で選択したソリューション)に係るプログラム変更量の総和を算出する。
続いて、ステップS308で、プログラム変更量集計結果記憶部18に、ソリューション名に対応付ける形で、算出したプログラム変更量を記録してから、ステップS300の処理に戻る。
そして、ステップS300〜ステップS308の処理を繰り返していくことで、ステップS300で、全てのソリューションを処理したことを判断するときには、ステップS309に進んで、プログラム変更量集計結果記憶部18に記録した全ソリューションのプログラム変更量の総和を算出して、見積対象プログラム3の名前であるアプリケーション名に対応付ける形で、その算出したプログラム変更量をプログラム変更量集計結果記憶部18に記録して、処理を終了する。
このアプリケーション名に対応付ける形でプログラム変更量集計結果記憶部18に記録されるプログラム変更量を受けて、プログラム変更工数見積部19は、予め定めてあるプログラム変更量と工数との変換関係に従って、見積対象プログラム3の変更に要する工数を見積もることになる。
このようにして、本発明のプログラム変更工数見積装置1は、ユーザと対話することで、名前空間を使ってクラスを分類するオブジェクト指向プログラムで構成される見積対象プログラム3の一部を変更する場合に要求される工数を見積もるように処理するのである。
図12に、本発明のプログラム変更工数見積装置1の他の実施形態例を図示する。
本実施形態例のプログラム変更工数見積装置1は、図1に示す実施形態例のプログラム変更工数見積装置1の備える構成に加えて、新たに標準変更率テーブル20を備えることを特徴とする。
この標準変更率テーブル20は、図13に示すように、画面の種類に応じて定義される、各層に属するクラスに適用されるプログラム変更率の標準値を格納している。
この標準変更率テーブル20が備えられるときには、プログラム変更量入力部16は、名前空間情報視覚化データに記述される各クラスの持つ各メソッドについて、そのプログラムの変更量を入力するときに、ユーザから標準変更率テーブル20による入力指定がある場合には、標準変更率テーブル20から、その名前空間情報視覚化データに対応付けられる画面定義体が定義する画面の種類とプログラム変更量の入力対象となるクラスの属する層とに対応付けて定義されるプログラム変更率を取得して、その取得したプログラム変更率とプログラム変更量の入力対象となるメソッドのプログラム量とを乗算し、その乗算値を入力要求のプログラム変更量として入力するように処理する。
この構成に従って、ユーザは簡単にプログラム変更量を入力することができるようになる。
図14に、本発明のプログラム変更工数見積装置1の他の実施形態例を図示する。
本実施形態例のプログラム変更工数見積装置1は、プログラム変更量入力部16が新たに新規メソッド入力支援機能160を備えることを特徴とする。
この新規メソッド入力支援機能160は、名前空間情報視覚化データ記憶部15に格納される名前空間情報視覚化データがメソッドの属性情報を記憶することで、各メソッドのプログラム量を記憶していることに着目して、例えば、ユーザが図9に示すBR層のクラスBR03に新たなメソッドを追加するときの見積りを要求する場合に、そのクラスBR03の持つメソッドのプログラム量を取得して、その中から最大値を選択したり、それらの平均値を算出することなどにより、追加するメソッドのプログラム量を推定して、その推定値を入力要求のプログラム変更量として入力するように処理する。
この構成に従って、ユーザはメソッドを追加する場合に、簡単にプログラム変更量を入力することができるようになる。
ここで、クラスBR03の持つメソッドが少ない場合には、BR層に所属する全てのメソッドのプログラム量を使って、追加するメソッドのプログラム量の推定を行ったり、メソッドの追加対象となっている画面定義体に所属する全てのメソッドのプログラム量を使って、追加するメソッドのプログラム量の推定を行ったり、メソッドの入力対象となっているソリューションに所属する全てのメソッドのプログラム量を使って、追加するメソッドのプログラム量の推定を行ったり、アプリケーションに所属する全てのメソッドのプログラム量を使って、追加するメソッドのプログラム量の推定を行うようにしてもよい。
このとき、ユーザからどの範囲に属するメソッドのプログラム量を使って推定を行うのかということを指定させるようにしてもよい。
本発明は、名前空間を使ってクラスを分類するオブジェクト指向プログラムの一部を変更する場合に適用されるものであり、その変更に要求される工数を簡単かつ正確に見積もることができるようになる。
本発明のプログラム変更工数見積装置の一実施形態例である。 見積対象となるプログラムの説明図である。 名前空間情報視覚化データの説明図である。 名前空間情報視覚化データの説明図である。 本発明のプログラム変更工数見積装置の実行するフローチャートである。 本発明のプログラム変更工数見積装置の実行するフローチャートである。 本発明のプログラム変更工数見積装置の実行するフローチャートである。 名前空間情報視覚化データ記憶部の記憶データの説明図である。 名前空間情報視覚化データの表示処理の説明図である。 名前空間情報視覚化データの表示処理の説明図である。 プログラム変更量の入力処理の説明図である。 本発明のプログラム変更工数見積装置の他の実施形態例である。 標準変更率テーブルの説明図である。 本発明のプログラム変更工数見積装置の他の実施形態例である。
符号の説明
1 プログラム変更工数見積装置
2 入出力端末
3 見積対象プログラム
10 プログラム入力部
11 見積対象プログラム格納部
12 名前解析部
13 名前解析結果記憶部
14 名前空間情報視覚化データ作成部
15 名前空間情報視覚化データ記憶部
16 プログラム変更量入力部
17 プログラム変更量集計部
18 プログラム変更量集計結果記憶部
19 プログラム変更工数見積部

Claims (5)

  1. オブジェクト指向プログラムの一部を変更する場合に要求される工数を見積もるプログラム変更工数見積装置であって、
    工数見積対象プログラムを解析することで、工数見積対象プログラムがどのような名前空間を用いているのかということを解析するとともに、工数見積対象プログラムの定義する画面定義体を単位にして、その名前空間の各層がどのようなクラスを持っているのかということと、それらの各クラスがどのようなメソッドを持っているのかということについて解析する解析手段と、
    前記解析手段の解析結果に基づいて、その解析結果を視覚化したデータを生成してディスプレイに表示する表示手段と、
    前記視覚化データに記述されるクラスの中からプログラムの変更対象となるクラスが選択される場合に、前記解析手段の解析結果に基づいて、その選択されたクラスの持つメソッドに関係する処理を行うメソッドを持つクラスを特定して、前記視覚化データに記述されるそれらの特定したクラスを明示表示する関係クラス表示手段と、
    前記関係クラス表示手段の明示表示するクラスの持つメソッドについて、プログラムの変更量を入力する入力手段と、
    前記入力手段の入力したプログラム変更量を集計し、それに基づいて、工数見積対象プログラムの一部を変更する場合に要求される工数を見積もる見積手段とを備えることを、
    特徴とするプログラム変更工数見積装置。
  2. 請求項1に記載のプログラム変更工数見積装置において、
    前記入力手段は、画面定義体を単位にして各クラスについて定義されるプログラム変更率のデフォルト値と、プログラム変更量の入力対象となるメソッドのプログラム量とに基づいて、そのメソッドのプログラム変更量を算出することで、そのメソッドのプログラム変更量を入力することを、
    特徴とするプログラム変更工数見積装置。
  3. 請求項1又は2に記載のプログラム変更工数見積装置において、
    前記入力手段は、前記関係クラス表示手段の明示表示するクラスに新たなメソッドを追加する変更を行う場合には、そのクラスの持つメソッドのプログラム量に基づいて、その新たなメソッドのプログラム量を決定することで、その新たなメソッドのプログラム変更量を入力することを、
    特徴とするプログラム変更工数見積装置。
  4. オブジェクト指向プログラムの一部を変更する場合に要求される工数を見積もるプログラム変更工数見積方法であって、
    工数見積対象プログラムを解析することで、工数見積対象プログラムがどのような名前空間を用いているのかということを解析するとともに、工数見積対象プログラムの定義する画面定義体を単位にして、その名前空間の各層がどのようなクラスを持っているのかということと、それらの各クラスがどのようなメソッドを持っているのかということについて解析する過程と、
    前記解析結果に基づいて、その解析結果を視覚化したデータを生成してディスプレイに表示する過程と、
    前記視覚化データに記述されるクラスの中からプログラムの変更対象となるクラスが選択される場合に、前記解析結果に基づいて、その選択されたクラスの持つメソッドに関係する処理を行うメソッドを持つクラスを特定して、前記視覚化データに記述されるそれらの特定したクラスを明示表示する過程と、
    前記明示表示するクラスの持つメソッドについて、プログラムの変更量を入力する過程と、
    前記入力したプログラム変更量を集計し、それに基づいて、工数見積対象プログラムの一部を変更する場合に要求される工数を見積もる過程とを備えることを、
    特徴とするプログラム変更工数見積方法。
  5. オブジェクト指向プログラムの一部を変更する場合に要求される工数を見積もるプログラム変更工数見積装置の実現に用いられるプログラム変更工数見積処理用プログラムであって、
    コンピュータを、
    工数見積対象プログラムを解析することで、工数見積対象プログラムがどのような名前空間を用いているのかということを解析するとともに、工数見積対象プログラムの定義する画面定義体を単位にして、その名前空間の各層がどのようなクラスを持っているのかということと、それらの各クラスがどのようなメソッドを持っているのかということについて解析する解析手段と、
    前記解析手段の解析結果に基づいて、その解析結果を視覚化したデータを生成してディスプレイに表示する表示手段と、
    前記視覚化データに記述されるクラスの中からプログラムの変更対象となるクラスが選択される場合に、前記解析手段の解析結果に基づいて、その選択されたクラスの持つメソッドに関係する処理を行うメソッドを持つクラスを特定して、前記視覚化データに記述されるそれらの特定したクラスを明示表示する関係クラス表示手段と、
    前記関係クラス表示手段の明示表示するクラスの持つメソッドについて、プログラムの変更量を入力する入力手段と、
    前記入力手段の入力したプログラム変更量を集計し、それに基づいて、工数見積対象プログラムの一部を変更する場合に要求される工数を見積もる見積手段として機能させるためのプログラム変更工数見積処理用プログラム。
JP2007253356A 2007-09-28 2007-09-28 プログラム変更工数見積装置、プログラム変更工数見積方法およびプログラム変更工数見積処理用プログラム Expired - Fee Related JP4982725B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007253356A JP4982725B2 (ja) 2007-09-28 2007-09-28 プログラム変更工数見積装置、プログラム変更工数見積方法およびプログラム変更工数見積処理用プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007253356A JP4982725B2 (ja) 2007-09-28 2007-09-28 プログラム変更工数見積装置、プログラム変更工数見積方法およびプログラム変更工数見積処理用プログラム

Publications (2)

Publication Number Publication Date
JP2009086831A true JP2009086831A (ja) 2009-04-23
JP4982725B2 JP4982725B2 (ja) 2012-07-25

Family

ID=40660208

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007253356A Expired - Fee Related JP4982725B2 (ja) 2007-09-28 2007-09-28 プログラム変更工数見積装置、プログラム変更工数見積方法およびプログラム変更工数見積処理用プログラム

Country Status (1)

Country Link
JP (1) JP4982725B2 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11338700A (ja) * 1998-05-27 1999-12-10 Fujitsu Ltd 設計情報解析装置および記録媒体
JP2001350629A (ja) * 2000-06-07 2001-12-21 Ntt Comware Corp Guiアプリケーション開発規模見積り方法
JP2006134225A (ja) * 2004-11-09 2006-05-25 Hitachi Ltd ソフトウエアカスタマイズ工数見積システム、ソフトウエアカスタマイズ工数見積方法、ソフトウエアカスタマイズ工数見積プログラム
JP2007164311A (ja) * 2005-12-12 2007-06-28 Fujitsu Fip Corp ソフトウェア開発工数見積装置、ソフトウェア開発工数見積方法及びソフトウェア開発工数見積プログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11338700A (ja) * 1998-05-27 1999-12-10 Fujitsu Ltd 設計情報解析装置および記録媒体
JP2001350629A (ja) * 2000-06-07 2001-12-21 Ntt Comware Corp Guiアプリケーション開発規模見積り方法
JP2006134225A (ja) * 2004-11-09 2006-05-25 Hitachi Ltd ソフトウエアカスタマイズ工数見積システム、ソフトウエアカスタマイズ工数見積方法、ソフトウエアカスタマイズ工数見積プログラム
JP2007164311A (ja) * 2005-12-12 2007-06-28 Fujitsu Fip Corp ソフトウェア開発工数見積装置、ソフトウェア開発工数見積方法及びソフトウェア開発工数見積プログラム

Also Published As

Publication number Publication date
JP4982725B2 (ja) 2012-07-25

Similar Documents

Publication Publication Date Title
JP4873408B2 (ja) ソフトウェアシステムのテストケース選択装置およびテストケース選択プログラム
US7350190B2 (en) Computer implemented modeling and analysis of an application user interface
US20050228622A1 (en) Graphical user interface for risk assessment
US20070027652A1 (en) Measuring productivity and quality in model-based design
US20080172287A1 (en) Automated Domain Determination in Business Logic Applications
CN107180117B (zh) 图表推荐方法、装置和计算机设备
RU2690206C2 (ru) Интерактивное предсказание в реальном времени
JP2001195483A (ja) プロジェクトリスク管理支援装置及びその方法並びにプログラムを記憶した記憶媒体
US6898545B2 (en) Semiconductor test data analysis system
US8407430B2 (en) Analysis technique of computer system
Hoos et al. Improving Business Processes through Mobile Apps
JP6395852B2 (ja) 業務状況管理システム、及び業務状況管理方法
JP4982725B2 (ja) プログラム変更工数見積装置、プログラム変更工数見積方法およびプログラム変更工数見積処理用プログラム
JP2015014856A (ja) ソフトウェア開発プロジェクトの評価方法及びシステム
JP4795788B2 (ja) ソフトウェア開発工数見積装置
JP2005513625A (ja) プロセスコントロール装置の比較及び選択の方法
JP4922644B2 (ja) 時系列分析プログラム、時系列分析システム、およびそれに用いられる時系列分析装置
JP4813906B2 (ja) 画面パターン分類装置、画面パターン分類方法及び画面パターン分類プログラム
JP2012038022A (ja) クローン検出装置、クローン検出プログラム、及びクローン検出プログラムを記録した記録媒体
JP5139563B2 (ja) ソフトウェア開発工数見積装置
JPH10249683A (ja) 工程改善支援方法及び装置
EP4357991A1 (en) Use resource setting method and use resource setting device
JP2007226819A (ja) 装置評価装置およびその方法
JP2019145007A (ja) 案件進捗予測装置および案件進捗予測システム
US7683902B1 (en) Method to visualize performance data of a multi-layered state diagram

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100331

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100906

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120307

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120327

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120328

R150 Certificate of patent or registration of utility model

Ref document number: 4982725

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150511

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees