JPH06266550A - プログラム保守性評価装置 - Google Patents

プログラム保守性評価装置

Info

Publication number
JPH06266550A
JPH06266550A JP5353793A JP5353793A JPH06266550A JP H06266550 A JPH06266550 A JP H06266550A JP 5353793 A JP5353793 A JP 5353793A JP 5353793 A JP5353793 A JP 5353793A JP H06266550 A JPH06266550 A JP H06266550A
Authority
JP
Japan
Prior art keywords
program
modules
value
module
maintainability
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP5353793A
Other languages
English (en)
Inventor
Kazuhiko Iio
和彦 飯尾
Takeshi Miyake
武司 三宅
Tsuneo Furuyama
恒夫 古山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP5353793A priority Critical patent/JPH06266550A/ja
Publication of JPH06266550A publication Critical patent/JPH06266550A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

(57)【要約】 【目的】 プログラム保守性の評価値を求めるプログラ
ム保守性評価装置を提供する。 【構成】 入力部1から原始プログラム4を算出部2に
入力し、評価対象のプログラムからモジュール間の呼び
出し関係を構造化チャートとして作成し、モジュール間
で共通に使用されるグローバル変数に着目し、プログラ
ム保守性の評価値を構造化チャート上でのグローバル変
数の分布を基に求めている。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、計算機のプログラムの
開発におけるプログラムの保守性を評価するためにプロ
グラムの保守性の評価値を生成するプログラムの保守性
評価装置に関する。この評価値は保守担当者の割り当て
時やプログラム再設計時などの基礎データとすることが
できる。
【0002】
【従来の技術】計算機のプログラムの保守時において
は、プログラムの保守性が問題になる。保守性の評価法
はまだ確立していないが、コメント分と実行分の割合な
どで評価する方法、またはモジュール内部で使用されて
いるデータの数(内部データ量)やパラメータの受け渡
しでやり取りされるデータの数(モジュール間データ
量)などの各々のモジュールのデータ量で評価する方
法、または呼び出すモジュールの数(ファンアウト数)
などの評価尺度を用いて評価する方法が一般的である。
【0003】
【発明が解決しようとする課題】しかしながら、実際の
保守作業においては、保守担当者はドキュメントとソー
スプログラムの読解に最も時間をかけており、特にソー
スプログラムの読解に最も時間をかけ、ソースプログラ
ムの内容を理解するのに最も苦労している。この場合、
プログラム全体というよりは着目するモジュール単位で
処理内容を理解することが多いため、モジュールがそれ
ぞれ独立してわかり易く設計されている必要がある。す
なわち、個々のモジュールの独立性が保守のしやすさ、
つまり保守性に強く影響していると考えられる。
【0004】従って、従来のようなコメント文の割合や
モジュールのデータ量(数)などではプログラムの保守
性を正当に評価することができないという結果を生じか
ねないという問題がある。
【0005】本発明は、上記に鑑みてなされたもので、
その目的とするところは、プログラム保守性の評価値を
求めるプログラム保守性評価装置を提供することにあ
る。
【0006】
【課題を解決するための手段】上記目的を達成するた
め、本発明のプログラム保守性評価装置は、プログラム
を構成するモジュールの処理内容の理解容易度をもとに
当該プログラムの保守性を評価するプログラム保守性評
価装置であって、評価対象の原始プログラムを入力する
入力部と、前記入力部から渡されたプログラムからモジ
ュール間の呼び出し関係を構造化チャートとして作成
し、モジュール間で共通に使用されるグローバル変数に
着目し、グローバル変数の存在するモジュールを求め、
モジュールを点としモジュール間の直接呼び出しを距離
1とするグラフとして前記構造化チャートを見なし、1
つのモジュールと当該モジュールに含まれるグローバル
変数に着目し、当該変数を含む他のモジュールの全てに
対する当該モジュールからの距離を加算した第1の値、
当該距離の平均値を第2の値、当該変数を含むモジュー
ルのうち最も近いモジュールへの距離と他の全てのモジ
ュールへの距離に3分の1を乗じた値を加算した値とを
合計した値を第3の値とし、当該モジュールに含まれる
グローバル変数の全てに対して第1の値の合計値、第2
の値の合計値および第3の値の合計値を求め、各々を当
該モジュールの保守性評価尺度として、更に当該プログ
ラム内の全てのモジュールの保守性評価尺度の値を合計
して、当該プログラムの保守性評価尺度の値として算出
する算出部と、前記算出部で算出した結果を出力する出
力部とを有することを要旨とする。
【0007】
【作用】本発明のプログラム保守性評価装置では、入力
された評価対象のプログラムからモジュール間の呼び出
し関係を構造化チャートとして作成し、モジュール間で
共通に使用されるグローバル変数に着目し、プログラム
保守性の評価値を構造化チャート上でのグローバル変数
の分布を基に求めている。
【0008】
【実施例】図1は、本発明の一実施例に係わるプログラ
ム保守性評価装置の構成を示すブロック図である。
【0009】図1に示すプログラム保守性評価装置は、
計算機のプログラムの保守性を評価する保守性評価値を
生成するものであり、所与のプログラムについての原始
プログラム4を供給される入力部1と、該入力部1から
供給されるプログラムの保守性評価値を算出する算出部
2と、該算出部2で算出したプログラムの保守性評価値
を出力する出力部3とを有する。
【0010】前記算出部2は、入力部1から供給される
原始プログラムからモジュールの呼び出し関係をサーチ
し、モジュールの相関を示す構造化チャートを逆生成す
る。また、原始プログラムから各モジュールに含まれる
グローバル変数の位置をサーチする。グローバル変数は
モジュール間で共通に使用され、モジュールの独立性に
相関を持つと考えられる。この構造化チャートとグロー
バル変数の位置をもとに算出規則5に従ってグローバル
変数の散らばり具合いを表す値を算出する。出力部3は
評価値6として出力する。
【0011】なお、図1に示す実施例は一例であり、グ
ローバル変数の種類数やグローバル変数を含むモジュー
ル数などのグローバル変数の分布をもとに算出する他の
尺度すべてが適用可能である。仮に、原始プログラムの
モジュールの構成とその中に含まれるグローバル変数の
位置が図2のような分布になっているものとする。図2
において、太枠で囲んだモジュールが対象とする保守性
の被測定モジュールであり、α、βがグローバル変数で
ある。以下に算出規則5と算出部2の処理を説明する。
【0012】ここで、構造化チャートをグラフとし、各
モジュールを点、呼び出し関係を距離1のグラフと考え
る。距離を導入することによりグローバル変数の分布を
的確に表すことができる。変数αに関しては保守性の評
価対象モジュールから距離2と距離3の位置に変数αが
あるので、αに関する距離は5、変数βに関しては距離
1と距離2の位置に変数βがあるので、βに関する距離
は3、すなわちこのモジュールの評価尺度「距離」は3
+5=8となる。
【0013】また、モジュールの平均距離については、
αは距離2と距離3のモジュールがあるので、平均距離
は2.5、βについては距離1と距離2のモジュールが
あるので、平均距離は1.5、すなわちこのモジュール
の評価尺度「平均距離」は、2.5+1.5=4とな
る。
【0014】評価尺度「重み付け平均距離」は、最も近
いグローバル変数を含むモジュールまでの距離はそのま
ま加算し、それ以外のグローバル変数を含むモジュール
までの距離は、その1/3を加算する。この場合(1+
2)+(2+3)/3=4.7となる。この「重み付け
平均距離」は最も近いモジュールに含まれる変数は必ず
調べにいき、他の変数については3個に1個の割合で調
べにいく作業過程を仮定している。これらの距離を導入
した評価尺度はモジュールの分かりやすさと高い相関が
あることが評価実験によりわかっており、プログラムの
保守性を評価する指標として使うことが可能である。
【0015】これらの評価尺度が保守性を表す尺度とし
て適切かどうか確認するために行った評価実験の結果に
ついて説明する。対象プログラムとして、550ステッ
プから700ステップ程度のC言語で書かれた4ケース
のアプリケーションプログラムを選んだ。それぞれのプ
ログラムの中から40ステップ程度のモジュールを理解
度を測るための対象モジュールとして選んだ。また、文
中のコメントはすべて取り除いた。
【0016】それぞれのモジュールの理解度を計るため
に、対象モジュールについて客観的に採点できる設問を
合計9問、それぞれのケース毎に作成し、何分間で9問
を正解したかを計測した。
【0017】C言語の経験が豊富な3人の被験者に対し
て4回(4ケース)の実験を行った。なお、被験者には
実験の主目的は教えていない。
【0018】実験の結果、分かりやすさと各評価尺度の
相関は、次に示す表1のようになった。これによりグロ
ーバル変数の分布を考慮した評価尺度「距離」、「平均
距離」、「重み付け平均距離」がモジュールの分かりや
すさと順に相関が高いという結果を確認した。
【0019】
【表1】 なお、実験は50分で、50分以上かかった場合は50
分の時点で何問正解したかを計測し、50×正答数÷9
の式を用いて時間に換算した。この換算時間をモジュー
ルの分かりやすさを計るための代用尺度とした。
【0020】
【発明の効果】以上の説明から明らかにわかるように、
本発明によれば、入力された評価対象のプログラムから
モジュール間の呼び出し関係を構造化チャートとして作
成し、モジュール間で共通に使用されるグローバル変数
に着目し、プログラム保守性の評価値を構造化チャート
上でのグローバル変数の分布を基に求めているので、プ
ログラムの保守性を単なる量だけでなく、プログラムの
質を加味して正当に評価できる効果がある。
【図面の簡単な説明】
【図1】本発明の一実施例に係わるプログラム保守性評
価装置の構成を示すブロック図である。
【図2】図1に示す実施例における尺度の算出例を示す
図である。
【符号の説明】
1 入力部 2 算出部 3 出力部 4 原始プログラム 5 算出規則

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 プログラムを構成するモジュールの処理
    内容の理解容易度をもとに当該プログラムの保守性を評
    価するプログラム保守性評価装置であって、評価対象の
    原始プログラムを入力する入力部と、前記入力部から渡
    されたプログラムからモジュール間の呼び出し関係を構
    造化チャートとして作成し、モジュール間で共通に使用
    されるグローバル変数に着目し、グローバル変数の存在
    するモジュールを求め、モジュールを点としモジュール
    間の直接呼び出しを距離1とするグラフとして前記構造
    化チャートを見なし、1つのモジュールと当該モジュー
    ルに含まれるグローバル変数に着目し、当該変数を含む
    他のモジュールの全てに対する当該モジュールからの距
    離を加算した第1の値、当該距離の平均値を第2の値、
    当該変数を含むモジュールのうち最も近いモジュールへ
    の距離と他の全てのモジュールへの距離に3分の1を乗
    じた値を加算した値とを合計した値を第3の値とし、当
    該モジュールに含まれるグローバル変数の全てに対して
    第1の値の合計値、第2の値の合計値および第3の値の
    合計値を求め、各々を当該モジュールの保守性評価尺度
    として、更に当該プログラム内の全てのモジュールの保
    守性評価尺度の値を合計して、当該プログラムの保守性
    評価尺度の値として算出する算出部と、前記算出部で算
    出した結果を出力する出力部とを有することを特徴とす
    るプログラム保守性評価装置。
JP5353793A 1993-03-15 1993-03-15 プログラム保守性評価装置 Pending JPH06266550A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5353793A JPH06266550A (ja) 1993-03-15 1993-03-15 プログラム保守性評価装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5353793A JPH06266550A (ja) 1993-03-15 1993-03-15 プログラム保守性評価装置

Publications (1)

Publication Number Publication Date
JPH06266550A true JPH06266550A (ja) 1994-09-22

Family

ID=12945561

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5353793A Pending JPH06266550A (ja) 1993-03-15 1993-03-15 プログラム保守性評価装置

Country Status (1)

Country Link
JP (1) JPH06266550A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8307326B2 (en) 2007-07-19 2012-11-06 Fujitsu Limited Method and apparatus for supporting application enhancement

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8307326B2 (en) 2007-07-19 2012-11-06 Fujitsu Limited Method and apparatus for supporting application enhancement

Similar Documents

Publication Publication Date Title
Chan et al. Simulation techniques in financial risk management
Dothan et al. Equilibrium interest rates and multiperiod bonds in a partially observable economy
Pool The learning organization: motivating employees by integrating TQM philosophy in a supportive organizational culture
David Tables of the ordinates and probability integral of the distribution of the correlation coefficient in small samples
Xia et al. Antecedents of safety behavior in construction: A literature review and an integrated conceptual framework
Applegate The perils of unreasonable risk: information, regulatory policy, and toxic substances control
Coats et al. Mathematical modelling of patient flow through an accident and emergency department
KR20060079792A (ko) 유사율 산출장치 및 유사율 산출 프로그램
Shepperd Design metrics: an empirical analysis
Treude et al. She elicits requirements and he tests: Software engineering gender bias in large language models
Pinto et al. Large language models for education: Grading open-ended questions using chatgpt
Ritson et al. How uncertainty can save measurement from circularity and holism
JPH06266550A (ja) プログラム保守性評価装置
Sari et al. Evaluation of primary care application users in the first class clinic in Pekanbaru District on human, organization and technology factors using the EUCS method
Woungang et al. Coding-error based defects in enterprise resource planning software: Prevention, discovery, elimination and mitigation
Makhoul Seismic risk mitigation in buildings using a new method to encode a joint weighting function in multi-attribute utility theory
Pigoski SWEBOK Knowledge Area Description for Software Evolution and Maintenance (version 0.5)
Alfartoosi et al. THE IMPACT OF THE USE OF ACCOUNTING SOFTWARE ON THE ACCURACY OF FINANCIAL INFORMATION AN ANALYTICAL STUDY OF THE OPINIONS OF A SAMPLE OF EMPLOYEES AT AL-MURABBA SOFTWARE SOLUTIONS COMPANY
Fatmawati EFFECT Of IMPLEMENTING INFORMATION SYSTEMS ACCOUNTING AND CONFORMITY OF TASKS–TECHNOLOGY ON EMPLOYEE PERFORMANCE (STUDY AT BPJS EMPLOYMENT BANDUNG)
Albuquerque et al. Evaluating Interactive Detection of Code Smells on Software Development Activities
Bryant The presentation of statistics
Woodward et al. Nonorthogonal analysis of variance in repeated measures experimental designs
Jakhar et al. A cognitive measurement of Complexity and Comprehension for Object-oriented Code
Hung et al. New metrics for automated programming assessment
Abdalla Application of a Combined Approach of Text Mining and QFD Methodology Based on Single Valued Neutrosophic Numbers for Efficient Curriculum Design