Facilitating Reuse of Code Checking Rules in Static Code Analysis

  • Vladimir A. Shekhovtsov
  • Yuriy Tomilko
  • Mikhail D. Godlevskiy
Conference paper
Part of the Lecture Notes in Business Information Processing book series (LNBIP, volume 20)


Currently, the rationale of applying code checking rules in static code analysis is often not captured explicitly which leads to the problems of rule reuse in similar development contexts. In this paper, we investigate the process of tracing possible sources of such rules back to design decisions and quality requirements. We present an idea of storing the rationale information along with particular code checking rules in a rule repository. We argue that such information is related to particular design decisions or patterns that need to be enforced by the rule and to generic properties of these decisions such as corresponding quality characteristics. We show how a reuse support tool with underlying rule repository can aid in defining the recommended set of rules to be reused while making recurring design decisions or applying design patterns.


Design Pattern Design Decision Quality Requirement Software Quality Code Check 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Chess, B., West, J.: Secure Programming with Static Analysis. Addison-Wesley, Reading (2007)Google Scholar
  2. 2.
    Chung, L., Nixon, B.A., Yu, E., Mylopoulos, J.: Non-Functional Requirements in Software Engineering. Kluwer Academic Publishers, Dordrecht (1999)zbMATHGoogle Scholar
  3. 3.
    Code Query Language 1.8 Specification (accessed January 11, 2008),
  4. 4.
    Collard, M.L., Maletic, J.I., Marcus, A.: Supporting Document and Data Views of Source Code. In: Proc. DocEng 2002. ACM Press, New York (2002)Google Scholar
  5. 5.
    Copeland, T.: Custom PMD Rules. (2003) (accessed January 11, 2008),
  6. 6.
    Create Custom FxCop Rules (accessed January 11, 2008),
  7. 7.
    Dalci, E., Steven, J.: A Framework for Creating Custom Rules for Static Analysis Tools. In: Proc. Static Analysis Summit, pp. 49–54. Information Technology Laboratory, NIST (2006)Google Scholar
  8. 8.
    DATRIX Abstract Semantic Graph Reference Manual, version 1.4. Bell Canada (2000)Google Scholar
  9. 9.
    Firesmith, D.: Using Quality Models to Engineer Quality Requirements. Journal of Object Technology 2, 67–75 (2003)CrossRefGoogle Scholar
  10. 10.
    Fliedl, G., Kop, C., Mayerthaler, W., Mayr, H.C., Winkler, C.: The NIBA Approach to Quantity Settings and Conceptual Predesign. In: Proc. NLDB 2001. LNI, vol. P-3, pp. 211–214. GI (2002)Google Scholar
  11. 11.
    Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design patterns. Elements of reusable object-oriented software. Addison-Wesley, Reading (1995)zbMATHGoogle Scholar
  12. 12.
    Glinz, M.: Rethinking the Notion of Non-Functional Requirements. In: Proc. Third World Congress for Software Quality (3WCSQ 2005), Munich, vol. II, pp. 55–64 (2005)Google Scholar
  13. 13.
    Grindstaff, C.: FindBugs, Part 2: Writing custom detectors. IBM Developer Works (2004) (accessed January 11, 2008),
  14. 14.
    Gruber, H., Körner, C., Plösch, R., Schiffer, S.: Tool Support for ISO 14598 based code quality assessments. In: Proc. QUATIC 2007. IEEE CS Press, Los Alamitos (2007)Google Scholar
  15. 15.
    Holt, R.C., Winter, A., Schürr, A.: GXL: Toward a Standard Exchange Format. In: Proc. WCRE 2000, pp. 162–171 (2000)Google Scholar
  16. 16.
    Holzmann, G.J.: Static Source Code Checking for User-Defined Properties. In: Proc. IDPT 2002. Society for Design and Process Science (2002)Google Scholar
  17. 17.
    IEEE Standard for Software Reviews. IEEE Std 1028-1997. IEEE (1997)Google Scholar
  18. 18.
    ISO/IEC 9126-1, Software Engineering – Product Quality – Part 1:Quality model. ISO (2001)Google Scholar
  19. 19.
    Jackson, D., Rinard, M.: Software Analysis: A Roadmap. In: Proc. Conf. on The future of Software engineering. ACM Press, New York (2000)Google Scholar
  20. 20.
    Jansen, A., Bosch, J.: Software Architecture as a Set of Architectural Design Decisions. In: Proc. WICSA 2005, pp. 109–120. IEEE CS Press, Los Alamitos (2005)Google Scholar
  21. 21.
    Jin, D.: Exchange of software representations among reverse engineering tools. Technical Report. Department of Computing and Information Science, Queen’s University, Kingston, Canada (2001)Google Scholar
  22. 22.
    Kruchten, P.: The Rational Unified Process - An Introduction. Addison-Wesley, Reading (1995)Google Scholar
  23. 23.
    Kruchten, P.: An Ontology of Architectural Design Decisions in Software-Intensive Systems. In: 2nd Groningen Workshop on Software Variability Management (2004)Google Scholar
  24. 24.
    Maletic, J.I., Collard, M.L., Kagdi, H.: Leveraging XML Technologies in Developing Program Analysis Tools. In: Proc. ACSE 2004, pp. 80–85. The IEE Publishers (2004)Google Scholar
  25. 25.
    Mamas, E., Kontogiannis, K.: Towards Portable Source Code Representations Using XML. In: Proc. WCRE 2000, pp. 172–182. IEEE CS Press, Los Alamitos (2000)Google Scholar
  26. 26.
    Mayr, H.C., Kop, C.: Conceptual Predesign - Bridging the Gap between Requirements and Conceptual Design. In: Proc. ICRE 1998, pp. 90–100. IEEE CS Press, Los Alamitos (1998)Google Scholar
  27. 27.
    Plösch, R., Gruber, H., Hentschel, A., Körner, C., Pomberger, G., Schiffer, S., Saft, M., Storck, S.: The EMISQ Method - Expert Based Evaluation of Internal Software Quality. In: Proc. 3rd IEEE Systems and Software Week. IEEE CS Press, Los Alamitos (2007)Google Scholar
  28. 28.
    Rentrop, J.: Software Metrics as Benchmarks for Source Code Quality of Software Systems. Vrije Universiteit, Amsterdam (2006)Google Scholar
  29. 29.
    Rutar, N., Almazan, C.B., Foster, J.S.: A Comparison of Bug Finding Tools for Java. In: Proc. ISSRE 2004, pp. 245–256. IEEE CS Press, Los Alamitos (2004)Google Scholar
  30. 30.
    Samoladas, I., Gousios, G., Spinellis, D., Stamelos, I.: The SQO-OSS quality model: measurement based open source software evaluation. In: Proc. OSS 2008, pp. 237–248 (2008)Google Scholar
  31. 31.
    Spinellis, D.: Bug Busters. IEEE Software 23, 92–93 (2006)CrossRefGoogle Scholar
  32. 32.
    Stamelos, I., Angelis, L., Oikonomou, A., Bleris, G.L.: Code quality analysis in open source software development. Info. Systems J. 12, 43–60 (2002)CrossRefGoogle Scholar
  33. 33.
    Stellman, A., Greene, J.: Applied Software Project Management. O’Reilly, Sebastopol (2005)Google Scholar
  34. 34.
    Strein, D., Lincke, R., Lundberg, J., Löwe, W.: An Extensible Meta-Model for Program Analysis. IEEE Transactions on Software Engineering 33, 592–607 (2007)CrossRefGoogle Scholar
  35. 35.
    Zhu, L., Gorton, I.: UML Profiles for Design Decisions and Non-Functional Requirements. In: Proc. SHARK 2007. IEEE CS Press, Los Alamitos (2007)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2009

Authors and Affiliations

  • Vladimir A. Shekhovtsov
    • 1
  • Yuriy Tomilko
    • 1
  • Mikhail D. Godlevskiy
    • 1
  1. 1.Department of Computer-Aided Management SystemsNational Technical University “Kharkiv Polytechnical Institute”Ukraine

Personalised recommendations