Skip to main content
Log in

An interactive tool for UML class model evolution in database applications

  • Regular Paper
  • Published:
Software & Systems Modeling Aims and scope Submit manuscript

Abstract

In the context of model-driven development of database applications with UML, the (usually relational) database schema is obtained automatically from the application’s structural (class) UML model. Changes in requirements often lead to modifications of the application’s structural model. Such changes, in turn, have to be propagated to the underlying database schema. Very often, especially when the system is in production with a large volume of users’ live data, the data is considered to be valuable enough to be preserved through these changes. This paper describes an approach to cope with the problem of model evolution with the ultimate requirement to preserve the data stored in the database. The algorithm interactively determines differences between structural UML models before and after the changes and resolves those differences into transformations in the relational database domain.

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

Access this article

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

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

Similar content being viewed by others

Explore related subjects

Discover the latest articles, news and stories from top researchers in related subjects.

Notes

  1. According to the previously given assumption about limited changes between subsequent production versions.

References

  1. Lehman, M.M.: On understanding laws, evolution, and conservation in the large-program life cycle. J. Syst. Softw. 1, 213–221 (1980)

    Article  Google Scholar 

  2. Curino, C., Moon, H.J., Tanca, L., Zaniolo, C.: Schema evolution in Wikipedia: toward a web information system benchmark. In: International Conference on Enterprise Information Systems (ICEIS) (2008)

  3. Conradi, R., Westfechtel, B.: Version models for software configuration management. ACM Comput. Surv. (CSUR) 30(2), 232–282 (1998)

    Article  Google Scholar 

  4. Kögel, M., Herrmannsdoerfer, M., Li, Y., Helming, J., David, J.: Comparing state- and operation-based change tracking on models. In: Enterprise Distributed Object Computing Conference (EDOC), 2010 14th IEEE, International, pp. 163–172 (2010)

  5. Kögel, M., Herrmannsdörfer, M., Helming, J., Li, Y.: State-based vs. operation-based change tracking. In: Proceedings of the Joint ModSE-MCCM Workshop on Models and Evolution, ModSE-MCCM, vol. 9 (2009)

  6. Bellahsene, Z., Bonifati, A., Rahm, E.: Schema Matching and Mapping. Springer, Heidelberg (DE) (2011)

    Book  MATH  Google Scholar 

  7. Euzenat, J., Shvaiko, P.: Ontology Matching. Springer, Heidelberg (DE) (2007)

    MATH  Google Scholar 

  8. Shvaiko, P., Euzenat, J.: A survey of schema-based matching approaches. J. Data Semant. IV, 146–171 (2005)

    Google Scholar 

  9. Kolovos, D.S., Di Ruscio, D., Pierantonio, A., Paige, R.F.: Different models for model matching: an analysis of approaches to support model differencing. In: Proceedings of the 2009 ICSE Workshop on Comparison and Versioning of Software Models. Washington, DC, USA. IEEE Computer Society, pp. 1–6 (2009)

  10. Brosch, P., Langer, P., Seidl, M., Wieland, K., Wimmer, M., Kappel, G., Retschitzegger, W., Schwinger, W.: An example is worth a thousand words: composite operation modeling by example. In: Model Driven Engineering Languages and Systems (MoDELS). Springer, Berlin/Heidelberg, pp. 271–285 (2009)

  11. Lippe, E., Van Oosterom, N.: Operation-based merging. In: Proceedings of the Fifth ACM SIGSOFT Symposium on Software Development Environments. New York, NY, USA. ACM, pp. 78–87 (1992)

  12. SOLoist. http://www.soloist4uml.com

  13. Milicev, D.: Model-Driven Development with Executable UML. Wiley (Wrox series), London (2009)

    Google Scholar 

  14. Lin, Y., Gray, J., Jouault, F.: DSMDiff: a differentiation tool for domain-specific models. Eur. J. Inf. Syst. 16(4), 349–361 (2007)

    Article  Google Scholar 

  15. Eclipse Modeling Framework Compare Project. http://www.eclipse.org/emf/compare/

  16. Treude, C., Berlik, S., Wenzel, S., Kelter, U.: Difference computation of large models. 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. 295–304 (2007)

  17. Curino, C., Moon, J., Ham, M., Zaniolo, C.: The PRISM workbench: database schema evolution without tears. In: ICDE’09. IEEE 25th International Conference on Data Engineering, 2009. IEEE, pp. 1523–1526 (2009)

  18. Moon, H.J., Curino, C.A., Deutsch, A., Hou, C.Y., Zaniolo, C.: Managing and querying transaction-time databases under schema evolution. Proc. VLDB Endow. 1(1), 882–895 (2008)

    Article  Google Scholar 

  19. Barnes, J.M.: Object-relational mapping as a persistence mechanism for object-oriented applications. Honors projects. Paper 6 (2007)

  20. Ambler, S.W.: Mapping objects to relational databases: O/R mapping in detail. (2006). http://www.agiledata.org/essays/mappingObjects.html

  21. Bernstein, P.A., Madhavan, J., Rahm, E.: Generic schema matching, ten years later. Proc. VLDB Endow. 4(11), 695–701 (2011)

    Google Scholar 

  22. Xing, Z., Stroulia, E.: UMLDiff: an algorithm for object-oriented design differencing. In: Proceedings of the 20th IEEE/ACM International Conference on Automated Software Engineering, pp. 54–65 (2005)

  23. Girschick, M.: Difference Detection and Visualization in UML Class Diagrams. Technical report TUD-CS-2006-5, TU Darmstadt (2006)

  24. Kelter, U., Wehren, J., Niere, J.: A generic difference algorithm for UML models. Softw. Eng. 64, 105–116 (2005)

    Google Scholar 

  25. Falconer, S.M., Noy, N.F.: Interactive techniques to support ontology matching. In: Bellahsene, Z., Bonifati, A., Rahm, E. (eds.) Schema Matching and Mapping, pp. 29–52. Springer, Berlin (2011)

  26. Do, H.H., Rahm, E.: Matching large schemas: approaches and evaluation. Inf. Syst. 32(6), 857–885 (2007)

    Google Scholar 

  27. Falconer, S.M., Storey, M.A.: A cognitive support framework for ontology mapping. In: Proceedings of International Semantic Web Conference (ISWC 2007), pp. 114–127. Busan, Korea (2007)

  28. Noy, N.F., Musen, M.A.: The PROMPT suite: interactive tools for ontology merging and mapping. Int. J. Hum.-Comput. Stud. 59(6), 983–1024 (2003)

    Article  Google Scholar 

  29. Lanzenberger, M., Sampson, J.: Alviz—a tool for visual ontology alignment. In: Proceedings of the Conference on Information Visualization, pp. 430–440. London. IEEE Computer Society, Washington, DC (2006)

  30. Mapforce. www.altova.com/mapforce.html

  31. Alexe, B., Chiticariu, L., Miller, R.J., Pepper, D., Tan, W.C.: Muse: a system for understanding and designing mappings. In: Proceedings of the 2008 ACM SIGMOD International Conference on Management of Data, pp. 1281–1284 (2008)

  32. Miller, R.J., Hernandez, M.A., Haas, L.M., Yan, L.L., Ho, C.T.H., Fagin, R., Popa, L.: The Clio project: managing heterogeneity. SIGMOD Rec. 30(1), 78–83 (2001)

    Article  Google Scholar 

  33. Rivera, J., Vallecillo, A.: Representing and operating with model differences. In: Proceedings of Objects, Components, Models and Patterns: 46th International Conference TOOLS EUROPE. Springer, PNBIP 11, pp. 141–160 (2008)

  34. Hartung, M., Terwilliger, J., Rahm, E.: Recent advances in schema and ontology evolution. In: Bellahsene, Z., Bonifati, A., Rahm, E. (eds.) Schema Matching and Mapping, pp. 149–190. Springer, Berlin (2011)

  35. Oracle Enterprise Manager Management Packs. http://www.oracle.com/technetwork/articles/oem-packs-overview-195704.html

  36. Dewson, R.: SQL Server Management Studio. In: Gennick, J., Castro, A., Fox, M. (eds.) Beginning SQL Server 2012 for Developers, pp. 31–49. Apress, New York (2012)

  37. Database version control with IBM Optim Database Administrator V2.2. http://www.ibm.com/developerworks/data/library/techarticle/dm-0704henry/index.html

  38. Visser, E.: WebDSL: a case study in domain-specific language engineering. In: Lämmel, R., Visser, J., Saraiva, J. (eds.) International Summer School on Generative and Transformational Techniques in Software Engineering (GTTSE 2007), vol. 5235 of Lecture Notes in Computer Science, pp. 291–373. Springer, Heidelberg (2008)

  39. Vermolen, S.D., Visser, E.: Heterogeneous coupled evolution of software languages. In: MODELS ’08, vol. 5301 of LNCS, pp. 630–644. Springer (2008)

  40. Acoda. http://webdsl.org/selectpage/Manual/acoda

  41. Code First Blog. http://blogs.msdn.com/b/efdesign/archive/2010/10/22/code-first-database-evolution-aka-migrations.aspx

  42. Terwilliger, J.F., Bernstein, P.A., Unnithan, A.: Worry-free database upgrades: automated model-driven evolution of schemas and complex mappings. In: Special Interest Group on Management of Data (SIGMOD): Proceedings of the 2010 ACM SIGMOD International Conference on Management of data, ACM, pp. 1191–1194 (2010)

  43. Terwilliger, J.F., Bernstein, P.A., Unnithan, A.: Automated co-evolution of conceptual models, physical databases, and mappings. In: Lecture Notes in Computer Science, vol. 6412/2010, pp. 146–159 (2010)

  44. PRISM. http://yellowstone.cs.ucla.edu/schema-evolution/index.php/Prism

  45. Cicchetti, A., Ruscio, D.D., Iovino, L., Pierantonio, A.: Managing the evolution of data-intensive web applications by model-driven techniques. Softw. Syst. Model. 12(1), 53–83 (2013)

    Article  Google Scholar 

  46. Kolovos, D.S.: Establishing correspondences between models with the epsilon comparison language. In: ECMDA-FA ’09: Proceedings of the 5th European Conference on Model Driven Architecture—Foundations and Applications, pp. 146–157. Springer, Heidelberg (2009)

  47. Hainaut, J.L.: The Transformational approach to database engineering. Generative and transformational techniques in software engineering (GTTSE). In: Lecture Notes in Computer Science, vol. 4143, pp. 95–143 (2006)

  48. Domínguez, E., Lloret, J., Rubio, A.L., Zapata, M.A.: MeDEA: a database evolution architecture with traceability. Data Knowl. Eng. 65(3), 419–441 (2008)

    Article  Google Scholar 

  49. Rose, L.M., Paige, R.F., Kolovos, D.S., Polack, F.A.: An analysis of approaches to model migration. In: Proceedings of the Joint MoDSE-MCCM Workshop, pp. 6–15 (2009)

  50. Del Fabro, M.D., Valduriez, P.: Semi-automatic model integration using matching transformations and weaving models. In: Proceedings of the 2007 ACM Symposium on Applied Computing, pp. 963–970, ACM (2007)

  51. Wachsmuth, G.: Metamodel adaptation and model co-adaptation. In: ECOOP 2007-Object-Oriented Programming, Springer, Berlin, Heidelberg, pp. 600–624 (2007)

  52. Specification, MOF QVT Final Adopted. OMG document 05-11-01 (2005)

  53. Cicchetti, A., Ruscio, D.D., Eramo, R., Pierantonio, A.: Automating co-evolution in model-driven engineering. In: EDOC ’O8: Proceedings of the 12th IEEE International EDOC Conference, München, Germany (2008)

  54. Vermolen, S.D., Wachsmuth, G., Visser, E.: Reconstructing complex metamodel evolution. In: Software Language Engineering, pp. 201–221. Springer, Berlin, Heidelberg (2012)

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Dragan Milicev.

Additional information

Communicated by Prof. Heinrich Hussmann.

Appendices

Appendix 1

Table manipulation DMPs

createTable(tableDesc)

   Contains a full description of the table that is to be created (name, columns, etc.).

renameTable(oldTableName, newTableName)

deleteTable(tableName)

Column manipulation DMPs

addColumn(columnDesc)

   Contains a full description of the column that is to be created.

renameColumn(TableName, oldColumnName, newColumnName)

deleteColumn(tableName, columnName)

modifyColumn(tableName, oldColumnDesc, newColumnDesc)

   Handles column transformations like conversion and multiplicity change

Constraint manipulation DMPs

addFKey(columnDesc, FKColumnDesc)

   ColumnDesc and FKColumnDesc describe the column on which the constraint is created and the referenced column, respectively.

dropFKey(columnDesc)

   Drops a foreign key defined on the column columnDesc

Instance data manipulation DMPs

insertData(tableName, values)

   Insert instances values into table named tabledName

deleteData(tableName, condition)

updateData(tableName, columnName, value, condition)

   Updates instance data in the column named columnName of table named tableName to value if the condition is satisfied

Appendix 2

This appendix contains the list of DMPs generated during resolving of the evolution step shown in Fig. 1. For the sake of clarity, we will use the element names from the UML model, as if assuming that functions tableName() and columnName() (used for name mapping between the UML model and the relational domain) simply return the input value. Note that the delete operations do not actually delete the database elements, but rename them, so they become invisible to the runtime OR mapper and the application. This way, the data can be restored if necessary.

  1. 1.

    dropFKey(Manager, assoc);

  2. 2.

    renameColumn(ContactPhone, phoneNum, number);

  3. 3.

    renameColumn(Employee, id, identification);

  4. 4.

    renameTable(Board, Committee);

  5. 5.

    createTable(Cleaner);

  6. 6.

    createTable(assoc_Manager_Committee);

  7. 7.

    createTable(Cashier_register);

  8. 8.

    insertData(assoc_Manager_Committee, Manager. assoc.values);

  9. 9.

    insertData(Cashier_register, Cashier.register.values);

  10. 10.

    deleteColumn(Employee, address);

  11. 11.

    deleteColumn(Cashier, register);

  12. 12.

    deleteColumn(Manager, assoc).

Rights and permissions

Reprints and permissions

About this article

Cite this article

Milovanovic, V., Milicev, D. An interactive tool for UML class model evolution in database applications. Softw Syst Model 14, 1273–1295 (2015). https://doi.org/10.1007/s10270-013-0378-9

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10270-013-0378-9

Keywords

Navigation