A Study on Design Pattern Evaluation in Software Evolution

博士 === 逢甲大學 === 資訊工程學系 === 103 === Software quality has long been recognized as an important issue in software engineering, and the use of design patterns to improve software quality has attracted increasing attention in the area of software engineering. Numerous design patterns provide a flexible s...

Full description

Bibliographic Details
Main Authors: Der-Hong Ting, 丁德宏
Other Authors: Nien-Lin Hsueh
Format: Others
Language:en_US
Published: 2015
Online Access:http://ndltd.ncl.edu.tw/handle/71457874977279444150
Description
Summary:博士 === 逢甲大學 === 資訊工程學系 === 103 === Software quality has long been recognized as an important issue in software engineering, and the use of design patterns to improve software quality has attracted increasing attention in the area of software engineering. Numerous design patterns provide a flexible structure to enhance the maintainability as design patterns encapsulate valuable knowledge to resolve design problems, and more importantly to improve the design quality. A system deployed with such design patterns is expected to have lower maintenance load in its further evolution. However, sometimes design patterns are over applied or mis-used in many systems, which will cause another maintenance problem or impair the system performance. In this work, a pattern utilization evaluation approach is proposed for pattern qualification. The proposed approach is based on the evolutionary quality metrics to evaluate the quality of design patterns of their deployment and taking the software evolution into concern. On the basis of the pattern analysis approach, a qualification approach is proposed to analyze the expected utilization that help software engineers check if a pattern is well-designed and meets the original design purpose to improve software quality. Therefore, software engineers can inspect whether design patterns are applicable to meet their design quality requirements. To demonstrate the feasibility of this work, we develop a utilization evaluation cloud service based on powerful computing capability to process a large amount of data. We also apply our approach to perform experiments on 11 design patterns over 15 projects with totally 296 software evolutions. The analysis results show that the utilization of deployed design patterns does not have significant difference among the design patterns in the evolution of software design. The development of cloud-service outlines a vision of implementing a software quality evaluation cloud. In the future, we plan to integrate more practical software quality evaluation tools.