(57)【要約】      （修正有）【課題】手間をかけることなく容易にソフトウエアの機能の評価を実行できるようにする。【解決手段】利用者が画面を操作することで得られる情報を用いて、評価に必要な情報を取得する。例えば、操作することで得られる情報から、ファンクションタイプ、ＦＴＲ、ＤＥＴを特定することが含まれる。また、「利用者が画面を操作することで得られる情報」には、呼び出したソフトウエアのソースコードを表示し、表示した内容に対してキャプチャ処理を施すことで得られる電子データも含まれる。予め評価対象のソフトウェアには情報収集プログラムを埋め込んでおく。【選択図】図１
2007148947.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウエアの機能を評価するソフトウエア機能計測システムにおいて、
予めＤＥＴ値、ファンクションタイプおよびＦＴＲとソフトウエアの複雑さを示す指標を対応付けて記憶する手段と、
予め記憶媒体に記憶されたソフトウエアにアクセスして、当該ソフトウエアのソースコードを読み出す手段と、
読み出された前記ソースコードを表示装置に表示させる手段と、
前記表示装置に表示されたソースコードに対して、キャプチャ処理を施して前記ソースコードを取り込む手段と、
前記取り込まれたソースコードに基づいて、前記ソースコードを評価する値を特定する手段と、
特定された結果から当該ソースコードの項目数を検知する手段と、
前記記憶する手段の記憶内容と、前記検知する手段での検知結果を比較することで、前記ソースコードに対応するソフトウエアの指標を特定する手段とを有し、
ソフトウエアの機能の評価を実現することを特徴とするソフトウエア評価計測システム。
【請求項２】
請求項１に記載のソフトウエア評価計測システムにおいて、
前記評価する値を決定する手段は、当該ソースコードのＤＥＴ値、ファンクションタイプおよびＦＴＲを特定することを特徴とするソフトウエア評価計測システム。
【請求項３】
請求項１または２のいずれかに記載のソフトウエア評価計測システムにおいて、
さらに、特定された前記ソースコードを評価する値を前記表示装置に表示させる手段を有することを特徴とするソフトウエア評価計測システム。
【請求項４】
ソフトウエアの機能を評価するソフトウエア機能計測方法において、
予めＤＥＴ値、ファンクションタイプおよびＦＴＲとソフトウエアの複雑さを示す指標を対応付けて記憶しておき、
予め記憶媒体に記憶されたソフトウエアにアクセスして、当該ソフトウエアのソースコードを読み出し、
読み出された前記ソースコードを表示装置に表示させ、
前記表示装置に表示されたソースコードに対して、キャプチャ処理を施して前記ソースコードを取り込み、
前記取り込まれたソースコードに基づいて、前記ソースコードを評価する値を特定し、
特定された結果から当該ソースコードの項目数を検知し、
前記記憶する手段の記憶内容と、前記検知する手段での検知結果を比較することで、前記ソースコードに対応するソフトウエアの指標を特定することで、
ソフトウエアの機能の評価を実現することを特徴とするソフトウエア評価計測方法。
【請求項５】
請求項４に記載のソフトウエア評価計測方法において、
前記評価する値を決定する手段は、当該ソースコードのＤＥＴ値、ファンクションタイプおよびＦＴＲを特定することを特徴とするソフトウエア評価計測方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションプログラムなどのソフトウエアの機能を評価する技術に関する。
【背景技術】
【０００２】
従来、ソフトウエアの評価を行う技術として、特許文献１がある。特許文献１においては、ソフトウエア見積もりシステムでの問題であったファンクションポイントの計測手順を踏まなくもよいように、以下の構成を有するものである。評価対象の「ソフトウエアの機能情報」を記憶しておき、この機能情報から開発するソフトウエアプロジェクトの機能情報を選択し、これを用いてソフトウエアプロジェクトの機能量を計算し、この機能量から作業工程および作業費用を見積もるものである。
【０００３】
【特許文献１】特開２００２−２２２０８０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１においては、予め「ソフトウエアの機能情報」を用意しておく必要がある。つまり、特別な情報を人手等で作成しておくとの手間が掛かってしまうとの課題が生じる。
【課題を解決するための手段】
【０００５】
そこで、利用者が画面を操作することで得られる情報を用いて、評価に必要な処理を実行する。本発明では、例えば、操作することで得られる情報から、ファンクションタイプ、ＦＴＲ、ＤＥＴを特定することが含まれる。また、「利用者が画面を操作することで得られる情報」には、呼び出したソフトウエアのソースコードを表示し、表示した内容に対してキャプチャ処理を施すことで得られる電子データも含まれる。
【０００６】
さらに本発明では、予め評価対象のソフトウエアに情報収集プログラムを埋め込んでおき、これに基づいて上記の処理を行うことも含まれる。
【発明の効果】
【０００７】
本発明によれば、より容易にソフトウエアの機能の評価を実行することが可能になる。
【発明を実施するための最良の形態】
【０００８】
本発明の実施の形態について、図面を用いて説明する。本実施の形態は、ソフトウエア製品の仲介を例に説明するが、本発明はそれに限定されるものではない。
【０００９】
まず、本実施の形態におけるシステム構成図を図1に示す。各コンピュータは、ネットワークを介して互いに接続されている。また、各コンピュータは、メモリ、ハードディスクを含む記憶装置、ＣＰＵなどの処理装置を有し、記憶装置に格納されたプログラムに従って、処理装置が情報処理を実行するものである。
【００１０】
以下、本実施の形態の処理内容について、説明する。
(1)情報収集用プログラムの埋め込み
はじめに、ユーザは処理プログラム(クライアント)(図1 102)から計測用PCのFP測定プログラム(101)を操作し、サーバ内にある処理プログラム(サーバ) (103)の対象ソースコードに情報収集用プログラムを埋め込む処理を行う。
【００１１】
処理をフローチャートに示すと(図2)、まずユーザが処理プログラム(クライアント) から、埋め込み指示(201)と埋め込みルールの指定を計測用PCのFP測定プログラムに対して行う(202)。埋め込みルールとは、検索ボタンを押す処理や、データの更新処理等、ユーザがシステムとデータのやり取りのきっかけとなる処理とその処理から呼び出される関数、その引数、及びSQL文のことで、言語別にあらかじめ埋め込みルールDB(図８)に保存してある。
【００１２】
指示を受けた計測用PCは、測定対象となるソースコード(205)を測定対象サーバ/クライアントからコピーする(204)。そして、対象ソースコードと203で読み込んだ埋め込みルールとを照合し、コードが実行され、埋め込みルールの場所に来たときに、実行結果情報を出力するようにコードを埋め込む(206)。埋め込みを行ったソースコードは測定対象サーバ/クライアントに戻す(207)。
【００１３】
例として、ブラウザの画面を通してDBに在庫の入力を行うシステム(以下「在庫入力システム」)を挙げる(図3)。メイン画面をブラウザ上で表示し、画面上の「入荷」ボタンを押すとDBに商品コード、商品名、在庫数の3項目が新しいレコードとして入力される仕組みになっている。このシステムはmain.jsp及び、addlist.jspの2つのJSPファイルとテーブル「Stocks」1つを持つDBから成り立っている。main.jspはメイン画面の表示を行い、addlist.jspは「入荷ボタン」が押された際の処理が記載されている。これらのファイルのソースコードは図4、図5の通りである。
【００１４】
この2つのJSPファイルについて203で読み込んだ埋め込みルールに基づき、206の情報収集用プログラムの埋め込みを行うと、それぞれ図6、図7のようにソースに埋め込みがなされて出力される。
【００１５】
(2)FP測定データの取得と結果処理 (図8)
次に、ユーザは処理プログラム(クライアント)から図2で情報収集用プログラムを埋め込んだ測定対象サーバ/クライアントを操作する(801)。
【００１６】
すると、情報収集用プログラムによって、その実行結果情報が出力され(802)、計測用PCが実行結果情報を取得する(803)。このデータは、実行結果情報DBへ出力される(804)。
【００１７】
実行結果情報とは、ユーザの行った処理によって呼び足された関数及び引数を処理ごとに1行ずつ出力したもので、DBにアクセスする場合はSQL文も記録する。
【００１８】
収集された実行結果情報は、FP測定プログラムによって解析が行われ(805)、FP値を出力する。このFP値はFP計算結果DBに出力される(805)。この解析方法については次節(3)で改めて説明する。
【００１９】
また、FP値はユーザの処理プログラム(クライアント)からの指示によって(806)、画面に表示させることもできる(807)。
【００２０】
「在庫管理システム」の例では、実行結果情報 (802)は、ユーザが「入荷」ボタンを押すと、埋め込まれたソースコードによって、main.jspからはボタン操作のきっかけとなるPOST文1行、入力項目のIMPUT文4行、addlist.jsからはDBへの入力用のSQL文1行、そして再度、main.jspから画面出力の1行が実行結果情報DBへ出力される(図9)。
【００２１】
(3)実行結果解析(図10)
図8の805の実行結果解析について説明する(図10)。
【００２２】
実行結果情報DBに一旦蓄えられた情報を1行ずつ読み出し、記録された関数の引数の数及びSQL発行回数等のユーザイベントの洗い出しを行う(1001)。
【００２３】
また、洗い出されたこれらのユーザイベントが、データアクセス行っているか否かの判断を行う(1002)、この判断は実行結果情報にSQL文があるか、ある場合はそのユーザイベントがDBにどのような処理を行っているかを基準とする。データアクセスが無ければ、その行の情報は破棄し、新たな結果情報を読み込む。
【００２４】
1002でデータアクセスがある場合は、その処理行の引数から入力項目と出力項目を抽出し入出力のデータの重複があるかを判断する。そして、入力・出力項目数から重複項目を引いた値をDET値として得る(1003)。例えば、入力項目が３、出力項目が５、入力出力で重複する項目が２ならばDET値は(3＋5)‐2＝6と判定する。さらに関数及びSQL文から、アクセステーブル数を取得し、これをFTR値として取得する(1004)。
【００２５】
また、SQL文より機能種別の判定も行い、データ入力を行う処理の場合はEI、データ出力を行う処理の場合はEO、データ照会を行う処理の場合はEQと判断する (1005)。
【００２６】
こうしてFP法による計算に必要なDET値、FTR値及び機能種別を取得したあとで、FP係数DBを参照して複雑さの評価を行い、同時にFP値も得る。例えば、DET値=6  FTR値＝1  機能種別＝EOの場合は、複雑さ＝低  FP値＝４と判定する。そして評価結果をFP計算結果DBに出力する(1006)
「在庫入力システム」の例では(図11)、保存された実行結果情報は、まず1001の処理で、SQL文を含むことから、DBアクセスがあるものと判断され、FP法による計測の処理対象と判断する。
そして1003の処理で、入力項目数が4、出力項目数が3であることからDET値が７、1004の処理ではSQL文よりアクセステーブル数が１であることからFTR値は1、また、1005の処理ではSQL文がINSERT文であることから機能種別はEIと判断する。
【００２７】
この結果を元にFP係数DBを参照すると複雑さは低、未調整FPは3となる。そして計算結果は、FP計算結果DBに出力する。
【００２８】
(4)結果表示(図12)
図5の結果表示の方法について説明する(図12)
FP計算結果DBに記録されたデータを一行ずつ読み出し、読み出した順番で画面に出力(1202)していく。これをFP計算結果DBのデータすべてに対して行う(1201)。
【００２９】
また、FP計算結果DBに記録されたすべてのデータをデータタイプ別に分け、それぞれのタイプがいくつあるのかを集計し(1203)、未調整FPを算出する(1204)。そしてタイプ別集計と未調整FPを画面に表示する(1205)。「入荷管理システム」を例にとると、図13のような結果を表示する。
【産業上の利用可能性】
【００３０】
本発明は、取引の仲介を、コンピュータを用いて実現することが可能になる。
【図面の簡単な説明】
【００３１】
【図１】システム構成図
【図２】埋め込み処理のフローチャート
【図３】在庫入力システム(具体例)
【図４】埋め込み前のソースコード
【図５】埋め込み前のソースコード
【図６】埋め込み後のソースコード
【図７】埋め込み後のソースコード
【図８】実行等測定データの取得フローチャート
【図９】実行結果例
【図１０】実行結果解析フローチャート
【図１１】実行結果解析例
【図１２】結果表示フローチャート
【図１３】結果表示例
【図１４】FP係数DB
【図１５】埋め込みルールDB
【図１６】FP計算結果DB
【符号の説明】
【００３２】
１０１…ＦＰ測定プログラム、１０２…処理プログラム（クライアント）、１０３…処理プログラム（サーバ）
【図１】
2007148947.tif 000003
【図２】
2007148947.tif 000004
【図３】
2007148947.tif 000005
【図４】
2007148947.tif 000006
【図５】
2007148947.tif 000007
【図６】
2007148947.tif 000008
【図７】
2007148947.tif 000009
【図８】
2007148947.tif 000010
【図９】
2007148947.tif 000011
【図１０】
2007148947.tif 000012
【図１１】
2007148947.tif 000013
【図１２】
2007148947.tif 000014
【図１３】
2007148947.tif 000015
【図１４】
2007148947.tif 000016
【図１５】
2007148947.tif 000017
【図１６】
2007148947.tif 000018