Towards Instant Automatic Model Refinement Based on OCL

Model refinement is a complex task. It is difficult for developers to refine models all by themselves. A good modeling tool should not only do routine refinement work for developers, but also guide them to make decisions during the refinement process. Such refinement work is best done by modeling tools instantly while developers refine models, to provide timely assistance. In this paper, we present a general approach for meta-model designers or experts in different fields to define and describe such automatic refinement work by rules, and these rules can instruct the modeling tool to do the refinement work instantly, whenever the developers modify the model. The automatic refinement rules in our approach are based on OCL, and their semantics and behaviors are formally defined by using Dijkstra's guarded commands, so the rules are compact, unambiguous and reliable to use. We have also implemented the editor and the interpreter for the automatic refinement rules, and integrated them into our own modeling tool to support our approach.

[1]  Luciano Baresi,et al.  Style-based modeling and refinement of service-oriented architectures , 2006, Software & Systems Modeling.

[2]  Bran Selic,et al.  The Pragmatics of Model-Driven Development , 2003, IEEE Softw..

[3]  Shing-Chi Cheung,et al.  Incremental consistency checking for pervasive context , 2006, ICSE '06.

[4]  Behzad Bordbar,et al.  On Querying UML Data Models with OCL , 2001, UML.

[5]  Bashar Nuseibeh,et al.  Managing inconsistent specifications: reasoning, analysis, and action , 1998, TSEM.

[6]  Shane Sendall,et al.  Model Transformation: The Heart and Soul of Model-Driven Software Development , 2003, IEEE Softw..

[7]  Alexander Egyed,et al.  Instant consistency checking for the UML , 2006, ICSE.

[8]  Xiaolei Qian,et al.  Correct Architecture Refinement , 1995, IEEE Trans. Software Eng..

[9]  Bernhard Rumpe,et al.  Model-driven Development of Complex Software : A Research Roadmap , 2007 .

[10]  Wei Tang,et al.  Meta Object Facility , 2009, Encyclopedia of Database Systems.

[11]  Alexander Egyed,et al.  Fixing Inconsistencies in UML Design Models , 2007, 29th International Conference on Software Engineering (ICSE'07).

[12]  Haiyan Zhao,et al.  A software architecture centric engineering approach for Internetware , 2006, Science in China Series F: Information Sciences.

[13]  Frank Budinsky,et al.  Eclipse Modeling Framework , 2003 .

[14]  Wolfgang Emmerich,et al.  Consistency management with repair actions , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[15]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .