A Method for Detecting Faulty Code Violating Implicit Coding Rules

Tomoko Matsumura, Akito Monden, Ken Ichi Matsumoto

Research output: Chapter in Book/Report/Conference proceedingConference contribution

8 Citations (Scopus)

Abstract

In the field of legacy software maintenance, there unexpectedly arise a large number of implicit coding rules - which are seldom written down in specification documents or design documents - as software becomes more complicated than it used be. Since not all the members in a maintenance team realize each of implicit coding rules, a maintainer who is not aware of a rule often violates the rule while doing various maintenance activities such as adding new functionality and repairing faults. The problem here is not only such a violation causes injection of a new fault into software but also this violation will be repeated again and again in the future by different maintainers. Indeed, we found that 32.7% of faults of certain legacy software were due to such violations. This paper proposes a method for detecting code fragments that violate implicit coding rules. In the method, an expert maintainer firstly investigates the causes, situations, and code fragments of each fault described in bug reports; and, identifies implicit coding rules as much as possible. Then, code patterns violating the rules (which we call bug code patterns) are described in a pattern description language. Finally, potential faulty code fragments are extracted by a pattern matching technique.

Original languageEnglish
Title of host publicationInternational Workshop on Principles of Software Evolution (IWPSE)
EditorsM. Aoyama, K. Inoue, V. Rajlich
Pages15
Number of pages1
Publication statusPublished - 2002
Externally publishedYes
EventFifth International Workshop on Principles of Software Evolution IWPSE 2002 - Orlando, FL, United States
Duration: May 19 2002May 20 2002

Other

OtherFifth International Workshop on Principles of Software Evolution IWPSE 2002
CountryUnited States
CityOrlando, FL
Period5/19/025/20/02

Fingerprint

Computer software maintenance
Pattern matching
Specifications

Keywords

  • Code inspection
  • Fault report
  • Legacy software
  • Pattern matching
  • Software maintenance

ASJC Scopus subject areas

  • Software

Cite this

Matsumura, T., Monden, A., & Matsumoto, K. I. (2002). A Method for Detecting Faulty Code Violating Implicit Coding Rules. In M. Aoyama, K. Inoue, & V. Rajlich (Eds.), International Workshop on Principles of Software Evolution (IWPSE) (pp. 15)

A Method for Detecting Faulty Code Violating Implicit Coding Rules. / Matsumura, Tomoko; Monden, Akito; Matsumoto, Ken Ichi.

International Workshop on Principles of Software Evolution (IWPSE). ed. / M. Aoyama; K. Inoue; V. Rajlich. 2002. p. 15.

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Matsumura, T, Monden, A & Matsumoto, KI 2002, A Method for Detecting Faulty Code Violating Implicit Coding Rules. in M Aoyama, K Inoue & V Rajlich (eds), International Workshop on Principles of Software Evolution (IWPSE). pp. 15, Fifth International Workshop on Principles of Software Evolution IWPSE 2002, Orlando, FL, United States, 5/19/02.
Matsumura T, Monden A, Matsumoto KI. A Method for Detecting Faulty Code Violating Implicit Coding Rules. In Aoyama M, Inoue K, Rajlich V, editors, International Workshop on Principles of Software Evolution (IWPSE). 2002. p. 15
Matsumura, Tomoko ; Monden, Akito ; Matsumoto, Ken Ichi. / A Method for Detecting Faulty Code Violating Implicit Coding Rules. International Workshop on Principles of Software Evolution (IWPSE). editor / M. Aoyama ; K. Inoue ; V. Rajlich. 2002. pp. 15
@inproceedings{c9aed2c7d49a43caa53d7550c0d8acc4,
title = "A Method for Detecting Faulty Code Violating Implicit Coding Rules",
abstract = "In the field of legacy software maintenance, there unexpectedly arise a large number of implicit coding rules - which are seldom written down in specification documents or design documents - as software becomes more complicated than it used be. Since not all the members in a maintenance team realize each of implicit coding rules, a maintainer who is not aware of a rule often violates the rule while doing various maintenance activities such as adding new functionality and repairing faults. The problem here is not only such a violation causes injection of a new fault into software but also this violation will be repeated again and again in the future by different maintainers. Indeed, we found that 32.7{\%} of faults of certain legacy software were due to such violations. This paper proposes a method for detecting code fragments that violate implicit coding rules. In the method, an expert maintainer firstly investigates the causes, situations, and code fragments of each fault described in bug reports; and, identifies implicit coding rules as much as possible. Then, code patterns violating the rules (which we call bug code patterns) are described in a pattern description language. Finally, potential faulty code fragments are extracted by a pattern matching technique.",
keywords = "Code inspection, Fault report, Legacy software, Pattern matching, Software maintenance",
author = "Tomoko Matsumura and Akito Monden and Matsumoto, {Ken Ichi}",
year = "2002",
language = "English",
pages = "15",
editor = "M. Aoyama and K. Inoue and V. Rajlich",
booktitle = "International Workshop on Principles of Software Evolution (IWPSE)",

}

TY - GEN

T1 - A Method for Detecting Faulty Code Violating Implicit Coding Rules

AU - Matsumura, Tomoko

AU - Monden, Akito

AU - Matsumoto, Ken Ichi

PY - 2002

Y1 - 2002

N2 - In the field of legacy software maintenance, there unexpectedly arise a large number of implicit coding rules - which are seldom written down in specification documents or design documents - as software becomes more complicated than it used be. Since not all the members in a maintenance team realize each of implicit coding rules, a maintainer who is not aware of a rule often violates the rule while doing various maintenance activities such as adding new functionality and repairing faults. The problem here is not only such a violation causes injection of a new fault into software but also this violation will be repeated again and again in the future by different maintainers. Indeed, we found that 32.7% of faults of certain legacy software were due to such violations. This paper proposes a method for detecting code fragments that violate implicit coding rules. In the method, an expert maintainer firstly investigates the causes, situations, and code fragments of each fault described in bug reports; and, identifies implicit coding rules as much as possible. Then, code patterns violating the rules (which we call bug code patterns) are described in a pattern description language. Finally, potential faulty code fragments are extracted by a pattern matching technique.

AB - In the field of legacy software maintenance, there unexpectedly arise a large number of implicit coding rules - which are seldom written down in specification documents or design documents - as software becomes more complicated than it used be. Since not all the members in a maintenance team realize each of implicit coding rules, a maintainer who is not aware of a rule often violates the rule while doing various maintenance activities such as adding new functionality and repairing faults. The problem here is not only such a violation causes injection of a new fault into software but also this violation will be repeated again and again in the future by different maintainers. Indeed, we found that 32.7% of faults of certain legacy software were due to such violations. This paper proposes a method for detecting code fragments that violate implicit coding rules. In the method, an expert maintainer firstly investigates the causes, situations, and code fragments of each fault described in bug reports; and, identifies implicit coding rules as much as possible. Then, code patterns violating the rules (which we call bug code patterns) are described in a pattern description language. Finally, potential faulty code fragments are extracted by a pattern matching technique.

KW - Code inspection

KW - Fault report

KW - Legacy software

KW - Pattern matching

KW - Software maintenance

UR - http://www.scopus.com/inward/record.url?scp=1442352296&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=1442352296&partnerID=8YFLogxK

M3 - Conference contribution

AN - SCOPUS:1442352296

SP - 15

BT - International Workshop on Principles of Software Evolution (IWPSE)

A2 - Aoyama, M.

A2 - Inoue, K.

A2 - Rajlich, V.

ER -