AbstractDesign patterns document flexible designs that may evolve over time. Design pattern evolution typically involves the addition or removal of a group of modeling elements, such as classes, attributes, operations, and relationships. However, the possible evolutions of each design pattern are often not explicitly documented. Missing part of the evolution process may result in inconsistent evolution. Pattern instances may interact with each other making the evolution of design patterns more error‐prone. Undetected design errors and inconsistencies may cause failures of systems. In this paper, we propose a service‐oriented architecture for design pattern evolution and analysis based on two‐level transformations, thus making the possible evolutions of each design pattern explicit. In addition, we automate the evolution processes as XSLT transformations that can transform the unified modeling language (UML) model of a design pattern application into the evolved UML model of the pattern. Both the original and evolved UML models are represented in the XML Metadata Interchange format to facilitate the transformations. Furthermore, we check the consistency of the evolution results using the semantic web checker based on the Java Theorem Prover. A case study on a large real‐world system is presented to illustrate and evaluate our approach. Copyright © 2009 John Wiley & Sons, Ltd.
Read full abstract