JP4795788B2 - ソフトウェア開発工数見積装置 - Google Patents

ソフトウェア開発工数見積装置 Download PDF

Info

Publication number
JP4795788B2
JP4795788B2 JP2005357195A JP2005357195A JP4795788B2 JP 4795788 B2 JP4795788 B2 JP 4795788B2 JP 2005357195 A JP2005357195 A JP 2005357195A JP 2005357195 A JP2005357195 A JP 2005357195A JP 4795788 B2 JP4795788 B2 JP 4795788B2
Authority
JP
Japan
Prior art keywords
control
estimation
screen
software
display
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.)
Expired - Fee Related
Application number
JP2005357195A
Other languages
English (en)
Other versions
JP2007164311A (ja
Inventor
重範 安部
雄一 遠藤
宏之 和田
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 JP2005357195A priority Critical patent/JP4795788B2/ja
Publication of JP2007164311A publication Critical patent/JP2007164311A/ja
Application granted granted Critical
Publication of JP4795788B2 publication Critical patent/JP4795788B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明は,ソフトウェアの開発工数を見積もるソフトウェア開発工数見積装置に関し,特に,ソフトウェアの開発工数を少ない工数で,かつ高精度に見積もることができるようにするソフトウェア開発工数見積装置に関する。
ソフトウェアを開発する場合には、スケジュールの計画立案を行う必要があることから、ソフトウェアの開発工数を見積もる必要がある。
ソフトウェアの開発工数の見積もりに関係して、製品開発プロジェクトにおいて、プロジェクトの日程計画を立案する際に、工数算出式の持つ係数を変化できるようにすることで、製品や製品を構成する部品の仕様が変化したり、製品開発における各作業の生産性が変化する場合にも、プロジェクトの日程計画立案に必要となる工数を高精度に見積もることができるようにするという発明が開示されている(例えば、特許文献1参照)。
また、ソフトウェアの開発工数の見積技術として、開発途中の任意の時点において、過去の見積値や実績値を利用して、それ以降の工程で導出される成果物の量や作業の量を高精度に見積もることができるようにするという発明が開示されている(例えば、特許文献2参照)。
また、別のソフトウェアの開発工数の見積技術として、機能仕様書の情報よりユーザが要求する各種の機能を抽出し、その抽出した各機能の複雑度に従って機能量(ファンクションポイント)という値を求めて、プロジェクトを構成する全部の機能の機能量を総合計した総機能量を算出することで、複数の作業で構成されるプロジェクトを実行する場合における作業工数を見積もることができるようにするという発明が開示されている(例えば、特許文献3参照)。
特開2002−109173号公報 特開平10−240808号公報 特開平11−203351号公報
このように、従来から、ソフトウェアの開発工数を見積もるための様々な手法が提案されている。
しかしながら、従来の手法では、ソフトウェアの開発工数の見積もりを少ない工数で実現できないという問題がある。
すなわち、特許文献1に記載された発明では、製品や製品を構成する部品の仕様が変化したり、製品開発における各作業の生産性が変化する場合にも、プロジェクトの日程計画立案に必要となる工数を高精度に見積もることができるようになるものの、各工程の工数の算出に用いる工数算出式が必要となり、この工数算出式の構築に手間がかかるという問題がある。
また、特許文献2に記載された発明では、開発途中の任意の時点において、それ以降の工程で導出される成果物の量や作業の量を高精度に見積もることができるようになるものの、結局のところ、見積値算出式に従って見積値を算出して、その見積値と実際の実績値との差異を求めて見積値の誤差の傾向を分析し、その分析結果に基づいて見積値算出式を補正するようにしていることから、この見積値算出式の構築に手間がかかるという問題がある。
さらに、特許文献2に記載された発明では、過去の見積値や実績値が必要になるので、開発途中の任意の時点での見積もりになるという問題がある。
また、特許文献3に記載された発明では、機能仕様書の情報に基づいて、複数の作業で構成されるプロジェクトを実行する場合における作業工数を見積もることができるようになるものの、各機能の複雑度に従って機能量を求めるときに、データ項目数や関数・ファイル数に基づいて複雑度を求めるようにしており、機能仕様書に記載されている内容を詳細に読まなくてはならないことから、見積もりを行う者の負荷が大きいという問題がある。
このように、従来の手法では、ソフトウェアの開発工数の見積もりを少ない工数で実現できないという問題がある。
しかも、従来の手法では、工数算出式や見積値算出式を使って見積もりを行うようにしていることから、これらの算出式が適切なものになっていないと、高精度の見積もりを行うことができないという問題もある。
本発明はかかる事情に鑑みてなされたものであって、ソフトウェアの開発工数を少ない工数で、かつ高精度に見積もることができるようにする新たなソフトウェア開発工数見積技術の提供を目的とする。
この目的を達成するために、本発明のソフトウェア開発工数見積装置は、ソフトウェアの開発工数を少ない工数で、かつ高精度に見積もることができるようにするために、(1)見積対象のソフトウェアの表示する画面のデザイン情報に従って、そのソフトウェアの表示する画面をディスプレイに表示するとともに、その表示に対応付けて、画面上のコントロールを実装する際のソフトウェアの開発に要する工数を特定可能とするものとして定義される見積用コントロールの一覧をディスプレイに表示する表示手段と、(2)表示手段の表示した画面上のコントロールに対して、見積用コントロール一覧の中から、該当する見積用コントロールを割り付ける割付手段と、(3)表示手段の表示した画面毎に、割付手段の割り付けた見積用コントロールの個数を見積用コントロール種別毎に集計し、見積用コントロール種別に応じて設定される重み付けに基づいた評価を行うことで、ソフトウェアの開発工数を見積もる見積手段と、(4)割付手段の割り付けた見積用コントロールとその見積用コントロールの割り付け先のコントロールとの対応関係の情報を一時的に保持する保持手段と、(5)保持手段の保持する対応関係情報に従って、割付手段により割り付けられている見積用コントロールの情報をディスプレイに表示する第2の表示手段とを備えるように構成する。
この構成を採るときに、見積手段は、割付手段により見積用コントロールが割り付けられていない画面上のコントロールについては、そのコントロールの種別に応じた見積用コントロールが割り付けられていると見なして見積処理を行うことがある。
また、見積手段は、相関チェックを行う見積用コントロールについては、それらの見積用コントロールの数に応じて設定される重み付けを用いることがある。
また、表示手段は、画面上のコントロールの種別とそのコントロールで行う処理内容とに応じて定義される見積用コントロールの一覧をディスプレイに表示することがある。すなわち、画面上のコントロールの種別が同一であっても、そのコントロールを実装する際のソフトウェアの開発に要する工数が異なるものとなるものについては、異なる見積用コントロールとして見積用コントロール一覧をディスプレイに表示することがある。
また、第2の表示手段は、画面上のコントロールとそれに割り付けられている見積用コントロールとの間にリンクを表示することで、割付手段により割り付けられている見積用コントロールの情報をディスプレイに表示することがある。
ここで、以上の各処理手段が動作することで実現される本発明のソフトウェア開発工数見積方法はコンピュータプログラムでも実現できるものであり、このコンピュータプログラムは、適当なコンピュータ読み取り可能な記録媒体に記録して提供されたり、ネットワークを介して提供され、本発明を実施する際にインストールされてCPUなどの制御手段上で動作することにより本発明を実現することになる。
このように構成される本発明のソフトウェア開発工数見積装置では、見積対象のソフトウェアの表示する画面のデザイン情報を入力すると、そのデザイン情報に従って、そのソフトウェアの表示する画面をディスプレイに表示するとともに、その表示に対応付けて、見積用コントロールの一覧をディスプレイに表示する。
ソフトウェアの表示する画面には、エディットフィールドや、ラジオボタン(複数の選択項目の中から1つだけを選択可能にする仕組み)や、チェックボックス(複数の選択項目の中から1つ以上を選択可能にする仕組み)や、選択ボタンや、通常のボタンなどの様々なコントロールが表示されることになるが、画面のデザイン情報は、ただ単に、それらのコントロールが画面上のどの位置にあるのかを示すだけのものである。
一方、画面にコントロールがあると、それに伴ったソフトウェア(プログラム)が必要となる。このとき必要となるソフトウェアの大きさ(プログラムの量)は、そのコントロールの種別により単純に決まるものではなく、そのコントロールの種別に加えて、例えば、入力値がマスタに存在するのか否かをチェックする必要があるとか、他項目との相関をチェックする必要があるとか、マスタを検索する必要があるとか、マスタに登録する必要があるとか、マスタを更新する必要があるとか、マスタから削除する必要があるとかということなどを加味したもので決まることになる。
すなわち、このようなチェックなどが必要であるということは、それに応じた大きさのソフトウェアを開発する必要があるということを意味するからである。
そこで、本発明のソフトウェア開発工数見積装置では、例えば、画面上のコントロールの種別とそのコントロールで行う処理内容とに応じて見積用コントロールを定義することで、画面上のコントロールを実装する際のソフトウェアの開発に要する工数を特定可能とする見積用コントロールを定義して、見積対象のソフトウェアの表示する画面のデザイン情報に従って、そのソフトウェアの表示する画面をディスプレイに表示するときに、その表示に対応付けて、それらの見積用コントロールの一覧をディスプレイに表示するようにする。
そして、ユーザからの割付指示に従って、表示した画面上のコントロールに対して、見積用コントロール一覧の中から、該当する見積用コントロールを割り付けて、表示した画面毎に、割り付けた見積用コントロールの個数を見積用コントロール種別毎に集計し、見積用コントロール種別に応じて設定される重み付けに基づいた評価を行うことで、ソフトウェアの開発工数を見積もるようにする。
以上説明したように、本発明では、画面上のコントロールの裏側には、それを処理するソフトウェアが存在しており、そのソフトウェアの大きさは、そのコントロールの種別とそのコントロールで行う処理内容とに応じておおよそ決められることになるということに着目して、見積対象のソフトウェアの表示する画面のデザイン情報に従って、そのソフトウェアの表示する画面をディスプレイに表示するときに、画面上のコントロールを実装する際のソフトウェアの開発に要する工数を特定可能とするものとして定義される見積用コントロールの一覧をディスプレイに表示して、ユーザとの対話処理に従って、表示した画面上のコントロールに対して該当する見積用コントロールを割り付けて、表示した画面毎に、割り付けた見積用コントロールの個数を見積用コントロール種別毎に集計し、見積用コントロール種別に応じて設定される重み付けに基づいた評価を行うことで、ソフトウェアの開発工数を見積もるようにする。
この構成に従って、本発明によれば、ユーザは、ユーザインタフェース仕様書などに基づいて、ただ単に、ディスプレイに表示される見積対象のソフトウェアの表示する画面のコントロールに対して、見積用コントロール一覧の中から該当する見積用コントロールを割り付けるだけで、ソフトウェアの開発工数を見積もることができるようになるので、ソフトウェアの開発工数の見積もりを少ない工数で実現できるようになる。
そして、画面上のコントロールを処理するソフトウェアの大きさについては、そのコントロールの種別とそのコントロールで行う処理内容とに応じておおよそ決められており、ユーザの導出する主観的な算出式のようなものに基づいて算出する必要がないので、本発明によれば、ソフトウェアの開発工数を高精度に見積もることができるようになる。
そして、画面上のコントロールについては市販されている画面作成開発ツールを利用して作成することが可能であるので、本発明によれば、見積用コントロールを付加するツールを追加するだけでソフトウェアの開発工数を見積もることができるようになるので、ソフトウェアの開発工数の見積もりを行うためのシステムを極めて簡単に実現できるようになる。
以下、実施の形態に従って本発明を詳細に説明する。
図1に、本発明のソフトウェア開発工数見積装置1の一実施形態例を図示する。ここで、図中に示す2は、本発明のソフトウェア開発工数見積装置1の備える入出力端末であり、ユーザとの対話手段として用いられるものである。
この図に示すように、本発明のソフトウェア開発工数見積装置1は、見積用コントロール情報記憶部10と、ファンクションスケール記憶部11と、見積用シート記憶部12と、ファンクションスケール設定部13と、画面デザイン作成部14と、見積用コントロール設定エリア150を持つ見積用コントロール割付部15と、ソフトウェア開発工数見積部16と、画面デザイン情報コード領域170と見積用コントロール情報コード領域171とを持つフォーム定義ファイル17とを備える。
見積用コントロール情報記憶部10は、画面上のコントロールに割り付けることになる上述の見積用コントロールとして、どのようなものがあるのかという情報を記憶する。
図2に、見積用コントロール情報記憶部10の記憶する情報の一例を図示する。
この図に示す例では、見積用コントロール情報記憶部10は、画面上のコントロールに割り付けることになる上述の見積用コントロールとして、他項目との関連をチェックするエディットフィールドであることを示す“EditRelationCheck ”と、マスタ(サーバ)に入力値が存在するのか否かをチェックするエディットフィールドであることを示す“EditInputCheck”と、他項目との関連をチェックするラジオボタンであることを示す“RadioRelationCheck”と、マスタに入力値が存在するのか否かをチェックするラジオボタンであることを示す“RadioInputCheck ”と、他項目との関連をチェックするチェックボックスであることを示す“CheckBoxRelationCheck ”と、マスタに入力値が存在するのか否かをチェックするチェックボックスであることを示す“CheckBoxInputCheck”と、他項目との関連をチェックする選択ボタンであることを示す“ToggleRelationCheck ”と、マスタに入力値が存在するのか否かをチェックする選択ボタンであることを示す“ToggleInputCheck”と、画面の表示・終了などを処理するボタン(マスタアクセスなしのボタン)であることを示す“ButtonNonAccess ”と、マスタからデータを検索するボタンであることを示す“ButtonSelectAccess”と、マスタにデータを登録するボタンであることを示す“ButtonInsertAccess”と、マスタに登録されているデータを更新するボタンであることを示す“ButtonUpdateAccess”と、マスタに登録されているデータを削除するボタンであることを示す“ButtonDeleteAccess”と、帳票を出力するボタンであることを示す“ButtonReportOutput”と、画面の初期表示時にマスタアクセスを行うコントロールであることを示す“InitialServerAccess ”と、Excel, CSVファイル等を出力するコントロールであることを示す“DataOutput”というものがあることを記憶する。
このような区分けで見積用コントロールを定義するのは、画面上のコントロールの裏側には、それを処理するソフトウェアが存在しており、それらのソフトウェアの大きさがこのような区分けに従ってかなりな精度でもって分類でき、それにより、その画面の開発に必要となるソフトウェアの大きさを高精度に予測できるようになるという点にあるからである。
ファンクションスケール記憶部11は、コントロールを実装する際に必要となるソフトウェアの大きさの違いを示すファンクションスケールの値を記憶する。
図3に、ファンクションスケール記憶部11の記憶するファンクションスケール値の一例を図示する。
この図に示す例では、ファンクションスケール記憶部11は、ファンクションスケール値の記憶対象となるコントロールとして、図2に示した見積用コントロールに加えて、入力値のチェックのみを行うエディットフィールドであることを示す“TextBox ”や“Edit”があり、テキストエリアであることを示す“Label ”があり、入力値のチェックのみを行うラジオボタンであることを示す“RadioButton ”があり、入力値のチェックのみを行うチェックボックスであることを示す“CheckBox”があり、入力値のチェックのみを行う選択ボタンであることを示す“Combo ”や“ComboBox”や“ListBox ”があり、スプレッド(或いは表)であることを示す“DataGrid”や“FpPread ”や“MultiRowSheet ”があり、タブであることを示す“TabControl”があるということを想定するとともに、ボタンには不明な処理を示すもの(仕様未確定のもの)があるということを想定して、これらのコントロール(見積用コントロール)のファンクションスケールの値を記憶する。
すなわち、ファンクションスケール記憶部11は、マスタに登録されているデータを更新するボタンを実装する場合に必要となるソフトウェアの大きさ(“ButtonUpdateAccess”という見積用コントロールを実装する場合に必要となるソフトウェアの大きさ)を150で表すならば、入力値の存在の有無をチェックするエディットフィールドを実装する場合に必要となるソフトウェアの大きさ(“EditInputCheck”という見積用コントロールを実装する場合に必要となるソフトウェアの大きさ)は100であるというように、コントロール(見積用コントロール)を実装する際に必要となるソフトウェアの大きさの違いを示すファンクションスケールの値を記憶するのである。
ここで、相関チェックが必要となる見積用コントロールについては、その見積用コントロールの相関チェックの数に応じて、ファンクションスケールの値を定義するようにしている。例えば、2個のエディットフィールドが入力値のチェックのみを行うエディットフィールドである場合には、それらのエディットフィールドに割り付けられる見積用コントロールのファンクションスケールの合計値は“15+15=30”となるのに対して、2個のエディットフィールドが他項目との関連をチェックするエディットフィールドである場合には、それらのエディットフィールドに割り付けられる見積用コントロールのファンクションスケールの合計値は“15+10×2=35”となる。
なお、図3に記載するコントロールの内の図2に示す見積用コントロールに記載されていないコントロールは、画面デザイン作成部14としてマイクロソフト社の提供するVisual Studio と呼ばれる開発ツールを利用する場合において、Visual Studio が画面上のコントロールをデザインするときに生成することになるコントロールである。
見積用シート記憶部12は、ソフトウェアの表示する画面毎に集計された見積用コントロールの数(画面上のコントロールに割り付けられた見積用コントロールの数)について記録する見積用シートを記憶する。
ここで、図3に記載するコントロールの内の図2に示す見積用コントロールに記載されていないものについても、見積用コントロールとみなして見積用シートに記録するようにしている。
図4に、見積用シート記憶部12に記憶される見積用シートの一例を図示する。
この図に示す例では、見積用シートは、開発工数の見積対象となるソフトウェアが51枚の画面を表示することを想定しており、例えば、お客様情報詳細表示という画面については、入力値のチェックのみを行うエディットフィールドであることを示す見積用コントロールが1個割り付けられ、マスタに入力値が存在するのか否かをチェックするエディットフィールドであることを示す見積用コントロールが1個割り付けられ、テキストエリアであることを示す見積用コントロールが48個割り付けられ、スプレッドであることを示す見積用コントロールが1個割り付けられ、サーバアクセス(マスタアクセス)なしのボタンであることを示す見積用コントロールが1個割り付けられ、サーバ(マスタ)からデータを検索するボタンであることを示す見積用コントロールが1個割り付けられているということを記録する。
ファンクションスケール設定部13は、入出力端末2のディスプレイにファンクションスケールの設定のための画面を表示して、その設定画面を介してユーザと対話することで、ファンクションスケール記憶部11に記憶されるファンクションスケールの値を設定して、ファンクションスケール記憶部11に登録する処理を行う。
このファンクションスケール設定部13を用意することで、ソフトウェアの業務の違いなどによりファンクションスケールの値が異なるものとなる場合に、見積対象となるソフトウェアに適合したファンクションスケールの値を用いることができるようになることで、ソフトウェア開発工数の見積精度を高めることができるようになる。
画面デザイン作成部14は、開発するソフトウェアの表示する画面のデザイン(レイアウト)を作成するために用意されるものであり、入出力端末2を介してユーザと対話することで、開発するソフトウェアの表示する画面のデザインを作成して、そのデザイン情報をフォーム定義ファイル17の画面デザイン情報コード領域170に書き込む処理を行う。
ここで、この画面デザイン作成部14としては、マイクロソフト社の提供するVisual Studio と呼ばれる開発ツールを利用することが可能である。
見積用コントロール割付部15は、フォーム定義ファイル17から画面デザイン情報を読み出して、その読み出した画面デザイン情報に従って、画面デザイン作成部14によりデザインされた画面を入出力端末2のディスプレイに表示するとともに、その表示に対応付けて、見積用コントロール情報記憶部10に記憶される見積用コントロールの一覧(図2に示したもの)を入出力端末2のディスプレイに表示して、入出力端末2を介してユーザと対話することで、先ず最初に、見積用コントロールの一覧の中から割付対象となるものを選択して見積用コントロール設定エリア150に保持するとともに、フォーム定義ファイル17の見積用コントロール情報コード領域171に書き込み、続いて、その選択した見積用コントロールを画面上のどのコントロールに割り付けるのかということを設定して、その設定した対応関係の情報を見積用コントロール設定エリア150に保持するとともに、フォーム定義ファイル17の見積用コントロール情報コード領域171に書き込む処理を行う。
ソフトウェア開発工数見積部16は、フォーム定義ファイル17から、画面デザイン作成部14により書き込まれた画面上のコントロールの情報と、見積用コントロール割付部15により書き込まれたそれらのコントロールに割り付けられた見積用コントロールの情報とを読み出して、それに基づいて見積用シートを作成するとともに、その作成した見積用シートの情報と、ファンクションスケール記憶部11に記憶されるファンクションスケールの値とに基づいて、見積対象となるソフトウェアの開発工数を算出して、それを出力する処理を行う。
図5に、画面デザイン作成部14の実行する処理フローの一例を図示し、図6に、見積用コントロール割付部15の実行する処理フローの一例を図示し、図7に、ソフトウェア開発工数見積部16の実行する処理フローの一例を図示する。
次に、これらの処理フローに従って、図1のように構成される本発明のソフトウェア開発工数見積装置1の実行する処理について詳細に説明する。
最初に、図5の処理フローに従って、画面デザイン作成部14の実行する処理について説明する。ここで、図5の処理フローでは、説明の便宜上、開発するソフトウェアの表示するある1つの画面についての作成処理を想定しているが、実際には、開発するソフトウェアの表示する全ての画面について、この作成処理を実行することになる。
画面デザイン作成部14は、ソフトウェアの開発にあたって、入出力端末2を操作するユーザから、そのソフトウェアの表示する画面の作成要求があると、図5の処理フローに示すように、先ず最初に、ステップ10で、ユーザからの操作要求を待って、ユーザから操作要求が発行されると、ステップ11に進んで、ユーザから画面上に配置するコントロールの作成要求が発行されたのか否かを判断する。
この判断処理に従って、画面上に配置するコントロールの作成要求が発行されたことを判断するときには、ステップ12に進んで、ユーザとの対話処理に従って、ユーザの要求するコントロールを作成し、プロパティ情報を設定して、そのオブジェクト情報を生成する。
続いて、ステップ13で、その生成したオブジェクト情報を、フォーム定義ファイル17の画面デザイン情報コード領域170に格納してから、ユーザの操作要求を待つべくステップ10に戻る。
このようにして、ステップ10〜13の処理を繰り返していくことで、ソフトウェアの表示する画面を作成していくときに、ステップ11で、ユーザから画面上に配置するコントロールの作成要求以外の要求が発行されたことを判断するときには、ステップ14に進んで、ユーザから終了要求が発行されたのか否かを判断して、ユーザから終了要求以外の処理要求が発行されたことを判断するときには、ステップ15に進んで、その処理要求の処理を実行してから、ユーザの操作要求を待つべくステップ10に戻る。
一方、ステップ14で、ユーザから終了要求が発行されたことを判断するときには、処理を終了する。
このようにして、画面デザイン作成部14は、入出力端末2を介してユーザと対話することで、開発するソフトウェアの表示する画面のデザインを作成して、その作成した画面上のコントロールについての情報をフォーム定義ファイル17の画面デザイン情報コード領域170に格納するように処理する。
例えば、図8の上段に示すように、E1というエディットフィールドと、E2というエディットフィールドと、E3というエディットフィールドと、B1というボタンと、B2というボタンを持つ画面を作成して、それらのコントロールのオブジェクト情報をフォーム定義ファイル17の画面デザイン情報コード領域170に格納するように処理するのである。
このとき、画面デザイン作成部14としてマイクロソフト社の提供するVisual Studio を利用する場合には、Visual Studio の仕様に従って、図3に示した“TextBox ”や“Edit”や“Label ”や“RadioButton ”や“CheckBox”や“Combo ”や“ComboBox”や“ListBox ”や“DataGrid”や“FpPread ”や“MultiRowSheet ”や“TabControl”というコントロールのオブジェクト情報がフォーム定義ファイル17の画面デザイン情報コード領域170に格納されることになる。また、ボタンについては、“Button”というコントロールとして、そのオブジェクト情報がフォーム定義ファイル17の画面デザイン情報コード領域170に格納されることになる。
次に、図6の処理フローに従って、見積用コントロール割付部15の実行する処理について説明する。ここで、図6の処理フローでは、説明の便宜上、画面デザイン作成部14の作成したある1つの画面についての割付処理を想定しているが、実際には、画面デザイン作成部14の作成した見積対象となるソフトウェアの表示する全ての画面について、この割付処理を実行することになる。
見積用コントロール割付部15は、入出力端末2を操作するユーザから、画面デザイン作成部14の作成した画面に対する見積用コントロールの割付要求があると、図6の処理フローに示すように、先ず最初に、ステップ20で、フォーム定義ファイル17の画面デザイン情報コード領域170から、割付要求のある画面のデザイン情報を読み込み、それに従って、その画面を入出力端末2のディスプレイに表示する。
続いて、ステップ21で、見積用コントロール情報記憶部10から、予め定義されている見積用コントロールの名称(図2に示したもの)を読み込んで、図9に示すように、ステップ20の処理により表示した画面と対応をとりつつ、その名称の一覧を入出力端末2のディスプレイに表示する。
続いて、ステップ22で、ユーザからの選択指示に従って、ステップ21の処理により表示した見積用コントロールの一覧から、画面上のコントロールに割り付ける見積用コントロールを選択する。
すなわち、ユーザは、ソフトウェア開発の設計書の一つとして用意されているユーザインタフェース設計書(画面デザイン作成部14の作成した画面上のコントロールが操作されたときに、どのような処理を行うのかということなどについて記載してある設計書)を参照することで、画面デザイン作成部14の作成した画面上のコントロールが図2に定義した見積用コントロールのどれに相当するのかを調べて、それに基づいて、画面上のコントロールに対して該当する見積用コントロールを割り付けることを指示するので、その指示に従って、画面上のコントロールに割り付ける見積用コントロールを選択するのである。
続いて、ステップ23で、その選択した見積用コントロールのコントロール名を見積用コントロール設定エリア150に保持するとともに、フォーム定義ファイル17の見積用コントロール情報コード領域171に格納する。
例えば、図10中に示す“btn-F1”というボタンに対して、“ButtonNonAccess ”という見積用コントロールを割り付けるときには(ただし、“btn-F1”というボタンに割り付けるということについては次のステップ24で設定する)、例えば、
“Friend WithEvents ButtonNonAccess1
As Gaia.Evaluation.Several.ButtonNonAccess ” というようなオブジェクト情報を作成して、見積用コントロール設定エリア150に保持するとともに、フォーム定義ファイル17の見積用コントロール情報コード領域171に書き込むことで、その選択した見積用コントロールのコントロール名を見積用コントロール設定エリア150に保持するとともに、フォーム定義ファイル17の見積用コントロール情報コード領域171に格納するのである。
ここで、“ButtonNonAccess1”の“1”については、“ButtonNonAccess ”が選択される度にカウントアップする通番が用いられる。
続いて、ステップ24で、ユーザからの表示指示に従って、図11に示すようなプロパティ画面を表示して、それに対する入力を受け付けることで、選択した見積用コントロールのターゲット先となるコントロール(割り付け先となるコントロール)を設定する。
図10中に示す“btn-F1”というボタンに対して、“ButtonNonAccess1”という見積用コントロールを割り付けるときの例で説明するならば、図11に示すように、その見積用コントロールのターゲット先のコントロールが“btn-F1”であるということについて設定するのである。
ここで、画面デザイン作成部14の作成した画面上の全てのコントロールに対して見積用コントロールが割り付けられるようになるとは限らないが、見積用コントロールの割り付けられないコントロールについては、後述することから分かるように、ファンクションスケール記憶部11には登録されているものの、見積用コントロール情報記憶部10には登録されていないコントロールで、いわば見積用コントロールとして見なされるコントロールが割り付けられたものとして処理されることになる。
続いて、ステップ25で、ステップ22で選択した見積用コントロールのコントロール名と、ステップ24で設定したターゲットのコントロールのコントロール名との対応関係を見積用コントロール設定エリア150に保持するとともに、フォーム定義ファイル17の見積用コントロール情報コード領域171に格納する。
図10中に示す“btn-F1”というボタンに対して、“ButtonNonAccess1”という見積用コントロールを割り付けたときの例で説明するならば、例えば、
“Me.ButtonNonAccess1.Target=Me.btn-F1
というようなオブジェクト情報を作成して、見積用コントロール設定エリア150に保持するとともに、フォーム定義ファイル17の見積用コントロール情報コード領域171に書き込むことで、選択した見積用コントロールのコントロール名と、設定したターゲットのコントロールのコントロール名との対応関係を見積用コントロール設定エリア150に保持するとともに、フォーム定義ファイル17の見積用コントロール情報コード領域171に格納するのである。
続いて、ステップ26で、ユーザから処理終了要求が発行されたのか否かを判断して、処理終了要求が発行されていないことを判断するときには、見積用コントロールの割付処理を続行すべくステップ22に戻り、処理終了要求が発行されたことを判断するときには、処理を終了する。
このようにして、見積用コントロール割付部15は、画面デザイン作成部14によりデザインされた画面をディスプレイに表示するとともに、その表示に対応付けて、見積用コントロールの一覧をディスプレイに表示して、ユーザと対話することで、その表示した画面上のコントロールに対して見積用コントロールを割り付けて、その割り付けた情報を見積用コントロール設定エリア150に保持するとともに、フォーム定義ファイル17の見積用コントロール情報コード領域171に格納するように処理するのである。
この見積用コントロール割付部15の処理に従って、例えば、画面デザイン作成部14が、図8の上段に示すように、E1というエディットフィールドと、E2というエディットフィールドと、E3というエディットフィールドと、B1というボタンと、B2というボタンを持つ画面を作成して、それらのコントロールのオブジェクト情報をフォーム定義ファイル17の画面デザイン情報コード領域170に格納するときに、見積用コントロール割付部15が、E2というエディットフィールドに対して“EditInputCheck”という見積用コントロールを割り付け、E3というエディットフィールドに対して“EditInputCheck”という見積用コントロールを割り付け、B1というボタンに対して“ButtonSelectAccess”という見積用コントロールを割り付けた場合には、図8の中段に示すように、それらの割付情報が見積用コントロール設定エリア150に保持されるとともに、フォーム定義ファイル17の見積用コントロール情報コード領域171に格納されることになる。
ここで、図6の処理フローでは説明しなかったが、見積用コントロールには、画面の初期表示時にマスタアクセスを行うコントロールであることを示す“InitialServerAccess ”のような画面全体に割り付けられるようなものもある。このような見積用コントロールについてはターゲットを選択することができないので、ステップ24,25の処理については省略することになる。
また、見積用コントロール設定エリア150には、ステップ25の処理に従って、見積用コントロールの割付処理の実行中において、割り付けた見積用コントロールのコントロール名と、その見積用コントロールを割り付けたコントロールのコントロール名との対応関係が保持されている。
これから、見積用コントロール割付部15は、この対応関係のデータを使って、どのコントロールに対してどのような見積用コントロールが割り付けられているのかということを入出力端末2のディスプレイに表示するようにしている。この表示を見ることで、ユーザは、まだ見積用コントロールの割り付けていないコントロールがどれであるのかということを把握することができるようになる。
この表示方法としては、対応関係のデータをそのままテキストの形で表示することでもよいが、例えば、図12に示すように、見積用コントロール設定エリア150に保持されている見積用コントロールの一覧をディスプレイに表示するとともに、それらの見積用コントロールがどのコントロールに割り付けられているかを示すリンクをディスプレイに表示することにより行ってもよい。
見積用コントロール設定エリア150には、画面上のコントロールに割り付けられた見積用コントロールの一覧が保持されているとともに、それらの見積用コントロールがどのコントロール(ターゲット先のコントロール)に割り付けられたのかということを示す対応関係の情報が保持されており、一方、各コントロールが画面上のどの位置に表示されているのかということについては、画面デザイン情報コード領域170を参照すれば分かるので、見積用コントロール割付部15は、それらの情報を使って、図12に示すような表示を行うことが可能なのである。
図12に示すように、見積用コントロール設定エリア150に保持されている見積用コントロールの一覧をディスプレイに表示するとともに、それらの見積用コントロールがどのコントロールに割り付けられているものなのかをリンクを使って表示するようにすると、同一のコントロールに対して誤って重複する形で見積用コントロールを割り付けてしまうというような不都合を防げるようになるとともに、後で見積用コントロールの割り付けについて見直しを行うような場合に極めて便利なものとなる。
なお、上述したように、見積用コントロールには、画面の初期表示時にマスタアクセスを行うコントロールであることを示す“InitialServerAccess ”のような画面全体に割り付けられるようなものもあり、このようなものについてはターゲットとなるコントロールがないのでリンクが表示されないことになるが、ユーザは、リンクが表示されていないことで、そのような見積用コントロールであることを知ることができるようになる。
また、図12では図示していないが、見積用コントローラの種別に応じてリンクの色や線種を変えて表示するようにしてもよい。例えば、相関チェックを行う見積用コントローラについては、リンクの色や線種を変えて表示するようにしてもよい。
次に、図7の処理フローに従って、ソフトウェア開発工数見積部16の実行する処理について説明する。
ソフトウェア開発工数見積部16は、入出力端末2を操作するユーザから、ソフトウェアを指定して、そのソフトウェアの開発工数の見積要求があると、図7の処理フローに示すように、先ず最初に、ステップ30で、見積要求のソフトウェアの表示する全ての画面について処理したのか否かを判断する。
このステップ30の判断処理に従って、見積要求のソフトウェアの表示する全ての画面について処理を終了していないということを判断するときには、ステップ31に進んで、見積要求のソフトウェアの表示する画面の中から未処理の画面を1つ選択する。
続いて、ステップ32で、フォーム定義ファイル17の見積用コントロール情報コード領域171から、その選択した画面についての見積用コントロールのオブジェクト情報を読み込むとともに、フォーム定義ファイル17の画面デザイン情報コード領域170から、画面デザイン作成部14がその画面について作成したコントロールのオブジェクト情報を読み込む。
続いて、ステップ33で、その読み込んだ見積用コントロールのオブジェクト情報に従って、見積用コントロールのコントロール種別毎に、見積用コントロールの個数を算出する。
図8の中段に示す例で説明するならば、図8の下段に示すように、“EditInputCheck”という見積用コントロールが2個あり、“ButtonSelectAccess”という見積用コントロールが1個あるということを計数するのである。
続いて、ステップ34で、ステップ32で読み込んだ画面デザイン作成部14が作成したコントロールのオブジェクト情報に従って、コントロールのコントロール種別毎に、コントロールの個数を算出する。
図8の上段に示す例で説明するならば、図8の下段に示すように、“Edit”というコントロールが3個あり、“Button”というコントロールが2個あるということを計数するのである。
続いて、ステップ35で、クラス名で定義されるコントロール種別毎に、ステップ33で計数した見積用コントロールの個数とステップ34で計数したコントロールの個数とが一致するのか否かを判断する。
図8の下段の例で説明するならば、“Edit”というクラス名を持つコントロールについて、ステップ33で計数した見積用コントロールの個数とステップ34で計数したコントロールの個数とが一致するのか否かを判断し、“Button”というクラス名を持つコントロールについて、ステップ33で計数した見積用コントロールの個数とステップ34で計数したコントロールの個数とが一致するのか否かを判断するのである。
このステップ35の判断処理に従って、ステップ33で計数した見積用コントロールの個数とステップ34で計数したコントロールの個数とが一致しないコントロール種別がある場合には、ステップ36に進んで、その一致しないコントロール種別について、その差分の数に相当するコントロールに対して、ファンクションスケール記憶部11に登録されている規定のコントロール(見積用コントロールと見なされるコントロールであって、ファンクションスケールの値を持つことが定義されているコントロール)が割り付けられているものとみなす処理を行う。
図8の下段の例で説明するならば、“Edit”というコントロール種別については、1個に対して図2に定義する見積用コントロールが割り付けられていないので、その“Edit”というコントロールに対しては、ファンクションスケール記憶部11に登録されている入力値のみのチェックを行うエディットフィールドであるというコントロール(見積用コントロールと見なされるコントロール)が割り付けられているものとみなす処理を行うのである。そして、“Button”というコントロール種別については、1個に対して図2に定義する見積用コントロールが割り付けられていないので、その“Button”というコントロールに対しては、ファンクションスケール記憶部11に登録されている不明な処理のボタンであるというコントロール(見積用コントロールと見なされるコントロール)が割り付けられているものとみなす処理を行うのである。
続いて、ステップ37で、見積用コントロールの個数に従って、選択した画面についての見積用シート(1行分)を作成して、それを見積用シート記憶部12に保存してから、次の画面について処理すべくステップ30に戻る。
このようにして、ステップ30〜ステップ37の処理を繰り返していくことで、ステップ30で、見積要求のソフトウェアの表示する全ての画面について処理を終了したことを判断することで、図4に示すようなデータ構造を持つ見積要求のソフトウェアについての見積用シートを作成して、それを見積用シート記憶部12に保存したことを判断すると、ステップ38に進んで、見積用シート記憶部12から、その作成した見積用シート(全行)を読み込む。
続いて、ステップ39で、その読み込んだ見積用シートの各行について、ファンクションスケール記憶部11に記憶されるファンクションスケールを重みとして用いて、重み付けされた見積用コントロールの個数の合計値(“重み×見積用コントロールの個数”の合計値)を算出する。
続いて、ステップ40で、見積要求のソフトウェアの表示する画面について、その算出した合計値の総和を算出することで、見積要求のソフトウェアの開発工数を算出する。
そして、最後に、ステップ41で、その算出したソフトウェアの開発工数を出力して、処理を終了する。
このようにして、ソフトウェア開発工数見積部16は、フォーム定義ファイル17の見積用コントロール情報コード領域171から、画面上のコントロールに割り付けられた見積用コントロールのオブジェクト情報を読み込むとともに、フォーム定義ファイル17の画面デザイン情報コード領域170から、画面デザイン作成部14がその画面について作成したコントロールのオブジェクト情報を読み込んで、それに基づいて見積用シートを作成するとともに、その作成した見積用シートの情報と、ファンクションスケール記憶部11に記憶されるファンクションスケールの値とに基づいて、見積対象となるソフトウェアの開発工数を算出して、それを出力するように処理するのである。
このように、本発明ソフトウェア開発工数見積装置1は、見積対象のソフトウェアの表示する画面のデザイン情報に従って、そのソフトウェアの表示する画面をディスプレイに表示するときに、画面上のコントロールを実装する際のソフトウェアの開発に要する工数を特定可能とするものとして定義される見積用コントロールの一覧をディスプレイに表示して、ユーザとの対話処理に従って、表示した画面上のコントロールに対して該当する見積用コントロールを割り付けて、表示した画面毎に、割り付けた見積用コントロールの個数を見積用コントロール種別毎に集計し、見積用コントロール種別に応じて設定される重み付けに基づいた評価を行うことで、ソフトウェアの開発工数を見積もることを実現するのである。
本発明によれば、ユーザは、ユーザインタフェース仕様書などに基づいて、ただ単に、ディスプレイに表示される見積対象のソフトウェアの表示する画面のコントロールに対して、見積用コントロール一覧の中から該当する見積用コントロールを割り付けるだけで、ソフトウェアの開発工数を見積もることができるようになるので、ソフトウェアの開発工数を少ない工数で、かつ高精度に見積もることができるようになる。
本発明のソフトウェア開発工数見積装置の一実施形態例である。 見積用コントロール情報記憶部の記憶する情報の説明図である。 ファンクションスケール記憶部の記憶する情報の説明図である。 見積用シート記憶部に記憶される見積用シートの説明図である。 画面デザイン作成部の実行する処理フローである。 見積用コントロール割付部の実行する処理フローである。 ソフトウェア開発工数見積部の実行する処理フローである。 本発明のソフトウェア開発工数見積装置の実行する処理の説明図である。 見積用コントロール割付部の表示する画面の説明図である。 見積用コントロール割付部の表示する画面の説明図である。 見積用コントロール割付部の表示する画面の説明図である。 見積用コントロール割付部の表示する画面の説明図である。
符号の説明
1 ソフトウェア開発工数見積装置
2 入出力端末
10 見積用コントロール情報記憶部
11 ファンクションスケール記憶部
12 見積用シート記憶部
13 ファンクションスケール設定部
14 画面デザイン作成部
15 見積用コントロール割付部
16 ソフトウェア開発工数見積部
17 フォーム定義ファイル
150 見積用コントロール設定エリア
170 画面デザイン情報コード領域
171 見積用コントロール情報コード領域

Claims (1)

  1. ソフトウェアの開発工数を見積もるソフトウェア開発工数見積装置であって,
    見積対象のソフトウェアの表示する画面のデザイン情報に従って,そのソフトウェアの表示する画面をディスプレイに表示するとともに,その表示に対応付けて,画面上のコントロールを実装する際のソフトウェアの開発に要する工数を特定可能とするものとして定義される見積用コントロールの一覧をディスプレイに表示する表示手段と,
    上記表示手段の表示した画面上のコントロールに対して,上記見積用コントロール一覧の中から,該当する見積用コントロールを割り付ける割付手段と,
    上記表示手段の表示した画面毎に,上記割付手段の割り付けた見積用コントロールの個数を見積用コントロール種別毎に集計し,見積用コントロール種別に応じて設定される重み付けに基づいた評価を行うことで,ソフトウェアの開発工数を見積もる見積手段とを備え,
    上記割付手段の割り付けた見積用コントロールとその見積用コントロールの割り付け先のコントロールとの対応関係の情報を保持する保持手段と,
    上記保持手段の保持する上記対応関係情報に従って,上記割付手段により割り付けられている見積用コントロールの情報をディスプレイに表示する第2の表示手段とを備え,
    上記第2の表示手段は,画面上のコントロールとそれに割り付けられている見積用コントロールとの間にリンクを表示することで,上記割付手段により割り付けられている見積用コントロールの情報をディスプレイに表示することを,
    特徴とするソフトウェア開発工数見積装置。
JP2005357195A 2005-12-12 2005-12-12 ソフトウェア開発工数見積装置 Expired - Fee Related JP4795788B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005357195A JP4795788B2 (ja) 2005-12-12 2005-12-12 ソフトウェア開発工数見積装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005357195A JP4795788B2 (ja) 2005-12-12 2005-12-12 ソフトウェア開発工数見積装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2011141469A Division JP5139563B2 (ja) 2011-06-27 2011-06-27 ソフトウェア開発工数見積装置

Publications (2)

Publication Number Publication Date
JP2007164311A JP2007164311A (ja) 2007-06-28
JP4795788B2 true JP4795788B2 (ja) 2011-10-19

Family

ID=38247150

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005357195A Expired - Fee Related JP4795788B2 (ja) 2005-12-12 2005-12-12 ソフトウェア開発工数見積装置

Country Status (1)

Country Link
JP (1) JP4795788B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4982725B2 (ja) * 2007-09-28 2012-07-25 富士通エフ・アイ・ピー株式会社 プログラム変更工数見積装置、プログラム変更工数見積方法およびプログラム変更工数見積処理用プログラム
WO2017068750A1 (ja) * 2015-10-19 2017-04-27 日本電気株式会社 見積もり支援装置、方法および記録媒体
CN117114320B (zh) * 2023-08-25 2024-02-27 上海宜软检测技术有限公司 一种项目工时管理方法及系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3654793B2 (ja) * 1999-05-31 2005-06-02 三菱電機株式会社 ソフトウエア開発コストの見積支援システム及び記録媒体及びソフトウエア開発コストの見積支援方法
JP2001350629A (ja) * 2000-06-07 2001-12-21 Ntt Comware Corp Guiアプリケーション開発規模見積り方法
JP2005032054A (ja) * 2003-07-08 2005-02-03 Hitachi Information Systems Ltd ソフトウェア見積支援システム及び該見積支援方法

Also Published As

Publication number Publication date
JP2007164311A (ja) 2007-06-28

Similar Documents

Publication Publication Date Title
US8121959B2 (en) Methods and systems for cost estimation based on templates
US7350190B2 (en) Computer implemented modeling and analysis of an application user interface
US20070220416A1 (en) System and method for performing processing, such as spreadsheet processing
US20050144529A1 (en) Method for defined derivation of software tests from use cases
US20090055142A1 (en) Method and apparatus for estimating man-hours
US8782554B2 (en) Context menu dependency on many objects of different type
US9098311B2 (en) User interface element for data rating and validation
US20060004616A1 (en) Method and system for solution design and recording medium
JP4795788B2 (ja) ソフトウェア開発工数見積装置
EP1637992A2 (en) Creating and using a building block
JP4712350B2 (ja) ソフトウエアカスタマイズ工数見積システム、ソフトウエアカスタマイズ工数見積方法、ソフトウエアカスタマイズ工数見積プログラム
US8046252B2 (en) Sales plan evaluation support system
JP5139563B2 (ja) ソフトウェア開発工数見積装置
CN109376929B (zh) 配送参数的确定方法、确定装置、存储介质和电子设备
WO2021100284A1 (ja) 生産シミュレーション装置
JP6695847B2 (ja) ソフトウェア部品管理システム、計算機
JP6968730B2 (ja) 案件進捗予測装置および案件進捗予測システム
JP2006155137A (ja) 情報処理方法及びプログラム
JP4987357B2 (ja) ソフトウェア開発工数見積装置及びソフトウェア開発工数見積プログラム
JP4982725B2 (ja) プログラム変更工数見積装置、プログラム変更工数見積方法およびプログラム変更工数見積処理用プログラム
JP6966210B2 (ja) 生涯損益管理装置、生涯損益管理方法、及び生涯損益管理プログラム
JP7436854B2 (ja) 情報処理装置、制御方法、プログラム
JP2022009313A (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
JP5243908B2 (ja) モデルの品質を検証するためのコンピュータ・システム、並びにその方法及びコンピュータ・プログラム
JP2024008316A (ja) 自動化支援装置、および、自動化支援方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080801

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110413

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110426

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110627

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20110627

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: 20110726

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: 20110728

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4795788

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140805

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees