An Approach for Evaluating the Effectiveness of Design Patterns in Design Evolution

碩士 === 逢甲大學 === 資訊工程所 === 98 === A design pattern is a solution that is accumulated design experience by many programmers in the past. Those programmers wish to provide guidelines to people who have encountered the same problem. Sometimes the designer applies some design patterns, not only to solve...

Full description

Bibliographic Details
Main Authors: Lin-chieh Wen, 溫琳傑
Other Authors: Nien-lin Hsueh
Format: Others
Language:zh-TW
Published: 2010
Online Access:http://ndltd.ncl.edu.tw/handle/28578794375812437730
Description
Summary:碩士 === 逢甲大學 === 資訊工程所 === 98 === A design pattern is a solution that is accumulated design experience by many programmers in the past. Those programmers wish to provide guidelines to people who have encountered the same problem. Sometimes the designer applies some design patterns, not only to solve specific design problems, but to hope these design patterns increase the flexibility of the system, that is, easy to modify or extend the system. However, since design patterns are getting popular, they may be misused. Some developers may apply patterns just for presenting they are good at object-oriented design. In order to explore that design patterns are really effectively applied in a system evolution, in this paper we presents a systematic approach for evaluating the effectiveness of design patterns in a design evolution. The “Pattern Application Context (PAC)” of a pattern is firstly defined to describe the application context of a pattern in a design. Secondly, the “Pattern Application Model (PAM)” is defined to describe the expected application context of a pattern in a software evolution. By exploring the changes of PAC in different versions of design, and check if the changes conforms the PAM, we can examine the effectiveness of the pattern in the evolution. A supporting tool “pattern effectiveness analyzer” is developed to compute the effectiveness in an automatic way. We have made experiments on some open source systems to check if the embedded design patterns are appropriately applied. Our experiment shows the effectiveness for Jaxe, JUnit and HtmlUnit are 0.233, 0.130 and 0.145 respectively.