Abstract
Model-driven engineering involves the automatic generation of software artifacts from models of structure and functionality. The use of models as ‘source code’ has implications for the notions of composition and refinement employed in the modelling language. This paper explores those implications in the context of object-oriented design: establishing a necessary and sufficient condition for a collection of classes to be treated as a component, identifying an appropriate notion of refinement for the generation process, and investigating the applicability of data and process refinement to object models.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Kleppe, A., Warmer, J., Bast, W.: MDA Explained, The Model Driven Architecture: Practice and Promise. Addison-Wesley (2003)
Frankel, D.: Model Driven Architecture: applying MDA to enterprise computing. OMG Series. Wiley (2003)
Matena, V., Stearns, B., Demichiel, L.: Applying Enterprise JavaBeans: Component-Based Development for J2EE. Pearson (2003)
Woodcock, J., Davies, J.: Using Z. Prentice Hall (1996), http://www.usingz.com
Derrick, J., Boiten, E.: Refinement in Z and Object-Z: foundations and advanced applications. Springer (2001)
Warmer, J., Kleppe, A.: The Object Constraint Language: Getting Your Models Ready for MDA. Addison-Wesley (2003)
Faitelson, D., Welch, J., Davies, J.: From predicates to programs. In: Proceedings of SBMF 2005, vol. 184 (2007)
Davies, J., Faitelson, D., Welch, J.: Domain-specific semantics and data refinement of object models. ENTCS 195 (2008)
Meyer, B.: Object-Oriented Software Construction. Prentice Hall (2000)
Beck, K., Cunningham, W.: A laboratory for teaching object oriented thinking. SIGPLAN Not. 24(10) (September 1989)
Wirfs-Brock, R.: Responsibility-driven design. The Smalltalk Report (1991)
Rumbaugh, J., Jacobson, I., Booch, G.: The Unified Modeling Language Reference Manual. Addison-Wesley Professional (2004)
Liskov, B., Wing, J.: A behavioral notion of subtyping. ACM Transactions on Programming Languages and Systems 16(6) (1994)
Szyperski, C.: Component Software: Beyond Object-Oriented Programming, 2nd edn. Addison-Wesley (2002)
Barnett, M., Naumann, D.A.: Friends Need a Bit More: Maintaining Invariants Over Shared State. In: Kozen, D. (ed.) MPC 2004. LNCS, vol. 3125, pp. 54–84. Springer, Heidelberg (2004)
Smith, G.: The Object-Z Specification Language. Kluwer (2000)
McComb, T., Smith, G.: Compositional Class Refinement in Object-Z. In: Misra, J., Nipkow, T., Sekerinski, E. (eds.) FM 2006. LNCS, vol. 4085, pp. 205–220. Springer, Heidelberg (2006)
Smith, G.: A fully abstract semantics of classes for Object-Z. Formal Aspects of Computing 7 (1995)
Cavalcanti, A., Sampaio, A., Woodcock, J.: Unifying classes and processes. Software and Systems Modeling 4 (2005)
Fischer, C.: How to Combine Z with a Process Algebra. In: Bowen, J.P., Fett, A., Hinchey, M.G. (eds.) ZUM 1998. LNCS, vol. 1493, pp. 5–25. Springer, Heidelberg (1998)
Mahony, B., Dong, J.S.: Blending Object-Z and Timed CSP: An introduction to TCOZ. In: Proceedings of ICSE 1998. IEEE Press (1998)
Back, R.J.R., von Wright, J.: Trace refinement of action systems. In: Structured Programming. Springer (1994)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2012 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Davies, J., Gibbons, J., Milward, D., Welch, J. (2012). Compositionality and Refinement in Model-Driven Engineering. In: Gheyi, R., Naumann, D. (eds) Formal Methods: Foundations and Applications. SBMF 2012. Lecture Notes in Computer Science, vol 7498. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-33296-8_9
Download citation
DOI: https://doi.org/10.1007/978-3-642-33296-8_9
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-33295-1
Online ISBN: 978-3-642-33296-8
eBook Packages: Computer ScienceComputer Science (R0)