Skip to main content
Log in

Evaluating pattern conformance of UML models: a divide-and-conquer approach and case studies

  • Published:
Software Quality Journal Aims and scope Submit manuscript

Abstract

A design pattern is realized in various forms depending on the context of the applications. There has been intensive research on detecting pattern instances in models and in implementations. However, little work addresses variations of pattern realization. This paper describes an approach for evaluating conformance of pattern variations. This approach uses a divide-and-conquer strategy to evaluate the structural conformance of a UML class diagram to the solution of a design pattern. A design pattern is specified in an extension of the UML that defines the pattern in terms of roles. To demonstrate the approach, we use the Visitor pattern and two case studies of a price calculator and a word processor. We also present a prototype tool that supports the 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.

Institutional subscriptions

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
Fig. 14
Fig. 15
Fig. 16
Fig. 17

Similar content being viewed by others

References

  • Albano, A., Bergamini, R., Ghelli, G., & Orsini, R. (1993). An object data model with roles. In Proceedings of the 19th Conference on Very Large Databases (pp. 39–51). Los Altos, CA: Morgan Kaufman.

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

  • Aoyama, M. (2000). Evolutionary patterns of design and design patterns. In Proceedings of International Symposium on Principles of Software Evolution (pp. 110–116). Kanazawa, Japan.

  • Aversano, L., Canfora, G., & Cerulo, L. (2007). An empirical study on the evolution of design patterns. In Proceedings of the 6th joint meeting of the European Software Engineering conference and the ACM SIGSOFT symposium on The Foundations of Software Engineering (pp. 385–394). Dubrovnik, Croatia.

  • Bachman, C. W., & Daya, M. (1977). The role concept in data models. In International Conference on Very Large Databases (pp. 464–476). Tokyo, Japan.

  • Bergenti, F., & Poggi, A. (2000). Improving UML design using automatic design pattern detection. In Proceedings of the 12th International Conference on Software Engineering and Knowledge Engineering (SEKE) (pp. 336–343). Chicago, Illinois.

  • Brown, K. (1996). Design Reverse-Engineering and Automated Design Pattern Detection in SmallTalk. Master’s thesis, Department of Computer Engineering, North Carolina State University.

  • Costagliola, G., Lucia, A. D., Deufemia, D., Gravino, C., & Risi, M. (2005). Design pattern recovery by visual language parsing. In Proceedings of the 9th European Conference on Software Maintainance and Reengineering (pp. 102–111). Manchester, UK.

  • Dahchour, M., Pirotte, A., & Zimanyi, E. (2002). A generic role model for dynamic objects. In Proceedings of the 14th Advanced Information Systems Engineering international Conference, CAiSE02 (pp. 643–658). Toronto, Canada.

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

    Article  Google Scholar 

  • Eden, A. (1999). Precise Specification of Design Patterns and Tool Support in Their Application. PhD thesis, University of Tel Aviv, Israel.

  • France, R., Ghosh, S., Song, E., & Kim, D. (2003). A metamodeling approach to pattern-based model refactoring. IEEE Software, Special Issue on Model Driven Development, 20(5), 52–58.

    Google Scholar 

  • France, R., Kim, D., Ghosh, S., & Song, E. (2004). A UML-based pattern specification technique. IEEE Transactions on Software Engineering, 30(3), 193–206.

    Article  Google Scholar 

  • Frank, U. (2000). Delegation: An important concept for the appropriate design of object models. Journal of Object Oriented Programming, 13(3), 13–18.

    Google Scholar 

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

  • Gottlob, G., Michael, S., & Rock, B. (1996). Extending object—oriented systems with roles. ACM Transactions on Information Systems, 14(3), 268–296.

    Article  Google Scholar 

  • Grand, M. (2002). Patterns in Java, Volume 1, Second Edition-A catalog of reusable design patterns illustrated with UML. Wiley.

  • Guennec, A. L., Sunye, G., & Jezequel, J. (2000). Precise modeling of design patterns. In Proceedings of the 3rd International Conference on the Unified Modeling Language (UML) (pp. 482–496). York, UK.

  • Halpin, T. (1996). Business rules and object role modeling. Database Programming and Design, 9(10), 66–72.

    Google Scholar 

  • Heuzeroth, D., Holl, T., H¨ogstr¨om, G., & Lo¨we, W (2003). Automatic Design Pattern Detection. In Proceedings of the 11th IEEE International Workshop Program Comprehension (pp. 94–103). Portland, Oregon.

  • Keller, R. K., Schauer, R., Robitaille, S., & Page, P. (1999). Pattern-based reverse engineering of design components. In Proceedings of the 21st International Conference On Software Engineering (pp. 226–235). Los Angeles, California.

  • Kim, D. (2004). A Meta-Modeling Approach to Specifying Patterns. PhD thesis, Colorado State University, Fort Collins, CO.

  • Kim, D. (2007). The role-based metamodeling language for specifying design patterns. In Taibi, T. (ed.), Design pattern formalization techniques. Hershey, Pennsylvania: Idea Group Inc.

    Google Scholar 

  • Kim, D., France, R., Ghosh, S., & Song, E. (2003). A role-based metamodeling approach to specifying design patterns. In Proceedings of the 27th IEEE Annual International Computer Software and Applications Conference(COMPSAC) (pp. 452–457). Dallas, Texas.

  • Kim, D., & Khawand, C. E. (2007). An approach to precisely specifying the problem domain of design patterns. Journal of Visual Languages and Computing, doi:10.1016/j.jvlc.2007.02.009.

  • Kim, D., Metha, P., & Gokhal, P. (2006). Describing access control patterns using roles. In Proceedings of Pattern Languages of Programming Conference (PLoP). Portland, Oregon.

  • Kramer, C., & Prechelt, L. (1996). Design recovery by automated search for structural design patterns in object-oriented software. In Proceedings of the 3rd Working Conference on Reverse Engineering (pp. 208–215). Monterey, California.

  • Lamport, L. (1994). The temporal logic of actions. ACM Transactions on Programming Languages and Systems, 16(3), 872–923.

    Article  Google Scholar 

  • Lano, K., Bicarregui, J., & Goldsack, S. (1996). Formalising design patterns. In Proceedings of the 1st BCS-FACS Northern Formal Methods Workshop, Electronic Workshops in Computer Science. Ilkely, UK.

  • Lauder, A., & Kent, S. (1998). Precise visual specification of design patterns. In Proceedings of the 12th European Conference on Object-Oriented Programming (pp. 114–136). Brussels, Belgium.

  • Mai, Y., & Champlain, M. de (2001). A pattern language to visitors. In Proceedings of the 8th Annual Conference of Pattern Languages of Programs (PLoP). Monticello, Illinois.

  • Mikkonen, T. (1998). Formalizing design patterns. In Proceedings of the 20th International Conference on Software Engineering (ICSE) (pp. 115–124). Kyoto, Japan.

  • OMG (2003). Unified Modeling Language. Version 1.5, The Object Management Group, http://www.omg.org.

  • Pernici, B. (1991). Objects with roles. In Proceedings of the conference on Office information systems (pp. 25–27). Cambridge, MA.

  • Philippow, I., Streitferdt, D., & Riebisch, M. (2003). Design pattern recovery in architectures for supporting product line development, application. In M. Riebisch, J. O. Coplien, & D. Streitferdt (Eds.), Modelling variability for object-oriented product lines (pp. 42–57). Norderstedt, Germany: BookOnDemand Publ. Co.

    Google Scholar 

  • Reenskaug, T., Wold, P., & Lehne, O. A. (1996). Working with objects: The OORAM software engineering method. Manning/Prentice Hall.

  • Riehle, D. (2000). Framework design: A role modeling approach. PhD thesis, Eidgenossische Technische Hochschule Zurich, No. 13509. http://www.riehle.org.

  • Riehle, D. (2003). The perfection of informality: Tools, templates, and patterns. Cutter IT Journal, 16(9), 22–26.

    Google Scholar 

  • RM-ODP (2001). Information technology—Open Distributed Processing—Reference model: Enterprise Language. Technical Report ISO/IEC, 15414, ITU-T Recommendations X.911, Amendment1: Additional text, ISO.

  • Sciore, E. (1989). Object specialization. ACM Transactions on Information Systems, 7(2), 103–122.

    Article  Google Scholar 

  • Shen, W., & Low, W. L. (2005). Using abstract state machines to support UML model instantiation checking. In Proceedings of The IASTED International Conference on Software Engineering (pp. 100–105). Innsbruck, Austria.

  • Shull, F., Melo, W. L., & Basili, V. R. (1996). An Inductive Method for Discovering Design Patterns from Object-Oriented Software Systems. Technical Report UMIACS-TR-96-10, University of Maryland.

  • Steimann, F. (2000). On the representation of roles in object-oriented and conceptual modelling. Data and Knowledge Engineering, 35(1), 83–106.

    Article  MATH  Google Scholar 

  • Steimann, F. (2001). Role = Interface: A merger of concepts. Journal of Object-Oriented Programming, 14(4), 23–32.

    Google Scholar 

  • Stein, L. A., & Zdonik, S. B. (1989). Clovers: The Dynamic Behavior of Types and Instances. Technical Report CS-89-42, Department of Computer Science, Brown University, Providence, RI.

  • Tokuda, L., & Batory, D., (1995). Automated Software Evolution via Design Pattern Transformations. Technical Report CS-TR-95-06, University of Texas at Austin.

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

    Article  Google Scholar 

  • Vokac, M. (2006). An efficient tool for recovering design patterns from C++ code. Journal of Object Technology, 5(1), 139–157.

    Google Scholar 

  • Warmer, J., & Kleppe, A. (2003). The object constraint language second edition: Getting your models ready for MDA. Addison Wesley.

  • Wendehals, L. (2003). Improving design pattern instance recognition by dynamic analysis. In Proceedings of Workshop on Dynamic Analysis (WODA) (pp. 29–32). Portland, Oregon.

  • Wieringa, R., & Jonge, W. D. (1991). The Identification of Objects and Roles: Object Identifier Revisited. Technical Report lR-267, Vrije University, Amsterdam.

  • Zdun, U., & Avgeriou, P. (2005). Modeling architectural patterns using architectural primitives. In Proceedings of the 20th Annual ACM SIGPLAN Conference on Object Oriented Programming, Systems, Languages, and Applications (pp. 133–146). San Diego, CA.

  • Zhao, C., Kong, J., & Zhang, K. (2007). Design pattern evolution and verification using graph transformation. In Proceedings of the 40th Annual Hawaii International Conference on System Sciences (pp. 290a). Big Island, Hawaii.

Download references

Acknowledgments

The authors would like to thank the anonymous reviewers for their comments to improve the paper. This material is based upon work supported by the National Science Foundation under Grant No. CCF-0523101. Any opinions, findings and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Dae-Kyoo Kim.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Kim, DK., Shen, W. Evaluating pattern conformance of UML models: a divide-and-conquer approach and case studies. Software Qual J 16, 329–359 (2008). https://doi.org/10.1007/s11219-008-9048-5

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11219-008-9048-5

Keywords

Navigation