"ソフトウェアの開発工数を見積もるソフトウェア開発工数見積装置であって,見積対象のソフトウェアの画面デザインを,少なくともエディットフィールド,ラジオボタン,選択ボタン,ボタンを含むコントロールを作成する画面デザイン作成部と,上記画面のデザイン情報に従って,そのソフトウェアの表示する画面をディスプレイに表示するとともに,その表示に対応付けて,上記コントロールを実装する際の,ソフトウェアの開発に要する工数を特定可能とするものとして定義される見積用コントロールの一覧をディスプレイに表示する表示手段と,上記表示手段に表示した画面上の上記機能を表すコントロールに対して,見積用コントロール一覧の中から,該当する見積用コントロールを割り付ける割付手段と,上記表示手段の表示した画面毎に,上記割付手段の割り付けた見積用コントロールの個数を見積用コントロール種別毎に集計し,上記機能で細分化した見積用コントロール種別に応じて設定される重み付けに基づいた評価を行い,上記割付手段により見積用コントロールが割り付けられていない画面上のコントロールについては,そのコントロールの種別に応じた見積用コントロールが割り付けられていると見なし,ソフトウェアの開発工数を見積もる見積手段と,上記割付手段の割り付けた見積用コントロールとその見積用コントロールの割り付け先のコントロールとの対応関係の情報を保持する保持手段とを備えることを,特徴とするソフトウェア開発工数見積装置。ソフトウェアの開発工数を見積もるソフトウェア開発工数見積装置であって,見積対象のソフトウェアの画面デザインを,少なくともエディットフィールド,ラジオボタン,選択ボタン,チェックボックス,ボタンを含むコントロールを作成する画面デザイン作成部と,上記画面のデザイン情報に従って,そのソフトウェアの表示する画面をディスプレイに表示するとともに,その表示に対応付けて,上記コントロールを実装する際の,ソフトウェアの開発に要する工数を特定可能とするものとして定義される見積用コントロールの一覧をディスプレイに表示する表示手段と,上記表示手段に表示した画面上の上記機能を表すコントロールに対して,見積用コントロールの一覧の中から,該当する見積用コントロールを割り付ける割付手段と,上記表示手段の表示した画面毎に,上記割付手段の割り付けた見積用コントロールの個数を見積用コントロール種別毎に集計し,機能で細分化した見積用コントロール種別に応じて設定される重み付けに基づいた評価を行い,上記割付手段により見積用コントロールが割り付けられていない画面上のコントロールについては,そのコントロールの種別に応じた見積用コントロールが割り付けられていると見なし,相関チェックを行う見積用コントロールについては,それらの相関チェックの数に応じて設定される重み付けを用いて,ソフトウェアの開発工数を見積もる見積手段と,上記割付手段の割り付けた見積用コントロールとその見積用コントロールの割り付け先のコントロールとの対応関係の情報を保持する保持手段と,上記保持手段の保持する上記対応関係情報に従って,上記割付手段により割り付けられている見積用コントロールの情報をディスプレイに表示する第2の表示手段とを備えることを,特徴とするソフトウェア開発工数見積装置。請求項1または請求項2のいずれかにおいて,見積対象のソフトウェアの業務の違いに対応して異なる値のファンクションスケールを設定することができるファンクションスケール設定手段を備えることを,特徴とするソフトウェア開発工数見積装置。このように,従来から,ソフトウェアの開発工数を見積もるための様々な手法が提案されている。しかしながら,従来の手法では,ソフトウェアの開発工数の見積もりを少ない工数で実現できないという問題がある。すなわち,特許文献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と,ExcelCSVファイル等を出力するコントロールであることを示すDataOutputというものがあることを記憶する。このような区分けで見積用コントロールを定義するのは,画面上のコントロールの裏側には,それを処理するソフトウェアが存在しており,それらのソフトウェアの大きさがこのような区分けに従ってかなりな精度でもって分類でき,それにより,その画面の開発に必要となるソフトウェアの大きさを高精度に予測できるようになるという点にあるからである。ファンクションスケール記憶部11は,コントロールを実装する際に必要となるソフトウェアの大きさの違いを示すファンクションスケールの値を記憶する。図3に,ファンクションスケール記憶部11の記憶するファンクションスケール値の一例を図示する。この図に示す例では,ファンクションスケール記憶部11は,ファンクションスケール値の記憶対象となるコントロールとして,図2に示した見積用コントロールに加えて,入力値のチェックのみを行うエディットフィールドであることを示すTextBoxやEditがあり,テキストエリアであることを示すLabelがあり,入力値のチェックのみを行うラジオボタンであることを示すRadioButtonがあり,入力値のチェックのみを行うチェックボックスであることを示すCheckBoxがあり,入力値のチェックのみを行う選択ボタンであることを示すComboやComboBoxやListBoxがあり,スプレッド或いは表であることを示すDataGridやFpPreadやMultiRowSheetがあり,タブであることを示すTabControlがあるということを想定するとともに,ボタンには不明な処理を示すもの仕様未確定のものがあるということを想定して,これらのコントロール見積用コントロールのファンクションスケールの値を記憶する。すなわち,ファンクションスケール記憶部11は,マスタに登録されているデータを更新するボタンを実装する場合に必要となるソフトウェアの大きさButtonUpdateAccessという見積用コントロールを実装する場合に必要となるソフトウェアの大きさを150で表すならば,入力値の存在の有無をチェックするエディットフィールドを実装する場合に必要となるソフトウェアの大きさEditInputCheckという見積用コントロールを実装する場合に必要となるソフトウェアの大きさは100であるというように,コントロール見積用コントロールを実装する際に必要となるソフトウェアの大きさの違いを示すファンクションスケールの値を記憶するのである。ここで,相関チェックが必要となる見積用コントロールについては,その見積用コントロールの相関チェックの数に応じて,ファンクションスケールの値を定義するようにしている。例えば,2個のエディットフィールドが入力値のチェックのみを行うエディットフィールドである場合には,それらのエディットフィールドに割り付けられる見積用コントロールのファンクションスケールの合計値は1515=30となるのに対して,2個のエディットフィールドが他項目との関連をチェックするエディットフィールドである場合には,それらのエディットフィールドに割り付けられる見積用コントロールのファンクションスケールの合計値は1510×2=35となる。なお,図3に記載するコントロールの内の図2に示す見積用コントロールに記載されていないコントロールは,画面デザイン作成部14としてマイクロソフト社の提供するVisualStudioと呼ばれる開発ツールを利用する場合において,VisualStudioが画面上のコントロールをデザインするときに生成することになるコントロールである。見積用シート記憶部12は,ソフトウェアの表示する画面毎に集計された見積用コントロールの数画面上のコントロールに割り付けられた見積用コントロールの数について記録する見積用シートを記憶する。ここで,図3に記載するコントロールの内の図2に示す見積用コントロールに記載されていないものについても,見積用コントロールとみなして見積用シートに記録するようにしている。図4に,見積用シート記憶部12に記憶される見積用シートの一例を図示する。この図に示す例では,見積用シートは,開発工数の見積対象となるソフトウェアが51枚の画面を表示することを想定しており,例えば,お客様情報詳細表示という画面については,入力値のチェックのみを行うエディットフィールドであることを示す見積用コントロールが1個割り付けられ,マスタに入力値が存在するのか否かをチェックするエディットフィールドであることを示す見積用コントロールが1個割り付けられ,テキストエリアであることを示す見積用コントロールが48個割り付けられ,スプレッドであることを示す見積用コントロールが1個割り付けられ,サーバアクセスマスタアクセスなしのボタンであることを示す見積用コントロールが1個割り付けられ,サーバマスタからデータを検索するボタンであることを示す見積用コントロールが1個割り付けられているということを記録する。ファンクションスケール設定部13は,入出力端末2のディスプレイにファンクションスケールの設定のための画面を表示して,その設定画面を介してユーザと対話することで,ファンクションスケール記憶部11に記憶されるファンクションスケールの値を設定して,ファンクションスケール記憶部11に登録する処理を行う。このファンクションスケール設定部13を用意することで,ソフトウェアの業務の違いなどによりファンクションスケールの値が異なるものとなる場合に,見積対象となるソフトウェアに適合したファンクションスケールの値を用いることができるようになることで,ソフトウェア開発工数の見積精度を高めることができるようになる。画面デザイン作成部14は,開発するソフトウェアの表示する画面のデザインレイアウトを作成するために用意されるものであり,入出力端末2を介してユーザと対話することで,開発するソフトウェアの表示する画面のデザインを作成して,そのデザイン情報をフォーム定義ファイル17の画面デザイン情報コード領域170に書き込む処理を行う。ここで,この画面デザイン作成部14としては,マイクロソフト社の提供するVisualStudioと呼ばれる開発ツールを利用することが可能である。見積用コントロール割付部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としてマイクロソフト社の提供するVisualStudioを利用する場合には,VisualStudioの仕様に従って,図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中に示すbtnF1というボタンに対して,ButtonNonAccessという見積用コントロールを割り付けるときにはただし,btnF1というボタンに割り付けるということについては次のステップ24で設定する,例えば,FriendWithEventsButtonNonAccess1AsGaiaEvaluationSeveralButtonNonAccessというようなオブジェクト情報を作成して,見積用コントロール設定エリア150に保持するとともに,フォーム定義ファイル17の見積用コントロール情報コード領域171に書き込むことで,その選択した見積用コントロールのコントロール名を見積用コントロール設定エリア150に保持するとともに,フォーム定義ファイル17の見積用コントロール情報コード領域171に格納するのである。ここで,ButtonNonAccess1の1については,ButtonNonAccessが選択される度にカウントアップする通番が用いられる。続いて,ステップ24で,ユーザからの表示指示に従って,図11に示すようなプロパティ画面を表示して,それに対する入力を受け付けることで,選択した見積用コントロールのターゲット先となるコントロール割り付け先となるコントロールを設定する。図10中に示すbtnF1というボタンに対して,ButtonNonAccess1という見積用コントロールを割り付けるときの例で説明するならば,図11に示すように,その見積用コントロールのターゲット先のコントロールがbtnF1であるということについて設定するのである。ここで,画面デザイン作成部14の作成した画面上の全てのコントロールに対して見積用コントロールが割り付けられるようになるとは限らないが,見積用コントロールの割り付けられないコントロールについては,後述することから分かるように,ファンクションスケール記憶部11には登録されているものの,見積用コントロール情報記憶部10には登録されていないコントロールで,いわば見積用コントロールとして見なされるコントロールが割り付けられたものとして処理されることになる。続いて,ステップ25で,ステップ22で選択した見積用コントロールのコントロール名と,ステップ24で設定したターゲットのコントロールのコントロール名との対応関係を見積用コントロール設定エリア150に保持するとともに,フォーム定義ファイル17の見積用コントロール情報コード領域171に格納する。図10中に示すbtnF1というボタンに対して,ButtonNonAccess1という見積用コントロールを割り付けたときの例で説明するならば,例えば,MeButtonNonAccess1TargetMebtnF1というようなオブジェクト情報を作成して,見積用コントロール設定エリア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は,見積対象のソフトウェアの表示する画面のデザイン情報に従って,そのソフトウェアの表示する画面をディスプレイに表示するときに,画面上のコントロールを実装する際のソフトウェアの開発に要する工数を特定可能とするものとして定義される見積用コントロールの一覧をディスプレイに表示して,ユーザとの対話処理に従って,表示した画面上のコントロールに対して該当する見積用コントロールを割り付けて,表示した画面毎に,割り付けた見積用コントロールの個数を見積用コントロール種別毎に集計し,見積用コントロール種別に応じて設定される重み付けに基づいた評価を行うことで,ソフトウェアの開発工数を見積もることを実現するのである。"