Software Quality Journal

, Volume 24, Issue 3, pp 675–708 | Cite as

Staged model evolution and proactive quality guidance for model libraries

  • Andreas Ganser
  • Horst Lichter
  • Alexander Roth
  • Bernhard Rumpe
Article

Abstract

A variety of modeling approaches, including model-driven development, consider model reuse as one of their cornerstones, but lack support for model reuse. This may be due to the available model repositories that barely exceed support for enhanced versioning or collaborative work and disregard model evolution. We believe that current model evolution approaches do not consider reuse sufficiently and that model repositories for reuse purposes should act as model libraries. This requires new functionality, because models for reuse need to achieve and maintain high quality. Moreover, quality assessment and assurance, which are tasks often considered tedious, need to be as simple as putting away or maintaining artifacts for reuse. In this study, we propose an approach for model evolution in UML model libraries that differs from general model evolution, since it is aimless and triggered by new external requirements. Our approach is founded on graphs that are partitioned into three stages with respect to the level of reusability. Each stage is defined by quality characteristics that are manifestations of a quality model consisting of four essential quality dimensions: syntactic, semantic, pragmatic, and emotional. In order to achieve the next level of reusability, i.e., change the stage of a model, a quality gate needs to be passed. This can be supported by a proactive approach that guides the modeler through the enhancement process and offers additional recommendations based on the level of reusability. Since guidance cannot be fully automated, we implement a review mechanism founded on the idea of the six thinking hats to help maintain focus on the main aspects of a review. Finally, our approach is enhanced to support the evolution of generations, i.e., a group of several model snapshots, to ease reusability.

Keywords

UML Model Evolution Quality Libraries 

References

  1. Allilaire, F., Bézivin, J., Bruneliere, H., & Jouault, F. (2006). Global model management in eclipse GMT/AM3. In D. Thomas (Ed.), Proceedings of the eclipse technology exchange workshop (eTX) at the ECOOP 2006 conference, Lecture notes in computer science (Vol. 4067).Google Scholar
  2. Altmanninger, K., Kappel, G., Kusel, A., Retschitzegger, W., Seidl, M., Schwinger, W., et al. (2008). AMOR—Towards adaptable model versioning. In 1st international workshop on model co-evolution and consistency management (MCCM’08), workshop at MODELS’08, ACM, pp. 1–7.Google Scholar
  3. Arendt, T., & Taentzer, G. (2012). Integration of smells and refactorings within the eclipse modeling framework. In Fifth workshop on refactoring tools (WRT 2012), ACM, New York, NY.Google Scholar
  4. Arendt, T., & Taentzer, G. (2013). A tool environment for quality assurance based on the Eclipse Modeling Framework. Automated Software Engineering, 20(2), 141–184. doi:10.1007/s10515-012-0114-7.CrossRefGoogle Scholar
  5. Arendt, T., Mantz, F., & Taentzer, G. (2010a). EMF refactor specification and application of model refactorings within the Eclipse Modeling Framework. In Proceedings of 9th BElgian-NEtherlands software eVOLution seminar.Google Scholar
  6. Arendt, T., & Taentzer, G. (2013). A tool environment for quality assurance based on the Eclipse Modeling Framework. Automated Software Engineering, 20(2), 141–184. doi:10.1007/s10515-012-0114-7.CrossRefGoogle Scholar
  7. Astels, D. (2002). Refactoring With UML. In Proceedings of the 3rd international conference on extreme programming and flexible processes in software engineering, pp. 67–70.Google Scholar
  8. Bansiya, J., & Davis, C. G. (2002). A hierarchical model for object-oriented design quality assessment. IEEE Transactions on Software Engineering, 28(1), 4–17. doi:10.1109/32.979986.CrossRefGoogle Scholar
  9. Basciani, F., Di Rocco, J., Di Ruscio, D., Di Salle, A., Iovino, L., & Pierantonio, A. (2014). MDEForge: An extensible Web-based modeling platform. http://ceur-ws.org/Vol-1242/paper10.pdf.
  10. Belaunde, M. (1999). A pragmatic approach for building a user-friendly and flexible UML model repository. In R. B. France, B. Rumpe (Eds.), UML’99—The Unified Modeling Language, Lecture notes in computer science (Vol. 1723, pp. 188–203). Berlin: Springer. doi:10.1007/3-540-46852-8_14.
  11. Bézivin, J., Jouault, F., Rosenthal, P., & Valduriez, P. (2005). Modeling in the large and modeling in the small. In U. Aßmann, M. Aksit, A. Rensink (Eds.), Model driven architecture, Lecture notes in computer science (Vol. 3599, pp. 33–46). Berlin: Springer. doi:10.1007/11538097_3.
  12. Biehl, M. (2010). Supporting model evolution in model-driven development of automotive embedded systems. Licentiate Thesis, KTH, Stockholm, Sweden.Google Scholar
  13. Boger, M., Sturm, T., & Fragemann, P. (2003). Refactoring browser for UML. In Objects, components, architectures, services, and applications for a networked world, Lecture notes in computer science (Vol. 2591, pp. 366–377). doi:10.1007/3-540-36557-5_26.
  14. Bohner, S. A., & Arnold, R. S. (1996). Software change impact analysis. Los Alamitos, CA: IEEE Computer Society Press.Google Scholar
  15. Bono, E. (1999). Six thinking hats: Run better meetings, make faster decisions. In Six thinking hats. London: Penguin.Google Scholar
  16. Briand, L. C., Labiche, Y., O’Sullivan, L., & Sówka, M. M. (2006). Automated impact analysis of UML models. Journal of Systems and Software, 79(3), 339–352. doi:10.1016/j.jss.2005.05.001.CrossRefGoogle Scholar
  17. Brosch, P., Langer, P., Seidl, M., Wieland, K., Wimmer, M., Kappel, G., et al. (2009). An example Is worth a thousand words: Composite operation modeling by-example. In A. Schürr, & B. Selic (Ed.), Model driven engineering languages and systems, Lecture notes in computer science (Vol. 5795, pp. 271–285). Berlin: Springer. doi:10.1007/978-3-642-04425-0_20.
  18. Chaudron, M., Heijstek, W., & Nugroho, A. (2012). How effective is UML modeling? Software & Systems Modeling, 11(4), 571–580. doi:10.1007/s10270-012-0278-4.CrossRefGoogle Scholar
  19. Dantas, C.R., Murta, L.G., & Werner, C. (2005). Consistent evolution of UML models by automatic detection of change traces. In Proceedings of the 8th international workshop on principles of software evolution, IEEE (pp. 144–147). doi:10.1109/IWPSE.2005.10.
  20. DeRemer, F., & Kron, H. (1975). Programming-in-the large versus programming-in-the-small. ACM SIGPLAN Notices, 10(6), 114–121. doi:10.1145/390016.808431.CrossRefMATHGoogle Scholar
  21. Dreyfus, S. E., & Dreyfus, H. L. (1980). A five-stage model of the mental activities involved in directed skill acquisition. http://goo.gl/76GVH8.
  22. Dyck, A., Ganser, A., & Lichter, H. (2013). Enabling model recommenders for command-enabled editors. In MoDELS MDEBE—International workshop on model-driven engineering by example 2013 co-located with MODELS conference, September 29, 2013 (pp. 12–21). Miami FL: CEUR.Google Scholar
  23. Dyck, A., Ganser, A., & Lichter, H. (2014a). A framework for model recommenders—Requirements, architecture and tool support. In Modelsward 2014, proceedings of the 2nd international conference on model-driven engineering and software development, Lisbon, Portugal, 7.-9. January 2014, SCITEPRESS (pp. 282–290). doi:10.5220/0004701702820290.
  24. Dyck, A., Ganser, A., & Lichter, H. (2014b). On designing recommenders for graphical domain modeling environments. In Modelsward 2014, proceedings of the 2nd international conference on model-driven engineering and software development, Lisbon, Portugal, 7–9. January 2014, SCITEPRESS (pp. 291–299). doi:10.5220/0004701802910299.
  25. Eclipse Foundation. (2014a). Code recommenders. http://www.eclipse.org/recommenders/.
  26. Eclipse Foundation. (2014b). MoDisco. http://www.eclipse.org/MoDisco/.
  27. Eick, S. G., Graves, T. L., Karr, A. F., Marron, J. S., & Mockus, A. (2001). Does code decay? Assessing the evidence from change management data. IEEE Transactions on Software Engineering, 27(1), 1–12. doi:10.1109/32.895984.CrossRefGoogle Scholar
  28. Elinson, S., Hanns, M., Kirstein, M., Kronseder, S., & Köhler, S. (2010). Eclipse model repository. http://modelrepository.sourceforge.net/.
  29. Embley, D. W., & Thalheim, B. (Eds.). (2011). Handbook of conceptual modeling: Theory, practice, and research challenges. Berlin [u.a.]: Springer.Google Scholar
  30. Fagan, M. E. (1976). Design and code Inspections to reduce errors in program development. In IBM systems journal (Vol. 15, IBM, pp. 182–211). doi:10.1147/sj.153.0182.
  31. Fowler, M. (1999). Refactoring: Improving the design of existing code. Reading, MA: The Addison-Wesley Object Technology Series, Addison-Wesley.MATHGoogle Scholar
  32. France, R. B., Bieman, J., & Cheng, B. H. C. (2006). Repository for model driven development (ReMoDD). In T. Kühne (Ed.), Proceedings of the 9th international conference on model driven engineering languages and systems, ACM, Lecture notes in computer science (Vol. 4364, pp. 311–317). doi:10.1007/978-3-540-69489-2_38.
  33. Ganser, A. (2014a). The HERMES project—Demo videos. http://hermes.modelrecommenders.org/demos.html.
  34. Ganser, A. (2014b). The HERMES project—Eclipse P2 Updatesite: HERMES.reuse. http://goo.gl/ZGxIf.
  35. Ganser, A. (2014c). The HERMES project: Harvest, evolve, and reuse models easily and seamlessly. http://hermes.modelrecommenders.org/.
  36. Ganser, A., & Lichter, H. (2013). Engineering model recommender foundations. In Modelsward 2013, proceedings of the 1st international conference on model-driven engineering and software development, Barcelona, Spain,19–21-February 2013, SCITEPRESS (pp. 135–142). doi:10.5220/0004320801350142.
  37. Garg, A., & Tamassia, R. (1995). On the computational complexity of upward and rectilinear planarity testing. In G. Goos, J. Hartmanis, J. Leeuwen, R. Tamassia, & I. G. Tollis (Eds.), Graph drawing, Lecture notes in computer science (Vol. 894, pp. 286–297). Berlin: Springer. doi:10.1007/3-540-58950-3_384.
  38. Genero, M., Piattini, M., & Calero, C. (2002). Empirical validation of class diagram metrics. In International symposium in empirical software engineering, Kluwer Academic Publishers, Empirical Software Engineering (Vol. 7, pp. 195–203). doi:10.1109/ISESE.2002.1166940.
  39. Genero, M., Piattini, M., & Calero, C. (2002). Empirical validation of class diagram metrics. In International symposium in empirical software engineering, , Kluwer Academic Publishers, Empirical Software Engineering (Vol. 7, pp. 195–203). doi:10.1109/ISESE.2002.1166940.
  40. Golbandi, N., Koren, Y., & Lempel, R. (2010). On bootstrapping recommender systems. In J. Huang (Ed.), CIKM ’10, ACM, [New York] (pp. 1805–1808). doi:10.1145/1871437.1871734.
  41. Herrmannsdörfer, M. (2011). Evolutionary metamodeling. PhD: Technische Universität München, München.Google Scholar
  42. Herrmannsdörfer, M., & Ratiu, D. (2010). Limitations of automating model migration in response to metamodel adaptation. In S. Ghosh (Ed.), Models in software engineering, Lecture notes in computer science (Vol. 6002, pp. 205–219). Springer. doi:10.1007/978-3-642-12261-3_20.
  43. Herrmannsdörfer, M., Vermolen, S. D., & Wachsmuth, G. (2011). An extensive catalog of operators for the coupled evolution of metamodels and models. In B. Malloy, S. Staab, & van den Brand, M. (Ed.), Third international conference software language engineering (SLE 2010), Lecture notes in computer science (Vol. 6563, pp. 163–182). Berlin: Springer. doi:10.1007/978-3-642-19440-5_10.
  44. Jannach, D., Zanker, M., Felfernig, A., & Friedich, G. (2011). Recommender systems: An introduction. New York: Cambridge University Press.Google Scholar
  45. Judson, S. R., France, R. B., & Carver, D. L. (2004). Supporting rigorous evolution of UML models. In Proceedings of the ninth IEEE international conference on engineering complex computer systems 2004, IEEE, pp. 128–137. doi:10.1109/ICECCS.2004.1310911.
  46. Keienburg, F., & Rausch, A. (2001). Using XML/XMI for tool supported evolution of UML models. In Proceedings of the 34th annual Hawaii international conference on system sciences, IEEE, p. 10, doi:10.1109/HICSS.2001.927259.
  47. Kim, H., & Boldyreff, C. (2002). Developing software metrics applicable to UML models. In G. Goos, J. Hartmanis, J. van Leeuwen, J. Hernández, & A. Moreira (Eds.), Object-oriented technology ECOOP 2002 workshop reader (Vol. 2548). Berlin: Springer.Google Scholar
  48. Kögel, M. (2011). Operation-based model evolution (1st ed.). München: Verlag Dr. Hut.Google Scholar
  49. Kögel, M., & Helming, J. (2010). EMFStore: A model repository for EMF models. In J. Kramer (Ed.), Proceedings of the 32nd ACM IEEE international conference on software engineering, ACM, New York, NY, p. 307. doi:10.1145/1810295.1810364.
  50. Lange, C. (2006). Improving the quality of UML models in practice. In 28th international conference on software engineering, association for computing machinery (pp. 993–996). New York, NY. doi:10.1145/1134285.1134472.
  51. Lange, C., & Chaudron, M. (2005). Managing model quality in UML-based software development. In International workshop on software technology and engineering practice (Vol. 0, pp. 7–16). doi:10.1109/STEP.2005.16.
  52. Lange, C., Wijns, M. A., & Chaudron, M. (2007a). A visualization framework for task-oriented modeling Using UML. In 40th Hawaii international conference on system sciences. IEEE, Piscataway, NJ, p 289a, doi:10.1109/HICSS.2007.44.
  53. Lange, C., Wijns, M. A., & Chaudron, M. (2007b). MetricViewEvolution: UML-based views for monitoring model evolution and quality. In Krikhaar, R. (Ed.), IEEE computer society 11th European conference on software maintenance and reengineering, Los Alamitos, CA. [u.a.], pp. 327–328. doi:10.1109/CSMR.2007.32.
  54. Lehman, M. M. (1980). Programs, life cycles, and laws of software evolution. Proceedings of the IEEE, 68(9), 1060–1076. doi:10.1109/PROC.1980.11805.CrossRefGoogle Scholar
  55. Levendovszky, T., Rumpe, B., Schätz, B., & Sprinkle, J. (2011). Model evolution and management. In H. Giese, G. Karsai, E. Lee, B. Rumpe, & B. Schätz (Ed.), Model-based engineering of embedded real-time systems, Lecture notes in computer science (Vol. 6100, pp. 241–270). Berlin: Springer. doi:10.1007/978-3-642-16277-0_9.
  56. Lindland, O. I., Sindre, G., & Solvberg, A. (1994). Understanding quality in conceptual modeling. IEEE Software, 11(2), 42–49. doi:10.1109/52.268955.CrossRefGoogle Scholar
  57. Lucrédio, D., Fortes, M., Renata, P., & Whittle, J. (2012). MOOGLE: A metamodel-based model search engine. Software & Systems Modeling, 11(2), 183–208. doi:10.1007/s10270-010-0167-7.CrossRefGoogle Scholar
  58. Madhavji, N. H., Fernndez Ramil, J. C., & Perry, D. E. (2006). Software evolution and feedback: Theory and practice. Chichester: Wiley.CrossRefGoogle Scholar
  59. McQuillan, J. A., & Power, J. F. (2006). On the application of software metrics to UML models. In T. Kühne (Ed.), Proceedings of the 9th international conference on model driven engineering languages and systems, ACM, Lecture notes in computer science (Vol. 4364, pp. 217–226). doi:10.1007/978-3-540-69489-2_27.
  60. Melnik, S. (2004). Generic model management: Concepts and algorithms, Lecture notes in computer science (Vol. 2967). Berlin and London: Springer.Google Scholar
  61. Mens, T., & D’Hondt, T. (2000). Automating support for software evolution in UML. Automated Software Engineering, 7(1), 39–59. doi:10.1023/A:1008765200695.
  62. Mens, T., Lucas, C., & Steyaert, P. (1998). Supporting disciplined reuse and evolution of UML models. In J. Bézivin, & P. A. Muller (Ed.), UML ’98: Beyond the notation, Lecture notes in computer science (Vol. 1618, pp. 378–392). Berlin and London: Springer. doi:10.1007/978-3-540-48480-6_29.
  63. Mens, T., van der Straeten, R., & Simmonds, J. (2003). Maintaining consistency between UML models with description logic tools. In ECOOP workshop on object-oriented reengineering, Lecture notes in computer science (Vol. 3031).Google Scholar
  64. Mens, T., & D’Hondt, T. (2000). Automating support for software evolution in UML. Automated Software Engineering, 7(1), 39–59. doi:10.1023/A:1008765200695.CrossRefGoogle Scholar
  65. Mohagheghi, P., & Dehlen, V. (2009). Existing model metrics and relations to model quality. In ICSE Workshop on Software Quality, 2009, WOSQ’09, IEEE, (pp. 39–45). Piscataway, NJ.Google Scholar
  66. Moody, D. L. (2005). Theoretical and practical issues in evaluating the quality of conceptual models: Current state and future directions. Data & Knowledge Engineering, 55(3), 243–276. doi:10.1016/j.datak.2004.12.005.MathSciNetCrossRefGoogle Scholar
  67. Murta, L. G., Oliveira, H., Dantas, C., Lopes, L. G., & Werner, C. (2007). Odyssey-SCM: An integrated software configuration management infrastructure for UML models. Science of Computer Programming, 65(3), 249–274. doi:10.1016/j.scico.2006.05.011.MathSciNetCrossRefMATHGoogle Scholar
  68. Ramirez, A., et al. (2004). ArgoUML user manual v0.16. http://argouml.tigris.org.
  69. Ricci, F., Rokach, L., Shapira, B., & Kantor, P. B. (Eds.). (2011). Recommender systems handbook. New York and London: Springer.Google Scholar
  70. Roth, A. (2012). Quality staged model evolution in Ecore Libraries. Master Thesis, RWTH Aachen University, Aachen, Germany, https://www2.swc.rwth-aachen.de/?post_type=thesis&p=427.
  71. Roth, A. (2013). A metrics mapping and sources. http://goo.gl/ruqFpi.
  72. Roth, A., Ganser, A., Lichter, H., & Rumpe, B. (2013a). Proactive quality guidance for model evolution in model libraries. In Models and evolution, proceedings of the workshop on models and evolution, co-located with ACM/IEEE 16th international conference on model driven engineering languages and systems (MoDELS 2013), CEUR, CEUR workshop proceedings (Vol. 1090, pp. 50–59).Google Scholar
  73. Roth, A., Ganser, A., Lichter, H., & Rumpe, B. (2013b). Staged evolution with quality gates for model libraries. In Proceedings of the 1st international workshop on: (Document) changes: Modeling, detection, storage and visualization, ACM, pp. 1–8.Google Scholar
  74. Rumpe, B. (2012). Agile Modellierung mit UML: Codegenerierung, Testfälle, Refactoring (2nd ed.). Berlin: Xpert.press, Springer.CrossRefGoogle Scholar
  75. Segal, J. (2003). The nature of evidence in empirical software engineering. In Eleventh annual international workshop on software technology and engineering practice, IEEE, (pp. 40–47), doi:10.1109/STEP.2003.33.
  76. Stachowiak, H. (1973). Allgemeine Modelltheorie. S.l.: Vienna Springer.CrossRefGoogle Scholar
  77. Steinberg, D., Budinsky, F., Paternostro, M., & Merks, E. (2008). EMF—Eclipse Modeling Framework, 2nd edn. The Eclipse series, Addison Wesley, Upper Saddle River, NJ.Google Scholar
  78. Struber, D., Rubin, J., Taentzer, G., & Chechik, M. (2014). Splitting models using information retrieval and model crawling techniques. In S. Gnesi, & A. Rensink (Ed.), Fundamental approaches to software engineering, Lecture notes in computer science (Vol. 8411, pp. 47–62). Berlin: Springer. doi:10.1007/978-3-642-54804-8_4.
  79. Sun, Y., White, J., & Gray, J. (2009). Model transformation by demonstration. In A. Schürr, & B. Selic (Ed.), Model driven engineering languages and systems, Lecture notes in computer science (Vol. 5795, pp. 712–726). Berlin: Springer. doi:10.1007/978-3-642-04425-0_58.
  80. Swanson, E. B. (1976). The dimensions of maintenance. In R. T. Yeh, & C. V. Ramamoorthy (Ed.), ICSE ’76 proceedings of the 2nd international conference on software engineering, IEEE, pp. 492–497.Google Scholar
  81. Taylor, R. N., Gall, H., Medvidović, N., Sun, Y., Gray, J., & White, J. (2011). MT-scribe: An end-user approach to automate software model evolution. In Proceedings of the 33rd international conference on software engineering, ACM, ICSE, pp. 980–982. doi:10.1145/1985793.1985966.
  82. Ujhelyi, Z., Bergmann, G., Hegedüs, Á., Horváth, Á., Izsó, B., Ráth, I., et al. (2015). EMF-IncQuery: An integrated development environment for live model queries. Science of Computer Programming, 98, 80–99. doi:10.1016/j.scico.2014.01.004.CrossRefGoogle Scholar
  83. van Deursen, A., Visser, E., & Warmer, J. (2007). Model-driven software evolution: A research agenda. Technical report series. www.st.ewi.tudelft.nl/~arie/papers/modse/modse2007.pdf. Accessed 5 Feb 2014.
  84. van Enckevort, T. (2009). Refactoring UML models: Using OpenArchitectureWare to measure UML model quality and perform pattern matching on UML models with OCL queries. In Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications, ACM, New York, NY.Google Scholar
  85. Vclav Rajlich. (1997). A model for change propagation based on graph rewriting. In Proceedings of the international conference on software maintenance (ICSM’97), pp. 84–91.Google Scholar
  86. Voigt, K. (2011). Structural graph-based metamodel matching. PhD, TU Dresden, Dresden.Google Scholar
  87. Wedemeijer, L. (2001). Defining metrics for conceptual schema evolution. In G. Goos, J. Hartmanis, J. Leeuwen, H. Balsters, B. Brock, & S. Conrad (Eds.), Database schema evolution and meta-modeling, Lecture notes in computer science (Vol. 2065, pp. 220–244). Berlin: Springer. doi:10.1007/3-540-48196-6_13.
  88. Weimer, M., Karatzoglou, A., & Bruch, M. (2009). Maximum margin matrix factorization for code recommendation. In L. Bergman, & A. Tuzhilin (Eds.), RecSys ’09 proceedings of the third ACM conference on Recommender systems, ACM (pp. 309–312). doi:10.1145/1639714.1639775.
  89. Wenzel, S., Hutter, H., & Kelter, U. (2007). Tracing model elements. In IEEE international conference on software maintenance (ICSM 2007), (pp. 104–113). doi:10.1109/ICSM.2007.4362623.
  90. Wüst, J. (2014). SDMetrics: The software design metrics tool for the UML. http://www.sdmetrics.com/.

Copyright information

© Springer Science+Business Media New York 2015

Authors and Affiliations

  • Andreas Ganser
    • 1
  • Horst Lichter
    • 1
  • Alexander Roth
    • 2
  • Bernhard Rumpe
    • 2
  1. 1.RWTH Aachen University, Software ConstructionAachenGermany
  2. 2.RWTH Aachen University, Software EngineeringAachenGermany

Personalised recommendations