(57)【要約】【課題】ソフトウェアの規模を見積もることができる見積装置を提供すること。【解決手段】ソフトウェアの規模を見積もる見積装置１００であって、前記ソフトウェアの機能に関する書類を取得する書類取得手段と、前記書類に記述された前記ソフトウェアの動作に関する表記と前記ソフトウェアの動作名情報が対応付けられた第一の記憶手段を参照し、前記ソフトウェアの動作に関する表記を前記動作名情報に変換する書類解析手段と、前記動作名情報に前記規模を見積もるための規模情報が対応付けられた第二の記憶手段を参照し、前記書類解析手段が変換した前記動作名情報と対応付けられた前記規模情報を集計する集計手段と、前記書類解析手段が前記書類の前記表記に対応付けて出力した前記動作名情報に対し、前記ソフトウェアの動作の正しい前記動作名情報の入力を受け付ける受付手段と、を有する。【選択図】図１
2018060477.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアの規模を見積もる見積装置であって、
前記ソフトウェアの機能に関する書類を取得する書類取得手段と、
前記書類に記述された前記ソフトウェアの動作に関する表記と前記ソフトウェアの動作名情報が対応付けられた第一の記憶手段を参照し、前記ソフトウェアの動作に関する表記を前記動作名情報に変換する書類解析手段と、
前記動作名情報に前記規模を見積もるための規模情報が対応付けられた第二の記憶手段を参照し、前記書類解析手段が変換した前記動作名情報と対応付けられた前記規模情報を集計する集計手段と、
前記書類解析手段が前記書類の前記表記に対応付けて出力した前記動作名情報に対し、前記ソフトウェアの動作の正しい前記動作名情報の入力を受け付ける受付手段と、
を有する見積装置。
【請求項２】
前記書類の前記表記、及び、前記受付手段が受け付けた前記ソフトウェアの動作の正しい前記動作名情報が対応付けられた第三の記憶手段を有し、
前記書類取得手段は、再度、前記書類を取得し、
前記書類解析手段は、前記第三の記憶手段を参照して、前記ソフトウェアの動作に関する表記を前記動作名情報に変換し、
前記集計手段は、第二の記憶手段を参照し、前記書類解析手段が変換した前記動作名情報と対応付けられた前記規模情報を集計する請求項１に記載の見積装置。
【請求項３】
前記受付手段が受け付けた正しい前記動作名情報と前記ソフトウェアの動作に関する表記とを対応付けて、前記第一の記憶手段に登録する登録手段を有する請求項２に記載の見積装置。
【請求項４】
前記第一の記憶手段には、前記ソフトウェアの動作に関する表記、前記動作名情報、正しい動作名情報が判断された正解回数、及び、動作名情報が正しくなかった間違い回数、が対応付けられており、
前記書類解析手段は、正解回数及び間違い回数から信頼性を判断する請求項３に記載の見積装置。
【請求項５】
前記書類解析手段は、前記書類の前記表記に対応付けて出力した前記動作名情報を前記信頼性に応じて強調する請求項４に記載の見積装置。
【請求項６】
前記第三の記憶手段には、前記表記及び前記受付手段が受け付けた前記ソフトウェアの動作の正しい前記動作名情報に、前記書類解析手段が判断した前記動作名情報が対応付けられており、
前記登録手段は、前記第三の記憶手段に記憶された前記ソフトウェアの動作の正しい前記動作名情報と前記書類解析手段が判断した前記動作名情報に基づいて、前記第一の記憶手段の正解回数、及び、間違い回数を更新し、前記第一の記憶手段に記憶された前記表記の前記動作名情報の前記信頼性の判断精度を向上させる請求項５に記載の見積装置。
【請求項７】
前記書類解析手段は、信頼性が閾値未満の場合、前記表記に対応付けられた前記動作名情報を採用しない請求項５又は６に記載の見積装置。
【請求項８】
前記書類解析手段は、前記第一の記憶手段に同じ前記ソフトウェアの動作に関する表記が登録されている場合、
前記信頼性が高い方の前記ソフトウェアの動作に関する表記に対応付けられた前記動作名情報を取得する請求項７に記載の見積装置。
【請求項９】
前記第一の記憶手段には、前記ソフトウェアの動作に関する表記に該表記が適用される前記書類に関する情報が登録されており、
前記書類解析手段は、前記書類に関する情報に基づいて、前記書類を検索するための前記ソフトウェアの動作に関する表記を決定する請求項２〜８のいずれか１項に記載の見積装置。
【請求項１０】
情報処理装置を、
ソフトウェアの機能に関する書類を取得する書類取得手段と、
前記書類に記述された前記ソフトウェアの動作に関する表記と前記ソフトウェアの動作名情報が対応付けられた第一の記憶手段を参照し、前記ソフトウェアの動作に関する表記を前記動作名情報に変換する書類解析手段と、
前記動作名情報にソフトウェアの規模を見積もるための規模情報が対応付けられた第二の記憶手段を参照し、前記書類解析手段が変換した前記動作名情報と対応付けられた前記規模情報を集計する集計手段と、
前記書類解析手段が前記書類の前記表記に対応付けて出力した前記動作名情報に対し、前記ソフトウェアの動作の正しい前記動作名情報の入力を受け付ける受付手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、見積装置及びプログラムに関する。
【背景技術】
【０００２】
システム開発会社がソフトウェアを開発する際、どのくらいの規模になるかを予め見積ることが多い。一般的にはソフトウェアの規模が大きいほど、開発にコストがかかるといわれており、規模と相関する傾向にあるステップ数を想定して見積が作成される場合があった。しかし、ステップ数と金額の相関がわかりにくく、言語によって同じ処理でも必要なステップ数は異なる。また、優れた開発ツールが用意されているとステップ（命令）が自動で生成されるため開発ツールの適用が拡大すると、作業量とステップが対応しなくなる傾向が生じる。また、優秀なプログラマほどコンパクトに作るため、ステップ数と作業量は対応しない。また、そもそも完成するまでステップ数は確定しない。
【０００３】
そこで、ソフトウェアの開発コストを計測するＦＰ（ファンクションポイント）法という手法が考案された。ＦＰ法とは、設計書の記述を入出力などの機能ごとに分類し、それぞれをファイル数、レコード数、データ要素数の重みづけでポイントを算出する方法である。このＦＰ法に基づいてソフトウェアの設計書を元に開発の計測者等が入出力等の項目を集計して規模を見積もる技術が考案されている（例えば、特許文献１参照。）。特許文献１には、既存システムを再利用して業務分野が類似している新規システムを開発する際の修正コストの見積もりを、ＦＰ法を用いて行うコスト見積システムが開示されている。
【０００４】
しかし、ＦＰ法はある程度、正確な規模を推定することを可能とする反面、十分に利用できるようになるためにはスキルが必要になるという側面がある。また、計測者の主観が影響する可能性があることが指摘されている。
【０００５】
このため、ＦＳ法（ファンクションスケール法）と呼ばれるソフトウェアの規模を計測する手法が提案されている。ＦＳ法は、ソフトウェアの規模を機能の量で表す手法であり、画面に配置したコントロールとイベントをポイント化して算出する方法である。機能が多いほど規模も大きくなると考えられ、機能の量を計測すれば、規模に換算することが可能になる。計測者は簡単にソフトウェアの規模を計測することができ、計測者の主観が反映されにくいソフトウェアの規模の推定方法を提供できる。なお、従来は計測者がＦＳ法で機能の量をマニュアルで計測していた。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開2005-266987号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、ＦＳ法の計測を自動化すると、設計書の所定の項目の集計が困難であるという問題がある。設計書にはソフトウェアの機能が記載されているが、ソフトウェアの機能は大きく、静的な機能（コントロール）と動的な機能（イベント）に分けられる。静的な機能は主に情報の表示に関する機能であり、動的な機能は主にソフトウェアが行う動作に関する機能である。
【０００８】
ところが、設計書は自由な形式で記載されており、使用すべき用語や記載の順序などが厳密に規定されているわけではない。静的な機能は、例えば、表示される項目が一覧になっていたり、「○○を表示する」などのように、比較的、表記が統一されやすく設計書を書く人による差異が生じにくい。これに対し、動的な機能はソフトウェアの動作により記述されるが、そもそもソフトウェアの動作は多種多様であり、更に１つの動作に着目しても同じ動作に対し複数の表記が存在しうる。例えば検索するという動作について、サーチする、探索する、探すなどがあり、表記が統一されにくい。このため、文言から自動判断集計を行う場合に、誤判断の可能性があり、更に間違った箇所の判断・修正が難しいという問題があった。また、誤集計された部分が判別できたとしても、結果を修正するには工数が必要であり、コスト増となる。また、集計精度を改善していくことが考慮されていなかった。
【０００９】
本発明は、上記課題に鑑み、ソフトウェアの規模を見積もることができる見積装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明は、ソフトウェアの規模を見積もる見積装置であって、前記ソフトウェアの機能に関する書類を取得する書類取得手段と、前記書類に記述された前記ソフトウェアの動作に関する表記と前記ソフトウェアの動作名情報が対応付けられた第一の記憶手段を参照し、前記ソフトウェアの動作に関する表記を前記動作名情報に変換する書類解析手段と、前記動作名情報に前記規模を見積もるための規模情報が対応付けられた第二の記憶手段を参照し、前記書類解析手段が変換した前記動作名情報と対応付けられた前記規模情報を集計する集計手段と、前記書類解析手段が前記書類の前記表記に対応付けて出力した前記動作名情報に対し、前記ソフトウェアの動作の正しい前記動作名情報の入力を受け付ける受付手段と、を有する。
【発明の効果】
【００１１】
ソフトウェアの規模を見積もることができる見積装置を提供することができる。
【図面の簡単な説明】
【００１２】
【図１】本実施形態の見積装置の概略的な動作を説明する図の一例である。
【図２】見積装置の構成例を示す図の一例である。
【図３】見積装置のハードウェア構成を説明する図の一例である。
【図４】一般的なＦＳ法を説明する図の一例である。
【図５】設計書のうち表示に関する表記の一例を示す図である。
【図６】設計書のうちソフトウェアの動作に関する表記の一例を示す図である。
【図７】見積装置の機能を説明する機能ブロック図の一例である。
【図８】見積装置の動作手順を示すフローチャート図の一例である。
【図９】見積装置の動作に伴うデータ例を説明する図である。
【図１０】見積装置の動作に伴うデータ例を説明する図である。
【図１１】イベントデータテーブルを説明する図の一例である。
【図１２】イベントデータテーブルを説明する図の一例である。
【図１３】見積装置の動作手順を示すフローチャート図の一例である。
【図１４】同じキーワードに異なる候補イベント名と同じプロジェクトＩＤが対応付けられたイベントデータテーブルの一例である。
【図１５】設計書のキーワードの行番号が登録されたイベントデータテーブルの一例を示す図である。
【図１６】キーワードの削除を説明するイベントデータテーブルの一例である。
【図１７】見積システムが有する端末と見積装置の機能ブロック図の一例である。
【図１８】サーバ・クライアント型の見積システムの動作手順を示すシーケンス図の一例である。
【発明を実施するための形態】
【００１３】
以下、本発明を実施するための形態について図面を参照しながら説明する。
【実施例１】
【００１４】
＜動作の概略＞
図１は、本実施形態の見積装置１００の概略的な動作を説明する図の一例である。
（１）まず、見積装置１００にソフトウェアの設計書９が入力される。
（２）見積装置１００はイベントデータテーブル５１のキーワードに合致する表記を設計書９から抽出する。例えば、キーワードが「[エディットフィールド]＜[エディットフィールド]」である場合、設計書９から「開始日＜終了日」という表記が抽出される。また、この表記は「入力値存在チェック（エディット）」というイベント（ソフトウェアの動作を引き起こす事象）の可能性があることがイベントデータテーブル５１から判明する。
（３）見積装置１００はＦＳ値データテーブル５３から「入力値存在チェック」に対応付けられているＦＳ値を取得してＦＳ値を集計する。したがって、イベントについて自動集計ができるようになる。
（４）また、見積装置１００は、暫定的に決定したイベント名を設計書の例えば当該項目（キーワード）の横の出力欄に出力する。暫定的なイベント名はその信頼性に応じて強調して表示されるため、計測者はイベント名が正しいかどうかを確認しやすい。間違っている場合は、計測者は設計書の当該項目出力欄の横などにある修正欄に正しいイベント名を入力する。計測者は設計書９を目視して、キーワードと暫定のイベント名を確認する。計測者は文脈から正しいイベント名を判断できるので、暫定のイベント名が正しいか否かを判断し、異なっている場合には設計書の当該項目出力欄の横に正しいイベント名を入力する。図１では、設計書に「相関チェック」という正しいイベント名が登録されている。
（５）見積装置１００は再度、設計書を読み取る。見積装置１００は、修正データテーブル５２に誤ったキーワード（自動判断結果イベント名）と正しいイベント名（誤判断修正イベント名）を対応付けて記録する。
（６）見積装置１００は、計測者の集計結果をイベントデータテーブル５１に反映させる。具体的には、誤判断修正イベント名にイベント名が登録されているキーワードがある場合、イベントデータテーブル５１のキーワードの間違い回数を１つ大きくする。また、修正データテーブル５２のキーワードと誤判断修正イベントをイベントデータテーブル５１に追加する。この時の間違い回数と正解回数はゼロでよい。また、誤判断修正イベント名にイベント名が登録されているキーワードがある場合（自動判断結果イベント名には何も記載されていない）、イベントデータテーブル５１の該キーワードの正解回数を１つ大きくする。間違い回数、修正回数が更新されるので集計の正誤記録が蓄積されていく。
（７）修正結果付きの設計書を見積装置１００が読み取ると、修正データテーブル５２を参照して、最終的な集計結果（ＦＳ値）を出力する。修正データテーブル５２が参照されるので正確なＦＳ値を出力できる。
【００１５】
したがって、イベントデータテーブル５１において修正が不要なキーワードの正解回数は大きくなり、修正されたキーワードは間違い回数が増え、正しいイベント名と共にイベントデータテーブル５１に登録される。修正されたイベント名の蓄積により次回のイベント名の判断精度が向上し、ＦＳ値の集計の精度を向上させることができる。
【００１６】
なお、この結果、同じキーワードが複数登録される可能性があるが、この場合、ＦＳ値の集計には、原則的に信頼性がより高いキーワードが使用されるので不都合はない。
【００１７】
このように、本実施形態の見積装置１００は、ソフトウェアの動的な機能を含む規模を自動集計することができる。すなわち、従来は、自動集計が困難だった設計書９のイベントに関する表記についても自動で集計できる。キーワードの信頼性による判断に加え、設計書の当該項目に対応する形で自動変換結果出力と修正入力欄を設けることで、誰でも容易に自動判断結果の確認と修正ができる。信頼性に基づく強調表示により、自動判断結果の確認が容易になる。また、集計結果に対し計測者が誤集計のキーワードに正しいイベント名を登録するので、集計が徐々に高精度になる。
【００１８】
＜用語について＞
特許請求の範囲のソフトウェアの機能に関する書類とは、ソフトウェアが有している機能が記述された書類である。例えば、設計書、提案書、要件定義書、仕様書、テスト仕様書などがある。本実施形態では設計書という用語で説明するが、書類の名称はどのようなものでもよい。
【００１９】
ソフトウェアの動作に関する表記とは、ソフトウェアがどのように動作するかについて記述されたものをいう。
【００２０】
また、表記とは文字や記号で表すことをいう。表記は、日本語でも外国でもよい。また、自由筆記されていても、ＸＭＬなどの所定の形式で記述されていてもよい。
【００２１】
動作名情報とは、ソフトウェアの動作の名称である。動作名情報によりどのようにソフトウェアが動作するかが特定される。本実施形態ではイベント又はイベント名という用語で説明する。また、動作名情報にはイベント又はイベント名を特定するための情報（例えば、後述する対応イベントデータ通番）も含まれる。
【００２２】
規模情報とは、ソフトウェアの規模に相関又は関連する情報である。ソフトウェアの規模は提供する機能が大きいほど大きくなる傾向がある。規模情報は機能に必要なコストと称してもよい。
【００２３】
＜構成例＞
図２は、見積装置１００の構成例を示す図である。図２（ａ）は見積装置１００がスタンドアローン型で構成される場合の構成例を示し、図２（ｂ）は見積システム２００としてサーバ・クライアント型で構成される場合の構成例を示す。
【００２４】
図２（ａ）の見積装置１００は情報処理装置である。情報処理装置は一般にＰＣ(Personal  Computer)であるが、情報処理装置としての機能を有する、タブレット端末、スマートフォン、ゲーム機、ＰＤＡ（Personal  Digital  Assistant）などでもよい。
【００２５】
図２（ｂ）では、端末１５０と見積装置１００がネットワークを介して接続されている。端末１５０と見積装置１００は図２（ａ）の情報処理装置と同様でよい。また、サーバ・クライアント型の見積装置１００はサーバと呼ばれる場合がある。この場合、見積装置１００はクラウドコンピューティングに対応していてもよい。クラウドとはネットワークを利用した特定ハードウェア資源を意識しない利用形態である。クラウド上の見積装置１００は、１つの筐体に収納されていたりひとまとまりの装置として備えられていたりする必要はなく、負荷に応じてハード的なリソースが動的に接続・切断されることで構成される。また、一台の情報処理装置の中の仮想化環境に構築されていたり、複数台の情報処理装置に跨って構築されたりしてもよい。
【００２６】
＜ハードウェア構成＞
図３は、見積装置１００のハードウェア構成を説明する図の一例である。見積装置１００は、ＣＰＵ３０１、ＲＯＭ３０２、ＲＡＭ３０３及び補助記憶装置３０４を備える。更に、見積装置１００は、入力部３０５、ディスプレイＩ／Ｆ３０６、ネットワークＩ／Ｆ３０７及び外部機器Ｉ／Ｆ３０８を備える。なお、見積装置１００の各部は、バスＢを介して相互に接続されている。
【００２７】
ＣＰＵ３０１は、補助記憶装置３０４に格納された各種のプログラム３０４ｐ、ＯＳ（Operating  System）等を実行する。ＲＯＭ３０２は不揮発性メモリである。ＲＯＭ３０２は、システムローダーやデータ等を格納する。
【００２８】
ＲＡＭ３０３は、ＤＲＡＭ（Dynamic  Random  Access  Memory）やＳＲＡＭ（Static  Random  Access  Memory）等の主記憶装置である。ＣＰＵ３０１によって実行される際に補助記憶装置３０４に格納されたプログラム３０４ｐがＲＡＭ３０３に展開され、ＲＡＭ３０３はＣＰＵ３０１の作業領域となる。
【００２９】
補助記憶装置３０４は、ＣＰＵ３０１により実行されるプログラム３０４ｐ及びプログラム３０４ｐがＣＰＵ３０１により実行される際に利用される各種データベースを記憶する。補助記憶装置３０４は例えばＨＤＤ（Hard  Disk  Drive）やＳＳＤ（Solid  State  Drive）などの不揮発性メモリである。
【００３０】
入力部３０５は、オペレータが見積装置１００に各種指示を入力するためのインタフェースである。例えば、キーボード、マウス、タッチパネル、音声入力装置などである。ただし、入力部３０５は必要に応じて接続されてよい。
【００３１】
ディスプレイＩ／Ｆ３０６は、ＣＰＵ３０１からの要求により、見積装置１００が有する各種情報をカーソル、メニュー、ウィンドウ、文字、又は画像などの形態で表示装置であるディスプレイ３１０に表示する。ディスプレイＩ／Ｆ３０６は、例えばグラフィックチップやディスプレイＩ／Ｆである。ただし、ディスプレイＩ／Ｆ３０６は必要に応じて接続されてよい。
【００３２】
ネットワークＩ／Ｆ３０７は、ネットワークを介して、他の端末や装置と通信を行う通信装置である。ネットワークＩ／Ｆ３０７は例えばイーサネット（登録商標）カードであるがこれに限られない。
【００３３】
外部機器Ｉ／Ｆ３０８は、ＵＳＢケーブル、又は、ＵＳＢメモリ等の各種の記憶媒体３２０などを接続するためのインタフェースである。
【００３４】
なお、端末１５０のハードウェア構成については見積装置１００と同様であるか、相違があるとしても本実施形態の説明に支障はないものとする。
【００３５】
＜ＦＳ法について＞
図４は、一般的なＦＳ法を説明する図の一例である。図４（ａ）は、一般的な情報処理装置がデータベースを検索して検索結果を一覧表示するユーザインタフェース画面の一例を示す。図４（ａ）には、２０個のディスプレイフィールド５０１（５０１−１〜５０１−２１（５０１−１６は欠番））、２個のエディットフィールド５０２（５０２−１、５０２−２）、１つのスプレッド５０３、４つの遷移ボタン５０４（５０４−１〜５０４−４）、及び、１つの検索ボタン５０５が表示されている。
【００３６】
また、図４（ｂ）はユーザインタフェース画面のＦＳ値が示されている。ＦＳ値の集計要素としてコントロールとイベントがある。
【００３７】
コントロールの一例として、２０個のディスプレイフィールド５０１は、それぞれ決まった情報（項目名や数値など）を表示するだけである。１個のスプレッド５０３も同様であり、スプレッド５０３には検索結果が表示されるだけである。
【００３８】
イベントの一例としての相関チェックは、例えば項目間の入力が正しいか否かが検証されることをいう。後述するように相関チェックを実施する表記が設計書に含まれる場合、解析結果に基づきイベントとして判断される。
【００３９】
例えば、エディットフィールド５０２にはユーザが数値や文字を入力するので、ソフトウェアは入力値が適切か否かを判断が必要な場合があり、この判断、すなわちソフトウェアの動作がイベントとして判断される。図４（ｂ）に示すように、エディットフィールド５０２に相関チェックがあることが示されており、ＦＳ値が集計されている。
【００４０】
また、一般にボタンは、押下されたボタンの内容に応じてソフトウェアを動作させる契機となるため、１つの検索ボタン５０５及び４つの遷移ボタン５０４は、ソフトウェアの動作をもたらすものである。図４（ｂ）ではボタン類に相関チェックの項目がないが、これは、ボタン類は情報の入力に使用されないためである。ただし、イベントとして判断されるためＦＳ値が計上される。
【００４１】
以上のように、図４では、ディスプレイフィールド５０１及びスプレッド５０３を除きイベントを有している。表示に関するディスプレイフィールド５０１及びスプレッド５０３のＦＳ値の計測は図５にて説明するように比較的、容易である。本実施形態ではイベントに関するＦＳ値の集計について説明する。
【００４２】
なお、図４のユーザインタフェース画面はあくまで一例であり、画面例には存在しない他のコントロールやイベントの要素が存在する場合もある。
【００４３】
＜設計書の例＞
図５は、設計書９のうち表示に関する表記の一例を示す。図５の設計書９には、画面ＩＤ、画面名、項目名、階層レベル、繰り返し数、型、桁数、項目タイプ、入出力種別、表示形式などが含まれている。これらは、各項目の表示形式などを規定するための記載となっている。また、表記は統一されている場合が多く、例えば、項目名、型、桁数、項目タイプ、表示形式などをキーワードにすることで、見積装置１００は表示に関する表記、すなわちイベントでなく静的な機能であると判断しＦＳ値を正しく集計できる。
【００４４】
図６は、設計書９のうちソフトウェアの動作に関する表記の一例を示す。図６の設計書９には、見出し番号（１〜５）に対し、それぞれソフトウェアが何を行うかが比較的、高い自由度で記述されている。換言すると、ソフトウェアの動作の表記について決まったフォーマットがない。
【００４５】
しかし、図６の表記６０１は、「作業開始日＞稼働日（実績）」の場合エラーであり、表記６０２は、「開発工程(From)＞開発工程（To)の場合エラーである。これらの表記６０１，６０２は、「エディット名」と呼ばれる入力項目が比較されることが「＜」により意味されており、ソフトウェアの動作を表す記述である。
【００４６】
また、表記６０３は、
「チェックを行う」
である。この表記６０３は、なんらかのチェックをソフトウェアが行うため、ソフトウェアの動作を表す記述である。
【００４７】
このように、自由に記載可能な動作に関する表記でも、ソフトウェアの動作に関する部分は特徴的な表記を有する。本実施形態ではこのような表記に着目してソフトウェアの動作に関する表記を検出し、ＦＳ値の自動集計を行う。  
＜見積装置１００の機能＞
図７は、見積装置１００の機能を説明する機能ブロック図の一例である。見積装置１００は、設計書取得部１１、設計書解析部１２、ＦＳ値算出部１３、テーブル更新部１６、修正受付部１５、及び、表示処理部１４を有する。これら各機能部は、図３に示された各構成要素のいずれかが、補助記憶装置３０４からＲＡＭ３０３に展開されたプログラム３０４ｐに従ったＣＰＵ３０１からの命令により動作することで実現される機能又は手段である。
【００４８】
また、見積装置１００は、ＲＡＭ３０３や補助記憶装置３０４などにより実現され、各種情報を記憶する記憶部１９を有する。記憶部１９には、計測方法蓄積ＤＢ１９１、解析結果ＤＢ１９２、及び、ＦＳ値ＤＢ１９３が構築されている。以下では、これらのデータベースについて説明する。
【００４９】
【表１】
2018060477.tif 000003
表１は、計測方法蓄積ＤＢ１９１に作成されているイベントデータテーブル５１を模式的に示す。イベントデータテーブル５１は、設計書９からイベントを検出するためのテーブルであると共に、検出されたキーワード（判断根拠文字列）と候補イベント名に紐付く間違い回数と正解回数の合計（累積値）など信頼性情報を有する。イベントデータテーブル５１は、１つのレコードに、通番、キーワード、候補イベント名、間違い回数、正解回数、及び、信頼性の各フィールドを有している。
【００５０】
通番は、各レコードに付された重複しない番号である。キーワードの識別情報又はキーワードを特定する特定情報と称してもよい。なお、識別情報は、複数の対象から、ある特定の対象を一意的に区別するために用いられる名称、符号、文字列、数値又はこれらの２つ以上の組み合わせをいう。
【００５１】
候補イベント名は、キーワードが該当する可能性が高いイベント名である。すなわち、あるキーワードが検出された場合に設計書９の作成者が意図した可能性が高いイベント名がキーワードに対応付けて登録されている。
【００５２】
間違い回数は、後述するように、見積装置１００がキーワードに基づき候補イベント名を決定したが、この候補イベント名が誤っていると計測者により判断された回数である。正解回数は、候補イベント名が正しいと判断された回数である。
【００５３】
信頼性は「正解率」と「実施数」から判断される。
【００５４】
また、実施例２で説明するプロジェクト毎の判断に対応するため、プロジェクト属性情報も有してよい。この他、出現位置（出現順）など、判断に必要な属性項目も有することができる。
【００５５】
キーワードについて簡単に説明する。
・  [エディットフィールド]＜[エディットフィールド]
入力項目をエディットフィールドという。２つのエディットフィールドが「＜」で結ばれているのは、任意の２つのエディットフィールドの値をソフトウェアが比較することを意味する。エディットフィールド内の値は任意である。例えば、入力された値が「開始日  ＜  終了日」であることを確認する処理を意味する。このため候補イベント名には、相関チェックというイベント名が登録されている。
・新規にＤＢを更新する
更新という言葉があるため、ソフトウェアがＤＢを更新することを意味する。このため候補イベント名には、更新というイベント名が登録されている。
・[チェックボックス]が選択されている場合、[エディットフィールド]に入力
あるチェックボックスが選択されている場合、ある「エディットフィールド」に値が存在することをソフトウェアが確認することが記載されている。すなわち、ソフトウェアはエディットフィールドの値の有無をチェックする。このため候補イベント名には、相関チェックというイベント名が登録されている。
・画面初期表示時にＤＢより
ソフトウェアが画面を初期表示することが記載されている。画面を初期表示することは種々の処理をソフトウェアが行うことを意味する。このため候補イベント名には、初期表示というイベント名が登録されている。
・ＤＢより検索する
検索という言葉があるため、ソフトウェアがＤＢを検索することを意味する。このため候補イベント名には、検索というイベント名が登録されている。
・[ラジオボタン名]のロストフォーカス時に
ロストフォーカスとは、カーソルがオブジェクトから外れることをいう。ロストフォーカス時にはオブジェクトの入力内容がＤＢに存在しているかのチェックが行われることがあり、ソフトウェアが動作する。このため候補イベント名には、ラジオボタンの入力値存在チェックというイベント名が登録されている。
【００５６】
【表２】
2018060477.tif 000004
表２は、解析結果ＤＢ１９２に作成されている修正データテーブル５２を模式的に示す。修正データテーブル５２は、集計実施の記録データを蓄積するテーブル、及び、イベントデータテーブル５１を見積装置１００が更新するためのテーブルである。修正データテーブル５２は、１つのレコードに、通番、キーワード、自動判断結果イベント名、誤判断修正イベント名、対応イベントデータ通番、及び、時刻の各フィールドを有している。
【００５７】
修正データテーブル５２の通番とキーワードはイベントデータテーブル５１の通番とキーワードと同様である。自動判断結果イベント名は、見積装置１００がイベントデータテーブル５１のキーワードに基づいて検出したイベント名である。誤判断修正イベント名には、自動判断結果イベント名が正しくないと計測者等が判断した場合に登録した（入力した）正しいイベント名である。なお、自動判断結果イベント名が正しい場合はＮｕｌｌ（値がないことを意味する）値が登録されるが、Ｎｕｌｌ値は初期値であるため、見積装置１００が登録しなくてもよい。対応イベントデータ通番にはイベントデータテーブル５１の通番が登録され、これにより修正データテーブル５２のキーワードとイベントデータテーブル５１のキーワードが対応付けられている。時刻は、修正データテーブルにレコードが登録された時刻である。
【００５８】
また、表２に示す他、プロジェクト名、利用者、及び、出現位置（出現順）などの情報を有していてもよい。
【００５９】
修正データテーブルは、例えばログのように変換実施情報も記録する。これらの情報は後述する機械学習の組み込み時の学習データとしても利用される。このため、正解であった情報も記録される。
【００６０】
【表３】
2018060477.tif 000005
表３は、ＦＳ値ＤＢ１９３に作成されているＦＳ値データテーブル５３を模式的に示す。ＦＳ値データテーブル５３には、イベントに対応付けたＦＳ値が登録されている。ＦＳ値データテーブル５３は、１つのレコードにイベント名とＦＳ値が登録されている。イベント名は、設計書９に含まれうるイベントのリストになっている。ＦＳ値は予めイベントごとに定められており、機能が多い（すなわち規模が大きくなる）イベントほど大きい値になる。
【００６１】
（見積装置１００の機能について）
設計書取得部１１は、図３に示したＣＰＵ３０１がプログラム３０４ｐを実行すること等により実現され、設計書９を外部装置から取得する。例えば、補助記憶装置３０４や可搬性の記憶媒体から設計書９を文書データとして格納するファイルを読み取る。あるいは、ネットワークを介して端末１５０から受信する。
【００６２】
設計書解析部１２は、図３に示したＣＰＵ３０１がプログラム３０４ｐを実行すること等により実現され、設計書９からイベントデータテーブル５１のキーワードを検索して、設計書に暫定結果を出力する。計測者は設計書の修正欄に修正結果を入力して、見積装置１００に再読み込みさせる。また、設計書解析部１２は、再読込された設計書９の自動判断結果イベント名と修正により入力されたイベント名を、検索に合致したキーワードに対応付けて修正データテーブル５２に登録する。更に、イベントデータテーブル５１の通番を登録する。設計書解析部１２はこの修正データテーブル５２を参照して、設計書のキーワードが相当するイベント名を決定する。
【００６３】
ＦＳ値算出部１３は、図３に示したＣＰＵ３０１がプログラム３０４ｐを実行すること等により実現され、設計書解析部１２が設計書９から検索した候補イベント名（自動判断結果イベント名）のＦＳ値をＦＳ値データテーブル５３から読み出すことで、候補イベント名をＦＳ値に変換する。設計書が再読込みされた場合は、設計書のキーワードが相当するイベント名をＦＳ値に変換する。
【００６４】
表示処理部１４は、図３に示したＣＰＵ３０１がプログラム３０４ｐを実行して設計書あるいは、ディスプレイＩ／Ｆ３０６を制御すること等により実現され、設計書あるいはディスプレイ３１０にＦＳ値の算出結果等を表示する。
【００６５】
修正受付部１５は、図３に示したＣＰＵ３０１がプログラム３０４ｐを実行して入力部３０５を制御すること等により実現され、計測者による設計書の暫定結果の修正その他の操作を受け付ける。
【００６６】
テーブル更新部１６は、図３に示したＣＰＵ３０１がプログラム３０４ｐを実行して入力部３０５を制御すること等により実現される。テーブル更新部１６は、修正データテーブル５２の誤判断修正イベント名にイベントが登録されたレコードのキーワードと誤判断修正イベント名をイベントデータテーブル５１に追加する。詳細は後述される。
【００６７】
＜動作手順＞
図８は、見積装置１００の動作手順を示すフローチャート図の一例である。図８の処理は、計測者が例えば設計書９の見積を作成するためにＦＳ値を算出する操作を行うとスタートする。なお、適宜、図９，図１０のデータ例を参照しながら説明する。
【００６８】
まず、見積装置１００の設計書取得部１１は、設計書９を読み込む（Ｓ１０）。
【００６９】
次に、設計書解析部１２はイベントデータテーブル５１のキーワードに合致する表記が設計書９に含まれるかどうかを判断する（Ｓ２０）。図９（ａ）は、イベントデータテーブル５１の一例と、設計書９から検索された文字列であるイベント判断文字列を示す。イベントデータテーブル５１の「ロストフォーカス時に」、「新規にＤＢを更新」、「ＤＢより検索する」のキーワードが設計書９から検索された。
【００７０】
図８に戻って説明する。次に、設計書解析部１２は、イベントデータテーブル５１のキーワードに対応付けられた候補イベント名が自動集計の対象か否かを判断する（Ｓ３０）。自動集計の対象かどうかは、候補イベント名の信頼性に基づいて判断される。信頼に足りないイベント名でＦＳ値を集計すると、見積結果の信頼性も低下してしまうためである。ステップＳ２０で決定されたイベント名の信頼性を間違い回数と間違い率で判断する場合を説明する。設計書解析部１２は、例えば、間違い回数が３回以上、かつ、間違い率が５０%以上の場合に（信頼性が閾値未満の場合に）自動集計の対象外と判断する。なお、間違い回数のみ又は間違い率のみで判断してもよい。こうすることで、イベント名の判断精度が向上し見積結果の信頼性を向上できる。この基準の場合、図９（ａ）に示すように、「新規にＤＢを更新」のキーワードの間違い回数が３で正解回数が０なので、間違い率は１００％である。このため、図９（ｂ）に示すように、「新規にＤＢを更新」のキーワードに基づく候補イベント名が自動集計の対象から除外される。なお、間違い率とは、間違い回数／（間違い回数＋正解回数）で算出される。
【００７１】
図８に戻って説明する。次に、ＦＳ値算出部１３は、自動集計の対象の候補イベント名のＦＳ値をＦＳ値ＤＢ１９３から読み取ってＦＳ値に変換する（Ｓ４０）。
【００７２】
設計書解析部１２は、設計書の当該欄に暫定結果を出力する（Ｓ５０）。「暫定的に」とは修正の余地があるためである。設計書の当該項目付近に暫定結果を出力することにより、間違い箇所の確認が、暫定結果のみを設計書の表記とは別にディスプレイに出力するよりも容易になる。このため、自動集計結果の間違い箇所の確認ができる。このため、容易に自動集計結果の間違い箇所の確認ができる。
【００７３】
これにより、計測者は設計書の強調表示された関係項目を見ながら、容易に修正できる（Ｓ６０）。修正受付部１５は、計測者による修正を受け付ける。この強調表示では信頼性に応じて色分けされたり、文字の太さや書体が変更されたり、信頼性の段階が数値やマークで表示されたりする。これにより、自動判断結果の確認が容易になる。
【００７４】
次に、見積装置１００の設計書取得部１１は、設計書９を再度、読み込む（Ｓ７０）。
【００７５】
設計書解析部１２は、設計書の当該欄と計測者による修正結果を使って、修正データテーブル５２を作成する（Ｓ８０）。修正データテーブル５２のキーワードは、イベントデータテーブル５１で検索に合致したキーワードであり、自動判断結果イベント名は、このキーワードに対応付けられている候補イベント名である。誤判断修正イベント名は、計測者が修正したイベント名である。対応イベントデータ通番はイベントデータテーブル５１の通番である。図１０（ａ）は、誤判断修正イベント名が更新された修正データテーブル５２の一例を示す。誤判断修正イベント名に計測者が設計書に入力したイベント名が登録されている。修正されなかった誤判断修正イベント名はＮｕｌｌ値のままである。
【００７６】
次に、テーブル更新部１６は、イベントデータテーブル５１を更新する（Ｓ９０）。すなわち、以下の処理を行う。
(i)  修正データテーブル５２で修正がなかった対応イベントデータ通番のレコードの正解回数を１つ大きくする。
(ii)  修正データテーブル５２のうち修正があった対応イベントデータ通番のレコードの間違い回数を１つ大きくする。
(iii)  修正データテーブル５２のうち修正があったレコードのキーワードと誤判断修正イベント名をイベントデータテーブル５１に登録する。なお、間違い回数と正解回数はゼロでよい。すでに、イベントデータテーブル５１にキーワードと誤判断修正イベント名の組み合わせが登録されている場合は、新たに登録せずに間違い回数を１つ大きくする。
【００７７】
図１０（ｂ）は、テーブル更新部１６が更新したイベントデータテーブル５１の一例を示す。図９（ａ）と比較すると、(i)により「ロストフォーカス時に」と「ＤＢより検索する」というキーワードの正解回数が１つ大きくなっている。また、(ii)により「新規にＤＢを更新」というキーワードの間違い回数が１つ大きくなっている。また、(iii)により「新規にＤＢを更新」というキーワードと「登録」という候補イベント名を有するレコードが追加されている。
【００７８】
こうすることで、キーワードと候補イベント名の対応付けが誤っている場合、新たにキーワードと正しい候補イベント名の組み合わせが登録される。なお、次述するＦＳ値の再集計では、イベントデータテーブル５１にキーワードが同じレコードが存在するが、ＦＳ値算出部１３は最も信頼性が高いレコードを使ってイベント名をＦＳ値に変換する。したがって、再集計の際は、計測者が修正した候補イベント名で集計される。
【００７９】
以上で、イベントデータテーブル５１が修正されたので、見積装置１００はＦＳ値を再集計する（Ｓ１００）。再集計時には「信頼性」によらず、修正データテーブル５２に基づいて誤判断修正イベント名の通りに集計する。これにより、再集計ではその設計書について正しく集計ができる。
【００８０】
また、表示処理部１４は最終結果を出力する（Ｓ１１０）。出力結果は図４（ｂ）に示したように各要素の数とＦＳ値及びＦＳ値の合計として得られる。
【００８１】
このように、本実施形態の見積装置１００は、イベントデータテーブル５１に登録されたキーワードで設計書９を検索し、まず、ＦＳ値を算出する。仮に、キーワードで正しくイベントを検出できない場合でも、設計書への出力結果に基づき、計測者が容易に正誤判断を行うことができ、修正結果をイベントデータテーブル５１に登録することができる。修正が繰り返されると徐々に修正が少なくなり計測者の作業量を低減できる。修正後の２回目のＦＳ値の算出では、正しいＦＳ値を算出できる。また、どの計測者がソフトウェアの規模を見積を作っても同じ集計結果が得られる。
【実施例２】
【００８２】
実施例１によれば、イベントデータテーブル５１がＦＳ値の算出に使用されるほど、修正が行われＦＳ値の算出精度が向上すると期待される。
【００８３】
しかし、イベントデータテーブル５１に同じキーワードがある場合、間違い回数が少ない方を採用するだけでは、再集計において間違い回数が少ないキーワードに対応付けられた候補イベント名が正しいとは限らない場合がある。図１１を用いてこの事例を説明する。
【００８４】
図１１（ａ）は修正前のイベントデータテーブル５１の一例を示す。図１１（ａ）では、「新規にＤＢを更新」というキーワードに対し「更新」という候補イベント名が登録されている。この状態のテーブルで設計書解析部１２が「新規にＤＢを更新」で設計書を検索したが、計測者が候補イベント名を「登録」に修正したものとする。
【００８５】
図１１（ｂ）は「新規にＤＢを更新」というキーワードと「登録」という候補イベント名の組み合わせが登録されたイベントデータテーブル５１の一例を示す。候補イベント名が「更新」の間違い回数が４になっている。このように同じキーワードが存在する場合、設計書解析部１２が同じ設計書を再集計する際、間違い回数が少ない方のキーワードを採用するので、正しいイベント名である「登録」が選択される。
【００８６】
しかし、見積装置１００が別の設計書に基づいてソフトウェアの規模を見積もる場合、「新規にＤＢを更新」というキーワードに対し「登録」という判断（イベント名）が正しいとは限らない。別の設計書で「更新」が正しい場合を想定して説明する。最初の集計では、間違い回数が少ない方のキーワードが採用されるので、「新規にＤＢを更新」というキーワードに対し「登録」という候補イベント名が選択される。これに対し、計測者は設計書に出力された暫定結果を参照しイベント名を修正する。
【００８７】
テーブル更新部１６がイベントデータテーブル５１にレコードを登録する際、すでに「新規にＤＢを更新」と「更新」の組み合わせが登録されているので、正解回数が１つ大きくなる。また、「登録」の間違い回数が１になる。図１１（ｃ）はレコードが更新されたイベントデータテーブル５１を示す。
【００８８】
図１１（ｃ）の状態で見積装置１００が次に別の設計書で集計した場合、間違い回数は「登録」の方が少ない。このため、設計書解析部１２は次の集計でも「登録」を選択してしまい、別の設計書の「新規にＤＢを更新」で正解とされる「更新」を選択できない。
【００８９】
このような不都合に対しては、本実施例で説明するプロジェクトＩＤを利用することが有効である。
【００９０】
まず、イベントデータテーブル５１は異なるソフトウェア開発のプロジェクトに共通に使用されると考えられる。プロジェクトが異なる場合、設計書も異なる場合が多いが、Ａというソフトウェア（システム）の開発のプロジェクトにも、Ｂというソフトウェア（システム）の開発のプロジェクトにも同じイベントデータテーブル５１が使用される。イベントデータテーブル５１が使用されるほどキーワードと候補イベント名の組み合わせが充実するためである。
【００９１】
プロジェクトが異なると設計書９を記述する者が同じとは限らず、異なるイベントに対し同じ表記が使用されるおそれがある（同じイベントに対する異なるキーワードに関してはキーワードと候補イベント名の組み合わせを増やせばよい。）。このため、あるプロジェクトで修正されたイベントデータテーブル５１が別のプロジェクトの規模の見積に使用される場合、多くの修正が必要になるなどのおそれがある。
【００９２】
そこで、イベントデータテーブル５１の中で、設計書９に適用されるキーワードを選択するためにプロジェクトＩＤを使用する。プロジェクトＩＤとは、プロジェクトを特定するための情報又はプロジェクトを識別するための情報である。したがって、イベントデータテーブル５１のキーワードにプロジェクトＩＤが対応付けられる。
【００９３】
計測者が修正するフェーズで、計測者は修正する際に現在のプロジェクトＩＤを見積装置１００に登録する。あるいは、計測開始時に設計書９を読み込ませる時点で登録してもよい。他の方法として、設計書９にプロジェクト名が含まれているので見積装置１００が自動で読み取ることもできる。
【００９４】
計測者は設計書の暫定出力に基づきイベント名を修正するので、これに基づき設計書解析部１２は修正データテーブルを作成する。そして、テーブル更新部１６は誤判断修正イベント名にイベント名が登録されたレコードをイベントデータテーブル５１に反映させる。図１２（ａ）は、プロジェクトＩＤが対応付けられたイベントデータテーブル５１の一例を示す。通番１〜３は初期登録された（まだ、キーワードが設計書と適合した判断されたことがない）レコードであり、プロジェクトＩＤは登録されていない。通番４はプロジェクトＩＤがＰ００１のプロジェクトで正解と判断されたキーワードであるとする。
【００９５】
このイベントデータテーブル５１にテーブル更新部１６が暫定結果の修正内容を反映させる。「新規にＤＢを更新」と「更新」の組み合わせはすでにイベントデータテーブル５１の通番２に登録されている。このため、テーブル更新部１６は通番２の正解回数を１つ大きくする。また、通番４の「新規にＤＢを更新」と「登録」の組み合わせはＰ００２のプロジェクトでは正しくないので間違い回数を１つ大きくする。更に、「新規にＤＢを更新」と「更新」の組み合わせの「適用プロジェクトＩＤ」にＰ００２を登録する。これにより、図１２（ｂ）のイベントデータテーブル５１が得られる。
【００９６】
このように、テーブル更新部１６は、キーワードと候補イベント名の組み合わせが正しい場合、適用プロジェクトＩＤの欄に、現在のプロジェクトＩＤを登録する。適用プロジェクトＩＤに登録されるプロジェクトＩＤは徐々に増えていく。プロジェクトＩＤがＰ００１のプロジェクトでは、「新規にＤＢを更新」に対し「登録」というイベント名が判断され、プロジェクトＩＤがＰ００２のプロジェクトでは、「新規にＤＢを更新」に対し「更新」というイベント名が判断される。
【００９７】
各キーワードに、正解であることが判明しているプロジェクトＩＤが対応付けられるので、設計書解析部１２は適用プロジェクトＩＤを参照して、適用するキーワードを選択できる。再集計の際、現在のプロジェクトＩＤはＰ００２なので、「新規にＤＢを更新」と「更新」の組み合わせが選択され、正しいイベント名を決定できる。
【００９８】
図１３は、本実施例の見積装置１００の動作手順を示すフローチャート図の一例である。なお、図１３では主に図８との相違を説明する。ステップＳ１０の処理は図８と同様でよい。
【００９９】
次に、ステップＳ１５で設計書解析部１２は現在の設計書のプロジェクトＩＤを取得する（Ｓ１５）。計測者が入力してもよいし、設計書に記述されていてもよい。
【０１００】
次に、設計書解析部１２は、イベントデータテーブル５１の適用プロジェクトＩＤが現在のプロジェクトＩＤのキーワードを特定し、このキーワードが設計書にあるか否かを判断する（Ｓ２０）。なお、適用プロジェクトＩＤが現在のプロジェクトＩＤのキーワードがない場合は、実施例１と同様にキーワードのみに着目する。
【０１０１】
ステップＳ３０〜Ｓ７０は図８と同様である。次に、ステップＳ８０で、設計書解析部１２、設計書の当該欄と計測者による修正結果を使って、修正データテーブル５２を作成する（Ｓ８０）。この時、プロジェクトＩＤを登録する。
【０１０２】
次に、テーブル更新部１６は、イベントデータテーブル５１を更新する（Ｓ９０）。図８の処理に加え、適用プロジェクトＩＤをイベントデータテーブル５１に登録する。以降の処理は図８と同様である。イベントデータテーブル５１には、現在のプロジェクトＩＤで正解であったプロジェクトＩＤが登録されているので、設計書のキーワードに対し正しいイベント名を決定できる。
【０１０３】
なお、計測者は現在のプロジェクトＩＤをそのまま入力するのでなく、例えば、適用したいプロジェクトＩＤを予め入力しておいてもよい。計測者は、現在のプロジェクトがどのようなプロジェクトか知っているので、使用されている表記が近いプロジェクトも推定できる。したがって、１回目の集計から、よい適切なキーワードでＦＳ値を算出できる。
【０１０４】
あるいは、計測者が入力した現在のプロジェクトＩＤと適用プロジェクトＩＤを比較して、設計書解析部１２が適用するキーワードを決定してもよい。類似のプロジェクトには類似のプロジェクトＩＤが付与される。例えば、特許の期間管理のプロジェクトではPatent_001、Patent_002などのようなプロジェクトＩＤが付与される。設計書解析部１２は、現在のプロジェクトＩＤと類似しているプロジェクトＩＤのキーワードを使用して設計書９を解析できる。なお、プロジェクトＩＤの類似とは、プロジェクトＩＤの一部が一致することなどをいう。
【０１０５】
<<同じキーワードに異なる候補イベント名と同じプロジェクトＩＤが対応付く場合>>
設計書のキーワードは同じイベントを意味するように使用されることが理想であるが、設計書の作成者が１つの設計書内で同じキーワードを異なるイベントの意味で使用する可能性は否定できない。また、１つの設計書を複数の作成者が記述する場合もある。このため、以下のように、同じキーワードに異なる候補イベント名と同じプロジェクトＩＤが対応付けられる場合がある。
【０１０６】
図１４（ａ）は、同じキーワードに異なる候補イベント名と同じプロジェクトＩＤが対応付けられたイベントデータテーブルの一例である。図１４（ａ）では、「新規にＤＢを更新」というキーワードに「登録」「更新」という異なる候補イベント名が対応付けられているが、どちらもＰ００２のプロジェクトＩＤにおいて正しい。このような登録状況は、Ｐ００２の設計書でどちらの組み合わせも正しい場合に生じうる（計測者が登録する）。イベントデータテーブル５１の同じキーワードに異なる候補イベント名が登録されることで、設計書の同じキーワードが異なるイベントを意味していても、正しい候補イベント名を決定できる。
【０１０７】
なお、図１４（ａ）では適用プロジェクトＩＤに１つのプロジェクトＩＤしか設定されない態様で記載されているが、図１４（ｂ）のように記載されてもよい。図１４（ｂ）では、Ｐ００１、Ｐ００２のプロジェクトＩＤに「新規にＤＢを更新」と「登録」の組み合わせが対応付けられている。Ｐ００１とＰ００２の両方で、「新規にＤＢを更新」というキーワードに対し「登録」という候補イベント名が検出され、Ｐ００２では「新規にＤＢを更新」というキーワードに対し「更新」という候補イベント名が検出される。したがって、実質的に図１４（ａ）と同じである。
【０１０８】
一方、図１４（ａ）（又は図１４（ｂ）でもよい）のようなイベントデータテーブル５１では、設計書解析部１２がＰ００２の設計書の「新規にＤＢを更新」というキーワードに対し、通番４と５のどちらを適用すべきか判断しにくい。そこで、設計書の中のキーワードと１対１に対応してイベントデータテーブル５１にキーワードが登録されることが好ましい。設計書解析部１２はイベントデータテーブル５１の通番の若い順にキーワードを検索し、一度使用したキーワードを使用しないようにすれば、設計書のキーワードの出現順にイベントデータテーブル５１のキーワードを対応させ、正しい候補イベント名を決定できる。
【０１０９】
あるいは、図１５に示すように、設計書のキーワードの行番号をキーワードに対応付けてもよい。図１５では、通番２の「新規にＤＢを更新」というキーワードはＰ００２の設計書の１２行目と対応して「更新」というイベントを意味し、通番５の「新規にＤＢを更新」というキーワードはＰ００２の設計書の１５６行目と対応して「登録」というイベントを意味することが明らかになる。
【０１１０】
なお、出現順や行番号を用いることなく、設計書解析部１２は信頼性に基づいて使用するキーワードを選択してもよい。このような判断は、同じキーワードに対する２つの候補イベント名のどちらかが正しい場合に有効である。信頼性に基づく場合、同じキーワードで同じ正解回数かつ間違い回数の候補イベント名がある場合、ＦＳ値と共にキーワードと要確認の旨のメッセージ等を暫定結果に出力あるいは表示することが好ましい。１回目の集計の際には、表示処理部１４は同じ正解回数かつ間違い回数の候補イベント名と該キーワードを強調して表示する。
【０１１１】
仮にＰ００３の設計書のＦＳ値が集計され、「新規にＤＢを更新」というキーワードがある場合、通番２，４，５の３つのレコードが該当する。この場合は、設計書解析部１２は信頼性に基づいて「更新」又は「登録」を選択する。
【０１１２】
<<キーワードを削除する場合>>
プロジェクトの設計書で同じキーワードは同じイベントしか意味しないという前提では、テーブル更新部１６はイベントデータテーブル５１からレコードを削除することもできる。
【０１１３】
図１６（ａ）のイベントデータテーブル５１は図１４（ａ）と同じものである。この状態で、計測者がＰ００２の「新規にＤＢを更新」の候補イベント名を「登録」に修正した場合、「新規にＤＢを更新」に対応付けられた「更新」は誤りになる。そこで、テーブル更新部１６は、図１６（ｂ）に示すように通番２のレコードを削除する。こうすることで、イベントデータテーブル５１におけるキーワードと候補イベント名の組み合わせの一意性を維持できる。
【０１１４】
＜変形例＞
以下では、本実施形態の見積装置１００に適用可能ないくつかの変形例を説明する。
【０１１５】
<<サーバ・クライアント型について>>
サーバ・クライアント型でも処理に大きな相違はないが、計測者は端末１５０を操作するため端末１５０と見積装置１００との間で通信が発生する。
【０１１６】
図１７は、見積システム２００が有する端末１５０と見積装置１００の機能ブロック図の一例である。端末１５０は、通信部１８、修正受付部１５、及び、表示処理部１４を有する。このうち、修正受付部１５の機能は図７の見積装置１００と同様である。
【０１１７】
通信部１８は、図３に示したＣＰＵ３０１がプログラム３０４ｐを実行しネットワークＩ／Ｆを制御すること等により実現され、見積装置１００と各種の情報を送受信する。
【０１１８】
表示処理部１４は、図３に示したＣＰＵ３０１がプログラム３０４ｐを実行してディスプレイＩ／Ｆ３０６を制御すること等により実現され、ディスプレイ３１０に各種の画面を表示する。
【０１１９】
見積装置１００の機能は図７と同様であるが、新たにサーバ機能部１７を有している。サーバ機能部１７は、図３に示したＣＰＵ３０１がプログラム３０４ｐを実行すること等により実現され、Ｗｅｂサーバとして機能する。また、設計書解析部１２、ＦＳ値算出部１３、及び、テーブル更新部１６を制御してＷｅｂアプリを提供する。
【０１２０】
図１８は、サーバ・クライアント型の見積システム２００の動作手順を示すシーケンス図の一例である。
【０１２１】
S1：計測者は設計書９を見積装置１００に送信する操作を行う。端末１５０は操作を受け付け、通信部１８が設計書９を見積装置１００に送信する。見積装置１００はＷｅｂサーバとして動作するので、例えばＨＴＴＰなどで通信する。
【０１２２】
S2：見積装置１００の設計書取得部１１は設計書９を受信する。また、見積装置１００は、図８のステップＳ２０〜Ｓ５０を実行し、暫定結果を生成する。暫定結果は設計書に記載される。
【０１２３】
S3：見積装置１００のサーバ機能部１７は暫定結果を端末１５０に送信する。
【０１２４】
S4：端末１５０の通信部１８は暫定結果を受信して、修正受付部１５が計測者による修正を受け付ける。
【０１２５】
S5：修正が終了すると、端末１５０の通信部１８は修正結果を含む設計書を見積装置１００に送信する。
【０１２６】
S6：見積装置１００は設計書を受信し、設計書解析部１２が修正データテーブル５２に登録する。
【０１２７】
S7：テーブル更新部１６はイベントデータテーブル５１に修正データテーブル５２の内容を反映する。
【０１２８】
S8：ＦＳ値算出部１３がＦＳ値を再集計する。
【０１２９】
S9：サーバ機能部１７は、最終結果を端末１５０に送信する。
【０１３０】
S10：見積装置１００の通信部１８は最終結果を受信し、表示処理部１４が最終結果をファイルに出力又はディスプレイ３１０に表示する。
【０１３１】
このように、本実施形態の見積装置１００はサーバ・クライアント型でも好適に適用できる。
【０１３２】
<<機械学習>>
本実施形態では、自動判断結果の蓄積情報を元に、より信頼性の高い判断パターンを機械学習する。機械学習手法には例えば、分類アルゴリズム法、回帰分析法などがある。
【０１３３】
＜まとめ＞
以上説明したように、本実施形態の見積装置１００は、ソフトウェアの動的な機能の量を自動集計することができる。従来は、自動集計が困難だった設計書９のイベントに関する表記についても自動で集計できる。また、集計結果に対し計測者が誤集計のキーワードに正しいイベント名を登録するので、集計が徐々に高精度になる。
【０１３４】
＜その他の適用例＞
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【０１３５】
例えば、時間による重み付けをしてもよい。例えば、一年以内のデータを重んじるパターンや、連続していると大きく重み付けるパターンがあり得る。
【０１３６】
また、設計作成者（や計測者）ごとに重み付けしてもよい。例えば、熟練者の入力値を重んじることができる。
【０１３７】
また、プロジェクトで規約に合わせた重み付けをしてもよい。規約に沿った表現でないと集計対象としないことができる。
【０１３８】
また、暫定結果は設計書に出力する以外にも、設計書に対応するレイアウトでディスプレイ３１０に表示することもできる。
【０１３９】
本実施形態では、ＦＳ値の集計を例に説明したが、ＦＳ法以外であっても、書類に基づく規模の見積もりにおいて、表現に幅のある要素（キーワードやイベント名）にポイントが対応付けられている場合に適用できる。
【０１４０】
また、図７，１７などの構成例は、見積装置１００の処理の理解を容易にするために、主な機能に応じて分割したものである。処理単位の分割の仕方や名称によって本願発明が制限されることはない。また、見積装置１００の処理は、処理内容に応じて更に多くの処理単位に分割することもできる。また、１つの処理単位が更に多くの処理を含むように分割することもできる。
【０１４１】
また、記憶部１９に記憶された各種のデータベースは、見積装置１００が有している必要はなく、見積装置１００がアクセスできるネットワーク上にあればよい。
【０１４２】
なお、設計書取得部１１は書類取得手段の一例であり、設計書解析部１２は書類解析手段の一例であり、ＦＳ値算出部１３は集計手段の一例である。ＦＳ値ＤＢ１９３は第二の記憶手段の一例であり、計測方法蓄積ＤＢ１９１は第一の記憶手段の一例であり、解析結果ＤＢ１９２は第三の記憶手段の一例であり、表示処理部１４は表示処理手段の一例であり、修正受付部１５は受付手段の一例であり、テーブル更新部１６は登録手段の一例である。
【符号の説明】
【０１４３】
９        設計書
１１      設計書取得部
１２      設計書解析部
１３      ＦＳ値算出部
１４      表示処理部
１５      修正受付部
１６      テーブル更新部
５１      イベントデータテーブル
５２      修正データテーブル  
５３      ＦＳ値データテーブル
１００    見積装置
【図１】
2018060477.tif 000006
【図２】
2018060477.tif 000007
【図３】
2018060477.tif 000008
【図４】
2018060477.tif 000009
【図５】
2018060477.tif 000010
【図６】
2018060477.tif 000011
【図７】
2018060477.tif 000012
【図８】
2018060477.tif 000013
【図９】
2018060477.tif 000014
【図１０】
2018060477.tif 000015
【図１１】
2018060477.tif 000016
【図１２】
2018060477.tif 000017
【図１３】
2018060477.tif 000018
【図１４】
2018060477.tif 000019
【図１５】
2018060477.tif 000020
【図１６】
2018060477.tif 000021
【図１７】
2018060477.tif 000022
【図１８】
2018060477.tif 000023