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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Chess, B., West, J.: Secure Programming with Static Analysis. Addison-Wesley, Reading (2007)
Chung, L., Nixon, B.A., Yu, E., Mylopoulos, J.: Non-Functional Requirements in Software Engineering. Kluwer Academic Publishers, Dordrecht (1999)
Code Query Language 1.8 Specification (accessed January 11, 2008), http://www.ndepend.com/CQL.htm
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)
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
Create Custom FxCop Rules (accessed January 11, 2008), http://www.thescarms.com/dotnet/fxcop1.aspx
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)
DATRIX Abstract Semantic Graph Reference Manual, version 1.4. Bell Canada (2000)
Firesmith, D.: Using Quality Models to Engineer Quality Requirements. Journal of Object Technology 2, 67–75 (2003)
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)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design patterns. Elements of reusable object-oriented software. Addison-Wesley, Reading (1995)
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)
Grindstaff, C.: FindBugs, Part 2: Writing custom detectors. IBM Developer Works (2004) (accessed January 11, 2008), http://www.ibm.com/developerworks/library/j-findbug2
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)
Holt, R.C., Winter, A., Schürr, A.: GXL: Toward a Standard Exchange Format. In: Proc. WCRE 2000, pp. 162–171 (2000)
Holzmann, G.J.: Static Source Code Checking for User-Defined Properties. In: Proc. IDPT 2002. Society for Design and Process Science (2002)
IEEE Standard for Software Reviews. IEEE Std 1028-1997. IEEE (1997)
ISO/IEC 9126-1, Software Engineering – Product Quality – Part 1:Quality model. ISO (2001)
Jackson, D., Rinard, M.: Software Analysis: A Roadmap. In: Proc. Conf. on The future of Software engineering. ACM Press, New York (2000)
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)
Jin, D.: Exchange of software representations among reverse engineering tools. Technical Report. Department of Computing and Information Science, Queen’s University, Kingston, Canada (2001)
Kruchten, P.: The Rational Unified Process - An Introduction. Addison-Wesley, Reading (1995)
Kruchten, P.: An Ontology of Architectural Design Decisions in Software-Intensive Systems. In: 2nd Groningen Workshop on Software Variability Management (2004)
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)
Mamas, E., Kontogiannis, K.: Towards Portable Source Code Representations Using XML. In: Proc. WCRE 2000, pp. 172–182. IEEE CS Press, Los Alamitos (2000)
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)
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)
Rentrop, J.: Software Metrics as Benchmarks for Source Code Quality of Software Systems. Vrije Universiteit, Amsterdam (2006)
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)
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)
Spinellis, D.: Bug Busters. IEEE Software 23, 92–93 (2006)
Stamelos, I., Angelis, L., Oikonomou, A., Bleris, G.L.: Code quality analysis in open source software development. Info. Systems J. 12, 43–60 (2002)
Stellman, A., Greene, J.: Applied Software Project Management. O’Reilly, Sebastopol (2005)
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)
Zhu, L., Gorton, I.: UML Profiles for Design Decisions and Non-Functional Requirements. In: Proc. SHARK 2007. IEEE CS Press, Los Alamitos (2007)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)