Skip to main content

Facilitating Reuse of Code Checking Rules in Static Code Analysis

  • Conference paper
Information Systems: Modeling, Development, and Integration (UNISCON 2009)

Part of the book series: Lecture Notes in Business Information Processing ((LNBIP,volume 20))

Included in the following conference series:

  • 1165 Accesses

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Chess, B., West, J.: Secure Programming with Static Analysis. Addison-Wesley, Reading (2007)

    Google Scholar 

  2. Chung, L., Nixon, B.A., Yu, E., Mylopoulos, J.: Non-Functional Requirements in Software Engineering. Kluwer Academic Publishers, Dordrecht (1999)

    MATH  Google Scholar 

  3. Code Query Language 1.8 Specification (accessed January 11, 2008), http://www.ndepend.com/CQL.htm

  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. Copeland, T.: Custom PMD Rules. OnJava.com (2003) (accessed January 11, 2008), http://www.onjava.com/pub/a/onjava/2003/04/09/pmd_rules.html

  6. Create Custom FxCop Rules (accessed January 11, 2008), http://www.thescarms.com/dotnet/fxcop1.aspx

  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. DATRIX Abstract Semantic Graph Reference Manual, version 1.4. Bell Canada (2000)

    Google Scholar 

  9. Firesmith, D.: Using Quality Models to Engineer Quality Requirements. Journal of Object Technology 2, 67–75 (2003)

    Article  Google Scholar 

  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. Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design patterns. Elements of reusable object-oriented software. Addison-Wesley, Reading (1995)

    MATH  Google Scholar 

  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. Grindstaff, C.: FindBugs, Part 2: Writing custom detectors. IBM Developer Works (2004) (accessed January 11, 2008), http://www.ibm.com/developerworks/library/j-findbug2

  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. 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. 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. IEEE Standard for Software Reviews. IEEE Std 1028-1997. IEEE (1997)

    Google Scholar 

  18. ISO/IEC 9126-1, Software Engineering – Product Quality – Part 1:Quality model. ISO (2001)

    Google Scholar 

  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. 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. 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. Kruchten, P.: The Rational Unified Process - An Introduction. Addison-Wesley, Reading (1995)

    Google Scholar 

  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. 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. 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. 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. 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. Rentrop, J.: Software Metrics as Benchmarks for Source Code Quality of Software Systems. Vrije Universiteit, Amsterdam (2006)

    Google Scholar 

  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. 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. Spinellis, D.: Bug Busters. IEEE Software 23, 92–93 (2006)

    Article  Google Scholar 

  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)

    Article  Google Scholar 

  33. Stellman, A., Greene, J.: Applied Software Project Management. O’Reilly, Sebastopol (2005)

    Google Scholar 

  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)

    Article  Google Scholar 

  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 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2009 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Shekhovtsov, V.A., Tomilko, Y., Godlevskiy, M.D. (2009). Facilitating Reuse of Code Checking Rules in Static Code Analysis. In: Yang, J., Ginige, A., Mayr, H.C., Kutsche, RD. (eds) Information Systems: Modeling, Development, and Integration. UNISCON 2009. Lecture Notes in Business Information Processing, vol 20. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-01112-2_10

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-01112-2_10

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-01111-5

  • Online ISBN: 978-3-642-01112-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics