Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/512035.512040acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
Article

A method for detecting faulty code violating implicit coding rules

Published: 19 May 2002 Publication History
  • Get Citation Alerts
  • 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.

    References

    [1]
    A. A. Andrews, M. C. Ohlsson, and C. Wohlin, "Deriving fault architectures from defect history," J. of Software Maintenance: Research and Practice, Vol. 12, No. 5, pp. 287 - 304, Sept.-Oct. 2000.
    [2]
    S. G. Eick, T. L. Graves, A. F. Karr, J. S. Marron, and A. Mockus, "Does code decay? Assessing the evidence from change management data," IEEE Trans. on Software Engineering, Vol. 27, No. 1, pp. 1 - 12, Jan. 2001.
    [3]
    M. Fowler, "Refactoring: Improving the design of existing code", Addison-Wesley, 1999.
    [4]
    T. L. Graves, A. F. Karr, J. S. Marron, and H. Siy, "Predicting fault incidence using software change history," IEEE Trans. on Software Engineering, Vol. 26, No. 7, pp. 653 - 661, July 2000.
    [5]
    C. P. Hollocker, "Software reviews and audit handbook," p. 162, John Wiley & Sons, 1990.
    [6]
    W. S. Humphrey, "A discipline for software engineering," Addison-Wesley, 1995.
    [7]
    T. M. Khoshgoftaar, E. B. Allen, W. D. Jones, and J. P. Hudepohl, "Data mining for predictors of software quality," Int'l J. of Software Engineering and Knowledge Engineering, Vol. 9, No. 5, pp. 547 - 563, 1999.
    [8]
    F. Macdonald, and J. Miller, "A comparison of tool-based and paper-based software inspection," Empirical Software Engineering, Vol. 3, No. 3, Autumn 1998.
    [9]
    A. Monden, S. Sato, K. Matsumoto, and K. Inoue, "Modeling and analysis of software aging process," F. Bomarius and M. Oivo (Eds), Lecture Notes in Computer Science, Vol. 1840, pp. 140 - 153, 2000.
    [10]
    A. Monden, S. Sato, and K. Matsumoto, "Capturing industrial experiences of software maintenance using product metrics," Proc. 5th World Multi-Conference on Systemics, Cybernetics and Informatics, Vol. 2, pp. 394 - 399, July 2001.
    [11]
    G. J. Myers, "The art of software testing," John Wiley, New York, 1979.
    [12]
    S. Paul, and A. Prakash, "A framework for source code search using program patterns," IEEE Trans. on Software Engineering, Vol. 20, No. 6, pp. 463 - 475, June 1994.
    [13]
    E. Regelson and A. Anderson, "Debugging practices for complex legacy software systems," Proc. International Conference on Software Maintenance, pp. 137-143, Sept. 1994.
    [14]
    N. F. Schneidewind and C. Ebert, "Preserve or redesign legacy systems?," IEEE Software, Vol. 15, No. 4, pp. 14 - 17, July/Aug. 1998.

    Cited By

    View all
    • (2005)Recovering system specific rules from software repositoriesProceedings of the 2005 international workshop on Mining software repositories10.1145/1083142.1083144(1-5)Online publication date: 17-May-2005
    • (2005)Recovering system specific rules from software repositoriesACM SIGSOFT Software Engineering Notes10.1145/1082983.108314430:4(1-5)Online publication date: 17-May-2005
    • (2005)Automatic Mining of Source Code Repositories to Improve Bug Finding TechniquesIEEE Transactions on Software Engineering10.1109/TSE.2005.6331:6(466-480)Online publication date: 1-Jun-2005
    • Show More Cited By

    Index Terms

    1. A method for detecting faulty code violating implicit coding rules

      Recommendations

      Comments

      Information & Contributors

      Information

      Published In

      cover image ACM Conferences
      IWPSE '02: Proceedings of the International Workshop on Principles of Software Evolution
      May 2002
      155 pages
      ISBN:1581135459
      DOI:10.1145/512035
      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Sponsors

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      Published: 19 May 2002

      Permissions

      Request permissions for this article.

      Check for updates

      Author Tags

      1. code inspection
      2. fault report
      3. legacy software
      4. pattern matching
      5. software maintenance

      Qualifiers

      • Article

      Conference

      IWPSE02
      Sponsor:

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

      • Downloads (Last 12 months)2
      • Downloads (Last 6 weeks)0

      Other Metrics

      Citations

      Cited By

      View all
      • (2005)Recovering system specific rules from software repositoriesProceedings of the 2005 international workshop on Mining software repositories10.1145/1083142.1083144(1-5)Online publication date: 17-May-2005
      • (2005)Recovering system specific rules from software repositoriesACM SIGSOFT Software Engineering Notes10.1145/1082983.108314430:4(1-5)Online publication date: 17-May-2005
      • (2005)Automatic Mining of Source Code Repositories to Improve Bug Finding TechniquesIEEE Transactions on Software Engineering10.1109/TSE.2005.6331:6(466-480)Online publication date: 1-Jun-2005
      • (2004)Documenting maintenance tasks using maintenance patternsEighth European Conference on Software Maintenance and Reengineering, 2004. CSMR 2004. Proceedings.10.1109/CSMR.2004.1281404(37-47)Online publication date: 2004
      • (2003)Lightweight prevention of architectural erosionSixth International Workshop on Principles of Software Evolution, 2003. Proceedings.10.1109/IWPSE.2003.1231211(59-64)Online publication date: 2003
      • (2002)The detection of faulty code violating implicit coding rulesProceedings International Symposium on Empirical Software Engineering10.1109/ISESE.2002.1166936(173-182)Online publication date: 2002

      View Options

      Get Access

      Login options

      View options

      PDF

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader

      Media

      Figures

      Other

      Tables

      Share

      Share

      Share this Publication link

      Share on social media