TY - GEN
T1 - The detection of faulty code violating implicit coding rules
AU - Matsumura, T.
AU - Monden, A.
AU - Matsumoto, K.
N1 - Funding Information:
This study was supported by the Industrial Technology Research Grant Program from the New Energy and Industrial Technology Development Organization (NEDO) of Japan.
Publisher Copyright:
© 2002 IEEE.
PY - 2002
Y1 - 2002
N2 - In the field of legacy software maintenance, there unexpectedly arises a large number of implicit coding rules, which we regard as a cancer in software evolution. Since such rules are usually undocumented and each of them is recognized only by a few members in a maintenance team, a person who is not aware of a rule often violates it while doing various maintenance activities such as adding a new functionality or repairing faults. The problem here is not only such a violation introduces a new fault but also the same kind of fault will be generated again and again in the future by different maintainers. This paper proposes a method for detecting code fragments that violate implicit coding rules. In the method, an expert maintainer, firstly, investigates the cause of each failure, described in the past failure reports, and identifies all the implicit coding rules that lie behind the faults. Then, the code patterns violating the rules (which we call "faulty code patterns") are described in a pattern description language. Finally, the potential faulty code fragments are automatically detected by a pattern matching technique. The result of a case study with large legacy software showed that 32.7% of the failures, which have been reported during a maintenance process, were due to the violation of implicit coding rules. Moreover, 152 faults existed in 772 code fragments detected by the prototype matching system, while 111 of them were not reported.
AB - In the field of legacy software maintenance, there unexpectedly arises a large number of implicit coding rules, which we regard as a cancer in software evolution. Since such rules are usually undocumented and each of them is recognized only by a few members in a maintenance team, a person who is not aware of a rule often violates it while doing various maintenance activities such as adding a new functionality or repairing faults. The problem here is not only such a violation introduces a new fault but also the same kind of fault will be generated again and again in the future by different maintainers. This paper proposes a method for detecting code fragments that violate implicit coding rules. In the method, an expert maintainer, firstly, investigates the cause of each failure, described in the past failure reports, and identifies all the implicit coding rules that lie behind the faults. Then, the code patterns violating the rules (which we call "faulty code patterns") are described in a pattern description language. Finally, the potential faulty code fragments are automatically detected by a pattern matching technique. The result of a case study with large legacy software showed that 32.7% of the failures, which have been reported during a maintenance process, were due to the violation of implicit coding rules. Moreover, 152 faults existed in 772 code fragments detected by the prototype matching system, while 111 of them were not reported.
UR - http://www.scopus.com/inward/record.url?scp=84964681135&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84964681135&partnerID=8YFLogxK
U2 - 10.1109/ISESE.2002.1166936
DO - 10.1109/ISESE.2002.1166936
M3 - Conference contribution
AN - SCOPUS:84964681135
T3 - ISESE 2002 - Proceedings, 2002 International Symposium on Empirical Software Engineering
SP - 173
EP - 182
BT - ISESE 2002 - Proceedings, 2002 International Symposium on Empirical Software Engineering
PB - Institute of Electrical and Electronics Engineers Inc.
T2 - International Symposium on Empirical Software Engineering, ISESE 2002
Y2 - 3 October 2002 through 4 October 2002
ER -