Author_Institution :
DIRO, Univ. of Montreal, Montreal, QC, Canada
Abstract :
Object-oriented software quality models usually use metrics of classes and of relationships among classes to assess the quality of systems. However, software quality does not depend on classes solely: it also depends on the organization of classes, i.e., their design. Our thesis is that it is possible to understand how the design of systems affects their quality and to build quality models that take into account various design styles, in particular design patterns, antipatterns, and code smells. To demonstrate our thesis, we first analyze how playing roles in design patterns, antipatterns, and code smells impacts quality; specifically change-proneness, fault-proneness, and maintenance costs. Second, we build quality models and apply and validate them on open-source and industrial object-oriented systems to show that they allow a more precise evaluation of the quality than traditional models,like Bansiya et al.´s QMOOD.
Keywords :
object-oriented programming; public domain software; software maintenance; software quality; SQUAD; antipatterns; change-proneness; code smells; design analysis; design patterns; fault-proneness; maintenance costs; object-oriented software quality models; open source systems; software metrics; software quality understanding; Bridges; Concrete; Costs; Object oriented modeling; Open source software; Pattern analysis; Reverse engineering; Software design; Software engineering; Software quality; Design styles; change-proneness; fault-proneness; quality models;