Skip to main content
Log in

Design pattern evolutions in QVT

  • Published:
Software Quality Journal Aims and scope Submit manuscript

Abstract

One of the main goals of design patterns is to design for change. Many design patterns leave some room for future changes and evolutions. The application of design patterns leads to adaptable software since the design pattern instances could be changed with minimal impact on other parts of the system. Such changes, called the evolution of a design pattern instance in this paper, typically involve the addition or removal of a group of model elements, such as classes, attributes, operations, and relationships. However, the possible evolutions of each design pattern are often not explicitly documented. Missing a part of the evolution process may result in inconsistent evolutions. In this paper, we present our approach to assist the evolution processes of design patterns by model transformation technology. We provide a formal foundation for our approach by defining the predicates that can be used to describe the properties of each design pattern, software system design, and design pattern evolutions. We also provide tool support to automate the evolution processes based on the Query, View, and Transformation standard. A case study of a large open-source software system is conducted to illustrate and evaluate our approach.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13

Similar content being viewed by others

Notes

  1. Although it can be considered as two variations of one instance of the Adapter pattern as well, we consider it as two instances of the Adapter pattern for consistency.

References

  • Alencar, P., Cowan, D., Dong, J., & Lucena, C. (1999). A pattern-based approach to structural design composition. In Proceedings of the IEEE 23rd annual international computer software & applications conference (pp. 160–165). Phoenix, USA, October 1999.

  • Antoniol, G., Fiutem, R., & Cristoforetti, L. (1998). Design pattern recovery in object-oriented software. In Proceedings of the 6th IEEE International Workshop on Program Comprehension (IWPC) (pp. 153–160). Ischia, Italy, June 1998.

  • Booch, G., Rumbaugh, J., & Jacobson, I. (1999). The unified modeling language user guide. Reading, MA: Addison-Wesley.

    Google Scholar 

  • Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P., & Stal, M. (1996). Pattern oriented software architecture: A system of patterns. New York: John Wiley & Sons.

    Google Scholar 

  • Cinnéide, M. Ó., & Nixon, P. (1999). A methodology for the automated introduction of design patterns. In Proceedings of the IEEE international conference on software maintenance (ICSM) (pp. 463–472). Oxford, England, September 1999.

  • Cinnéide, M. Ó., & Nixon, P. (2001). Automated software evolution towards design patterns. In Proceedings of the international workshop on the principles of software evolution (pp. 162–165). Vienna, Austria, September, 2001.

  • Clocksin, W. F., & Mellish, C. S. (1987). Programming in Prolog. Berlin: Springer-Verlag.

    MATH  Google Scholar 

  • D’Ambrogio, A. (2005). A model transformation framework for the automated building of performance model from UML models. In Proceeding of the 5th international workshop on software and performance (pp. 75–86). Palma, Illes Balears, Spain, July 2005.

  • Dong, J., Lad, D. S., & Zhao, Y. (2007a). DP-miner: Design pattern discovery using matrix. In Proceedings of the fourteenth annual IEEE international conference on engineering of computer based systems (ECBS) (pp. 371–380). Arizona, USA, March 2007.

  • Dong, J., Yang, S., & Huynh, D. T. (2005). Evolving design patterns based on model transformation. In Proceedings of the 9th IASTED international conference on software engineering and applications (SEA) (pp. 344–350). Phoenix, USA, November 2005.

  • Dong, J., Yang, S., & Sun, Y. (2007b). A classification of design pattern evolutions. International Journal of Object Technology (JOT), 6(10), 95–109.

    Google Scholar 

  • Dong, J., Yang, S., Sun, Y., & Wong, W. E. (2006a). QVT based model transformation for design pattern evolutions. In Proceedings of the tenth IASTED international conference on internet and multimedia systems and applications (IMSA) (pp. 16–22). USA, Honolulu, Hawaii, USA, August 2006.

  • Dong, J., Yang, S., & Zhang, K. (2006b). A model transformation approach for design pattern evolutions. In Proceedings of the annual IEEE international conference on engineering of computer based systems (ECBS) (pp. 80–89). Potsdam, Germany, March 2006.

  • Dong, J., Yang, S., & Zhang, K. (2007c). Visualizing design patterns in their applications and compositions. IEEE Transaction on Software Engineering (TSE), 33(7), 433–453.

    Article  Google Scholar 

  • Dong, J., Zhao, Y., & Sun, Y. (2009). A matrix-based approach to recovering design patterns. IEEE Transactions on Systems, Man, and Cybernetics (TSMC), Part A, pp. 1271–1282, November 2009.

  • Gamma, E., Helm, R., Johnson, R., & Vlissides, J. (1995). Design patterns: Elements of reusable object-oriented software. Reading, MA: Addison-Wesley.

    Google Scholar 

  • Gueheneuc, Y., Sahraoui, H., & Zaidi, F. (2004). Fingerprinting design patterns. In Proceedings of the 11th working conference on reverse engineering (WCRE) (pp. 172–181). Delft, Netherlands, November 2004.

  • Judson, S. R., France, R. B., & Carver, D. L. (2003). Specifying model transformations at the meta-model level. In Proceedings of the workshop in software model engineering (WiSME@UML’2003), San Francisco, USA, October 2003.

  • Kalnins, A., Barzdins, J., & Celms, E. (2004). Model transformation language MOLA. In Proceedings of the second European conference on model-driven architecture: Foundations and applications (MDAFA) (pp. 14–28). Linkoeping, Sweden, June 2004.

  • Kalnins, A., Barzdins, J., & Celms, E. (2005). Model transformation language MOLA: Extended patterns. In Proceedings of the 6th international baltic conference DB@IS 2004 (Vol. 118, pp. 169–184). IOS Press, FAIA.

  • Keienburg, F., & Rausch, A. (2001). Using XML/XMI for tool supported evolution of UML models. In Proceedings of international conference Hawaii international conference on system science (pp. 3–6). Maui, Hawaii, January 2001.

  • Kim, D.-K., France, R., Ghosh, S., & Song, E. (2003). A role-based meta-modeling approach to specifying design patterns. In Proceedings of the 27th IEEE annual international computer software and applications conference (COMPSAC) (pp. 452–457). Dallas, USA, November 2003.

  • Kim, D.-K., & Shen, W. (2007). An approach to evaluating structural pattern conformance of UML models. In Proceedings of ACM symposium on applied computing (SAC) (pp. 1404–1408). Seoul, Korea, March 2007.

  • Kobayashi, T., & Saeki, M. (1999). Software development based on software pattern evolution. In Proceedings of the 6th Asia-Pacific software engineering conference (APSEC) (pp. 18–25). Takamatsu, Japan, December 1999.

  • Kovse, J., & Härder, T. (2002). Generic XMI-based UML model transformations. In Proceedings of the international conference on object-oriented information systems (pp. 192–198). Montpellier: Springer-Verlag, 2002.

  • Lengyel, L., Levendovszky, T., Mezei, G., Vajk, T., & Charaf, H. (2007). Practical uses of validated model transformation. In Proceedings of the international conference on computer as a tool (pp. 2200–2207). Warsaw, Poland, September 2007.

  • Mazon, J.-N., & Trujillo, J. (2005). Applying MDA to the development of data warehouses. In Proceedings of the 8th ACM international workshop on data warehousing and OLAP (pp. 57–66). Bremen, Germany, November 2005.

  • Muller, P.-A., Fleurey, F., Vojtisek, D., Drey, Z., Pollet, D., Fondement, F., et al. (2005). On executable meta-languages applied to model transformations. In Proceedings of INRIA workshop of model transformations in practice. Montego Bay, Jamaica, October 2005.

  • Niere, J., Schafer, W., Wadsack, J. P., Wendehals, L., & Welsh, J. (2002). Towards pattern-based design recovery. In Proceedings of the 24th international conference on software engineering (ICSE) (pp. 338–348). Orlando, SUA, May 2002.

  • Noda, N., & Kishi, T. (2001). Design pattern concerns for software evolution. In Proceedings of the 4th international workshop on principles of software evolution (pp. 158–161). Vienna, Austria, September 2001.

  • Tsantalis, N., Chatzigeorgiou, A., Stephanides, G., & Halkidis, S. T. (2006). Design pattern detection using similarity scoring. IEEE transaction on software engineering, 32(11), 896–909.

    Article  Google Scholar 

  • Wang, X.-B., Wu, Q.-Y., Wang, H.-M., & Shi, D.-X. (2007). Research and implementation of design pattern-oriented model transformation. In Proceedings of the international multi-conference on computing in the global information technology (pp. 24–29). French Caribbean, March, 2007.

  • Warmer, J. B., & Kleppe, A. G. (1998). The object constraint language: Precise modeling with UML. Reading, MA: Addison-Wesley.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Jing Dong.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Dong, J., Zhao, Y. & Sun, Y. Design pattern evolutions in QVT. Software Qual J 18, 269–297 (2010). https://doi.org/10.1007/s11219-009-9093-8

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11219-009-9093-8

Keywords

Navigation