Abstract
Quality experts often need to identify in software systems design defects, which are recurring design problems, that hinder development and maintenance. Consequently, several defect detection approaches and tools have been proposed in the literature. However, we are not aware of any approach that defines and reifies the process of generating detection algorithms from the existing textual descriptions of defects. In this paper, we introduce an approach to automate the generation of detection algorithms from specifications written using a domain-specific language. The domain-specific is defined from a thorough domain analysis. We specify several design defects, generate automatically detection algorithms using templates, and validate the generated detection algorithms in terms of precision and recall on Xerces v2.7.0, an open-source object-oriented system.
Chapter PDF
Similar content being viewed by others
Keywords
References
Alikacem, E.H., Sahraoui, H.: Détection d’anomalies utilisant un langage de description de règle de qualité. In: actes du 12e colloque LMO, pp. 185–200 (2006)
Beyer, D., Noack, A., Lewerentz, C.: Efficient relational calculation for software analysis. Transactions on Software Engineering 31(2), 137–149 (2005)
Brown, W.J., Malveau, R.C., Brown, W.H., McCormick III, H.W., Mowbray, T.J.: Anti Patterns: Refactoring Software, Architectures, and Projects in Crisis, 1st edn (1998)
Chambers, J.M., Clevelmd, W.S., Kleiner, B., Tukey, P.A.: Graphical methods for data analysis (1983)
CheckStyle (2004), http://checkstyle.sourceforge.net
Chidamber, S.R., Kemerer, C.F.: A metrics suite for object oriented design. IEEE Transactions on Software Engineering 20(6), 476–493 (1994)
Consel, C., Marlet, R.: Architecturing software using: A methodology for language development. In: Palamidessi, C., Meinke, K., Glaser, H. (eds.) ALP 1998 and PLILP 1998. LNCS, vol. 1490, pp. 170–194. Springer, Heidelberg (1998)
Fenton, N.E., Neil, M.: A critique of software defect prediction models. Software Engineering 25(5), 675–689 (1999)
Fowler, M.: Refactoring – Improving the Design of Existing Code, 1st edn. Addison-Wesley, Reading (1999)
Frakes, W.B., Baeza-Yates, R.: Information Retrieval: Data Structures and Algorithms. Prentice-Hall, Englewood Cliffs (1992)
FXCop (2006), http://www.gotdotnet.com/team/fxcop/
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns – Elements of Reusable Object-Oriented Software, 1st edn. Addison-Wesley, Reading (1994)
Guéhéneuc, Y.-G., Albin-Amiot, H.: Recovering binary class relationships: Putting icing on the UML cake. In: Proceedings of the 19th OOSPLA Conference, pp. 301–314 (2004)
Guéhéneuc, Y.-G., Sahraoui, H., Zaidi, F.: Fingerprinting design patterns. In: Proceedings of the 11th WCRE Conference, pp. 172–181 (2004)
Halstead, M.H.: Elements of Software Science. Operating and programming systems series. Elsevier Science Inc., New York (1977)
Marinescu, R.: Detection strategies: Metrics-based rules for detecting design flaws. In: Proceedings of the 20th ICSM Conference, pp. 350–359 (2004)
Mernik, M., Heering, J., Sloane, A.M.: When and how to develop domain-specific languages. ACM Computing Surveys 37(4), 316–344 (2005)
Moha, N., Guéhéneuc, Y.-G., Leduc, P.: Automatic generation of detection algorithms for design defects. In: Proceedings of the 21st ASE Conference (2006)
Moha, N., Huynh, D.-L., Guéhéneuc, Y.-G.: Une taxonomie et un métamodèle pour la détection des défauts de conception. In: actes du 12e colloque LMO, pp. 201–216 (2006)
Munro, M.J.: Product metrics for automatic identification of “bad smell” design problems in java source-code. In: Proceedings of the 11th Metrics Symposium (2005)
Perry, D.E., Wolf, A.L.: Foundations for the study of software architecture. Software Engineering Notes 17(4), 40–52 (1992)
PMD (2002), http://pmd.sourceforge.net/
Pressman, R.S.: Software Engineering – A Practitioner’s Approach, 5th edn. McGraw-Hill Higher Education (2001)
Prieto-Díaz, R.: Domain analysis: An introduction. Software Engineering Notes 15(2), 47–54 (1990)
Riel, A.J.: Object-Oriented Design Heuristics. Addison-Wesley, Reading (1996)
Swint, G.S., Pu, C., Jung, G., Yan, W., Koh, Y., Wu, Q., Consel, C., Sahai, A., Moriyama, K.: Clearwater: extensible, flexible, modular code generation. In: Proceedings of the 20th IEEE/ACM International Conference on Automated Software Engineering, pp. 144–153 (2005)
Travassos, G., Shull, F., Fredericks, M., Basili, V.R.: Detecting defects in object-oriented designs: using reading techniques to increase software quality. In: Proceedings of the 14th OOSPLA Conference, pp. 47–56 (1999)
Trifu, A., Marinescu, R.: Diagnosing design problems in object oriented systems. In: Proceedings of the 12th WCRE Conference (2005)
Webster, B.F.: Pitfalls of Object Oriented Development. M & T Books (1995)
Wirfs–Brock, R., McKean, A.: Object Design: Roles, Responsibilities and Collaborations. Addison-Wesley Professional, Reading (2002)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2008 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Moha, N., Guéhéneuc, YG., Le Meur, AF., Duchien, L. (2008). A Domain Analysis to Specify Design Defects and Generate Detection Algorithms. In: Fiadeiro, J.L., Inverardi, P. (eds) Fundamental Approaches to Software Engineering. FASE 2008. Lecture Notes in Computer Science, vol 4961. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-78743-3_20
Download citation
DOI: https://doi.org/10.1007/978-3-540-78743-3_20
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-78742-6
Online ISBN: 978-3-540-78743-3
eBook Packages: Computer ScienceComputer Science (R0)