Impact of design patterns on software complexity and size
Creators
- 1. Lahore College for Women University, Lahore (Pakistan). Dept. of Computer Science
- 2. Government College University, Faisalabad (Pakistan). Dept. of Information Technology
Description
Many different factors influence the quality of software. Among the most important of these factors is software complexity. One way to improve software quality, therefore, is to minimize its complexity making it more understandable and maintainable. The design phase of the software development life cycle plays an instrumental role in fostering quality in software. Seasoned designers often use past design best practices codified in the form of design patterns to make their designs and the resultant code more elegant, robust, and resilient to change. Little work, however, has been done to empirically assess the quantitative impact of design patterns on software complexity. This research is an attempt to fill this gap. A comparative analysis of before and after versions of program pairs written without and with design patterns was performed for all twenty three GoF (Gang of Four) design patterns. These program pairs were collected (or, in some cases, developed) and compared with respect to their complexity and size. The results of this comparative analysis reveal that the cyclomatic complexity of the programs written using design patterns was less for most of the design patterns as compared to the programs written without using design patterns. However, the values of CK metrics, number of classes, and software size SLOC (Source Lines of Code) increased when design patterns were used. (author)
Additional details
Publishing Information
- Journal Title
- Mehran University Research Journal of Engineering and Technology
- Journal Volume
- 39
- Journal Issue
- 2
- Journal Page Range
- p. 342-352
- ISSN
- 0254-7821
INIS
- Country of Publication
- Pakistan
- Country of Input or Organization
- Pakistan
- INIS RN
- 52026639
- Subject category
- S97: MATHEMATICAL METHODS AND COMPUTING;
- Descriptors DEI
- COMPARATIVE EVALUATIONS; DESIGN; EFFICIENCY; PERFORMANCE; PROGRAMMING; PROGRAMMING LANGUAGES
- Descriptors DEC
- EVALUATION