(57)【特許請求の範囲】
【請求項１】
評価対象コンピュータプログラムが、複数の命令語から成るメインプログラムモジュールと、該メインプログラムモジュールにより起動され、複数の命令語から成るメニュープログラムモジュールと、該メニュープログラムモジュールから選択的に起動され、複数の命令語から成るヘルププログラムモジュールとタイトル表示プログラムモジュールと処理プログラムモジュールと、該処理プログラムモジュールにより選択的に起動され、複数の命令語から成る複数のサブプログラムモジュールとが階層構造として構成され、前記評価対象コンピュータプログラムの階層構造とステップ数と単位時間当たりの処理回数と該ステップ数当たりの処理時間とバグ数とを含む評価結果データをクライアントコンピュータのディスプレイに図形データとして表示するプログラム品質評価システムであって、
該プログラム品質評価システムのコンピュータが、
前記モジュールを表す図形要素の形状を設定する図形設定工程と、
前記図形要素の大きさをモジュール毎のステップ数に応じて設定する図形サイズ設定工程と、
前記図形要素の表示間隔の距離を前記階層構造の階層数に応じて設定する距離設定工程と、
前記形状とサイズと表示間隔距離を設定した複数の図形要素を、前記階層構造の上位から下位への階層構造が認識可能な位置関係にて配置するための座標データを算出する座標算出工程と、
前記モジュール内のステップ数当たりの処理時間を表す図形要素表示動作を前記処理時間に応じて設定する処理時間表示設定工程と、
上位階層の図形要素のモジュールの下位階層に位置するモジュールの図形要素との関係を下位階層モジュールの単位時間当たりの処理回数を表す図形要素表示動作を前記処理回数に応じて設定する処理回数表示設定工程と、
前記図形要素の表示色をステップ数当たりのバグ数に応じて設定する色設定工程と、
前記座標算出工程により設定した座標位置に、図形サイズ設定工程により設定したサイズの複数の図形要素を、前記処理回数表示設定工程により設定した処理回数を表す図形要素表示動作且つ前記処理時間表示設定工程により設定した処理時間を表す図形要素表示動作且つ前記色設定工程により設定した表示色によってクライアントコンピュータのディスプレイに表示させる表示工程とを実行することを特徴とするプログラム品質評価システム。
【請求項２】
評価対象コンピュータプログラムが、複数の命令語から成るメインプログラムモジュールと、該メインプログラムモジュールにより起動され、複数の命令語から成るメニュープログラムモジュールと、該メニュープログラムモジュールから選択的に起動され、複数の命令語から成るヘルププログラムモジュールとタイトル表示プログラムモジュールと処理プログラムモジュールと、該処理プログラムモジュールにより選択的に起動され、複数の命令語から成る複数のサブプログラムモジュールとが階層構造として構成され、前記評価対象コンピュータプログラムの階層構造とステップ数と単位時間当たりの処理回数と該ステップ数当たりの処理時間とバグ数とを含む評価結果データをクライアントコンピュータのディスプレイに図形データとして表示するプログラム品質評価システムであって、
該プログラム品質評価システムのコンピュータが、
前記モジュールを表す図形要素の形状を円環状に設定する図形設定工程と、
前記ステップ数が多いモジュールがステップ数の小さいモジュールに対して相対的に大きくなるような図形要素をモジュール毎に設定する図形サイズ設定工程と、
前記図形要素間の距離が階層構造の上位から下位に向かうに従って近接するように要素図形間の距離をモジュール毎に算出する距離算出工程と、
前記図形サイズ設定工程により算出したサイズの複数の図形要素を、前記階層構造の最上位モジュールを恒星、該最上位モジュールの次階層の中位モジュールを恒星の周りを周回する惑星、該中位モジュールの次階層の下位モジュールを惑星の周りを周回する衛星とし、前記距離算出工程により算出した距離の間隔を空けた前記恒星・惑星・衛星の位置関係にて配置するための座標データを算出する座標算出工程と、
前記図形要素自体の回転周期である自転周期を前記ステップ数当たりの処理時間に応じてモジュール毎に算出する自転周期算出工程と、
前記図形要素が他の図形要素の周りを移動する公転周期を前記単位時間当たりの処理回数に応じてモジュール毎に算出する公転周期算出工程と、
前記図形要素の表示色をステップ数当たりのバグ数に応じてモジュール毎に設定する色設定工程と、
前記座標算出工程により算出した座標位置に、前記図形サイズ設定工程により設定したサイズの複数の図形要素を、前記自転周期算出工程により算出した自転周期且つ前記公転周期算出工程により算出した公転周期且つ前記色設定工程により設定した表示色によってクライアントコンピュータのディスプレイに表示させる表示工程とを実行することを特徴とするプログラム品質評価システム。
【請求項３】
前記評価結果データにプログラムのひとつの関数の中に含まれる機能の純粋度を示す凝集度が含まれ、前記プログラム品質評価システムのコンピュータが、前記凝集度が最も高いモジュールの図形要素の形状を他の図形要素の形状と異なる形状に設定することを特徴とする請求項１又は２記載のプログラム品質評価システム。
【請求項４】
前記プログラム品質評価システムのコンピュータが、評価対象コンピュータプログラムの階層構造とステップ数と単位時間当たりの処理回数と該ステップ数当たりの処理時間とバグ数とを含む評価結果データを検出する品質評価部に接続され、該品質評価部から前記評価結果データを抽出することを特徴とする請求項１から３何れかに記載のプログラム品質評価システム。
【請求項５】
評価対象コンピュータプログラムが、複数の命令語から成るメインプログラムモジュールと、該メインプログラムモジュールにより起動され、複数の命令語から成るメニュープログラムモジュールと、該メニュープログラムモジュールから選択的に起動され、複数の命令語から成るヘルププログラムモジュールとタイトル表示プログラムモジュールと処理プログラムモジュールと、該処理プログラムモジュールにより選択的に起動され、複数の命令語から成る複数のサブプログラムモジュールとが階層構造として構成され、前記評価対象コンピュータプログラムの階層構造とステップ数と単位時間当たりの処理回数と該ステップ数当たりの処理時間とバグ数とを含む評価結果データをクライアントコンピュータのディスプレイに図形データとして表示するプログラム品質評価システムのプログラム品質評価方法であって、
該プログラム品質評価システムのコンピュータに、
前記モジュールを表す図形要素の形状を設定する図形設定工程と、
前記図形要素の大きさをモジュール毎のステップ数に応じて設定する図形サイズ設定工程と、
前記図形要素の表示間隔の距離を前記階層構造の階層数に応じて設定する距離設定工程と、
前記形状とサイズと表示間隔距離を設定した複数の図形要素を、前記階層構造の上位から下位への階層構造が認識可能な位置関係にて配置するための座標データを算出する座標算出工程と、
前記モジュール内のステップ数当たりの処理時間を表す図形要素表示動作を前記処理時間に応じて設定する処理時間表示設定工程と、
上位階層の図形要素のモジュールの下位階層に位置するモジュールの図形要素との関係を下位階層モジュールの単位時間当たりの処理回数を表す図形要素表示動作を前記処理回数に応じて設定する処理回数表示設定工程と、
前記図形要素の表示色をステップ数当たりのバグ数に応じて設定する色設定工程と、
前記座標算出工程により設定した座標位置に、前記図形サイズ設定工程により設定したサイズの複数の図形要素を、前記処理回数表示設定工程により設定した処理回数を表す図形要素表示動作且つ前記処理時間表示設定工程により設定した処理時間を表す図形要素表示動作且つ前記色設定工程により設定した表示色によってクライアントコンピュータのディスプレイに表示させる表示工程とを実行させることを特徴とするプログラム品質評価方法。
【請求項６】
評価対象コンピュータプログラムが、複数の命令語から成るメインプログラムモジュールと、該メインプログラムモジュールにより起動され、複数の命令語から成るメニュープログラムモジュールと、該メニュープログラムモジュールから選択的に起動され、複数の命令語から成るヘルププログラムモジュールとタイトル表示プログラムモジュールと処理プログラムモジュールと、該処理プログラムモジュールにより選択的に起動され、複数の命令語から成る複数のサブプログラムモジュールとが階層構造として構成され、前記評価対象コンピュータプログラムの階層構造とステップ数と単位時間当たりの処理回数と該ステップ数当たりの処理時間とバグ数とを含む評価結果データをクライアントコンピュータのディスプレイに図形データとして表示するプログラム品質評価システムのプログラム品質評価方法であって、
該プログラム品質評価システムのコンピュータに、
前記モジュールを表す図形要素の形状を円環状に設定する図形設定工程と、
前記ステップ数が多いモジュールがステップ数の小さいモジュールに対して相対的に大きくなるような図形要素をモジュール毎に設定する図形サイズ設定工程と、
前記図形要素間の距離が階層構造の上位から下位に向かうに従って近接するように要素図形間の距離をモジュール毎に算出する距離算出工程と、
前記図形サイズ設定工程により算出したサイズの複数の図形要素を、前記階層構造の最上位モジュールを恒星、該最上位モジュールの次階層の中位モジュールを恒星の周りを周回する惑星、該中位モジュールの次階層の下位モジュールを惑星の周りを周回する衛星とし、前記距離算出工程により算出した距離の間隔を空けた前記恒星・惑星・衛星の位置関係にて配置するための座標データを算出する座標算出工程と、
前記図形要素自体の回転周期である自転周期を前記ステップ数当たりの処理時間に応じてモジュール毎に算出する自転周期算出工程と、
前記図形要素が他の図形要素の周りを移動する公転周期を前記単位時間当たりの処理回数に応じてモジュール毎に算出する公転周期算出工程と、
前記図形要素の表示色をステップ数当たりのバグ数に応じてモジュール毎に設定する色設定工程と、
前記座標算出工程により算出した座標位置に、前記図形サイズ設定工程により設定したサイズの複数の図形要素を、前記自転周期算出工程により算出した自転周期且つ前記公転周期算出工程により算出した公転周期且つ前記色設定工程により設定した表示色によってクライアントコンピュータのディスプレイに表示させる表示工程とを実行させることを特徴とするプログラム品質評価方法。
【請求項７】
前記評価結果データにプログラムのひとつの関数の中に含まれる機能の純粋度を示す凝集度が含まれ、前記プログラム品質評価システムのコンピュータが、前記凝集度が最も高いモジュールの図形要素の形状を他の図形要素の形状と異なる形状に設定することを特徴とする請求項５又は６記載のプログラム品質評価方法。
【請求項８】
前記プログラム品質評価システムのコンピュータが、評価対象コンピュータプログラムの階層構造とステップ数と単位時間当たりの処理回数と該ステップ数当たりの処理時間とバグ数とを含む評価結果データを検出する品質評価部に接続され、該品質評価部から前記評価結果データを抽出することを特徴とする請求項５から７何れかに記載のプログラム品質評価方法。
【請求項９】
評価対象コンピュータプログラムが、複数の命令語から成るメインプログラムモジュールと、該メインプログラムモジュールにより起動され、複数の命令語から成るメニュープログラムモジュールと、該メニュープログラムモジュールから選択的に起動され、複数の命令語から成るヘルププログラムモジュールとタイトル表示プログラムモジュールと処理プログラムモジュールと、該処理プログラムモジュールにより選択的に起動され、複数の命令語から成る複数のサブプログラムモジュールとが階層構造として構成され、前記評価対象コンピュータプログラムの階層構造とステップ数と単位時間当たりの処理回数と該ステップ数当たりの処理時間とバグ数とを含む評価結果データをクライアントコンピュータのディスプレイに図形データとして表示するプログラム品質評価システムのプログラム品質評価プログラムであって、
該プログラム品質評価システムのコンピュータに、
前記モジュールを表す図形要素の形状を設定する図形設定機能と、
前記図形要素の大きさをモジュール毎のステップ数に応じて設定する図形サイズ設定機能と、
前記図形要素の表示間隔の距離を前記階層構造の階層数に応じて設定する距離設定機能と、
前記形状とサイズと表示間隔距離を設定した複数の図形要素を、前記階層構造の上位から下位への階層構造が認識可能な位置関係にて配置するための座標データを算出する座標算出機能と、
前記モジュール内のステップ数当たりの処理時間を表す図形要素表示動作を前記処理時間に応じて設定する処理時間表示設定機能と、
上位階層の図形要素のモジュールの下位階層に位置するモジュールの図形要素との関係を下位階層モジュールの単位時間当たりの処理回数を表す図形要素表示動作を前記処理回数に応じて設定する処理回数表示設定機能と、
前記図形要素の表示色をステップ数当たりのバグ数に応じて設定する色設定機能と、
前記座標算出機能により設定した座標位置に、前記図形サイズ設定機能により設定したサイズの複数の図形要素を、前記処理回数表示設定機能により設定した処理回数を表す図形要素表示動作且つ前記処理時間表示設定機能により設定した処理時間を表す図形要素表示動作且つ前記色設定機能により設定した表示色によってクライアントコンピュータのディスプレイに表示させる表示機能とを実現させることを特徴とするプログラム品質評価プログラム。
【請求項１０】
評価対象コンピュータプログラムが、複数の命令語から成るメインプログラムモジュールと、該メインプログラムモジュールにより起動され、複数の命令語から成るメニュープログラムモジュールと、該メニュープログラムモジュールから選択的に起動され、複数の命令語から成るヘルププログラムモジュールとタイトル表示プログラムモジュールと処理プログラムモジュールと、該処理プログラムモジュールにより選択的に起動され、複数の命令語から成る複数のサブプログラムモジュールとが階層構造として構成され、前記評価対象コンピュータプログラムの階層構造とステップ数と単位時間当たりの処理回数と該ステップ数当たりの処理時間とバグ数とを含む評価結果データをクライアントコンピュータのディスプレイに図形データとして表示するプログラム品質評価システムのプログラム品  質評価プログラムであって、
該プログラム品質評価システムのコンピュータに、
前記モジュールを表す図形要素の形状を円環状に設定する図形設定機能と、
前記ステップ数が多いモジュールがステップ数の小さいモジュールに対して相対的に大きくなるような図形要素をモジュール毎に設定する図形サイズ設定機能と、
前記図形要素間の距離が階層構造の上位から下位に向かうに従って近接するように要素図形間の距離をモジュール毎に算出する距離算出機能と、
前記図形サイズ設定機能により算出したサイズの複数の図形要素を、前記階層構造の最上位モジュールを恒星、該最上位モジュールの次階層の中位モジュールを恒星の周りを周回する惑星、該中位モジュールの次階層の下位モジュールを惑星の周りを周回する衛星とし、前記距離算出機能により算出した距離の間隔を空けた前記恒星・惑星・衛星の位置関係にて配置するための座標データを算出する座標算出機能と、
前記図形要素自体の回転周期である自転周期を前記ステップ数当たりの処理時間に応じてモジュール毎に算出する自転周期算出機能と、
前記図形要素が他の図形要素の周りを移動する公転周期を前記単位時間当たりの処理回数に応じてモジュール毎に算出する公転周期算出機能と、
前記図形要素の表示色をステップ数当たりのバグ数に応じてモジュール毎に設定する色設定機能と、
前記座標算出機能により算出した座標位置に、前記図形サイズ設定機能により設定したサイズの複数の図形要素を、前記自転周期算出機能により算出した自転周期且つ前記公転周期算出機能により算出した公転周期且つ前記色設定機能により設定した表示色によってクライアントコンピュータのディスプレイに表示させる表示機能とを実現させることを特徴とするプログラム品質評価プログラム。
【請求項１１】
前記評価結果データにプログラムのひとつの関数の中に含まれる機能の純粋度を示す凝集度が含まれ、前記プログラム品質評価システムのコンピュータが、前記凝集度が最も高いモジュールの図形要素の形状を他の図形要素の形状と異なる形状に設定する機能を実現することを特徴とする請求項９又は１０記載のプログラム品質評価プログラム。
【請求項１２】
前記プログラム品質評価システムのコンピュータが、評価対象コンピュータプログラムの階層構造とステップ数と単位時間当たりの処理回数と該ステップ数当たりの処理時間とバグ数とを含む評価結果データを検出する品質評価部に接続され、該品質評価部から前記評価結果データを抽出する機能を実現させる機能を実現させることを特徴とする請求項９から１１何れかに記載のプログラム品質評価プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータを動作させるためのコンピュータプログラムの品質の評価を行うことができるプログラム品質評価システム、プログラム品質評価方法、プログラム品質評価プログラムに係り、特に品質評価のパラメータである評価用数値を操作者が視覚的に評価結果を認識することができるプログラム品質評価システム、プログラム品質評価方法、プログラム品質評価プログラムに関する。
【背景技術】
【０００２】
一般に複数の命令語から成る複数のモジュールを階層化して構成したコンピュータプログラムを開発する際には、プログラムのステップ数・処理時間・ネスト数（構造化プログラミングにおける、何段階にも組み合わせた複数の命令群の纏まりの数）・ループ数・バグ数・凝集度（コヒージョン：プログラムのひとつの関数の中に含まれる機能の純粋度を表す尺度）等の各種パラメータの数値に基づいたプログラムの品質評価が行われており、このプログラムの品質評価に関する技術が記載された文献としては下記の特許文献１及び２が挙げられる。
【０００３】
下記の特許文献１には、プログラムの実行パスの分岐から合流までをまとめて階層化した階層化済実行パス情報を生成する階層化処理部と、生成された階層化済実行パス情報をもとに階層化された任意のレベルの実行パスを図形表示する図形表示部とを設け、プログラムの分岐から合流までをまとめて階層化し、任意のレベルを図形表示すると共に実行パスに対応するソースプログラムやソースプログラムに対応する実行パスを視覚的に関連づけて表示し、プログラムの実行に伴う影響範囲を図形表示上およびソースプログラム上の双方で探索可能としたプログラム解析表示装置技術が記載され、特許文献２には、プログラムの品質を標準的に分析評価するために品質要素を定義し、品質要素に対して基準値を設定し所定の条件に合致するか否かを自動的に集計、判定してプログラムの品質評価を行い、プログラム品質上問題となる品質要素（残存不良内在ポイント）を提示することによって、プログラムに内在する未摘出の不良要素を特定することができるプログラム品質自動評価技術が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平０７−２６１９９０号公報
【特許文献２】特開平０９−２６５３９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
前述の特許文献１記載の技術は、プログラムの実行に伴う影響範囲を図形表示することができ、特許文献２記載の技術は、プログラムに内在する未摘出の不良要素（不良モジュール）を特定することができるものの、モジュール同士の関連や全体のバランスを表現する要素が無いため、評価者がシステム全体像を把握することが困難であるという課題があった。
【０００６】
本発明の目的は、前述の従来技術による課題を解決しようとするものであり、モジュールごとの性質・品質を図形や色や図形動作で表し、モジュール同士の関係を図形の位置座標で表現することによって、プログラム品質の全体像をより視覚的に表示することができるプログラム品質評価システム、プログラム品質評価方法、プログラム品質評価プログラムを提供することである。
【課題を解決するための手段】
【０００７】
前記目的を達成するために本発明は、評価対象コンピュータプログラムが、複数の命令語から成るメインプログラムモジュールと、該メインプログラムモジュールにより起動され、複数の命令語から成るメニュープログラムモジュールと、該メニュープログラムモジュールから選択的に起動され、複数の命令語から成るヘルププログラムモジュールとタイトル表示プログラムモジュールと処理プログラムモジュールと、該処理プログラムモジュールにより選択的に起動され、複数の命令語から成る複数のサブプログラムモジュールとが階層構造として構成され、前記評価対象コンピュータプログラムの階層構造とステップ数と単位時間当たりの処理回数と該ステップ数当たりの処理時間とバグ数とを含む評価結果データをクライアントコンピュータのディスプレイに図形データとして表示するプログラム品質評価システムであって、
該プログラム品質評価システムのコンピュータが、
前記モジュールを表す図形要素の形状を設定する図形設定工程と、
前記図形要素の大きさをモジュール毎のステップ数に応じて設定する図形サイズ設定工程と、
前記図形要素の表示間隔の距離を前記階層構造の階層数に応じて設定する距離設定工程と、
前記形状とサイズと表示間隔距離を設定した複数の図形要素を、前記階層構造の上位から下位への階層構造が認識可能な位置関係にて配置するための座標データを算出する座標算出工程と、
前記モジュール内のステップ数当たりの処理時間を表す図形要素表示動作を前記処理時間に応じて設定する処理時間表示設定工程と、
上位階層の図形要素のモジュールの下位階層に位置するモジュールの図形要素との関係を下位階層モジュールの単位時間当たりの処理回数を表す図形要素表示動作を前記処理回数に応じて設定する処理回数表示設定工程と、
前記図形要素の表示色をステップ数当たりのバグ数に応じて設定する色設定工程と、
前記座標算出工程により設定した座標位置に、図形サイズ設定工程により設定したサイズの複数の図形要素を、前記処理回数表示設定工程により設定した処理回数を表す図形要素表示動作且つ前記処理時間表示設定工程により設定した処理時間を表す図形要素表示動作且つ前記色設定工程により設定した表示色によってクライアントコンピュータのディスプレイに表示させる表示工程とを実行することを第１の特徴とする。
【０００８】
また、本発明は、評価対象コンピュータプログラムが、複数の命令語から成るメインプログラムモジュールと、該メインプログラムモジュールにより起動され、複数の命令語から成るメニュープログラムモジュールと、該メニュープログラムモジュールから選択的に起動され、複数の命令語から成るヘルププログラムモジュールとタイトル表示プログラムモジュールと処理プログラムモジュールと、該処理プログラムモジュールにより選択的に起動され、複数の命令語から成る複数のサブプログラムモジュールとが階層構造として構成され、前記評価対象コンピュータプログラムの階層構造とステップ数と単位時間当たりの処理回数と該ステップ数当たりの処理時間とバグ数とを含む評価結果データをクライアントコンピュータのディスプレイに図形データとして表示するプログラム品質評価システムであって、
該プログラム品質評価システムのコンピュータが、
前記モジュールを表す図形要素の形状を円環状に設定する図形設定工程と、
前記ステップ数が多いモジュールがステップ数の小さいモジュールに対して相対的に大きくなるような図形要素をモジュール毎に設定する図形サイズ設定工程と、
前記図形要素間の距離が階層構造の上位から下位に向かうに従って近接するように要素図形間の距離をモジュール毎に算出する距離算出工程と、
前記図形サイズ設定工程により算出したサイズの複数の図形要素を、前記階層構造の最上位モジュールを恒星、該最上位モジュールの次階層の中位モジュールを恒星の周りを周回する惑星、該中位モジュールの次階層の下位モジュールを惑星の周りを周回する衛星とし、前記距離算出工程により算出した距離の間隔を空けた前記恒星・惑星・衛星の位置関係にて配置するための座標データを算出する座標算出工程と、
前記図形要素自体の回転周期である自転周期を前記ステップ数当たりの処理時間に応じてモジュール毎に算出する自転周期算出工程と、
前記図形要素が他の図形要素の周りを移動する公転周期を前記単位時間当たりの処理回数に応じてモジュール毎に算出する公転周期算出工程と、
前記図形要素の表示色をステップ数当たりのバグ数に応じてモジュール毎に設定する色設定工程と、
前記座標算出工程により算出した座標位置に、前記図形サイズ設定工程により設定したサイズの複数の図形要素を、前記自転周期算出工程により算出した自転周期且つ前記公転周期算出工程により算出した公転周期且つ前記色設定工程により設定した表示色によってクライアントコンピュータのディスプレイに表示させる表示工程とを実行することを第２の特徴とする。
【０００９】
また、本発明は、前記第１又は第２の特徴のプログラム品質評価システムにおいて、前記評価結果データにプログラムのひとつの関数の中に含まれる機能の純粋度を示す凝集度が含まれ、前記プログラム品質評価システムのコンピュータが、前記凝集度が最も高いモジュールの図形要素の形状を他の図形要素の形状と異なる形状に設定することを第３の特徴とし、前記何れかの特徴のプログラム品質評価システムにおいて、前記プログラム品質評価システムのコンピュータが、評価対象コンピュータプログラムの階層構造とステップ数と単位時間当たりの処理回数と該ステップ数当たりの処理時間とバグ数とを含む評価結果データを検出する品質評価部に接続され、該品質評価部から前記評価結果データを抽出することを第４の特徴とする。
【００１０】
さらに本発明は、評価対象コンピュータプログラムが、複数の命令語から成るメインプログラムモジュールと、該メインプログラムモジュールにより起動され、複数の命令語から成るメニュープログラムモジュールと、該メニュープログラムモジュールから選択的に起動され、複数の命令語から成るヘルププログラムモジュールとタイトル表示プログラムモジュールと処理プログラムモジュールと、該処理プログラムモジュールにより選択的に起動され、複数の命令語から成る複数のサブプログラムモジュールとが階層構造として構成され、前記評価対象コンピュータプログラムの階層構造とステップ数と単位時間当たりの処理回数と該ステップ数当たりの処理時間とバグ数とを含む評価結果データをクライアントコンピュータのディスプレイに図形データとして表示するプログラム品質評価システムのプログラム品質評価方法であって、
該プログラム品質評価システムのコンピュータに、
前記モジュールを表す図形要素の形状を設定する図形設定工程と、
前記図形要素の大きさをモジュール毎のステップ数に応じて設定する図形サイズ設定工程と、
前記図形要素の表示間隔の距離を前記階層構造の階層数に応じて設定する距離設定工程と、
前記形状とサイズと表示間隔距離を設定した複数の図形要素を、前記階層構造の上位から下位への階層構造が認識可能な位置関係にて配置するための座標データを算出する座標算出工程と、
前記モジュール内のステップ数当たりの処理時間を表す図形要素表示動作を前記処理時間に応じて設定する処理時間表示設定工程と、
上位階層の図形要素のモジュールの下位階層に位置するモジュールの図形要素との関係を下位階層モジュールの単位時間当たりの処理回数を表す図形要素表示動作を前記処理回数に応じて設定する処理回数表示設定工程と、
前記図形要素の表示色をステップ数当たりのバグ数に応じて設定する色設定工程と、
前記座標算出工程により設定した座標位置に、前記図形サイズ設定工程により設定したサイズの複数の図形要素を、前記処理回数表示設定工程により設定した処理回数を表す図形要素表示動作且つ前記処理時間表示設定工程により設定した処理時間を表す図形要素表示動作且つ前記色設定工程により設定した表示色によってクライアントコンピュータのディスプレイに表示させる表示工程とを実行させることを第５の特徴とする。
【００１１】
また、本発明は、評価対象コンピュータプログラムが、複数の命令語から成るメインプログラムモジュールと、該メインプログラムモジュールにより起動され、複数の命令語から成るメニュープログラムモジュールと、該メニュープログラムモジュールから選択的に起動され、複数の命令語から成るヘルププログラムモジュールとタイトル表示プログラムモジュールと処理プログラムモジュールと、該処理プログラムモジュールにより選択的に起動され、複数の命令語から成る複数のサブプログラムモジュールとが階層構造として構成され、前記評価対象コンピュータプログラムの階層構造とステップ数と単位時間当たりの処理回数と該ステップ数当たりの処理時間とバグ数とを含む評価結果データをクライアントコンピュータのディスプレイに図形データとして表示するプログラム品質評価システムのプログラム品質評価方法であって、
該プログラム品質評価システムのコンピュータに、
前記モジュールを表す図形要素の形状を円環状に設定する図形設定工程と、
前記ステップ数が多いモジュールがステップ数の小さいモジュールに対して相対的に大きくなるような図形要素をモジュール毎に設定する図形サイズ設定工程と、
前記図形要素間の距離が階層構造の上位から下位に向かうに従って近接するように要素図形間の距離をモジュール毎に算出する距離算出工程と、
前記図形サイズ設定工程により算出したサイズの複数の図形要素を、前記階層構造の最上位モジュールを恒星、該最上位モジュールの次階層の中位モジュールを恒星の周りを周回する惑星、該中位モジュールの次階層の下位モジュールを惑星の周りを周回する衛星とし、前記距離算出工程により算出した距離の間隔を空けた前記恒星・惑星・衛星の位置関係にて配置するための座標データを算出する座標算出工程と、
前記図形要素自体の回転周期である自転周期を前記ステップ数当たりの処理時間に応じてモジュール毎に算出する自転周期算出工程と、
前記図形要素が他の図形要素の周りを移動する公転周期を前記単位時間当たりの処理回数に応じてモジュール毎に算出する公転周期算出工程と、
前記図形要素の表示色をステップ数当たりのバグ数に応じてモジュール毎に設定する色設定工程と、
前記座標算出工程により算出した座標位置に、前記図形サイズ設定工程により設定したサイズの複数の図形要素を、前記自転周期算出工程により算出した自転周期且つ前記公転周期算出工程により算出した公転周期且つ前記色設定工程により設定した表示色によってクライアントコンピュータのディスプレイに表示させる表示工程とを実行させることを第６の特徴とする。
【００１２】
また、本発明は、前記第５又は第６の特徴のプログラム品質評価方法において、評価結果データにプログラムのひとつの関数の中に含まれる機能の純粋度を示す凝集度が含まれ、前記プログラム品質評価システムのコンピュータが、前記凝集度が最も高いモジュールの図形要素の形状を他の図形要素の形状と異なる形状に設定することを第７の特徴とし、前記何れかの特徴のプログラム品質評価方法において、前記プログラム品質評価システムのコンピュータが、評価対象コンピュータプログラムの階層構造とステップ数と単位時間当たりの処理回数と該ステップ数当たりの処理時間とバグ数とを含む評価結果データを検出する品質評価部に接続され、該品質評価部から前記評価結果データを抽出することを第８の特徴とする。
【００１３】
また、本発明は、評価対象コンピュータプログラムが、複数の命令語から成るメインプログラムモジュールと、該メインプログラムモジュールにより起動され、複数の命令語から成るメニュープログラムモジュールと、該メニュープログラムモジュールから選択的に起動され、複数の命令語から成るヘルププログラムモジュールとタイトル表示プログラムモジュールと処理プログラムモジュールと、該処理プログラムモジュールにより選択的に起動され、複数の命令語から成る複数のサブプログラムモジュールとが階層構造として構成され、前記評価対象コンピュータプログラムの階層構造とステップ数と単位時間当たりの処理回数と該ステップ数当たりの処理時間とバグ数とを含む評価結果データをクライアントコンピュータのディスプレイに図形データとして表示するプログラム品質評価システムのプログラム品質評価プログラムであって、
該プログラム品質評価システムのコンピュータに、
前記モジュールを表す図形要素の形状を設定する図形設定機能と、
前記図形要素の大きさをモジュール毎のステップ数に応じて設定する図形サイズ設定機能と、
前記図形要素の表示間隔の距離を前記階層構造の階層数に応じて設定する距離設定機能と、
前記形状とサイズと表示間隔距離を設定した複数の図形要素を、前記階層構造の上位から下位への階層構造が認識可能な位置関係にて配置するための座標データを算出する座標算出機能と、
前記モジュール内のステップ数当たりの処理時間を表す図形要素表示動作を前記処理時間に応じて設定する処理時間表示設定機能と、
上位階層の図形要素のモジュールの下位階層に位置するモジュールの図形要素との関係を下位階層モジュールの単位時間当たりの処理回数を表す図形要素表示動作を前記処理回数に応じて設定する処理回数表示設定機能と、
前記図形要素の表示色をステップ数当たりのバグ数に応じて設定する色設定機能と、
前記座標算出機能により設定した座標位置に、前記図形サイズ設定機能により設定したサイズの複数の図形要素を、前記処理回数表示設定機能により設定した処理回数を表す図形要素表示動作且つ前記処理時間表示設定機能により設定した処理時間を表す図形要素表示動作且つ前記色設定機能により設定した表示色によってクライアントコンピュータのディスプレイに表示させる表示機能とを実現させることを第９の特徴とする。
【００１４】
また、本発明は、評価対象コンピュータプログラムが、複数の命令語から成るメインプログラムモジュールと、該メインプログラムモジュールにより起動され、複数の命令語から成るメニュープログラムモジュールと、該メニュープログラムモジュールから選択的に起動され、複数の命令語から成るヘルププログラムモジュールとタイトル表示プログラムモジュールと処理プログラムモジュールと、該処理プログラムモジュールにより選択的に起動され、複数の命令語から成る複数のサブプログラムモジュールとが階層構造として構成され、前記評価対象コンピュータプログラムの階層構造とステップ数と単位時間当たりの処理回数と該ステップ数当たりの処理時間とバグ数とを含む評価結果データをクライアントコンピュータのディスプレイに図形データとして表示するプログラム品質評価システムのプログラム品質評価プログラムであって、
該プログラム品質評価システムのコンピュータに、
前記モジュールを表す図形要素の形状を円環状に設定する図形設定機能と、
前記ステップ数が多いモジュールがステップ数の小さいモジュールに対して相対的に大きくなるような図形要素をモジュール毎に設定する図形サイズ設定機能と、
前記図形要素間の距離が階層構造の上位から下位に向かうに従って近接するように要素図形間の距離をモジュール毎に算出する距離算出機能と、
前記図形サイズ設定機能により算出したサイズの複数の図形要素を、前記階層構造の最上位モジュールを恒星、該最上位モジュールの次階層の中位モジュールを恒星の周りを周回する惑星、該中位モジュールの次階層の下位モジュールを惑星の周りを周回する衛星とし、前記距離算出機能により算出した距離の間隔を空けた前記恒星・惑星・衛星の位置関係にて配置するための座標データを算出する座標算出機能と、
前記図形要素自体の回転周期である自転周期を前記ステップ数当たりの処理時間に応じてモジュール毎に算出する自転周期算出機能と、
前記図形要素が他の図形要素の周りを移動する公転周期を前記単位時間当たりの処理回数に応じてモジュール毎に算出する公転周期算出機能と、
前記図形要素の表示色をステップ数当たりのバグ数に応じてモジュール毎に設定する色設定機能と、
前記座標算出機能により算出した座標位置に、前記図形サイズ設定機能により設定したサイズの複数の図形要素を、前記自転周期算出機能により算出した自転周期且つ前記公転周期算出機能により算出した公転周期且つ前記色設定機能により設定した表示色によってクライアントコンピュータのディスプレイに表示させる表示機能とを実現させることを第１０の特徴とする。
【００１５】
また、本発明は、前記第９又は第１０の特徴のプログラム品質評価プログラムにおいて、前記評価結果データにプログラムのひとつの関数の中に含まれる機能の純粋度を示す凝集度が含まれ、前記プログラム品質評価システムのコンピュータが、前記凝集度が最も高いモジュールの図形要素の形状を他の図形要素の形状と異なる形状に設定する機能を実現することを第１１の特徴とし、前記何れかの特徴のプログラム品質評価プログラムにおいて、前記プログラム品質評価システムのコンピュータが、評価対象コンピュータプログラムの階層構造とステップ数と単位時間当たりの処理回数と該ステップ数当たりの処理時間とバグ数とを含む評価結果データを検出する品質評価部に接続され、該品質評価部から前記評価結果データを抽出する機能を実現させることを第１２の特徴とする。
【発明の効果】
【００１６】
本発明によるプログラム品質評価システム、同方法、同プログラムは、従来は項目毎に数値表示されていた評価結果データを、プログラム品質評価システムのコンピュータが、モジュールを図形化した図形要素の相対的位置によってモジュール間の階層構造を表示し、各モジュールのステップ数を図形要素サイズにより表示し、各モジュール内のステップ数当たりの処理時間及び単位時間当たりの処理回数を図形要素の表示動作によって表示し、各モジュール内のバグ数を表示色によって表示することによって、評価者に評価対象プログラム全体の評価結果の全体像を視覚的に表示することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施形態によるシステム構成を示す図。
【図２】本発明の実施形態による編集処理フローを示す図。
【図３】本発明の実施形態によるモジュール解析処理フローを示す図。
【図４】本発明の実施形態によるモジュール相関表例を示す図。
【図５】本発明の実施形態によるデータ編集処理フローを示す図。
【図６】本発明の実施形態による座標データ作成処理フローを示す図。
【図７】本発明の実施形態による半径算出演算計算例を示す図。
【図８】本発明の実施形態による自動周期算出演算計算例を示す図。
【図９】本発明の実施形態による公転周期算出演算計算例を示す図。
【図１０】本発明の実施形態による座標算出計算例を示す図。
【図１１】本発明の実施形態による座標プロット例を示す図。
【図１２】本発明の実施形態による属性算出計算例を示す図。
【図１３】本発明の実施形態による色算出計算例を示す図。
【図１４】本発明の実施形態による属性算出計算例を示す図。
【図１５】本発明の実施形態による座標プロット更新例を示す図。
【発明を実施するための形態】
【００１８】
以下、本発明によるプログラム品質評価システム、プログラム品質評価方法、プログラム品質評価プログラムの一実施形態を図面を参照して詳細に説明する。なお、本発明の対象とするプログラムとは、コンピュータに処理手順を指示する一連の命令語の集まりであるモジュール（例えば、メインプログラムである「Ｍａｉｎ」、メニュープログラムである「Ｍｅｎｕ」、ヘルププログラムである「Ｈｅｌｐ」、タイトル表示プログラムである「Ｔｉｌｅ」、タイトルによって選択された処理プログラムである「Ｐｒｏｃ」、該処理プログラム内で起動される下位のサブプログラムである「Ｓｕｂ０」等）を複数組み合わせて構成されるものであって、この命令語としては、例えば、クラス（ｃｌａｓｓ：データとその操作手順であるメソッドをまとめたオブジェクトを定義したもの）、関数（ｆｕｎｃｔｉｏｎ：引数を受け取り、定められた通りの処理を実行して結果を返す一連の命令群）、ｆｏｒ文（変数により与えられた初期値から終了値間の範囲の処理を反復して繰り返すための命令文）、ｗｈｉｌｅ文（与えられた条件式が真の間繰り返される処理の命令文）、ネスト（ｎｅｓｔ：構造化プログラミングにおける、プログラムの構築手法のひとつであって、複数の命令群をひとまとまりの単位にくくり、何段階にも組み合わせていくことでプログラムを構成するまとまりをいい、開始記号「｛」により開始され、ネスト終了記号「｝」によって終了する。）、ＥＯＦ（Ｅｎｄ  Ｏｆ  Ｆｉｌｅ：ファイルの終了を示すファイル終了記号）が挙げられ、処理の全体を制御するための親プログラムと、該親プログラムを用いて選択される子プログラム群（例えば「ヘルププログラム」「メニュープログラム」「処理プログラム［ｐｒｏｃｅｅｄｉｎｇｓ  Ｐｒｏｇｒａｍ］」）と、該子プログラム群に含まれる孫プログラム群等の階層構造によって構成される。
【００１９】
［構成］
本発明の一実施形態によるプログラム品質評価方法及び同品質評価方法が適用されるプログラム品質評価システムを含むコンピュータシステムは、図１に示すごとく、プログラムソースを読み込んで当該プログラムのステップ数・処理時間・ネスト数・ループ数・バグ数・凝集度（モジュール内のソースコードが特定の機能を提供すべく如何に協調しているかを表す度合い。凝集度の高いモジュールは、堅牢性・信頼性・再利用性・読みやすさなどの点で好ましく、凝集度の低いモジュールは保守・評価・再利用・読解が難しいため好ましくないとされる。）等の各種パラメータの数値から成る品質評価データ１０２を出力するプログラムの品質評価を行う品質評価部１０１と、該品質評価データ１０２と前記プログラムソース１０７と該プログラムソース１０７の実行結果ログ１０８を読み込んで前記品質評価データ１０２の編集処理を行う編集処理部１０３と、該編集処理部１０３により編集した編集後品質評価データと後述する自転周期データＤＢ９００及び座標データＤＢ９０１からの描画データを読み込み、前記編集後品質評価データの評価結果を操作者が視覚的に品質の評価を認識することができるように描画してクライアントコンピュータ１０９のディスプレイに出力するレタリング部１０６とから構成される。
【００２０】
本実施形態によるプログラム品質評価システムによる品質評価部１０１と編集処理部１０３とレタリング部１０６等はコンピュータのハードウェアやソフトウェアによって構成され、前記各種評価用の数値パラメータから成る品質評価データ１０２を、操作者に容易に目視認識できるように、例えば、後述する図１１の如く太陽系における恒星・惑星・衛星の関係の如くそれぞれの星を円環形状に設定し、天体図の如く表示するが、この形状や配置に限られるものではない。
【００２１】
前記した天体図のような表示手法は、親プログラムを恒星とし、該親プログラムから起動される子プログラム群（例えば「ヘルププログラム」「メニュープログラム」「処理プログラム［ｐｒｏｃｅｅｄｉｎｇｓ  Ｐｒｏｇｒａｍ］」）をメインプログラムを中心とした周回軌道上の惑星の如く表示し、更に、前記子プログラム群に含まれる孫プログラム群を子プログラムを中心とした周回軌道上の衛星の如く表示し、恒星・惑星・衛星のサイズ（直径）を呼び出し数に応じた大きさとし、惑星・衛星の自転周期（図形要素の動作：モーション）を処理時間又は平均処理回数に応じた自転周期とし、惑星・衛星の公転周期（図形要素の動作：モーション）をステップ数当たりの処理時間に応じた公転周期とし、惑星・衛星の恒星に対する座標位置（上位プログラムに対する距離）を恒星・惑星・衛星に応じた距離として表示することによって、例えば太陽系における太陽を中心とした惑星や衛星の天体図の関係の如く表示するものである。
【００２２】
なお、本実施形態による表示方法は、前述した恒星・惑星・衛星の関係の如く表示されるものに限られるものではなく、プログラムの親子孫の関係と、親子孫それぞれの、呼び出し数と処理時間又は平均処理回数とを他の表示形態によって表示しても良く、例えば、樹木における枝葉に喩えたツリー構造とし、枝の太さや色等によって表示するように構成しても良い。また、前記モジュールを表す図形の形状は円環状に限られるものではなく、四角・三角・その他多角形とすることや、星形状その他に設定することもできる。
【００２３】
前記編集処理部１０３は、図２に示す如く、前述した品質評価データ１０２とプログラムソース１０７と実行結果ログ１０８とを入力とし、プログラムのモジュールを１ステップ単位で分析し、得られたデータをモジュール相関表データベース（ＤＢ）９０２に格納するモジュール解析処理部２０１と、１つのモジュールが持つ処理速度・処理時間を別の指標である「周期」に置き換え、また、モジュールの性質・特徴を線画するためのデータを作成し、モジュール相関表データベース９０２及び線画データベース９０３に保存するデータ編集処理部２０６と、前記線画データベース９０３に保存した線画データを基づいて表示するための座標データを作成して座標データベース９０１に保存する座標データ作成処理部２０９とから構成される。なお、前記モジュール相関表データベース９０２は、個々のモジュールに関する情報だけでなく、システム全体に対する情報も併せて保持する。
【００２４】
［動作］
［モジュール解析処理部２０１の動作］
前記モジュール解析処理部２０１のモジュール解析動作は、モジュール１本に対し１ステップずつ判定を行い、結果をモジュール相関表データベースへ出力し、モジュールのＥＯＦを検出したときに次のモジュールを処理し、全モジュールの処理が完了するまで繰返し行っていく処理を実行するものであって、詳細には、図３に示す如く、評価対象であるプログラムソース１０７を読み込み、該プログラムソース１０７中にクラス又は関数の呼出があるか判定を行うステップ３０１と、該ステップ３０１において呼出があると判定したとき、呼出数をカウントしてモジュール相関表データベース９０２に格納（記入）するステップ３０２と、該ステップ３０２に続いて該プログラムソース１０７中から呼び元と呼び先を検出し、モジュール相関表データベース９０２に格納（記入）するステップ３０３と、該ステップに続いて次の１行へ処理を移行して前記ステップ３０１に戻るステップ３０４と、前記ステップ３０１において呼出がないと判定したとき、プログラムソース１０７中にｆｏｒ文又はｗｈｉｌｅ文があるか否かの判定を行うステップ３０５と、該ステップ３０５においてｆｏｒ又はｗｈｉｌｅ文があると判定したとき、ループ処理をカウントし、モジュール相関表データベース９０２に格納するステップ３０６と、該ステップ３０６に続いて次の１行へ処理を移行して前記ステップ３０１に戻る４ステップ３０７と、前記ステップ３０５においてｆｏｒ文及びｗｈｉｌｅ文が無いと判定したとき、ネスト開始記号「｛」があるか否かを判定するステップ３０８と、該ステップ３０８において開始記号がないと判定したとき、プログラムソース１０７中にモジュールのＥＯＦが含まれているか否かを判定し、含まれていないと判定したとき前記ステップ３０１に戻るステップ３１９と、前記ステップ３０８において開始記号があると判定したとき、ネスト総数をカウントアップし、モジュール相関表データベース９０２に格納するステップ３０９とを順次実行する。
【００２５】
次に本実施形態によるモジュール解析処理部２０１は、前述のステップ３０９に続いてネストレベル（Ｌｖ：階層レベル）をカウントするステップ３１０と、該ステップ３１０に続いて次の１行へ処理を移行するステップ３１１と、該ステップ３１１に続いてネスト開始記号「｛」が存在するか否かを判定するステップ３１２と、該ステップ３１２において存在すると判定したとき、前記ネスト総数に値「１」を加算し、モジュール相関表データベース９０２に格納するステップ３１３と、該ステップ３１３に続いて前記カウントしたネストレベル（Ｌｖ）にも値「１」を加算するステップ３１４と、前記ステップ３１２において存在しないと判定したとき及び前記ステップ３１３に続き、プログラムソース１０７にネスト終了記号「｝」が存在するか否かを判定するステップ３１５と、該ステップ３１５においてネスト終了記号「｝」が存在すると判定したとき、ネストレベル（Ｌｖ）を１減算するステップ３１６と、前記ステップ３１５においてネスト終了記号「｝」が存在しないと判定したとき及びステップ３１６に続き、ネストレベル（Ｌｖ）が値「０」か否かを判定し、値「０」でないと判定したときに前記ステップ３１２に戻るステップ３１７と、該ステップ３１７においてネストレベル（Ｌｖ）が０と判定したとき、次の１行へ処理を移行して前記ステップ３０１に戻るステップ３１８とを実行することによって、１つのモジュールに含まれるクラス・関数の呼び出し回数とｆｏｒ文又はｗｈｉｌｅ文によるループ処理回数とネスト総数を検出してモジュール相関表データベース９０２に格納するように動作する。
【００２６】
更に本実施形態によるモジュール解析処理部２０１は、前述のステップ３１９においてファイル終了記号ＥＯＦを検出したとき（１つのモジュール解析が終了したと判定したとき）、プログラムソース１０７中のステップ数をモジュール相関表データベース９０２に格納するステップ３２０と、実行結果ログ１０８から処理時間及び処理回数を取得し、モジュール相関表データベース９０２に格納するステップ３２１と、品質評価データ１０２からバグ件数及び凝集度を取得し、モジュール相関表データベース９０２に格納するステップ３２２と、プログラムソース１０７中の全モジュールの解析が終了したか否かを判定し、解析終了と判定したときに処理を終了するステップ３２３と、該ステップ３２３において全モジュール解析が終了していないと判定したとき、次のモジュール４に移行して前記ステップ３０１に戻るステップ３２４とを実行し、プログラムソース１０７中の全モジュールの解析を行うように動作する。
【００２７】
このように本実施形態によるモジュール解析処理部２０１は、評価対象のプログラムソース１０７の解析を実行し、この解析結果データをモジュール相関表データベース９０２に格納するように動作し、この解析結果データは、図４に示す如く、項番毎に、特定のモジール名と、該モジール名の呼び出し元の元モジュール名である呼び元と、前記モジュール名の呼び先の先モジュール名である呼び先と、呼び先の数である呼び先数と、当該モジュールのプログラムのステップ数と、同モジュールの処理時間と、同モジュールの単位時（１時間）間当たりの処理回数と、同モジュールの反復回数であるネスト回数と、同モジュールのループ回数と、同モジュールのバグ件数と、同モジュールの凝集度の各項目から成り、例えば、項番１のモジュールが「Ｍａｉｎ」に対して、呼び元がなく、呼び先が「Ｍｅｎｕ，Ｈｅｌｐ，Ｐｒｏｃ」、呼び先数が「３」、ステップ数が「１２０」、処理時間が「１秒」、処理回数が「１」、ネスト回数が「１」、ループ回数が「０」、バグ件数が「１」、凝集度が「０」であることが図示の如く登録される。
【００２８】
［データ編集処理部２０６の動作］
前記データ編集処理部２０６は、前記モジュール相関表データベース９０２に格納した解析結果データに基づいてプログラムの評価が管理者に容易に目視確認可能なように前述した恒星・惑星・衛星の関係に模試した天体図の如く描画させるためのデータ編集を行うものであって、このデータ編集処理動作は、図５に示す如く、モジュール相関表データベース９０２を参照し、ステップ数及び呼び先の数をモジュール単位で計算し、計算結果を半径データ（要素図形の大きさ）として半径データベース９０４に格納するステップ４０２と、処理回数および処理時間を使用し、モジュール単位で計算した自転周期（図形要素の動作：モーション）データを自転周期データベース９００に格納するステップ４０４と、ステップ数及び処理時間を使用し、モジュール単位で計算した公転周期データ（図形要素の動作：モーション）を公転周期データベース９０５に格納するステップ４０６と、呼び先・呼び元の関係を使用し、上位モジュールとの距離を算出して座標データベース９０１に格納するステップ４０８と、凝集度を使用し、図形属性データを属性データベース９０６に格納するステップ４１０と、ステップ数及びバグ件数を使用して算出した各モジュールに対する色（ＲＧＢ）データを色データベース９０７に格納するステップ４１２とを実行するように動作する。なお、本実施形態においては前記自転周期データ及び公転周期データを合わせて周期データと呼ぶ。
【００２９】
前記ステップ４０２による半径データの算出処理は、「半径＝（ステップ数÷８）＋（呼び出し数×１０）」の計算式によって算出され、この算出結果は、例えば図７に示す如く、項番１のモジュールが「Ｍａｉｎ」の呼び出し数が「３」、ステップ数が「１２０」の場合の半径が「４５ｍｍ」、項番２のモジュールが「Ｍｅｎｕ」の呼び出し数が「１」、ステップ数が「３５０」の場合の半径が「５３．７５ｍｍ」、項番３のモジュールが「Ｔｉｔｌｅ」の呼び出し数が「０」、ステップ数が「３０」の場合の半径が「３．７５ｍｍ」、項番４のモジュールが「Ｈｅｌｐ」の呼び出し数が「０」、ステップ数が「５００」の場合の半径が「６２．５ｍｍ」、項番５のモジュールが「Ｐｒｏｃ」の呼び出し数が「３」、ステップ数が「１２００」の場合の半径が「１８０ｍｍ」、項番６のモジュールが「Ｓｕｂ０」の呼び出し数が「０」、ステップ数が「６５０」の場合の半径が「８１０２５ｍｍ」の如く格納される。
【００３０】
前記ステップ４０４による自転周期データの算出処理は、バッチ処理の場合、「自転周期［秒］＝バッチ処理平均処理時間［秒］÷（バッチ処理開始から終了までに実行される平均処理時間［秒］）」の計算式によって算出され、オンラインの場合は、「自転周期［秒］＝１２０［秒］÷（１時間当たりに実行される平均処理回数）」によって算出され、この算出結果は、例えば図８に示す如く、項番１のモジュールが「Ｍａｉｎ」の単位時間の処理回数が「１」の場合の自転周期が「１２０秒」、項番２のモジュールが「Ｍｅｎｕ」の単位時間の処理回数が「５」の場合の自転周期が「２４秒」、項番３のモジュールが「Ｔｉｔｌｅ」の単位時間の処理回数が「２」の場合の自転周期が「６０秒」、項番４のモジュールが「Ｈｅｌｐ」の単位時間の処理回数が「３」の場合の自転周期が「４０秒」、項番５のモジュールが「Ｐｒｏｃ」の単位時間の処理回数が「１０」の場合の自転周期が「１２秒」の如く格納される。
【００３１】
前記ステップ４０６による公転周期データの算出処理は、「公転周期［秒］＝処理時間［秒］×２０００／ステップ数」の計算式によって算出され、例えば図９に示す如く、項番１のモジュールが「Ｍａｉｎ」のステップ数が「１２０」、処理時間が「１秒」の場合の公転周期が「なし」、項番２のモジュールが「Ｍｅｎｕ」のステップ数が「３５０」、処理時間が「０．１秒」の場合の公転周期が「０．５７１４３［秒］」、項番３のモジュールが「Ｔｉｔｌｅ」のステップ数が「３０」、処理時間が「０．１秒」の場合の公転周期が「６．６６６６７［秒］」、項番４のモジュールが「Ｈｅｌｐ」のステップ数が「５００」、処理時間が「２秒」の場合の公転周期が「８［秒］」、項番５のモジュールが「Ｐｒｏｃ」のステップ数が「１２００」、処理時間が「５秒」の場合の公転周期が「８．３３３３３［秒］」、項番６のモジュールが「Ｓｕｂ０」のステップ数が「６５０」、処理時間が「１秒」の場合の公転周期が「３．０７６９２［秒］」、項番７のモジュールが「Ｓｕｂ１」のステップ数が「５００」、処理時間が「０．５秒」の場合の公転周期が「２［秒］」の如く登録される。なお、前記計算式の設定は、１Ｋｓのプログラムが１０秒で終了するときに公転周期が２０秒になることを基準とし、メインプログラムの如き呼び出しがないものは公転周期無しとしている。
【００３２】
前記ステップ４０８による上位モジュールとの距離を座標として算出する計算処理は、メインモジュールとサブモジュール間の距離を「１」としたとき、サブモジュールとサブモジュール間の距離を「０．５」とし、これ以下の下位モジュール（孫プログラム以下の階層）間の距離を（１／２）＾ｎ［ｎ＝階層数−１］として算出するものであって、例えば図１０に示す如く、項番２の「Ｍｅｎｕ」の呼び元「Ｍａｉｎ」に対する距離が「１」、項番３の「Ｔｉｔｌｅ」の呼び元「Ｍｅｎｕ」に対する距離が「０．５」、項番４の「Ｈｅｌｐ」の呼び元「Ｍａｉｎ」に対する距離が「１」、項番５の「Ｐｒｏｃ」の呼び元「Ｍａｉｎ」に対する距離が「１」、項番６の「Ｓｕｂ０」の呼び元「Ｐｒｏｃ」に対する距離が「０．５」の如く格納される。なお、前記距離は、各モジュール間の相対的な比率を表すものであって、実際の距離は、評価対象プログラムの階層の深さ、コンピュータのディスプレイのサイズや解像度に応じて決定される。
【００３３】
この表示画面は、例えば、図１１に示す如く、「Ｍａｉｎ」を中心の恒星（図形要素）としたとき、該「Ｍａｉｎ」を中心とした周回軌道上に「Ｍｅｎｕ」と「Ｈｅｌｐ」と「Ｐｒｏｃ」が惑星（図形要素）の如く配置され、前記「Ｍｅｎｕ」を中心とした周回軌道上に「Ｔｉｔｅｌ」が衛星（図形要素）として配置され、同様に前記「Ｐｒｏｃ」を中心とした周回軌道上に「Ｓｕｂ０」と「Ｓｕｂ１」と「Ｓｕｂ３」とが衛星として配置され、更に前記「Ｓｕｂ２」の周回軌道上に「ＦｕｎｃＡ」及び「ＦｕｎｃＢ」が配置されるように描画される。
【００３４】
前記ステップ４１０による図形属性データの算出処理は、各モジュールの凝集度を抽出し、凝集度が最も高いモジュールを同心二重丸線によって表示するものであって、この凝集度による属性データは、例えば図１２（ａ）に示す如く、モジュール「Ｍａｉｎ」「Ｍｅｎｕ」「Ｔｉｔｌｅ」との属性値が「０」、モジュール「Ｈｅｌｐ」の属性値が「５」、モジュール「Ｐｒｏｃ」の属性値が「４０」、モジュール「Ｓｕｂ０」の属性値が「１６」、モジュール「Ｓｕｂ１」の属性値が「１２」、モジュール「Ｓｕｂ２」の属性値が「５」、モジュール「ＦｕｎＡ」及び「ＦｕｎＢ」の属性値が「０」の如く格納され、モジュール「Ｐｒｏｃ」の属性値が最も高値であることから図１２（ｂ）に示した如く二重丸の描画に設定される。
【００３５】
前記ステップ４１２による色（ＲＧＢ）データの算出処理は、Ｒ（赤）値を「２５５」に固定し、Ｇ（グリーン）値を「Ｇ＝（（バグ件数×１０００／ステップ数）×２５．５」、Ｂ（ブルー）値を「Ｂ＝２５５−（（バグ件数×１０００／ステップ数）×２５．５）」の計算式によって算出し、例えば図１３に示す如く各値を算出することによって、ステップ数に対するバグ数比が増加するに応じてＧ（グリーン）色及びＢ（ブルー）値色が減色し、バグ数の増加に応じて赤色が濃くなるように設定している。なお、Ｇ値又はＢ値の計算結果がマイナスの場合は「０」に設定する。
【００３６】
［レタリング部１０６の動作］
次いで本実施形態によるプログラム品質評価システムは、レタリング部１０６が、図６に示す如く、各モジュール毎の、半径データベース９０４に格納した半径データと、属性データベース９０６に格納した属性データと、色データベース９０７に格納した色データとを入力として図１４に示した描画データを算出して座標データベース９０１ａに格納し、データの更新があった際には更新後の描画データを座標データベース９０１に格納するように動作することによって、クライアントコンピュータ１０９のディスプレイに天体図の如きプログラムの評価結果を表示することができる。
【００３７】
このクライアントコンピュータ１０９のディスプレイに表示された天体図の如きプログラム評価結果の描画は、図１５に示す如く、メインプログラムのモジュール「Ｍａｉｎ」を恒星とし、該「Ｍａｉｎ」の周回軌道上に「Ｍｅｎｕ」「Ｈｅｌｐ」「Ｐｒｏｃ」の各モジュールを惑星とし、該モジュール「Ｐｒｏｃ」の周回軌道上に複数のサブモジュール（「Ｓｕｂ」）が周回し、更に該サブモジュールを中心として「Ｆｕｎｃ」が周回する様に表示することによって各モジュールの階層構造を天体図の如く表示して容易に目視認識可能とし、半径値によってステップ数の大きいモジュールを容易に目視認識可能とし、二重丸線によって擬集度が高いモジュール（堅牢性・信頼性・再利用性・読みやすさなどの点で好ましいモジュール）を容易に目視可能とし、バグ件数が多いモジュールを赤色に近づくように色分けして目視認識可能とし、自転周期により処理回数が多いモジュールを目視認識可能とし、公転周期によってステップ数に対する処理時間が冗長なモジュールを目視認識可能とすることによって、プログラムの評価内容を目視確認することができる。
【００３８】
このように本実施形態によるプログラム品質評価システムは、プログラムの評価結果を、プログラムを構成するモジュールの階層構造を例えば天体図の如く表示し、モジュールのステップ数の大小と、凝集度の大きいモジュールと、バグ数が多いモジュールを色分け表示と、図形の回転等の図形表示を行うことによって、プログラムの評価結果を評価者に容易に認識させることができる。
【符号の説明】
【００３９】
１０１：品質評価部、１０２：品質評価データ、１０３：編集処理部、
１０６：レタリング部、１０７：プログラムソース、１０８：実行結果ログ、
１０９：クライアントコンピュータ、２０１：モジュール解析処理部、
２０６：データ編集処理部、２０９：座標データ作成処理部、
９００：自転周期データベース、９０１：座標データベース、
９０２：モジュール相関表データベース、９０３：線画データベース、
９０４：半径データベース、９０５：公転周期データベース、
９０６：属性データベース、９０７：色データベース
【図１】
0005767055.tif 000002
【図２】
0005767055.tif 000003
【図３】
0005767055.tif 000004
【図４】
0005767055.tif 000005
【図５】
0005767055.tif 000006
【図６】
0005767055.tif 000007
【図７】
0005767055.tif 000008
【図８】
0005767055.tif 000009
【図９】
0005767055.tif 000010
【図１０】
0005767055.tif 000011
【図１１】
0005767055.tif 000012
【図１２】
0005767055.tif 000013
【図１３】
0005767055.tif 000014
【図１４】
0005767055.tif 000015
【図１５】
0005767055.tif 000016