プログラム品質評価システム、プログラム品質評価方法、プログラム品質評価プログラム
【課題】評価対象プログラムの品質を評価者に目視認識容易にすること。
【解決手段】品質評価システムのコンピュータである編集処理部が、プログラムソースを構成するモジュールであるMain・Menu・Help・Proc・Sub間の階層構造を円形図形要素の相対的位置により、前記モジュールのステップ数を円形サイズにより、各モジュール内のステップ数当たりの処理時間及び単位時間当たりの処理回数を図形要素の表示回転動作により、各モジュール内のバグ数を表示色によって表示するように図形表示データを作成し、レタリング部が表示処理を行うことによって、評価者に評価対象プログラム全体の評価結果の全体像を視覚的に表示するプログラム品質評価システム。
【解決手段】品質評価システムのコンピュータである編集処理部が、プログラムソースを構成するモジュールであるMain・Menu・Help・Proc・Sub間の階層構造を円形図形要素の相対的位置により、前記モジュールのステップ数を円形サイズにより、各モジュール内のステップ数当たりの処理時間及び単位時間当たりの処理回数を図形要素の表示回転動作により、各モジュール内のバグ数を表示色によって表示するように図形表示データを作成し、レタリング部が表示処理を行うことによって、評価者に評価対象プログラム全体の評価結果の全体像を視覚的に表示するプログラム品質評価システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータを動作させるためのコンピュータプログラムの品質の評価を行うことができるプログラム品質評価システム、プログラム品質評価方法、プログラム品質評価プログラムに係り、特に品質評価のパラメータである評価用数値を操作者が視覚的に評価結果を認識することができるプログラム品質評価システム、プログラム品質評価方法、プログラム品質評価プログラムに関する。
【背景技術】
【0002】
一般に複数の命令語から成る複数のモジュールを階層化して構成したコンピュータプログラムを開発する際には、プログラムのステップ数・処理時間・ネスト数(構造化プログラミングにおける、何段階にも組み合わせた複数の命令群の纏まりの数)・ループ数・バグ数・凝集度(コヒージョン:プログラムのひとつの関数の中に含まれる機能の純粋度を表す尺度)等の各種パラメータの数値に基づいたプログラムの品質評価が行われており、このプログラムの品質評価に関する技術が記載された文献としては下記の特許文献1及び2が挙げられる。
【0003】
下記の特許文献1には、プログラムの実行パスの分岐から合流までをまとめて階層化した階層化済実行パス情報を生成する階層化処理部と、生成された階層化済実行パス情報をもとに階層化された任意のレベルの実行パスを図形表示する図形表示部とを設け、プログラムの分岐から合流までをまとめて階層化し、任意のレベルを図形表示すると共に実行パスに対応するソースプログラムやソースプログラムに対応する実行パスを視覚的に関連づけて表示し、プログラムの実行に伴う影響範囲を図形表示上およびソースプログラム上の双方で探索可能としたプログラム解析表示装置技術が記載され、特許文献2には、プログラムの品質を標準的に分析評価するために品質要素を定義し、品質要素に対して基準値を設定し所定の条件に合致するか否かを自動的に集計、判定してプログラムの品質評価を行い、プログラム品質上問題となる品質要素(残存不良内在ポイント)を提示することによって、プログラムに内在する未摘出の不良要素を特定することができるプログラム品質自動評価技術が記載されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平07−261990号公報
【特許文献2】特開平09−265393号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
前述の特許文献1記載の技術は、プログラムの実行に伴う影響範囲を図形表示することができ、特許文献2記載の技術は、プログラムに内在する未摘出の不良要素(不良モジュール)を特定することができるものの、モジュール同士の関連や全体のバランスを表現する要素が無いため、評価者がシステム全体像を把握することが困難であるという課題があった。
【0006】
本発明の目的は、前述の従来技術による課題を解決しようとするものであり、モジュールごとの性質・品質を図形や色や図形動作で表し、モジュール同士の関係を図形の位置座標で表現することによって、プログラム品質の全体像をより視覚的に表示することができるプログラム品質評価システム、プログラム品質評価方法、プログラム品質評価プログラムを提供することである。
【課題を解決するための手段】
【0007】
前記目的を達成するために本発明は、評価対象コンピュータプログラムが、複数の命令語から成るメインプログラムモジュールと、該メインプログラムモジュールにより起動され、複数の命令語から成るメニュープログラムモジュールと、該メニュープログラムモジュールから選択的に起動され、複数の命令語から成るヘルププログラムモジュールとタイトル表示プログラムモジュールと処理プログラムモジュールと、該処理プログラムモジュールにより選択的に起動され、複数の命令語から成る複数のサブプログラムモジュールとが階層構造として構成され、前記評価対象コンピュータプログラムの階層構造とステップ数と単位時間当たりの処理回数と該ステップ数当たりの処理時間とバグ数とを含む評価結果データをクライアントコンピュータのディスプレイに図形データとして表示するプログラム品質評価システムであって、
該プログラム品質評価システムのコンピュータが、
前記モジュールを表す図形要素の形状を設定する図形設定行程と、
前記図形要素の大きさをモジュール毎のステップ数に応じて設定する図形サイズ設定工程と、
前記図形要素の表示間隔の距離を前記階層構造の階層数に応じて設定する距離設定工程と、
前記形状とサイズと表示間隔距離を設定した複数の図形要素を、前記階層構造の上位から下位への階層構造が認識可能な位置関係にて配置するための座標データを算出する座標算出工程と、
前記モジュール内のステップ数当たりの処理時間を表す図形要素表示動作を前記処理時間に応じて設定する処理時間表示設定工程と、
前記上位階層の図形要素のモジュールの下位階層に位置するモジュールの図形要素との関係を下位階層モジュールの単位時間当たりの処理回数を表す図形要素表示動作を前記処理回数に応じて設定する処理回数間表示設定工程と、
前記要素図形の表示色をステップ数当たりのバグ数に応じて設定する色設定工程と、
前記座標設定工程により設定した座標位置に、前記図形サイズ設定工程により設定したサイズの複数の図形要素を、前記処理回数表示設定工程により設定した処理回数を表す図形要素表示動作且つ前記処理時間表示工程により設定した処理時間を表す図形要素表示動作且つ前記色設定工程により設定した表示色によってクライアントコンピュータのディスプレイに表示させる表示工程とを実行することを第1の特徴とする。
【0008】
また、本発明は、評価対象コンピュータプログラムが、複数の命令語から成るメインプログラムモジュールと、該メインプログラムモジュールにより起動され、複数の命令語から成るメニュープログラムモジュールと、該メニュープログラムモジュールから選択的に起動され、複数の命令語から成るヘルププログラムモジュールとタイトル表示プログラムモジュールと処理プログラムモジュールと、該処理プログラムモジュールにより選択的に起動され、複数の命令語から成る複数のサブプログラムモジュールとが階層構造として構成され、前記評価対象コンピュータプログラムの階層構造とステップ数と単位時間当たりの処理回数と該ステップ数当たりの処理時間とバグ数とを含む評価結果データをクライアントコンピュータのディスプレイに図形データとして表示するプログラム品質評価システムであって、
該プログラム品質評価システムのコンピュータが、
前記モジュールを表す図形要素の形状を円環状に設定する図形設定行程と
前記ステップ数が多いモジュールがステップ数の小さいモジュールに対して相対的に大きくなるような図形要素をモジュール毎に設定する図形サイズ設定工程と、
前記図形要素間の距離が階層構造の上位から下位に向かうに従って近接するように要素図形間の距離をモジュール毎に算出する距離算出工程と、
前記図形サイズ設定工程により算出したサイズの複数の図形要素を、前記階層構造の最上位モジュールを恒星、該最上位モジュールの次階層の中位モジュールを恒星の周りを周回する惑星、該中位モジュールの次階層の下位モジュールを惑星の周りを周回する衛星とし、前記距離算出工程により算出した距離の間隔を空けた前記恒星・惑星・衛星の位置関係にて配置するための座標データを算出する座標算出工程と、
前記図形要素自体の回転周期である自転周期を前記ステップ数当たりの処理時間に応じてモジュール毎に算出する自転周期算出工程と、
前記図形要素が他の図形要素の周りを移動する公転周期を前記単位時間当たりの処理回数に応じてモジュール毎に算出する公転周期算出工程と、
前記要素図形の表示色をステップ数当たりのバグ数に応じてモジュール毎に設定する色設定工程と、
前記座標算出工程により算出した座標位置に、前記図形設定工程により設定したサイズの複数の図形要素を、前記自転周期算出工程により算出した自転周期且つ前記工程周期工程により算出した公転周期且つ前記色設定工程により設定した表示色によってクライアントコンピュータのディスプレイに表示させる表示工程とを実行することを第2の特徴とする。
【0009】
また、本発明は、前記第1又は第2の特徴のプログラム品質評価システムにおいて、前記評価結果データにプログラムのひとつの関数の中に含まれる機能の純粋度を示す凝集度が含まれ、前記プログラム品質評価システムのコンピュータが、前記凝集度が最も高いモジュールの図形要素の形状を他の図形要素の形状と異なる形状に設定することを第3の特徴とし、前記何れかの特徴のプログラム品質評価システムにおいて、前記プログラム品質評価システムのコンピュータが、評価対象コンピュータプログラムの階層構造とステップ数と単位時間当たりの処理回数と該ステップ数当たりの処理時間とバグ数とを含む評価結果データを検出する品質評価部に接続され、該品質評価部から前記品質評価データを抽出することを第4の特徴とする。
【0010】
さらに本発明は、評価対象コンピュータプログラムが、複数の命令語から成るメインプログラムモジュールと、該メインプログラムモジュールにより起動され、複数の命令語から成るメニュープログラムモジュールと、該メニュープログラムモジュールから選択的に起動され、複数の命令語から成るヘルププログラムモジュールとタイトル表示プログラムモジュールと処理プログラムモジュールと、該処理プログラムモジュールにより選択的に起動され、複数の命令語から成る複数のサブプログラムモジュールとが階層構造として構成され、前記評価対象コンピュータプログラムの階層構造とステップ数と単位時間当たりの処理回数と該ステップ数当たりの処理時間とバグ数とを含む評価結果データをクライアントコンピュータのディスプレイに図形データとして表示するプログラム品質評価システムのプログラム品質評価方法であって、
該プログラム品質評価システムのコンピュータに、
前記モジュールを表す図形要素の形状を設定する図形設定行程と、
前記図形要素の大きさをモジュール毎のステップ数に応じて設定する図形サイズ設定工程と、
前記図形要素の表示間隔の距離を前記階層構造の階層数に応じて設定する距離設定工程と、
前記形状とサイズと表示間隔距離を設定した複数の図形要素を、前記階層構造の上位から下位への階層構造が認識可能な位置関係にて配置するための座標データを算出する座標算出工程と、
前記モジュール内のステップ数当たりの処理時間を表す図形要素表示動作を前記処理時間に応じて設定する処理時間表示設定工程と、
前記上位階層の図形要素のモジュールの下位階層に位置するモジュールの図形要素との関係を下位階層モジュールの単位時間当たりの処理回数を表す図形要素表示動作を前記処理回数に応じて設定する処理回数間表示設定工程と、
前記要素図形の表示色をステップ数当たりのバグ数に応じて設定する色設定工程と、
前記座標設定工程により設定した座標位置に、前記図形サイズ設定工程により設定したサイズの複数の図形要素を、前記処理回数表示設定工程により設定した処理回数を表す図形要素表示動作且つ前記処理時間表示工程により設定した処理時間を表す図形要素表示動作且つ前記色設定工程により設定した表示色によってクライアントコンピュータのディスプレイに表示させる表示工程とを実行させることを第5の特徴とする。
【0011】
また、本発明は、評価対象コンピュータプログラムが、複数の命令語から成るメインプログラムモジュールと、該メインプログラムモジュールにより起動され、複数の命令語から成るメニュープログラムモジュールと、該メニュープログラムモジュールから選択的に起動され、複数の命令語から成るヘルププログラムモジュールとタイトル表示プログラムモジュールと処理プログラムモジュールと、該処理プログラムモジュールにより選択的に起動され、複数の命令語から成る複数のサブプログラムモジュールとが階層構造として構成され、前記評価対象コンピュータプログラムの階層構造とステップ数と単位時間当たりの処理回数と該ステップ数当たりの処理時間とバグ数とを含む評価結果データをクライアントコンピュータのディスプレイに図形データとして表示するプログラム品質評価システムのプログラム品質評価方法であって、
該プログラム品質評価システムのコンピュータに、
前記モジュールを表す図形要素の形状を円環状に設定する図形設定行程と
前記ステップ数が多いモジュールがステップ数の小さいモジュールに対して相対的に大きくなるような図形要素をモジュール毎に設定する図形サイズ設定工程と、
前記図形要素間の距離が階層構造の上位から下位に向かうに従って近接するように要素図形間の距離をモジュール毎に算出する距離算出工程と、
前記図形サイズ設定工程により算出したサイズの複数の図形要素を、前記階層構造の最上位モジュールを恒星、該最上位モジュールの次階層の中位モジュールを恒星の周りを周回する惑星、該中位モジュールの次階層の下位モジュールを惑星の周りを周回する衛星とし、前記距離算出工程により算出した距離の間隔を空けた前記恒星・惑星・衛星の位置関係にて配置するための座標データを算出する座標算出工程と、
前記図形要素自体の回転周期である自転周期を前記ステップ数当たりの処理時間に応じてモジュール毎に算出する自転周期算出工程と、
前記図形要素が他の図形要素の周りを移動する公転周期を前記単位時間当たりの処理回数に応じてモジュール毎に算出する公転周期算出工程と、
前記要素図形の表示色をステップ数当たりのバグ数に応じてモジュール毎に設定する色設定工程と、
前記座標算出工程により算出した座標位置に、前記図形設定工程により設定したサイズの複数の図形要素を、前記自転周期算出工程により算出した自転周期且つ前記工程周期工程により算出した公転周期且つ前記色設定工程により設定した表示色によってクライアントコンピュータのディスプレイに表示させる表示工程とを実行させることを第6の特徴とする。
【0012】
また、本発明は、前記第5又は第6の特徴のプログラム品質評価方法において、評価結果データにプログラムのひとつの関数の中に含まれる機能の純粋度を示す凝集度が含まれ、前記プログラム品質評価システムのコンピュータが、前記凝集度が最も高いモジュールの図形要素の形状を他の図形要素の形状と異なる形状に設定することを第7の特徴とし、前記何れかの特徴のプログラム品質評価方法において、前記プログラム品質評価システムのコンピュータが、評価対象コンピュータプログラムの階層構造とステップ数と単位時間当たりの処理回数と該ステップ数当たりの処理時間とバグ数とを含む評価結果データを検出する品質評価部に接続され、該品質評価部から前記品質評価データを抽出することを第8の特徴とする。
【0013】
また、本発明は、評価対象コンピュータプログラムが、複数の命令語から成るメインプログラムモジュールと、該メインプログラムモジュールにより起動され、複数の命令語から成るメニュープログラムモジュールと、該メニュープログラムモジュールから選択的に起動され、複数の命令語から成るヘルププログラムモジュールとタイトル表示プログラムモジュールと処理プログラムモジュールと、該処理プログラムモジュールにより選択的に起動され、複数の命令語から成る複数のサブプログラムモジュールとが階層構造として構成され、前記評価対象コンピュータプログラムの階層構造とステップ数と単位時間当たりの処理回数と該ステップ数当たりの処理時間とバグ数とを含む評価結果データをクライアントコンピュータのディスプレイに図形データとして表示するプログラム品質評価システムのプログラム品質評価プログラムであって、
該プログラム品質評価システムのコンピュータに、
前記モジュールを表す図形要素の形状を設定する図形設定機能と、
前記図形要素の大きさをモジュール毎のステップ数に応じて設定する図形サイズ設定機能と、
前記図形要素の表示間隔の距離を前記階層構造の階層数に応じて設定する距離設定機能と、
前記形状とサイズと表示間隔距離を設定した複数の図形要素を、前記階層構造の上位から下位への階層構造が認識可能な位置関係にて配置するための座標データを算出する座標算出機能と、
前記モジュール内のステップ数当たりの処理時間を表す図形要素表示動作を前記処理時間に応じて設定する処理時間表示設定機能と、
前記上位階層の図形要素のモジュールの下位階層に位置するモジュールの図形要素との関係を下位階層モジュールの単位時間当たりの処理回数を表す図形要素表示動作を前記処理回数に応じて設定する処理回数間表示設定機能と、
前記要素図形の表示色をステップ数当たりのバグ数に応じて設定する色設定機能と、
前記座標設定機能により設定した座標位置に、前記図形サイズ設定機能により設定したサイズの複数の図形要素を、前記処理回数表示設定機能により設定した処理回数を表す図形要素表示動作且つ前記処理時間表示機能により設定した処理時間を表す図形要素表示動作且つ前記色設定機能により設定した表示色によってクライアントコンピュータのディスプレイに表示させる表示機能とを実現させることを第9の特徴とする。
【0014】
また、本発明は、評価対象コンピュータプログラムが、複数の命令語から成るメインプログラムモジュールと、該メインプログラムモジュールにより起動され、複数の命令語から成るメニュープログラムモジュールと、該メニュープログラムモジュールから選択的に起動され、複数の命令語から成るヘルププログラムモジュールとタイトル表示プログラムモジュールと処理プログラムモジュールと、該処理プログラムモジュールにより選択的に起動され、複数の命令語から成る複数のサブプログラムモジュールとが階層構造として構成され、前記評価対象コンピュータプログラムの階層構造とステップ数と単位時間当たりの処理回数と該ステップ数当たりの処理時間とバグ数とを含む評価結果データをクライアントコンピュータのディスプレイに図形データとして表示するプログラム品質評価システムのプログラム品質評価プログラムであって、
該プログラム品質評価システムのコンピュータに、
前記モジュールを表す図形要素の形状を円環状に設定する図形設定機能と、
前記ステップ数が多いモジュールがステップ数の小さいモジュールに対して相対的に大きくなるような図形要素をモジュール毎に設定する図形サイズ設定機能と、
前記図形要素間の距離が階層構造の上位から下位に向かうに従って近接するように要素図形間の距離をモジュール毎に算出する距離算出機能と、
前記図形サイズ設定機能により算出したサイズの複数の図形要素を、前記階層構造の最上位モジュールを恒星、該最上位モジュールの次階層の中位モジュールを恒星の周りを周回する惑星、該中位モジュールの次階層の下位モジュールを惑星の周りを周回する衛星とし、前記距離算出機能により算出した距離の間隔を空けた前記恒星・惑星・衛星の位置関係にて配置するための座標データを算出する座標算出機能と、
前記図形要素自体の回転周期である自転周期を前記ステップ数当たりの処理時間に応じてモジュール毎に算出する自転周期算出機能と、
前記図形要素が他の図形要素の周りを移動する公転周期を前記単位時間当たりの処理回数に応じてモジュール毎に算出する公転周期算出機能と、
前記要素図形の表示色をステップ数当たりのバグ数に応じてモジュール毎に設定する色設定機能と、
前記座標算出機能により算出した座標位置に、前記図形設定機能により設定したサイズの複数の図形要素を、前記自転周期算出機能により算出した自転周期且つ前記工程周期機能により算出した公転周期且つ前記色設定機能により設定した表示色によってクライアントコンピュータのディスプレイに表示させる表示機能とを実現させることを第10の特徴とする。
【0015】
また、本発明は、前記第9又は第10の特徴のプログラム品質評価プログラムにおいて、前記評価結果データにプログラムのひとつの関数の中に含まれる機能の純粋度を示す凝集度が含まれ、前記プログラム品質評価システムのコンピュータが、前記凝集度が最も高いモジュールの図形要素の形状を他の図形要素の形状と異なる形状に設定する機能を実現することを第11の特徴とし、前記何れかの特徴のプログラム品質評価プログラムにおいて、前記プログラム品質評価システムのコンピュータが、評価対象コンピュータプログラムの階層構造とステップ数と単位時間当たりの処理回数と該ステップ数当たりの処理時間とバグ数とを含む評価結果データを検出する品質評価部に接続され、該品質評価部から前記品質評価データを抽出する機能を実現させる機能を実現させることを第12の特徴とする。
【発明の効果】
【0016】
本発明によるプログラム品質評価システム、同方法、同プログラムは、従来は項目毎に数値表示されていた評価結果データを、プログラム品質評価システムのコンピュータが、モジュールを図形化した図形要素の相対的位置によってモジュール間の階層構造を表示し、各モジュールのステップ数を図形要素サイズにより表示し、各モジュール内のステップ数当たりの処理時間及び単位時間当たりの処理回数を図形要素の表示動作によって表示し、各モジュール内のバグ数を表示色によって表示することによって、評価者に評価対象プログラム全体の評価結果の全体像を視覚的に表示することができる。
【図面の簡単な説明】
【0017】
【図1】本発明の実施形態によるシステム構成を示す図。
【図2】本発明の実施形態による編集処理フローを示す図。
【図3】本発明の実施形態によるモジュール解析処理フローを示す図。
【図4】本発明の実施形態によるモジュール相関表例を示す図。
【図5】本発明の実施形態によるデータ編集処理フローを示す図。
【図6】本発明の実施形態による座標データ作成処理フローを示す図。
【図7】本発明の実施形態による半径算出演算計算例を示す図。
【図8】本発明の実施形態による自動周期算出演算計算例を示す図。
【図9】本発明の実施形態による公転周期算出演算計算例を示す図。
【図10】本発明の実施形態による座標算出計算例を示す図。
【図11】本発明の実施形態による座標プロット例を示す図。
【図12】本発明の実施形態による属性算出計算例を示す図。
【図13】本発明の実施形態による色算出計算例を示す図。
【図14】本発明の実施形態による属性算出計算例を示す図。
【図15】本発明の実施形態による座標プロット更新例を示す図。
【発明を実施するための形態】
【0018】
以下、本発明によるプログラム品質評価システム、プログラム品質評価方法、プログラム品質評価プログラムの一実施形態を図面を参照して詳細に説明する。なお、本発明の対象とするプログラムとは、コンピュータに処理手順を指示する一連の命令語の集まりであるモジュール(例えば、メインプログラムである「Main」、メニュープログラムである「Menu」、ヘルププログラムである「Help」、タイトル表示プログラムである「Tile」、タイトルによって選択された処理プログラムである「Proc」、該処理プログラム内で起動される下位のサブプログラムである「Sub0」等)を複数組み合わせて構成されるものであって、この命令語としては、例えば、クラス(class:データとその操作手順であるメソッドをまとめたオブジェクトを定義したもの)、関数(function:引数を受け取り、定められた通りの処理を実行して結果を返す一連の命令群)、for文(変数により与えられた初期値から終了値間の範囲の処理を反復して繰り返すための命令文)、while文(与えられた条件式が真の間繰り返される処理の命令文)、ネスト(nest:構造化プログラミングにおける、プログラムの構築手法のひとつであって、複数の命令群をひとまとまりの単位にくくり、何段階にも組み合わせていくことでプログラムを構成するまとまりをいい、開始記号「{」により開始され、ネスト終了記号「}」によって終了する。)、EOF(End Of File:ファイルの終了を示すファイル終了記号)が挙げられ、処理の全体を制御するための親プログラムと、該親プログラムを用いて選択される子プログラム群(例えば「ヘルププログラム」「メニュープログラム」「処理プログラム[proceedings Program]」)と、該子プログラム群に含まれる孫プログラム群等の階層構造によって構成される。
【0019】
[構成]
本発明の一実施形態によるプログラム品質評価方法及び同品質評価方法が適用されるプログラム品質評価システムを含むコンピュータシステムは、図1に示すごとく、プログラムソースを読み込んで当該プログラムのステップ数・処理時間・ネスト数・ループ数・バグ数・凝集度(モジュール内のソースコードが特定の機能を提供すべく如何に協調しているかを表す度合い。凝集度の高いモジュールは、堅牢性・信頼性・再利用性・読みやすさなどの点で好ましく、凝集度の低いモジュールは保守・評価・再利用・読解が難しいため好ましくないとされる。)等の各種パラメータの数値から成る品質評価データ102を出力するプログラムの品質評価を行う品質評価部101と、該品質評価データ102と前記プログラムソース107と該プログラムソース107の実行結果ログ108を読み込んで前記品質評価データ102の編集処理を行う編集処理部103と、該編集処理部103により編集した編集後品質評価データと後述する自転周期データDB900及び座標データDB901からの描画データを読み込み、前記編集後品質評価データの評価結果を操作者が視覚的に品質の評価を認識することができるように描画してクライアントコンピュータ109のディスプレイに出力するレタリング部106とから構成される。
【0020】
本実施形態によるプログラム品質評価システムによる品質評価部101と編集処理部103とレタリング部106等はコンピュータのハードウェアやソフトウェアによって構成され、前記各種評価用の数値パラメータから成る品質評価データ102を、操作者に容易に目視認識できるように、例えば、後述する図11の如く太陽系における恒星・惑星・衛星の関係の如くそれぞれの星を円環形状に設定し、天体図の如く表示するが、この形状や配置に限られるものではない。
【0021】
前記した天体図のような表示手法は、親プログラムを恒星とし、該親プログラムから起動される子プログラム群(例えば「ヘルププログラム」「メニュープログラム」「処理プログラム[proceedings Program]」)をメインプログラムを中心とした周回軌道上の惑星の如く表示し、更に、前記子プログラム群に含まれる孫プログラム群を子プログラムを中心とした周回軌道上の衛星の如く表示し、恒星・惑星・衛星のサイズ(直径)を呼び出し数に応じた大きさとし、惑星・衛星の自転周期(図形要素の動作:モーション)を処理時間又は平均処理回数に応じた自転周期とし、惑星・衛星の公転周期(図形要素の動作:モーション)をステップ数当たりの処理時間に応じた公転周期とし、惑星・衛星の恒星に対する座標位置(上位プログラムに対する距離)を恒星・惑星・衛星に応じた距離として表示することによって、例えば太陽系における太陽を中心とした惑星や衛星の天体図の関係の如く表示するものである。
【0022】
なお、本実施形態による表示方法は、前述した恒星・惑星・衛星の関係の如く表示されるものに限られるものではなく、プログラムの親子孫の関係と、親子孫それぞれの、呼び出し数と処理時間又は平均処理回数とを他の表示形態によって表示しても良く、例えば、樹木における枝葉に喩えたツリー構造とし、枝の太さや色等によって表示するように構成しても良い。また、前記モジュールを表す図形の形状は円環状に限られるものではなく、四角・三角・その他多角形とすることや、星形状その他に設定することもできる。
【0023】
前記編集処理部103は、図2に示す如く、前述した品質評価データ102とプログラムソース107と実行結果ログ108とを入力とし、プログラムのモジュールを1ステップ単位で分析し、得られたデータをモジュール相関表データベース(DB)902に格納するモジュール解析処理部201と、1つのモジュールが持つ処理速度・処理時間を別の指標である「周期」に置き換え、また、モジュールの性質・特徴を線画するためのデータを作成し、モジュール相関表データベース902及び線画データベース903に保存するデータ編集処理部206と、前記線画データベース903に保存した線画データを基づいて表示するための座標データを作成して座標データベース901に保存する座標データ作成処理部209とから構成される。なお、前記モジュール相関表データベース902は、個々のモジュールに関する情報だけでなく、システム全体に対する情報も併せて保持する。
【0024】
[動作]
[モジュール解析処理部201の動作]
前記モジュール解析処理部201のモジュール解析動作は、モジュール1本に対し1ステップずつ判定を行い、結果をモジュール相関表データベースへ出力し、モジュールのEOFを検出したときに次のモジュールを処理し、全モジュールの処理が完了するまで繰返し行っていく処理を実行するものであって、詳細には、図3に示す如く、評価対象であるプログラムソース107を読み込み、該プログラムソース107中にクラス又は関数の呼出があるか判定を行うステップ301と、該ステップ301において呼出があると判定したとき、呼出数をカウントしてモジュール相関表データベース902に格納(記入)するステップ302と、該ステップ302に続いて該プログラムソース107中から呼び元と呼び先を検出し、モジュール相関表データベース902に格納(記入)するステップ303と、該ステップに続いて次の1行へ処理を移行して前記ステップ301に戻るステップ304と、前記ステップ301において呼出がないと判定したとき、プログラムソース107中にfor文又はwhile文があるか否かの判定を行うステップ305と、該ステップ305においてfor又はwhile文があると判定したとき、ループ処理をカウントし、モジュール相関表データベース902に格納するステップ306と、該ステップ306に続いて次の1行へ処理を移行して前記ステップ301に戻る4ステップ307と、前記ステップ305においてfor文及びwhile文が無いと判定したとき、ネスト開始記号「{」があるか否かを判定するステップ308と、該ステップ308において開始記号がないと判定したとき、プログラムソース107中にモジュールのEOFが含まれているか否かを判定し、含まれていないと判定したとき前記ステップ301に戻るステップ319と、前記ステップ308において開始記号があると判定したとき、ネスト総数をカウントアップし、モジュール相関表データベース902に格納するステップ309とを順次実行する。
【0025】
次に本実施形態によるモジュール解析処理部201は、前述のステップ309に続いてネストレベル(Lv:階層レベル)をカウントするステップ310と、該ステップ310に続いて次の1行へ処理を移行するステップ311と、該ステップ311に続いてネスト開始記号「{」が存在するか否かを判定するステップ312と、該ステップ312において存在すると判定したとき、前記ネスト総数に値「1」を加算し、モジュール相関表データベース902に格納するステップ313と、該ステップ313に続いて前記カウントしたネストレベル(Lv)にも値「1」を加算するステップ314と、前記ステップ312において存在しないと判定したとき及び前記ステップ313に続き、プログラムソース107にネスト終了記号「}」が存在するか否かを判定するステップ315と、該ステップ315においてネスト終了記号「}」が存在すると判定したとき、ネストレベル(Lv)を1減算するステップ316と、前記ステップ315においてネスト終了記号「}」が存在しないと判定したとき及びステップ316に続き、ネストレベル(Lv)が値「0」か否かを判定し、値「0」でないと判定したときに前記ステップ312に戻るステップ317と、該ステップ317においてネストレベル(Lv)が0と判定したとき、次の1行へ処理を移行して前記ステップ301に戻るステップ318とを実行することによって、1つのモジュールに含まれるクラス・関数の呼び出し回数とfor文又はwhile文によるループ処理回数とネスト総数を検出してモジュール相関表データベース902に格納するように動作する。
【0026】
更に本実施形態によるモジュール解析処理部201は、前述のステップ319においてファイル終了記号EOFを検出したとき(1つのモジュール解析が終了したと判定したとき)、プログラムソース107中のステップ数をモジュール相関表データベース902に格納するステップ320と、実行結果ログ108から処理時間及び処理回数を取得し、モジュール相関表データベース902に格納するステップ321と、品質評価データ102からバグ件数及び凝集度を取得し、モジュール相関表データベース902に格納するステップ322と、プログラムソース107中の全モジュールの解析が終了したか否かを判定し、解析終了と判定したときに処理を終了するステップ323と、該ステップ323において全モジュール解析が終了していないと判定したとき、次のモジュール4に移行して前記ステップ301に戻るステップ324とを実行し、プログラムソース107中の全モジュールの解析を行うように動作する。
【0027】
このように本実施形態によるモジュール解析処理部201は、評価対象のプログラムソース107の解析を実行し、この解析結果データをモジュール相関表データベース902に格納するように動作し、この解析結果データは、図4に示す如く、項番毎に、特定のモジール名と、該モジール名の呼び出し元の元モジュール名である呼び元と、前記モジュール名の呼び先の先モジュール名である呼び先と、呼び先の数である呼び先数と、当該モジュールのプログラムのステップ数と、同モジュールの処理時間と、同モジュールの単位時(1時間)間当たりの処理回数と、同モジュールの反復回数であるネスト回数と、同モジュールのループ回数と、同モジュールのバグ件数と、同モジュールの凝集度の各項目から成り、例えば、項番1のモジュールが「Main」に対して、呼び元がなく、呼び先が「Menu,Help,Proc」、呼び先数が「3」、ステップ数が「120」、処理時間が「1秒」、処理回数が「1」、ネスト回数が「1」、ループ回数が「0」、バグ件数が「1」、凝集度が「0」であることが図示の如く登録される。
【0028】
[データ編集処理部206の動作]
前記データ編集処理部206は、前記モジュール相関表データベース902に格納した解析結果データに基づいてプログラムの評価が管理者に容易に目視確認可能なように前述した恒星・惑星・衛星の関係に模試した天体図の如く描画させるためのデータ編集を行うものであって、このデータ編集処理動作は、図5に示す如く、モジュール相関表データベース902を参照し、ステップ数及び呼び先の数をモジュール単位で計算し、計算結果を半径データ(要素図形の大きさ)として半径データベース904に格納するステップ402と、処理回数および処理時間を使用し、モジュール単位で計算した自転周期(図形要素の動作:モーション)データを自転周期データベース900に格納するステップ404と、ステップ数及び処理時間を使用し、モジュール単位で計算した公転周期データ(図形要素の動作:モーション)を公転周期データベース905に格納するステップ406と、呼び先・呼び元の関係を使用し、上位モジュールとの距離を算出して座標データベース901に格納するステップ408と、凝集度を使用し、図形属性データを属性データベース906に格納するステップ410と、ステップ数及びバグ件数を使用して算出した各モジュールに対する色(RGB)データを色データベース907に格納するステップ412とを実行するように動作する。なお、本実施形態においては前記自転周期データ及び公転周期データを合わせて周期データと呼ぶ。
【0029】
前記ステップ402による半径データの算出処理は、「半径=(ステップ数÷8)+(呼び出し数×10)」の計算式によって算出され、この算出結果は、例えば図7に示す如く、項番1のモジュールが「Main」の呼び出し数が「3」、ステップ数が「120」の場合の半径が「45mm」、項番2のモジュールが「Menu」の呼び出し数が「1」、ステップ数が「350」の場合の半径が「53.75mm」、項番3のモジュールが「Title」の呼び出し数が「0」、ステップ数が「30」の場合の半径が「3.75mm」、項番4のモジュールが「Help」の呼び出し数が「0」、ステップ数が「500」の場合の半径が「62.5mm」、項番5のモジュールが「Proc」の呼び出し数が「3」、ステップ数が「1200」の場合の半径が「180mm」、項番6のモジュールが「Sub0」の呼び出し数が「0」、ステップ数が「650」の場合の半径が「81025mm」の如く格納される。
【0030】
前記ステップ404による自転周期データの算出処理は、バッチ処理の場合、「自転周期[秒]=バッチ処理平均処理時間[秒]÷(バッチ処理開始から終了までに実行される平均処理時間[秒])」の計算式によって算出され、オンラインの場合は、「自転周期[秒]=120[秒]÷(1時間当たりに実行される平均処理回数)」によって算出され、この算出結果は、例えば図8に示す如く、項番1のモジュールが「Main」の単位時間の処理回数が「1」の場合の自転周期が「120秒」、項番2のモジュールが「Menu」の単位時間の処理回数が「5」の場合の自転周期が「24秒」、項番3のモジュールが「Title」の単位時間の処理回数が「2」の場合の自転周期が「60秒」、項番4のモジュールが「Help」の単位時間の処理回数が「3」の場合の自転周期が「40秒」、項番5のモジュールが「Proc」の単位時間の処理回数が「10」の場合の自転周期が「12秒」の如く格納される。
【0031】
前記ステップ406による公転周期データの算出処理は、「公転周期[秒]=処理時間[秒]×2000/ステップ数」の計算式によって算出され、例えば図9に示す如く、項番1のモジュールが「Main」のステップ数が「120」、処理時間が「1秒」の場合の公転周期が「なし」、項番2のモジュールが「Menu」のステップ数が「350」、処理時間が「0.1秒」の場合の公転周期が「0.57143[秒]」、項番3のモジュールが「Title」のステップ数が「30」、処理時間が「0.1秒」の場合の公転周期が「6.66667[秒]」、項番4のモジュールが「Help」のステップ数が「500」、処理時間が「2秒」の場合の公転周期が「8[秒]」、項番5のモジュールが「Proc」のステップ数が「1200」、処理時間が「5秒」の場合の公転周期が「8.33333[秒]」、項番6のモジュールが「Sub0」のステップ数が「650」、処理時間が「1秒」の場合の公転周期が「3.07692[秒]」、項番7のモジュールが「Sub1」のステップ数が「500」、処理時間が「0.5秒」の場合の公転周期が「2[秒]」の如く登録される。なお、前記計算式の設定は、1Ksのプログラムが10秒で終了するときに公転周期が20秒になることを基準とし、メインプログラムの如き呼び出しがないものは公転周期無しとしている。
【0032】
前記ステップ408による上位モジュールとの距離を座標として算出する計算処理は、メインモジュールとサブモジュール間の距離を「1」としたとき、サブモジュールとサブモジュール間の距離を「0.5」とし、これ以下の下位モジュール(孫プログラム以下の階層)間の距離を(1/2)^n[n=階層数−1]として算出するものであって、例えば図10に示す如く、項番2の「Menu」の呼び元「Main」に対する距離が「1」、項番3の「Title」の呼び元「Menu」に対する距離が「0.5」、項番4の「Help」の呼び元「Main」に対する距離が「1」、項番5の「Proc」の呼び元「Main」に対する距離が「1」、項番6の「Sub0」の呼び元「Proc」に対する距離が「0.5」の如く格納される。なお、前記距離は、各モジュール間の相対的な比率を表すものであって、実際の距離は、評価対象プログラムの階層の深さ、コンピュータのディスプレイのサイズや解像度に応じて決定される。
【0033】
この表示画面は、例えば、図11に示す如く、「Main」を中心の恒星(図形要素)としたとき、該「Main」を中心とした周回軌道上に「Menu」と「Help」と「Proc」が惑星(図形要素)の如く配置され、前記「Menu」を中心とした周回軌道上に「Titel」が衛星(図形要素)として配置され、同様に前記「Proc」を中心とした周回軌道上に「Sub0」と「Sub1」と「Sub3」とが衛星として配置され、更に前記「Sub2」の周回軌道上に「FuncA」及び「FuncB」が配置されるように描画される。
【0034】
前記ステップ410による図形属性データの算出処理は、各モジュールの凝集度を抽出し、凝集度が最も高いモジュールを同心二重丸線によって表示するものであって、この凝集度による属性データは、例えば図12(a)に示す如く、モジュール「Main」「Menu」「Title」との属性値が「0」、モジュール「Help」の属性値が「5」、モジュール「Proc」の属性値が「40」、モジュール「Sub0」の属性値が「16」、モジュール「Sub1」の属性値が「12」、モジュール「Sub2」の属性値が「5」、モジュール「FunA」及び「FunB」の属性値が「0」の如く格納され、モジュール「Proc」の属性値が最も高値であることから図12(b)に示した如く二重丸の描画に設定される。
【0035】
前記ステップ412による色(RGB)データの算出処理は、R(赤)値を「255」に固定し、G(グリーン)値を「G=((バグ件数×1000/ステップ数)×25.5」、B(ブルー)値を「B=255−((バグ件数×1000/ステップ数)×25.5)」の計算式によって算出し、例えば図13に示す如く各値を算出することによって、ステップ数に対するバグ数比が増加するに応じてG(グリーン)色及びB(ブルー)値色が減色し、バグ数の増加に応じて赤色が濃くなるように設定している。なお、G値又はB値の計算結果がマイナスの場合は「0」に設定する。
【0036】
[レタリング部106の動作]
次いで本実施形態によるプログラム品質評価システムは、レタリング部106が、図6に示す如く、各モジュール毎の、半径データベース904に格納した半径データと、属性データベース906に格納した属性データと、色データベース907に格納した色データとを入力として図14に示した描画データを算出して座標データベース901aに格納し、データの更新があった際には更新後の描画データを座標データベース901に格納するように動作することによって、クライアントコンピュータ109のディスプレイに天体図の如きプログラムの評価結果を表示することができる。
【0037】
このクライアントコンピュータ109のディスプレイに表示された天体図の如きプログラム評価結果の描画は、図15に示す如く、メインプログラムのモジュール「Main」を恒星とし、該「Main」の周回軌道上に「Menu」「Help」「Proc」の各モジュールを惑星とし、該モジュール「Proc」の周回軌道上に複数のサブモジュール(「Sub」)が周回し、更に該サブモジュールを中心として「Func」が周回する様に表示することによって各モジュールの階層構造を天体図の如く表示して容易に目視認識可能とし、半径値によってステップ数の大きいモジュールを容易に目視認識可能とし、二重丸線によって擬集度が高いモジュール(堅牢性・信頼性・再利用性・読みやすさなどの点で好ましいモジュール)を容易に目視可能とし、バグ件数が多いモジュールを赤色に近づくように色分けして目視認識可能とし、自転周期により処理回数が多いモジュールを目視認識可能とし、公転周期によってステップ数に対する処理時間が冗長なモジュールを目視認識可能とすることによって、プログラムの評価内容を目視確認することができる。
【0038】
このように本実施形態によるプログラム品質評価システムは、プログラムの評価結果を、プログラムを構成するモジュールの階層構造を例えば天体図の如く表示し、モジュールのステップ数の大小と、凝集度の大きいモジュールと、バグ数が多いモジュールを色分け表示と、図形の回転等の図形表示を行うことによって、プログラムの評価結果を評価者に容易に認識させることができる。
【符号の説明】
【0039】
101:品質評価部、102:品質評価データ、103:編集処理部、
106:レタリング部、107:プログラムソース、108:実行結果ログ、
109:クライアントコンピュータ、201:モジュール解析処理部、
206:データ編集処理部、209:座標データ作成処理部、
900:自転周期データベース、901:座標データベース、
902:モジュール相関表データベース、903:線画データベース、
904:半径データベース、905:公転周期データベース、
906:属性データベース、907:色データベース
【技術分野】
【0001】
本発明は、コンピュータを動作させるためのコンピュータプログラムの品質の評価を行うことができるプログラム品質評価システム、プログラム品質評価方法、プログラム品質評価プログラムに係り、特に品質評価のパラメータである評価用数値を操作者が視覚的に評価結果を認識することができるプログラム品質評価システム、プログラム品質評価方法、プログラム品質評価プログラムに関する。
【背景技術】
【0002】
一般に複数の命令語から成る複数のモジュールを階層化して構成したコンピュータプログラムを開発する際には、プログラムのステップ数・処理時間・ネスト数(構造化プログラミングにおける、何段階にも組み合わせた複数の命令群の纏まりの数)・ループ数・バグ数・凝集度(コヒージョン:プログラムのひとつの関数の中に含まれる機能の純粋度を表す尺度)等の各種パラメータの数値に基づいたプログラムの品質評価が行われており、このプログラムの品質評価に関する技術が記載された文献としては下記の特許文献1及び2が挙げられる。
【0003】
下記の特許文献1には、プログラムの実行パスの分岐から合流までをまとめて階層化した階層化済実行パス情報を生成する階層化処理部と、生成された階層化済実行パス情報をもとに階層化された任意のレベルの実行パスを図形表示する図形表示部とを設け、プログラムの分岐から合流までをまとめて階層化し、任意のレベルを図形表示すると共に実行パスに対応するソースプログラムやソースプログラムに対応する実行パスを視覚的に関連づけて表示し、プログラムの実行に伴う影響範囲を図形表示上およびソースプログラム上の双方で探索可能としたプログラム解析表示装置技術が記載され、特許文献2には、プログラムの品質を標準的に分析評価するために品質要素を定義し、品質要素に対して基準値を設定し所定の条件に合致するか否かを自動的に集計、判定してプログラムの品質評価を行い、プログラム品質上問題となる品質要素(残存不良内在ポイント)を提示することによって、プログラムに内在する未摘出の不良要素を特定することができるプログラム品質自動評価技術が記載されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平07−261990号公報
【特許文献2】特開平09−265393号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
前述の特許文献1記載の技術は、プログラムの実行に伴う影響範囲を図形表示することができ、特許文献2記載の技術は、プログラムに内在する未摘出の不良要素(不良モジュール)を特定することができるものの、モジュール同士の関連や全体のバランスを表現する要素が無いため、評価者がシステム全体像を把握することが困難であるという課題があった。
【0006】
本発明の目的は、前述の従来技術による課題を解決しようとするものであり、モジュールごとの性質・品質を図形や色や図形動作で表し、モジュール同士の関係を図形の位置座標で表現することによって、プログラム品質の全体像をより視覚的に表示することができるプログラム品質評価システム、プログラム品質評価方法、プログラム品質評価プログラムを提供することである。
【課題を解決するための手段】
【0007】
前記目的を達成するために本発明は、評価対象コンピュータプログラムが、複数の命令語から成るメインプログラムモジュールと、該メインプログラムモジュールにより起動され、複数の命令語から成るメニュープログラムモジュールと、該メニュープログラムモジュールから選択的に起動され、複数の命令語から成るヘルププログラムモジュールとタイトル表示プログラムモジュールと処理プログラムモジュールと、該処理プログラムモジュールにより選択的に起動され、複数の命令語から成る複数のサブプログラムモジュールとが階層構造として構成され、前記評価対象コンピュータプログラムの階層構造とステップ数と単位時間当たりの処理回数と該ステップ数当たりの処理時間とバグ数とを含む評価結果データをクライアントコンピュータのディスプレイに図形データとして表示するプログラム品質評価システムであって、
該プログラム品質評価システムのコンピュータが、
前記モジュールを表す図形要素の形状を設定する図形設定行程と、
前記図形要素の大きさをモジュール毎のステップ数に応じて設定する図形サイズ設定工程と、
前記図形要素の表示間隔の距離を前記階層構造の階層数に応じて設定する距離設定工程と、
前記形状とサイズと表示間隔距離を設定した複数の図形要素を、前記階層構造の上位から下位への階層構造が認識可能な位置関係にて配置するための座標データを算出する座標算出工程と、
前記モジュール内のステップ数当たりの処理時間を表す図形要素表示動作を前記処理時間に応じて設定する処理時間表示設定工程と、
前記上位階層の図形要素のモジュールの下位階層に位置するモジュールの図形要素との関係を下位階層モジュールの単位時間当たりの処理回数を表す図形要素表示動作を前記処理回数に応じて設定する処理回数間表示設定工程と、
前記要素図形の表示色をステップ数当たりのバグ数に応じて設定する色設定工程と、
前記座標設定工程により設定した座標位置に、前記図形サイズ設定工程により設定したサイズの複数の図形要素を、前記処理回数表示設定工程により設定した処理回数を表す図形要素表示動作且つ前記処理時間表示工程により設定した処理時間を表す図形要素表示動作且つ前記色設定工程により設定した表示色によってクライアントコンピュータのディスプレイに表示させる表示工程とを実行することを第1の特徴とする。
【0008】
また、本発明は、評価対象コンピュータプログラムが、複数の命令語から成るメインプログラムモジュールと、該メインプログラムモジュールにより起動され、複数の命令語から成るメニュープログラムモジュールと、該メニュープログラムモジュールから選択的に起動され、複数の命令語から成るヘルププログラムモジュールとタイトル表示プログラムモジュールと処理プログラムモジュールと、該処理プログラムモジュールにより選択的に起動され、複数の命令語から成る複数のサブプログラムモジュールとが階層構造として構成され、前記評価対象コンピュータプログラムの階層構造とステップ数と単位時間当たりの処理回数と該ステップ数当たりの処理時間とバグ数とを含む評価結果データをクライアントコンピュータのディスプレイに図形データとして表示するプログラム品質評価システムであって、
該プログラム品質評価システムのコンピュータが、
前記モジュールを表す図形要素の形状を円環状に設定する図形設定行程と
前記ステップ数が多いモジュールがステップ数の小さいモジュールに対して相対的に大きくなるような図形要素をモジュール毎に設定する図形サイズ設定工程と、
前記図形要素間の距離が階層構造の上位から下位に向かうに従って近接するように要素図形間の距離をモジュール毎に算出する距離算出工程と、
前記図形サイズ設定工程により算出したサイズの複数の図形要素を、前記階層構造の最上位モジュールを恒星、該最上位モジュールの次階層の中位モジュールを恒星の周りを周回する惑星、該中位モジュールの次階層の下位モジュールを惑星の周りを周回する衛星とし、前記距離算出工程により算出した距離の間隔を空けた前記恒星・惑星・衛星の位置関係にて配置するための座標データを算出する座標算出工程と、
前記図形要素自体の回転周期である自転周期を前記ステップ数当たりの処理時間に応じてモジュール毎に算出する自転周期算出工程と、
前記図形要素が他の図形要素の周りを移動する公転周期を前記単位時間当たりの処理回数に応じてモジュール毎に算出する公転周期算出工程と、
前記要素図形の表示色をステップ数当たりのバグ数に応じてモジュール毎に設定する色設定工程と、
前記座標算出工程により算出した座標位置に、前記図形設定工程により設定したサイズの複数の図形要素を、前記自転周期算出工程により算出した自転周期且つ前記工程周期工程により算出した公転周期且つ前記色設定工程により設定した表示色によってクライアントコンピュータのディスプレイに表示させる表示工程とを実行することを第2の特徴とする。
【0009】
また、本発明は、前記第1又は第2の特徴のプログラム品質評価システムにおいて、前記評価結果データにプログラムのひとつの関数の中に含まれる機能の純粋度を示す凝集度が含まれ、前記プログラム品質評価システムのコンピュータが、前記凝集度が最も高いモジュールの図形要素の形状を他の図形要素の形状と異なる形状に設定することを第3の特徴とし、前記何れかの特徴のプログラム品質評価システムにおいて、前記プログラム品質評価システムのコンピュータが、評価対象コンピュータプログラムの階層構造とステップ数と単位時間当たりの処理回数と該ステップ数当たりの処理時間とバグ数とを含む評価結果データを検出する品質評価部に接続され、該品質評価部から前記品質評価データを抽出することを第4の特徴とする。
【0010】
さらに本発明は、評価対象コンピュータプログラムが、複数の命令語から成るメインプログラムモジュールと、該メインプログラムモジュールにより起動され、複数の命令語から成るメニュープログラムモジュールと、該メニュープログラムモジュールから選択的に起動され、複数の命令語から成るヘルププログラムモジュールとタイトル表示プログラムモジュールと処理プログラムモジュールと、該処理プログラムモジュールにより選択的に起動され、複数の命令語から成る複数のサブプログラムモジュールとが階層構造として構成され、前記評価対象コンピュータプログラムの階層構造とステップ数と単位時間当たりの処理回数と該ステップ数当たりの処理時間とバグ数とを含む評価結果データをクライアントコンピュータのディスプレイに図形データとして表示するプログラム品質評価システムのプログラム品質評価方法であって、
該プログラム品質評価システムのコンピュータに、
前記モジュールを表す図形要素の形状を設定する図形設定行程と、
前記図形要素の大きさをモジュール毎のステップ数に応じて設定する図形サイズ設定工程と、
前記図形要素の表示間隔の距離を前記階層構造の階層数に応じて設定する距離設定工程と、
前記形状とサイズと表示間隔距離を設定した複数の図形要素を、前記階層構造の上位から下位への階層構造が認識可能な位置関係にて配置するための座標データを算出する座標算出工程と、
前記モジュール内のステップ数当たりの処理時間を表す図形要素表示動作を前記処理時間に応じて設定する処理時間表示設定工程と、
前記上位階層の図形要素のモジュールの下位階層に位置するモジュールの図形要素との関係を下位階層モジュールの単位時間当たりの処理回数を表す図形要素表示動作を前記処理回数に応じて設定する処理回数間表示設定工程と、
前記要素図形の表示色をステップ数当たりのバグ数に応じて設定する色設定工程と、
前記座標設定工程により設定した座標位置に、前記図形サイズ設定工程により設定したサイズの複数の図形要素を、前記処理回数表示設定工程により設定した処理回数を表す図形要素表示動作且つ前記処理時間表示工程により設定した処理時間を表す図形要素表示動作且つ前記色設定工程により設定した表示色によってクライアントコンピュータのディスプレイに表示させる表示工程とを実行させることを第5の特徴とする。
【0011】
また、本発明は、評価対象コンピュータプログラムが、複数の命令語から成るメインプログラムモジュールと、該メインプログラムモジュールにより起動され、複数の命令語から成るメニュープログラムモジュールと、該メニュープログラムモジュールから選択的に起動され、複数の命令語から成るヘルププログラムモジュールとタイトル表示プログラムモジュールと処理プログラムモジュールと、該処理プログラムモジュールにより選択的に起動され、複数の命令語から成る複数のサブプログラムモジュールとが階層構造として構成され、前記評価対象コンピュータプログラムの階層構造とステップ数と単位時間当たりの処理回数と該ステップ数当たりの処理時間とバグ数とを含む評価結果データをクライアントコンピュータのディスプレイに図形データとして表示するプログラム品質評価システムのプログラム品質評価方法であって、
該プログラム品質評価システムのコンピュータに、
前記モジュールを表す図形要素の形状を円環状に設定する図形設定行程と
前記ステップ数が多いモジュールがステップ数の小さいモジュールに対して相対的に大きくなるような図形要素をモジュール毎に設定する図形サイズ設定工程と、
前記図形要素間の距離が階層構造の上位から下位に向かうに従って近接するように要素図形間の距離をモジュール毎に算出する距離算出工程と、
前記図形サイズ設定工程により算出したサイズの複数の図形要素を、前記階層構造の最上位モジュールを恒星、該最上位モジュールの次階層の中位モジュールを恒星の周りを周回する惑星、該中位モジュールの次階層の下位モジュールを惑星の周りを周回する衛星とし、前記距離算出工程により算出した距離の間隔を空けた前記恒星・惑星・衛星の位置関係にて配置するための座標データを算出する座標算出工程と、
前記図形要素自体の回転周期である自転周期を前記ステップ数当たりの処理時間に応じてモジュール毎に算出する自転周期算出工程と、
前記図形要素が他の図形要素の周りを移動する公転周期を前記単位時間当たりの処理回数に応じてモジュール毎に算出する公転周期算出工程と、
前記要素図形の表示色をステップ数当たりのバグ数に応じてモジュール毎に設定する色設定工程と、
前記座標算出工程により算出した座標位置に、前記図形設定工程により設定したサイズの複数の図形要素を、前記自転周期算出工程により算出した自転周期且つ前記工程周期工程により算出した公転周期且つ前記色設定工程により設定した表示色によってクライアントコンピュータのディスプレイに表示させる表示工程とを実行させることを第6の特徴とする。
【0012】
また、本発明は、前記第5又は第6の特徴のプログラム品質評価方法において、評価結果データにプログラムのひとつの関数の中に含まれる機能の純粋度を示す凝集度が含まれ、前記プログラム品質評価システムのコンピュータが、前記凝集度が最も高いモジュールの図形要素の形状を他の図形要素の形状と異なる形状に設定することを第7の特徴とし、前記何れかの特徴のプログラム品質評価方法において、前記プログラム品質評価システムのコンピュータが、評価対象コンピュータプログラムの階層構造とステップ数と単位時間当たりの処理回数と該ステップ数当たりの処理時間とバグ数とを含む評価結果データを検出する品質評価部に接続され、該品質評価部から前記品質評価データを抽出することを第8の特徴とする。
【0013】
また、本発明は、評価対象コンピュータプログラムが、複数の命令語から成るメインプログラムモジュールと、該メインプログラムモジュールにより起動され、複数の命令語から成るメニュープログラムモジュールと、該メニュープログラムモジュールから選択的に起動され、複数の命令語から成るヘルププログラムモジュールとタイトル表示プログラムモジュールと処理プログラムモジュールと、該処理プログラムモジュールにより選択的に起動され、複数の命令語から成る複数のサブプログラムモジュールとが階層構造として構成され、前記評価対象コンピュータプログラムの階層構造とステップ数と単位時間当たりの処理回数と該ステップ数当たりの処理時間とバグ数とを含む評価結果データをクライアントコンピュータのディスプレイに図形データとして表示するプログラム品質評価システムのプログラム品質評価プログラムであって、
該プログラム品質評価システムのコンピュータに、
前記モジュールを表す図形要素の形状を設定する図形設定機能と、
前記図形要素の大きさをモジュール毎のステップ数に応じて設定する図形サイズ設定機能と、
前記図形要素の表示間隔の距離を前記階層構造の階層数に応じて設定する距離設定機能と、
前記形状とサイズと表示間隔距離を設定した複数の図形要素を、前記階層構造の上位から下位への階層構造が認識可能な位置関係にて配置するための座標データを算出する座標算出機能と、
前記モジュール内のステップ数当たりの処理時間を表す図形要素表示動作を前記処理時間に応じて設定する処理時間表示設定機能と、
前記上位階層の図形要素のモジュールの下位階層に位置するモジュールの図形要素との関係を下位階層モジュールの単位時間当たりの処理回数を表す図形要素表示動作を前記処理回数に応じて設定する処理回数間表示設定機能と、
前記要素図形の表示色をステップ数当たりのバグ数に応じて設定する色設定機能と、
前記座標設定機能により設定した座標位置に、前記図形サイズ設定機能により設定したサイズの複数の図形要素を、前記処理回数表示設定機能により設定した処理回数を表す図形要素表示動作且つ前記処理時間表示機能により設定した処理時間を表す図形要素表示動作且つ前記色設定機能により設定した表示色によってクライアントコンピュータのディスプレイに表示させる表示機能とを実現させることを第9の特徴とする。
【0014】
また、本発明は、評価対象コンピュータプログラムが、複数の命令語から成るメインプログラムモジュールと、該メインプログラムモジュールにより起動され、複数の命令語から成るメニュープログラムモジュールと、該メニュープログラムモジュールから選択的に起動され、複数の命令語から成るヘルププログラムモジュールとタイトル表示プログラムモジュールと処理プログラムモジュールと、該処理プログラムモジュールにより選択的に起動され、複数の命令語から成る複数のサブプログラムモジュールとが階層構造として構成され、前記評価対象コンピュータプログラムの階層構造とステップ数と単位時間当たりの処理回数と該ステップ数当たりの処理時間とバグ数とを含む評価結果データをクライアントコンピュータのディスプレイに図形データとして表示するプログラム品質評価システムのプログラム品質評価プログラムであって、
該プログラム品質評価システムのコンピュータに、
前記モジュールを表す図形要素の形状を円環状に設定する図形設定機能と、
前記ステップ数が多いモジュールがステップ数の小さいモジュールに対して相対的に大きくなるような図形要素をモジュール毎に設定する図形サイズ設定機能と、
前記図形要素間の距離が階層構造の上位から下位に向かうに従って近接するように要素図形間の距離をモジュール毎に算出する距離算出機能と、
前記図形サイズ設定機能により算出したサイズの複数の図形要素を、前記階層構造の最上位モジュールを恒星、該最上位モジュールの次階層の中位モジュールを恒星の周りを周回する惑星、該中位モジュールの次階層の下位モジュールを惑星の周りを周回する衛星とし、前記距離算出機能により算出した距離の間隔を空けた前記恒星・惑星・衛星の位置関係にて配置するための座標データを算出する座標算出機能と、
前記図形要素自体の回転周期である自転周期を前記ステップ数当たりの処理時間に応じてモジュール毎に算出する自転周期算出機能と、
前記図形要素が他の図形要素の周りを移動する公転周期を前記単位時間当たりの処理回数に応じてモジュール毎に算出する公転周期算出機能と、
前記要素図形の表示色をステップ数当たりのバグ数に応じてモジュール毎に設定する色設定機能と、
前記座標算出機能により算出した座標位置に、前記図形設定機能により設定したサイズの複数の図形要素を、前記自転周期算出機能により算出した自転周期且つ前記工程周期機能により算出した公転周期且つ前記色設定機能により設定した表示色によってクライアントコンピュータのディスプレイに表示させる表示機能とを実現させることを第10の特徴とする。
【0015】
また、本発明は、前記第9又は第10の特徴のプログラム品質評価プログラムにおいて、前記評価結果データにプログラムのひとつの関数の中に含まれる機能の純粋度を示す凝集度が含まれ、前記プログラム品質評価システムのコンピュータが、前記凝集度が最も高いモジュールの図形要素の形状を他の図形要素の形状と異なる形状に設定する機能を実現することを第11の特徴とし、前記何れかの特徴のプログラム品質評価プログラムにおいて、前記プログラム品質評価システムのコンピュータが、評価対象コンピュータプログラムの階層構造とステップ数と単位時間当たりの処理回数と該ステップ数当たりの処理時間とバグ数とを含む評価結果データを検出する品質評価部に接続され、該品質評価部から前記品質評価データを抽出する機能を実現させる機能を実現させることを第12の特徴とする。
【発明の効果】
【0016】
本発明によるプログラム品質評価システム、同方法、同プログラムは、従来は項目毎に数値表示されていた評価結果データを、プログラム品質評価システムのコンピュータが、モジュールを図形化した図形要素の相対的位置によってモジュール間の階層構造を表示し、各モジュールのステップ数を図形要素サイズにより表示し、各モジュール内のステップ数当たりの処理時間及び単位時間当たりの処理回数を図形要素の表示動作によって表示し、各モジュール内のバグ数を表示色によって表示することによって、評価者に評価対象プログラム全体の評価結果の全体像を視覚的に表示することができる。
【図面の簡単な説明】
【0017】
【図1】本発明の実施形態によるシステム構成を示す図。
【図2】本発明の実施形態による編集処理フローを示す図。
【図3】本発明の実施形態によるモジュール解析処理フローを示す図。
【図4】本発明の実施形態によるモジュール相関表例を示す図。
【図5】本発明の実施形態によるデータ編集処理フローを示す図。
【図6】本発明の実施形態による座標データ作成処理フローを示す図。
【図7】本発明の実施形態による半径算出演算計算例を示す図。
【図8】本発明の実施形態による自動周期算出演算計算例を示す図。
【図9】本発明の実施形態による公転周期算出演算計算例を示す図。
【図10】本発明の実施形態による座標算出計算例を示す図。
【図11】本発明の実施形態による座標プロット例を示す図。
【図12】本発明の実施形態による属性算出計算例を示す図。
【図13】本発明の実施形態による色算出計算例を示す図。
【図14】本発明の実施形態による属性算出計算例を示す図。
【図15】本発明の実施形態による座標プロット更新例を示す図。
【発明を実施するための形態】
【0018】
以下、本発明によるプログラム品質評価システム、プログラム品質評価方法、プログラム品質評価プログラムの一実施形態を図面を参照して詳細に説明する。なお、本発明の対象とするプログラムとは、コンピュータに処理手順を指示する一連の命令語の集まりであるモジュール(例えば、メインプログラムである「Main」、メニュープログラムである「Menu」、ヘルププログラムである「Help」、タイトル表示プログラムである「Tile」、タイトルによって選択された処理プログラムである「Proc」、該処理プログラム内で起動される下位のサブプログラムである「Sub0」等)を複数組み合わせて構成されるものであって、この命令語としては、例えば、クラス(class:データとその操作手順であるメソッドをまとめたオブジェクトを定義したもの)、関数(function:引数を受け取り、定められた通りの処理を実行して結果を返す一連の命令群)、for文(変数により与えられた初期値から終了値間の範囲の処理を反復して繰り返すための命令文)、while文(与えられた条件式が真の間繰り返される処理の命令文)、ネスト(nest:構造化プログラミングにおける、プログラムの構築手法のひとつであって、複数の命令群をひとまとまりの単位にくくり、何段階にも組み合わせていくことでプログラムを構成するまとまりをいい、開始記号「{」により開始され、ネスト終了記号「}」によって終了する。)、EOF(End Of File:ファイルの終了を示すファイル終了記号)が挙げられ、処理の全体を制御するための親プログラムと、該親プログラムを用いて選択される子プログラム群(例えば「ヘルププログラム」「メニュープログラム」「処理プログラム[proceedings Program]」)と、該子プログラム群に含まれる孫プログラム群等の階層構造によって構成される。
【0019】
[構成]
本発明の一実施形態によるプログラム品質評価方法及び同品質評価方法が適用されるプログラム品質評価システムを含むコンピュータシステムは、図1に示すごとく、プログラムソースを読み込んで当該プログラムのステップ数・処理時間・ネスト数・ループ数・バグ数・凝集度(モジュール内のソースコードが特定の機能を提供すべく如何に協調しているかを表す度合い。凝集度の高いモジュールは、堅牢性・信頼性・再利用性・読みやすさなどの点で好ましく、凝集度の低いモジュールは保守・評価・再利用・読解が難しいため好ましくないとされる。)等の各種パラメータの数値から成る品質評価データ102を出力するプログラムの品質評価を行う品質評価部101と、該品質評価データ102と前記プログラムソース107と該プログラムソース107の実行結果ログ108を読み込んで前記品質評価データ102の編集処理を行う編集処理部103と、該編集処理部103により編集した編集後品質評価データと後述する自転周期データDB900及び座標データDB901からの描画データを読み込み、前記編集後品質評価データの評価結果を操作者が視覚的に品質の評価を認識することができるように描画してクライアントコンピュータ109のディスプレイに出力するレタリング部106とから構成される。
【0020】
本実施形態によるプログラム品質評価システムによる品質評価部101と編集処理部103とレタリング部106等はコンピュータのハードウェアやソフトウェアによって構成され、前記各種評価用の数値パラメータから成る品質評価データ102を、操作者に容易に目視認識できるように、例えば、後述する図11の如く太陽系における恒星・惑星・衛星の関係の如くそれぞれの星を円環形状に設定し、天体図の如く表示するが、この形状や配置に限られるものではない。
【0021】
前記した天体図のような表示手法は、親プログラムを恒星とし、該親プログラムから起動される子プログラム群(例えば「ヘルププログラム」「メニュープログラム」「処理プログラム[proceedings Program]」)をメインプログラムを中心とした周回軌道上の惑星の如く表示し、更に、前記子プログラム群に含まれる孫プログラム群を子プログラムを中心とした周回軌道上の衛星の如く表示し、恒星・惑星・衛星のサイズ(直径)を呼び出し数に応じた大きさとし、惑星・衛星の自転周期(図形要素の動作:モーション)を処理時間又は平均処理回数に応じた自転周期とし、惑星・衛星の公転周期(図形要素の動作:モーション)をステップ数当たりの処理時間に応じた公転周期とし、惑星・衛星の恒星に対する座標位置(上位プログラムに対する距離)を恒星・惑星・衛星に応じた距離として表示することによって、例えば太陽系における太陽を中心とした惑星や衛星の天体図の関係の如く表示するものである。
【0022】
なお、本実施形態による表示方法は、前述した恒星・惑星・衛星の関係の如く表示されるものに限られるものではなく、プログラムの親子孫の関係と、親子孫それぞれの、呼び出し数と処理時間又は平均処理回数とを他の表示形態によって表示しても良く、例えば、樹木における枝葉に喩えたツリー構造とし、枝の太さや色等によって表示するように構成しても良い。また、前記モジュールを表す図形の形状は円環状に限られるものではなく、四角・三角・その他多角形とすることや、星形状その他に設定することもできる。
【0023】
前記編集処理部103は、図2に示す如く、前述した品質評価データ102とプログラムソース107と実行結果ログ108とを入力とし、プログラムのモジュールを1ステップ単位で分析し、得られたデータをモジュール相関表データベース(DB)902に格納するモジュール解析処理部201と、1つのモジュールが持つ処理速度・処理時間を別の指標である「周期」に置き換え、また、モジュールの性質・特徴を線画するためのデータを作成し、モジュール相関表データベース902及び線画データベース903に保存するデータ編集処理部206と、前記線画データベース903に保存した線画データを基づいて表示するための座標データを作成して座標データベース901に保存する座標データ作成処理部209とから構成される。なお、前記モジュール相関表データベース902は、個々のモジュールに関する情報だけでなく、システム全体に対する情報も併せて保持する。
【0024】
[動作]
[モジュール解析処理部201の動作]
前記モジュール解析処理部201のモジュール解析動作は、モジュール1本に対し1ステップずつ判定を行い、結果をモジュール相関表データベースへ出力し、モジュールのEOFを検出したときに次のモジュールを処理し、全モジュールの処理が完了するまで繰返し行っていく処理を実行するものであって、詳細には、図3に示す如く、評価対象であるプログラムソース107を読み込み、該プログラムソース107中にクラス又は関数の呼出があるか判定を行うステップ301と、該ステップ301において呼出があると判定したとき、呼出数をカウントしてモジュール相関表データベース902に格納(記入)するステップ302と、該ステップ302に続いて該プログラムソース107中から呼び元と呼び先を検出し、モジュール相関表データベース902に格納(記入)するステップ303と、該ステップに続いて次の1行へ処理を移行して前記ステップ301に戻るステップ304と、前記ステップ301において呼出がないと判定したとき、プログラムソース107中にfor文又はwhile文があるか否かの判定を行うステップ305と、該ステップ305においてfor又はwhile文があると判定したとき、ループ処理をカウントし、モジュール相関表データベース902に格納するステップ306と、該ステップ306に続いて次の1行へ処理を移行して前記ステップ301に戻る4ステップ307と、前記ステップ305においてfor文及びwhile文が無いと判定したとき、ネスト開始記号「{」があるか否かを判定するステップ308と、該ステップ308において開始記号がないと判定したとき、プログラムソース107中にモジュールのEOFが含まれているか否かを判定し、含まれていないと判定したとき前記ステップ301に戻るステップ319と、前記ステップ308において開始記号があると判定したとき、ネスト総数をカウントアップし、モジュール相関表データベース902に格納するステップ309とを順次実行する。
【0025】
次に本実施形態によるモジュール解析処理部201は、前述のステップ309に続いてネストレベル(Lv:階層レベル)をカウントするステップ310と、該ステップ310に続いて次の1行へ処理を移行するステップ311と、該ステップ311に続いてネスト開始記号「{」が存在するか否かを判定するステップ312と、該ステップ312において存在すると判定したとき、前記ネスト総数に値「1」を加算し、モジュール相関表データベース902に格納するステップ313と、該ステップ313に続いて前記カウントしたネストレベル(Lv)にも値「1」を加算するステップ314と、前記ステップ312において存在しないと判定したとき及び前記ステップ313に続き、プログラムソース107にネスト終了記号「}」が存在するか否かを判定するステップ315と、該ステップ315においてネスト終了記号「}」が存在すると判定したとき、ネストレベル(Lv)を1減算するステップ316と、前記ステップ315においてネスト終了記号「}」が存在しないと判定したとき及びステップ316に続き、ネストレベル(Lv)が値「0」か否かを判定し、値「0」でないと判定したときに前記ステップ312に戻るステップ317と、該ステップ317においてネストレベル(Lv)が0と判定したとき、次の1行へ処理を移行して前記ステップ301に戻るステップ318とを実行することによって、1つのモジュールに含まれるクラス・関数の呼び出し回数とfor文又はwhile文によるループ処理回数とネスト総数を検出してモジュール相関表データベース902に格納するように動作する。
【0026】
更に本実施形態によるモジュール解析処理部201は、前述のステップ319においてファイル終了記号EOFを検出したとき(1つのモジュール解析が終了したと判定したとき)、プログラムソース107中のステップ数をモジュール相関表データベース902に格納するステップ320と、実行結果ログ108から処理時間及び処理回数を取得し、モジュール相関表データベース902に格納するステップ321と、品質評価データ102からバグ件数及び凝集度を取得し、モジュール相関表データベース902に格納するステップ322と、プログラムソース107中の全モジュールの解析が終了したか否かを判定し、解析終了と判定したときに処理を終了するステップ323と、該ステップ323において全モジュール解析が終了していないと判定したとき、次のモジュール4に移行して前記ステップ301に戻るステップ324とを実行し、プログラムソース107中の全モジュールの解析を行うように動作する。
【0027】
このように本実施形態によるモジュール解析処理部201は、評価対象のプログラムソース107の解析を実行し、この解析結果データをモジュール相関表データベース902に格納するように動作し、この解析結果データは、図4に示す如く、項番毎に、特定のモジール名と、該モジール名の呼び出し元の元モジュール名である呼び元と、前記モジュール名の呼び先の先モジュール名である呼び先と、呼び先の数である呼び先数と、当該モジュールのプログラムのステップ数と、同モジュールの処理時間と、同モジュールの単位時(1時間)間当たりの処理回数と、同モジュールの反復回数であるネスト回数と、同モジュールのループ回数と、同モジュールのバグ件数と、同モジュールの凝集度の各項目から成り、例えば、項番1のモジュールが「Main」に対して、呼び元がなく、呼び先が「Menu,Help,Proc」、呼び先数が「3」、ステップ数が「120」、処理時間が「1秒」、処理回数が「1」、ネスト回数が「1」、ループ回数が「0」、バグ件数が「1」、凝集度が「0」であることが図示の如く登録される。
【0028】
[データ編集処理部206の動作]
前記データ編集処理部206は、前記モジュール相関表データベース902に格納した解析結果データに基づいてプログラムの評価が管理者に容易に目視確認可能なように前述した恒星・惑星・衛星の関係に模試した天体図の如く描画させるためのデータ編集を行うものであって、このデータ編集処理動作は、図5に示す如く、モジュール相関表データベース902を参照し、ステップ数及び呼び先の数をモジュール単位で計算し、計算結果を半径データ(要素図形の大きさ)として半径データベース904に格納するステップ402と、処理回数および処理時間を使用し、モジュール単位で計算した自転周期(図形要素の動作:モーション)データを自転周期データベース900に格納するステップ404と、ステップ数及び処理時間を使用し、モジュール単位で計算した公転周期データ(図形要素の動作:モーション)を公転周期データベース905に格納するステップ406と、呼び先・呼び元の関係を使用し、上位モジュールとの距離を算出して座標データベース901に格納するステップ408と、凝集度を使用し、図形属性データを属性データベース906に格納するステップ410と、ステップ数及びバグ件数を使用して算出した各モジュールに対する色(RGB)データを色データベース907に格納するステップ412とを実行するように動作する。なお、本実施形態においては前記自転周期データ及び公転周期データを合わせて周期データと呼ぶ。
【0029】
前記ステップ402による半径データの算出処理は、「半径=(ステップ数÷8)+(呼び出し数×10)」の計算式によって算出され、この算出結果は、例えば図7に示す如く、項番1のモジュールが「Main」の呼び出し数が「3」、ステップ数が「120」の場合の半径が「45mm」、項番2のモジュールが「Menu」の呼び出し数が「1」、ステップ数が「350」の場合の半径が「53.75mm」、項番3のモジュールが「Title」の呼び出し数が「0」、ステップ数が「30」の場合の半径が「3.75mm」、項番4のモジュールが「Help」の呼び出し数が「0」、ステップ数が「500」の場合の半径が「62.5mm」、項番5のモジュールが「Proc」の呼び出し数が「3」、ステップ数が「1200」の場合の半径が「180mm」、項番6のモジュールが「Sub0」の呼び出し数が「0」、ステップ数が「650」の場合の半径が「81025mm」の如く格納される。
【0030】
前記ステップ404による自転周期データの算出処理は、バッチ処理の場合、「自転周期[秒]=バッチ処理平均処理時間[秒]÷(バッチ処理開始から終了までに実行される平均処理時間[秒])」の計算式によって算出され、オンラインの場合は、「自転周期[秒]=120[秒]÷(1時間当たりに実行される平均処理回数)」によって算出され、この算出結果は、例えば図8に示す如く、項番1のモジュールが「Main」の単位時間の処理回数が「1」の場合の自転周期が「120秒」、項番2のモジュールが「Menu」の単位時間の処理回数が「5」の場合の自転周期が「24秒」、項番3のモジュールが「Title」の単位時間の処理回数が「2」の場合の自転周期が「60秒」、項番4のモジュールが「Help」の単位時間の処理回数が「3」の場合の自転周期が「40秒」、項番5のモジュールが「Proc」の単位時間の処理回数が「10」の場合の自転周期が「12秒」の如く格納される。
【0031】
前記ステップ406による公転周期データの算出処理は、「公転周期[秒]=処理時間[秒]×2000/ステップ数」の計算式によって算出され、例えば図9に示す如く、項番1のモジュールが「Main」のステップ数が「120」、処理時間が「1秒」の場合の公転周期が「なし」、項番2のモジュールが「Menu」のステップ数が「350」、処理時間が「0.1秒」の場合の公転周期が「0.57143[秒]」、項番3のモジュールが「Title」のステップ数が「30」、処理時間が「0.1秒」の場合の公転周期が「6.66667[秒]」、項番4のモジュールが「Help」のステップ数が「500」、処理時間が「2秒」の場合の公転周期が「8[秒]」、項番5のモジュールが「Proc」のステップ数が「1200」、処理時間が「5秒」の場合の公転周期が「8.33333[秒]」、項番6のモジュールが「Sub0」のステップ数が「650」、処理時間が「1秒」の場合の公転周期が「3.07692[秒]」、項番7のモジュールが「Sub1」のステップ数が「500」、処理時間が「0.5秒」の場合の公転周期が「2[秒]」の如く登録される。なお、前記計算式の設定は、1Ksのプログラムが10秒で終了するときに公転周期が20秒になることを基準とし、メインプログラムの如き呼び出しがないものは公転周期無しとしている。
【0032】
前記ステップ408による上位モジュールとの距離を座標として算出する計算処理は、メインモジュールとサブモジュール間の距離を「1」としたとき、サブモジュールとサブモジュール間の距離を「0.5」とし、これ以下の下位モジュール(孫プログラム以下の階層)間の距離を(1/2)^n[n=階層数−1]として算出するものであって、例えば図10に示す如く、項番2の「Menu」の呼び元「Main」に対する距離が「1」、項番3の「Title」の呼び元「Menu」に対する距離が「0.5」、項番4の「Help」の呼び元「Main」に対する距離が「1」、項番5の「Proc」の呼び元「Main」に対する距離が「1」、項番6の「Sub0」の呼び元「Proc」に対する距離が「0.5」の如く格納される。なお、前記距離は、各モジュール間の相対的な比率を表すものであって、実際の距離は、評価対象プログラムの階層の深さ、コンピュータのディスプレイのサイズや解像度に応じて決定される。
【0033】
この表示画面は、例えば、図11に示す如く、「Main」を中心の恒星(図形要素)としたとき、該「Main」を中心とした周回軌道上に「Menu」と「Help」と「Proc」が惑星(図形要素)の如く配置され、前記「Menu」を中心とした周回軌道上に「Titel」が衛星(図形要素)として配置され、同様に前記「Proc」を中心とした周回軌道上に「Sub0」と「Sub1」と「Sub3」とが衛星として配置され、更に前記「Sub2」の周回軌道上に「FuncA」及び「FuncB」が配置されるように描画される。
【0034】
前記ステップ410による図形属性データの算出処理は、各モジュールの凝集度を抽出し、凝集度が最も高いモジュールを同心二重丸線によって表示するものであって、この凝集度による属性データは、例えば図12(a)に示す如く、モジュール「Main」「Menu」「Title」との属性値が「0」、モジュール「Help」の属性値が「5」、モジュール「Proc」の属性値が「40」、モジュール「Sub0」の属性値が「16」、モジュール「Sub1」の属性値が「12」、モジュール「Sub2」の属性値が「5」、モジュール「FunA」及び「FunB」の属性値が「0」の如く格納され、モジュール「Proc」の属性値が最も高値であることから図12(b)に示した如く二重丸の描画に設定される。
【0035】
前記ステップ412による色(RGB)データの算出処理は、R(赤)値を「255」に固定し、G(グリーン)値を「G=((バグ件数×1000/ステップ数)×25.5」、B(ブルー)値を「B=255−((バグ件数×1000/ステップ数)×25.5)」の計算式によって算出し、例えば図13に示す如く各値を算出することによって、ステップ数に対するバグ数比が増加するに応じてG(グリーン)色及びB(ブルー)値色が減色し、バグ数の増加に応じて赤色が濃くなるように設定している。なお、G値又はB値の計算結果がマイナスの場合は「0」に設定する。
【0036】
[レタリング部106の動作]
次いで本実施形態によるプログラム品質評価システムは、レタリング部106が、図6に示す如く、各モジュール毎の、半径データベース904に格納した半径データと、属性データベース906に格納した属性データと、色データベース907に格納した色データとを入力として図14に示した描画データを算出して座標データベース901aに格納し、データの更新があった際には更新後の描画データを座標データベース901に格納するように動作することによって、クライアントコンピュータ109のディスプレイに天体図の如きプログラムの評価結果を表示することができる。
【0037】
このクライアントコンピュータ109のディスプレイに表示された天体図の如きプログラム評価結果の描画は、図15に示す如く、メインプログラムのモジュール「Main」を恒星とし、該「Main」の周回軌道上に「Menu」「Help」「Proc」の各モジュールを惑星とし、該モジュール「Proc」の周回軌道上に複数のサブモジュール(「Sub」)が周回し、更に該サブモジュールを中心として「Func」が周回する様に表示することによって各モジュールの階層構造を天体図の如く表示して容易に目視認識可能とし、半径値によってステップ数の大きいモジュールを容易に目視認識可能とし、二重丸線によって擬集度が高いモジュール(堅牢性・信頼性・再利用性・読みやすさなどの点で好ましいモジュール)を容易に目視可能とし、バグ件数が多いモジュールを赤色に近づくように色分けして目視認識可能とし、自転周期により処理回数が多いモジュールを目視認識可能とし、公転周期によってステップ数に対する処理時間が冗長なモジュールを目視認識可能とすることによって、プログラムの評価内容を目視確認することができる。
【0038】
このように本実施形態によるプログラム品質評価システムは、プログラムの評価結果を、プログラムを構成するモジュールの階層構造を例えば天体図の如く表示し、モジュールのステップ数の大小と、凝集度の大きいモジュールと、バグ数が多いモジュールを色分け表示と、図形の回転等の図形表示を行うことによって、プログラムの評価結果を評価者に容易に認識させることができる。
【符号の説明】
【0039】
101:品質評価部、102:品質評価データ、103:編集処理部、
106:レタリング部、107:プログラムソース、108:実行結果ログ、
109:クライアントコンピュータ、201:モジュール解析処理部、
206:データ編集処理部、209:座標データ作成処理部、
900:自転周期データベース、901:座標データベース、
902:モジュール相関表データベース、903:線画データベース、
904:半径データベース、905:公転周期データベース、
906:属性データベース、907:色データベース
【特許請求の範囲】
【請求項1】
評価対象コンピュータプログラムが、複数の命令語から成るメインプログラムモジュールと、該メインプログラムモジュールにより起動され、複数の命令語から成るメニュープログラムモジュールと、該メニュープログラムモジュールから選択的に起動され、複数の命令語から成るヘルププログラムモジュールとタイトル表示プログラムモジュールと処理プログラムモジュールと、該処理プログラムモジュールにより選択的に起動され、複数の命令語から成る複数のサブプログラムモジュールとが階層構造として構成され、前記評価対象コンピュータプログラムの階層構造とステップ数と単位時間当たりの処理回数と該ステップ数当たりの処理時間とバグ数とを含む評価結果データをクライアントコンピュータのディスプレイに図形データとして表示するプログラム品質評価システムであって、
該プログラム品質評価システムのコンピュータが、
前記モジュールを表す図形要素の形状を設定する図形設定行程と、
前記図形要素の大きさをモジュール毎のステップ数に応じて設定する図形サイズ設定工程と、
前記図形要素の表示間隔の距離を前記階層構造の階層数に応じて設定する距離設定工程と、
前記形状とサイズと表示間隔距離を設定した複数の図形要素を、前記階層構造の上位から下位への階層構造が認識可能な位置関係にて配置するための座標データを算出する座標算出工程と、
前記モジュール内のステップ数当たりの処理時間を表す図形要素表示動作を前記処理時間に応じて設定する処理時間表示設定工程と、
前記上位階層の図形要素のモジュールの下位階層に位置するモジュールの図形要素との関係を下位階層モジュールの単位時間当たりの処理回数を表す図形要素表示動作を前記処理回数に応じて設定する処理回数間表示設定工程と、
前記要素図形の表示色をステップ数当たりのバグ数に応じて設定する色設定工程と、
前記座標設定工程により設定した座標位置に、前記図形サイズ設定工程により設定したサイズの複数の図形要素を、前記処理回数表示設定工程により設定した処理回数を表す図形要素表示動作且つ前記処理時間表示工程により設定した処理時間を表す図形要素表示動作且つ前記色設定工程により設定した表示色によってクライアントコンピュータのディスプレイに表示させる表示工程とを実行することを特徴とするプログラム品質評価システム。
【請求項2】
評価対象コンピュータプログラムが、複数の命令語から成るメインプログラムモジュールと、該メインプログラムモジュールにより起動され、複数の命令語から成るメニュープログラムモジュールと、該メニュープログラムモジュールから選択的に起動され、複数の命令語から成るヘルププログラムモジュールとタイトル表示プログラムモジュールと処理プログラムモジュールと、該処理プログラムモジュールにより選択的に起動され、複数の命令語から成る複数のサブプログラムモジュールとが階層構造として構成され、前記評価対象コンピュータプログラムの階層構造とステップ数と単位時間当たりの処理回数と該ステップ数当たりの処理時間とバグ数とを含む評価結果データをクライアントコンピュータのディスプレイに図形データとして表示するプログラム品質評価システムであって、
該プログラム品質評価システムのコンピュータが、
前記モジュールを表す図形要素の形状を円環状に設定する図形設定行程と、
前記ステップ数が多いモジュールがステップ数の小さいモジュールに対して相対的に大きくなるような図形要素をモジュール毎に設定する図形サイズ設定工程と、
前記図形要素間の距離が階層構造の上位から下位に向かうに従って近接するように要素図形間の距離をモジュール毎に算出する距離算出工程と、
前記図形サイズ設定工程により算出したサイズの複数の図形要素を、前記階層構造の最上位モジュールを恒星、該最上位モジュールの次階層の中位モジュールを恒星の周りを周回する惑星、該中位モジュールの次階層の下位モジュールを惑星の周りを周回する衛星とし、前記距離算出工程により算出した距離の間隔を空けた前記恒星・惑星・衛星の位置関係にて配置するための座標データを算出する座標算出工程と、
前記図形要素自体の回転周期である自転周期を前記ステップ数当たりの処理時間に応じてモジュール毎に算出する自転周期算出工程と、
前記図形要素が他の図形要素の周りを移動する公転周期を前記単位時間当たりの処理回数に応じてモジュール毎に算出する公転周期算出工程と、
前記要素図形の表示色をステップ数当たりのバグ数に応じてモジュール毎に設定する色設定工程と、
前記座標算出工程により算出した座標位置に、前記図形設定工程により設定したサイズの複数の図形要素を、前記自転周期算出工程により算出した自転周期且つ前記工程周期工程により算出した公転周期且つ前記色設定工程により設定した表示色によってクライアントコンピュータのディスプレイに表示させる表示工程とを実行することを特徴とするプログラム品質評価システム。
【請求項3】
前記評価結果データにプログラムのひとつの関数の中に含まれる機能の純粋度を示す凝集度が含まれ、前記プログラム品質評価システムのコンピュータが、前記凝集度が最も高いモジュールの図形要素の形状を他の図形要素の形状と異なる形状に設定することを特徴とする請求項1又は2記載のプログラム品質評価システム。
【請求項4】
前記プログラム品質評価システムのコンピュータが、評価対象コンピュータプログラムの階層構造とステップ数と単位時間当たりの処理回数と該ステップ数当たりの処理時間とバグ数とを含む評価結果データを検出する品質評価部に接続され、該品質評価部から前記品質評価データを抽出することを特徴とする請求項1から3何れかに記載のプログラム品質評価システム。
【請求項5】
評価対象コンピュータプログラムが、複数の命令語から成るメインプログラムモジュールと、該メインプログラムモジュールにより起動され、複数の命令語から成るメニュープログラムモジュールと、該メニュープログラムモジュールから選択的に起動され、複数の命令語から成るヘルププログラムモジュールとタイトル表示プログラムモジュールと処理プログラムモジュールと、該処理プログラムモジュールにより選択的に起動され、複数の命令語から成る複数のサブプログラムモジュールとが階層構造として構成され、前記評価対象コンピュータプログラムの階層構造とステップ数と単位時間当たりの処理回数と該ステップ数当たりの処理時間とバグ数とを含む評価結果データをクライアントコンピュータのディスプレイに図形データとして表示するプログラム品質評価システムのプログラム品質評価方法であって、
該プログラム品質評価システムのコンピュータに、
前記モジュールを表す図形要素の形状を設定する図形設定行程と、
前記図形要素の大きさをモジュール毎のステップ数に応じて設定する図形サイズ設定工程と、
前記図形要素の表示間隔の距離を前記階層構造の階層数に応じて設定する距離設定工程と、
前記形状とサイズと表示間隔距離を設定した複数の図形要素を、前記階層構造の上位から下位への階層構造が認識可能な位置関係にて配置するための座標データを算出する座標算出工程と、
前記モジュール内のステップ数当たりの処理時間を表す図形要素表示動作を前記処理時間に応じて設定する処理時間表示設定工程と、
前記上位階層の図形要素のモジュールの下位階層に位置するモジュールの図形要素との関係を下位階層モジュールの単位時間当たりの処理回数を表す図形要素表示動作を前記処理回数に応じて設定する処理回数間表示設定工程と、
前記要素図形の表示色をステップ数当たりのバグ数に応じて設定する色設定工程と、
前記座標設定工程により設定した座標位置に、前記図形サイズ設定工程により設定したサイズの複数の図形要素を、前記処理回数表示設定工程により設定した処理回数を表す図形要素表示動作且つ前記処理時間表示工程により設定した処理時間を表す図形要素表示動作且つ前記色設定工程により設定した表示色によってクライアントコンピュータのディスプレイに表示させる表示工程とを実行させることを特徴とするプログラム品質評価方法。
【請求項6】
評価対象コンピュータプログラムが、複数の命令語から成るメインプログラムモジュールと、該メインプログラムモジュールにより起動され、複数の命令語から成るメニュープログラムモジュールと、該メニュープログラムモジュールから選択的に起動され、複数の命令語から成るヘルププログラムモジュールとタイトル表示プログラムモジュールと処理プログラムモジュールと、該処理プログラムモジュールにより選択的に起動され、複数の命令語から成る複数のサブプログラムモジュールとが階層構造として構成され、前記評価対象コンピュータプログラムの階層構造とステップ数と単位時間当たりの処理回数と該ステップ数当たりの処理時間とバグ数とを含む評価結果データをクライアントコンピュータのディスプレイに図形データとして表示するプログラム品質評価システムのプログラム品質評価方法であって、
該プログラム品質評価システムのコンピュータに、
前記モジュールを表す図形要素の形状を円環状に設定する図形設定行程と、
前記ステップ数が多いモジュールがステップ数の小さいモジュールに対して相対的に大きくなるような図形要素をモジュール毎に設定する図形サイズ設定工程と、
前記図形要素間の距離が階層構造の上位から下位に向かうに従って近接するように要素図形間の距離をモジュール毎に算出する距離算出工程と、
前記図形サイズ設定工程により算出したサイズの複数の図形要素を、前記階層構造の最上位モジュールを恒星、該最上位モジュールの次階層の中位モジュールを恒星の周りを周回する惑星、該中位モジュールの次階層の下位モジュールを惑星の周りを周回する衛星とし、前記距離算出工程により算出した距離の間隔を空けた前記恒星・惑星・衛星の位置関係にて配置するための座標データを算出する座標算出工程と、
前記図形要素自体の回転周期である自転周期を前記ステップ数当たりの処理時間に応じてモジュール毎に算出する自転周期算出工程と、
前記図形要素が他の図形要素の周りを移動する公転周期を前記単位時間当たりの処理回数に応じてモジュール毎に算出する公転周期算出工程と、
前記要素図形の表示色をステップ数当たりのバグ数に応じてモジュール毎に設定する色設定工程と、
前記座標算出工程により算出した座標位置に、前記図形設定工程により設定したサイズの複数の図形要素を、前記自転周期算出工程により算出した自転周期且つ前記工程周期工程により算出した公転周期且つ前記色設定工程により設定した表示色によってクライアントコンピュータのディスプレイに表示させる表示工程とを実行させることを特徴とするプログラム品質評価方法。
【請求項7】
前記評価結果データにプログラムのひとつの関数の中に含まれる機能の純粋度を示す凝集度が含まれ、前記プログラム品質評価システムのコンピュータが、前記凝集度が最も高いモジュールの図形要素の形状を他の図形要素の形状と異なる形状に設定することを特徴とする請求項5又は6記載のプログラム品質評価方法。
【請求項8】
前記プログラム品質評価システムのコンピュータが、評価対象コンピュータプログラムの階層構造とステップ数と単位時間当たりの処理回数と該ステップ数当たりの処理時間とバグ数とを含む評価結果データを検出する品質評価部に接続され、該品質評価部から前記品質評価データを抽出することを特徴とする請求項5から7何れかに記載のプログラム品質評価方法。
【請求項9】
評価対象コンピュータプログラムが、複数の命令語から成るメインプログラムモジュールと、該メインプログラムモジュールにより起動され、複数の命令語から成るメニュープログラムモジュールと、該メニュープログラムモジュールから選択的に起動され、複数の命令語から成るヘルププログラムモジュールとタイトル表示プログラムモジュールと処理プログラムモジュールと、該処理プログラムモジュールにより選択的に起動され、複数の命令語から成る複数のサブプログラムモジュールとが階層構造として構成され、前記評価対象コンピュータプログラムの階層構造とステップ数と単位時間当たりの処理回数と該ステップ数当たりの処理時間とバグ数とを含む評価結果データをクライアントコンピュータのディスプレイに図形データとして表示するプログラム品質評価システムのプログラム品質評価プログラムであって、
該プログラム品質評価システムのコンピュータに、
前記モジュールを表す図形要素の形状を設定する図形設定機能と、
前記図形要素の大きさをモジュール毎のステップ数に応じて設定する図形サイズ設定機能と、
前記図形要素の表示間隔の距離を前記階層構造の階層数に応じて設定する距離設定機能と、
前記形状とサイズと表示間隔距離を設定した複数の図形要素を、前記階層構造の上位から下位への階層構造が認識可能な位置関係にて配置するための座標データを算出する座標算出機能と、
前記モジュール内のステップ数当たりの処理時間を表す図形要素表示動作を前記処理時間に応じて設定する処理時間表示設定機能と、
前記上位階層の図形要素のモジュールの下位階層に位置するモジュールの図形要素との関係を下位階層モジュールの単位時間当たりの処理回数を表す図形要素表示動作を前記処理回数に応じて設定する処理回数間表示設定機能と、
前記要素図形の表示色をステップ数当たりのバグ数に応じて設定する色設定機能と、
前記座標設定機能により設定した座標位置に、前記図形サイズ設定機能により設定したサイズの複数の図形要素を、前記処理回数表示設定機能により設定した処理回数を表す図形要素表示動作且つ前記処理時間表示機能により設定した処理時間を表す図形要素表示動作且つ前記色設定機能により設定した表示色によってクライアントコンピュータのディスプレイに表示させる表示機能とを実現させることを特徴とするプログラム品質評価プログラム。
【請求項10】
評価対象コンピュータプログラムが、複数の命令語から成るメインプログラムモジュールと、該メインプログラムモジュールにより起動され、複数の命令語から成るメニュープログラムモジュールと、該メニュープログラムモジュールから選択的に起動され、複数の命令語から成るヘルププログラムモジュールとタイトル表示プログラムモジュールと処理プログラムモジュールと、該処理プログラムモジュールにより選択的に起動され、複数の命令語から成る複数のサブプログラムモジュールとが階層構造として構成され、前記評価対象コンピュータプログラムの階層構造とステップ数と単位時間当たりの処理回数と該ステップ数当たりの処理時間とバグ数とを含む評価結果データをクライアントコンピュータのディスプレイに図形データとして表示するプログラム品質評価システムのプログラム品質評価プログラムであって、
該プログラム品質評価システムのコンピュータに、
前記モジュールを表す図形要素の形状を円環状に設定する図形設定機能と、
前記ステップ数が多いモジュールがステップ数の小さいモジュールに対して相対的に大きくなるような図形要素をモジュール毎に設定する図形サイズ設定機能と、
前記図形要素間の距離が階層構造の上位から下位に向かうに従って近接するように要素図形間の距離をモジュール毎に算出する距離算出機能と、
前記図形サイズ設定機能により算出したサイズの複数の図形要素を、前記階層構造の最上位モジュールを恒星、該最上位モジュールの次階層の中位モジュールを恒星の周りを周回する惑星、該中位モジュールの次階層の下位モジュールを惑星の周りを周回する衛星とし、前記距離算出機能により算出した距離の間隔を空けた前記恒星・惑星・衛星の位置関係にて配置するための座標データを算出する座標算出機能と、
前記図形要素自体の回転周期である自転周期を前記ステップ数当たりの処理時間に応じてモジュール毎に算出する自転周期算出機能と、
前記図形要素が他の図形要素の周りを移動する公転周期を前記単位時間当たりの処理回数に応じてモジュール毎に算出する公転周期算出機能と、
前記要素図形の表示色をステップ数当たりのバグ数に応じてモジュール毎に設定する色設定機能と、
前記座標算出機能により算出した座標位置に、前記図形設定機能により設定したサイズの複数の図形要素を、前記自転周期算出機能により算出した自転周期且つ前記工程周期機能により算出した公転周期且つ前記色設定機能により設定した表示色によってクライアントコンピュータのディスプレイに表示させる表示機能とを実現させることを特徴とするプログラム品質評価プログラム。
【請求項11】
前記評価結果データにプログラムのひとつの関数の中に含まれる機能の純粋度を示す凝集度が含まれ、前記プログラム品質評価システムのコンピュータが、前記凝集度が最も高いモジュールの図形要素の形状を他の図形要素の形状と異なる形状に設定する機能を実現することを特徴とする請求項9又は10記載のプログラム品質評価プログラム。
【請求項12】
前記プログラム品質評価システムのコンピュータが、評価対象コンピュータプログラムの階層構造とステップ数と単位時間当たりの処理回数と該ステップ数当たりの処理時間とバグ数とを含む評価結果データを検出する品質評価部に接続され、該品質評価部から前記品質評価データを抽出する機能を実現させる機能を実現させることを特徴とする請求項9から11何れかに記載のプログラム品質評価プログラム。
【請求項1】
評価対象コンピュータプログラムが、複数の命令語から成るメインプログラムモジュールと、該メインプログラムモジュールにより起動され、複数の命令語から成るメニュープログラムモジュールと、該メニュープログラムモジュールから選択的に起動され、複数の命令語から成るヘルププログラムモジュールとタイトル表示プログラムモジュールと処理プログラムモジュールと、該処理プログラムモジュールにより選択的に起動され、複数の命令語から成る複数のサブプログラムモジュールとが階層構造として構成され、前記評価対象コンピュータプログラムの階層構造とステップ数と単位時間当たりの処理回数と該ステップ数当たりの処理時間とバグ数とを含む評価結果データをクライアントコンピュータのディスプレイに図形データとして表示するプログラム品質評価システムであって、
該プログラム品質評価システムのコンピュータが、
前記モジュールを表す図形要素の形状を設定する図形設定行程と、
前記図形要素の大きさをモジュール毎のステップ数に応じて設定する図形サイズ設定工程と、
前記図形要素の表示間隔の距離を前記階層構造の階層数に応じて設定する距離設定工程と、
前記形状とサイズと表示間隔距離を設定した複数の図形要素を、前記階層構造の上位から下位への階層構造が認識可能な位置関係にて配置するための座標データを算出する座標算出工程と、
前記モジュール内のステップ数当たりの処理時間を表す図形要素表示動作を前記処理時間に応じて設定する処理時間表示設定工程と、
前記上位階層の図形要素のモジュールの下位階層に位置するモジュールの図形要素との関係を下位階層モジュールの単位時間当たりの処理回数を表す図形要素表示動作を前記処理回数に応じて設定する処理回数間表示設定工程と、
前記要素図形の表示色をステップ数当たりのバグ数に応じて設定する色設定工程と、
前記座標設定工程により設定した座標位置に、前記図形サイズ設定工程により設定したサイズの複数の図形要素を、前記処理回数表示設定工程により設定した処理回数を表す図形要素表示動作且つ前記処理時間表示工程により設定した処理時間を表す図形要素表示動作且つ前記色設定工程により設定した表示色によってクライアントコンピュータのディスプレイに表示させる表示工程とを実行することを特徴とするプログラム品質評価システム。
【請求項2】
評価対象コンピュータプログラムが、複数の命令語から成るメインプログラムモジュールと、該メインプログラムモジュールにより起動され、複数の命令語から成るメニュープログラムモジュールと、該メニュープログラムモジュールから選択的に起動され、複数の命令語から成るヘルププログラムモジュールとタイトル表示プログラムモジュールと処理プログラムモジュールと、該処理プログラムモジュールにより選択的に起動され、複数の命令語から成る複数のサブプログラムモジュールとが階層構造として構成され、前記評価対象コンピュータプログラムの階層構造とステップ数と単位時間当たりの処理回数と該ステップ数当たりの処理時間とバグ数とを含む評価結果データをクライアントコンピュータのディスプレイに図形データとして表示するプログラム品質評価システムであって、
該プログラム品質評価システムのコンピュータが、
前記モジュールを表す図形要素の形状を円環状に設定する図形設定行程と、
前記ステップ数が多いモジュールがステップ数の小さいモジュールに対して相対的に大きくなるような図形要素をモジュール毎に設定する図形サイズ設定工程と、
前記図形要素間の距離が階層構造の上位から下位に向かうに従って近接するように要素図形間の距離をモジュール毎に算出する距離算出工程と、
前記図形サイズ設定工程により算出したサイズの複数の図形要素を、前記階層構造の最上位モジュールを恒星、該最上位モジュールの次階層の中位モジュールを恒星の周りを周回する惑星、該中位モジュールの次階層の下位モジュールを惑星の周りを周回する衛星とし、前記距離算出工程により算出した距離の間隔を空けた前記恒星・惑星・衛星の位置関係にて配置するための座標データを算出する座標算出工程と、
前記図形要素自体の回転周期である自転周期を前記ステップ数当たりの処理時間に応じてモジュール毎に算出する自転周期算出工程と、
前記図形要素が他の図形要素の周りを移動する公転周期を前記単位時間当たりの処理回数に応じてモジュール毎に算出する公転周期算出工程と、
前記要素図形の表示色をステップ数当たりのバグ数に応じてモジュール毎に設定する色設定工程と、
前記座標算出工程により算出した座標位置に、前記図形設定工程により設定したサイズの複数の図形要素を、前記自転周期算出工程により算出した自転周期且つ前記工程周期工程により算出した公転周期且つ前記色設定工程により設定した表示色によってクライアントコンピュータのディスプレイに表示させる表示工程とを実行することを特徴とするプログラム品質評価システム。
【請求項3】
前記評価結果データにプログラムのひとつの関数の中に含まれる機能の純粋度を示す凝集度が含まれ、前記プログラム品質評価システムのコンピュータが、前記凝集度が最も高いモジュールの図形要素の形状を他の図形要素の形状と異なる形状に設定することを特徴とする請求項1又は2記載のプログラム品質評価システム。
【請求項4】
前記プログラム品質評価システムのコンピュータが、評価対象コンピュータプログラムの階層構造とステップ数と単位時間当たりの処理回数と該ステップ数当たりの処理時間とバグ数とを含む評価結果データを検出する品質評価部に接続され、該品質評価部から前記品質評価データを抽出することを特徴とする請求項1から3何れかに記載のプログラム品質評価システム。
【請求項5】
評価対象コンピュータプログラムが、複数の命令語から成るメインプログラムモジュールと、該メインプログラムモジュールにより起動され、複数の命令語から成るメニュープログラムモジュールと、該メニュープログラムモジュールから選択的に起動され、複数の命令語から成るヘルププログラムモジュールとタイトル表示プログラムモジュールと処理プログラムモジュールと、該処理プログラムモジュールにより選択的に起動され、複数の命令語から成る複数のサブプログラムモジュールとが階層構造として構成され、前記評価対象コンピュータプログラムの階層構造とステップ数と単位時間当たりの処理回数と該ステップ数当たりの処理時間とバグ数とを含む評価結果データをクライアントコンピュータのディスプレイに図形データとして表示するプログラム品質評価システムのプログラム品質評価方法であって、
該プログラム品質評価システムのコンピュータに、
前記モジュールを表す図形要素の形状を設定する図形設定行程と、
前記図形要素の大きさをモジュール毎のステップ数に応じて設定する図形サイズ設定工程と、
前記図形要素の表示間隔の距離を前記階層構造の階層数に応じて設定する距離設定工程と、
前記形状とサイズと表示間隔距離を設定した複数の図形要素を、前記階層構造の上位から下位への階層構造が認識可能な位置関係にて配置するための座標データを算出する座標算出工程と、
前記モジュール内のステップ数当たりの処理時間を表す図形要素表示動作を前記処理時間に応じて設定する処理時間表示設定工程と、
前記上位階層の図形要素のモジュールの下位階層に位置するモジュールの図形要素との関係を下位階層モジュールの単位時間当たりの処理回数を表す図形要素表示動作を前記処理回数に応じて設定する処理回数間表示設定工程と、
前記要素図形の表示色をステップ数当たりのバグ数に応じて設定する色設定工程と、
前記座標設定工程により設定した座標位置に、前記図形サイズ設定工程により設定したサイズの複数の図形要素を、前記処理回数表示設定工程により設定した処理回数を表す図形要素表示動作且つ前記処理時間表示工程により設定した処理時間を表す図形要素表示動作且つ前記色設定工程により設定した表示色によってクライアントコンピュータのディスプレイに表示させる表示工程とを実行させることを特徴とするプログラム品質評価方法。
【請求項6】
評価対象コンピュータプログラムが、複数の命令語から成るメインプログラムモジュールと、該メインプログラムモジュールにより起動され、複数の命令語から成るメニュープログラムモジュールと、該メニュープログラムモジュールから選択的に起動され、複数の命令語から成るヘルププログラムモジュールとタイトル表示プログラムモジュールと処理プログラムモジュールと、該処理プログラムモジュールにより選択的に起動され、複数の命令語から成る複数のサブプログラムモジュールとが階層構造として構成され、前記評価対象コンピュータプログラムの階層構造とステップ数と単位時間当たりの処理回数と該ステップ数当たりの処理時間とバグ数とを含む評価結果データをクライアントコンピュータのディスプレイに図形データとして表示するプログラム品質評価システムのプログラム品質評価方法であって、
該プログラム品質評価システムのコンピュータに、
前記モジュールを表す図形要素の形状を円環状に設定する図形設定行程と、
前記ステップ数が多いモジュールがステップ数の小さいモジュールに対して相対的に大きくなるような図形要素をモジュール毎に設定する図形サイズ設定工程と、
前記図形要素間の距離が階層構造の上位から下位に向かうに従って近接するように要素図形間の距離をモジュール毎に算出する距離算出工程と、
前記図形サイズ設定工程により算出したサイズの複数の図形要素を、前記階層構造の最上位モジュールを恒星、該最上位モジュールの次階層の中位モジュールを恒星の周りを周回する惑星、該中位モジュールの次階層の下位モジュールを惑星の周りを周回する衛星とし、前記距離算出工程により算出した距離の間隔を空けた前記恒星・惑星・衛星の位置関係にて配置するための座標データを算出する座標算出工程と、
前記図形要素自体の回転周期である自転周期を前記ステップ数当たりの処理時間に応じてモジュール毎に算出する自転周期算出工程と、
前記図形要素が他の図形要素の周りを移動する公転周期を前記単位時間当たりの処理回数に応じてモジュール毎に算出する公転周期算出工程と、
前記要素図形の表示色をステップ数当たりのバグ数に応じてモジュール毎に設定する色設定工程と、
前記座標算出工程により算出した座標位置に、前記図形設定工程により設定したサイズの複数の図形要素を、前記自転周期算出工程により算出した自転周期且つ前記工程周期工程により算出した公転周期且つ前記色設定工程により設定した表示色によってクライアントコンピュータのディスプレイに表示させる表示工程とを実行させることを特徴とするプログラム品質評価方法。
【請求項7】
前記評価結果データにプログラムのひとつの関数の中に含まれる機能の純粋度を示す凝集度が含まれ、前記プログラム品質評価システムのコンピュータが、前記凝集度が最も高いモジュールの図形要素の形状を他の図形要素の形状と異なる形状に設定することを特徴とする請求項5又は6記載のプログラム品質評価方法。
【請求項8】
前記プログラム品質評価システムのコンピュータが、評価対象コンピュータプログラムの階層構造とステップ数と単位時間当たりの処理回数と該ステップ数当たりの処理時間とバグ数とを含む評価結果データを検出する品質評価部に接続され、該品質評価部から前記品質評価データを抽出することを特徴とする請求項5から7何れかに記載のプログラム品質評価方法。
【請求項9】
評価対象コンピュータプログラムが、複数の命令語から成るメインプログラムモジュールと、該メインプログラムモジュールにより起動され、複数の命令語から成るメニュープログラムモジュールと、該メニュープログラムモジュールから選択的に起動され、複数の命令語から成るヘルププログラムモジュールとタイトル表示プログラムモジュールと処理プログラムモジュールと、該処理プログラムモジュールにより選択的に起動され、複数の命令語から成る複数のサブプログラムモジュールとが階層構造として構成され、前記評価対象コンピュータプログラムの階層構造とステップ数と単位時間当たりの処理回数と該ステップ数当たりの処理時間とバグ数とを含む評価結果データをクライアントコンピュータのディスプレイに図形データとして表示するプログラム品質評価システムのプログラム品質評価プログラムであって、
該プログラム品質評価システムのコンピュータに、
前記モジュールを表す図形要素の形状を設定する図形設定機能と、
前記図形要素の大きさをモジュール毎のステップ数に応じて設定する図形サイズ設定機能と、
前記図形要素の表示間隔の距離を前記階層構造の階層数に応じて設定する距離設定機能と、
前記形状とサイズと表示間隔距離を設定した複数の図形要素を、前記階層構造の上位から下位への階層構造が認識可能な位置関係にて配置するための座標データを算出する座標算出機能と、
前記モジュール内のステップ数当たりの処理時間を表す図形要素表示動作を前記処理時間に応じて設定する処理時間表示設定機能と、
前記上位階層の図形要素のモジュールの下位階層に位置するモジュールの図形要素との関係を下位階層モジュールの単位時間当たりの処理回数を表す図形要素表示動作を前記処理回数に応じて設定する処理回数間表示設定機能と、
前記要素図形の表示色をステップ数当たりのバグ数に応じて設定する色設定機能と、
前記座標設定機能により設定した座標位置に、前記図形サイズ設定機能により設定したサイズの複数の図形要素を、前記処理回数表示設定機能により設定した処理回数を表す図形要素表示動作且つ前記処理時間表示機能により設定した処理時間を表す図形要素表示動作且つ前記色設定機能により設定した表示色によってクライアントコンピュータのディスプレイに表示させる表示機能とを実現させることを特徴とするプログラム品質評価プログラム。
【請求項10】
評価対象コンピュータプログラムが、複数の命令語から成るメインプログラムモジュールと、該メインプログラムモジュールにより起動され、複数の命令語から成るメニュープログラムモジュールと、該メニュープログラムモジュールから選択的に起動され、複数の命令語から成るヘルププログラムモジュールとタイトル表示プログラムモジュールと処理プログラムモジュールと、該処理プログラムモジュールにより選択的に起動され、複数の命令語から成る複数のサブプログラムモジュールとが階層構造として構成され、前記評価対象コンピュータプログラムの階層構造とステップ数と単位時間当たりの処理回数と該ステップ数当たりの処理時間とバグ数とを含む評価結果データをクライアントコンピュータのディスプレイに図形データとして表示するプログラム品質評価システムのプログラム品質評価プログラムであって、
該プログラム品質評価システムのコンピュータに、
前記モジュールを表す図形要素の形状を円環状に設定する図形設定機能と、
前記ステップ数が多いモジュールがステップ数の小さいモジュールに対して相対的に大きくなるような図形要素をモジュール毎に設定する図形サイズ設定機能と、
前記図形要素間の距離が階層構造の上位から下位に向かうに従って近接するように要素図形間の距離をモジュール毎に算出する距離算出機能と、
前記図形サイズ設定機能により算出したサイズの複数の図形要素を、前記階層構造の最上位モジュールを恒星、該最上位モジュールの次階層の中位モジュールを恒星の周りを周回する惑星、該中位モジュールの次階層の下位モジュールを惑星の周りを周回する衛星とし、前記距離算出機能により算出した距離の間隔を空けた前記恒星・惑星・衛星の位置関係にて配置するための座標データを算出する座標算出機能と、
前記図形要素自体の回転周期である自転周期を前記ステップ数当たりの処理時間に応じてモジュール毎に算出する自転周期算出機能と、
前記図形要素が他の図形要素の周りを移動する公転周期を前記単位時間当たりの処理回数に応じてモジュール毎に算出する公転周期算出機能と、
前記要素図形の表示色をステップ数当たりのバグ数に応じてモジュール毎に設定する色設定機能と、
前記座標算出機能により算出した座標位置に、前記図形設定機能により設定したサイズの複数の図形要素を、前記自転周期算出機能により算出した自転周期且つ前記工程周期機能により算出した公転周期且つ前記色設定機能により設定した表示色によってクライアントコンピュータのディスプレイに表示させる表示機能とを実現させることを特徴とするプログラム品質評価プログラム。
【請求項11】
前記評価結果データにプログラムのひとつの関数の中に含まれる機能の純粋度を示す凝集度が含まれ、前記プログラム品質評価システムのコンピュータが、前記凝集度が最も高いモジュールの図形要素の形状を他の図形要素の形状と異なる形状に設定する機能を実現することを特徴とする請求項9又は10記載のプログラム品質評価プログラム。
【請求項12】
前記プログラム品質評価システムのコンピュータが、評価対象コンピュータプログラムの階層構造とステップ数と単位時間当たりの処理回数と該ステップ数当たりの処理時間とバグ数とを含む評価結果データを検出する品質評価部に接続され、該品質評価部から前記品質評価データを抽出する機能を実現させる機能を実現させることを特徴とする請求項9から11何れかに記載のプログラム品質評価プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【公開番号】特開2013−37564(P2013−37564A)
【公開日】平成25年2月21日(2013.2.21)
【国際特許分類】
【出願番号】特願2011−173780(P2011−173780)
【出願日】平成23年8月9日(2011.8.9)
【出願人】(000233491)株式会社日立システムズ (394)
【Fターム(参考)】
【公開日】平成25年2月21日(2013.2.21)
【国際特許分類】
【出願日】平成23年8月9日(2011.8.9)
【出願人】(000233491)株式会社日立システムズ (394)
【Fターム(参考)】
[ Back to top ]