Abstract
UML design models, specifically their declarative OCL invariants, must be refined into delivered code. A key problem is the need to integrate this logic with programmer-written code in a non-intrusive way. We recently developed an approach, called mode components, for compiling OCL constraints into modules that implement logic for transparently maintaining these constraints at run time. Specifically, mode components are implemented as nested C++ class template instantiations. The approach makes use of a key device-status variables. The attributes of a component to which other components are sensitive are called its status. A status variable is a lightweight wrapper on a status attribute that detects changes to its value and transparently invokes a method to handle announcements to dependent components. A mode component is a wrapped code unit containing one or more status variables. The contribution of this paper is a technique for achieving this integration using metaprogramming techniques.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Batory, D., O’Malley, S.: The Design and Implementation of Hierarchical Software Systems with Reusable Components. ACM Transactions on Software Engineering and Methodology 1(4), 355–398 (1992)
Bracha, G., Cook, W.: Mixin-based Inheritance. In: Proceedings ECOOP/OOPSLA 1990, October 21-25, pp. 303–311 (1990)
Chiba, S.: OpenC++ Home Page, http://www.csg.is.titech.ac.jp/~chiba/openc++.html
Czarnecki, K., Eisenecker, U.W.: Intentional Programming. In: Generative Programming, ch. 11, Addison Wesley, Reading (2000)
DeLine, R.: Avoiding Packaging Mismatch with Flexible Packaging. In: Proceedings IEEE International Conference on Software Engineering, pp. 97–106 (1999)
Garlan, D., Scott, C.: Adding Implicit Invocation to Traditional Programming Languages. In: International Conference on Software Engineering, pp. 447–453 (1993)
Gosling, J., Yellin, F.: The Java Application Programming Interface. Window Toolkit and Applets, vol. 2. Addison-Wesley, Reading (1996)
International Business Machine Corp. “Rational Software.” http://www-306.ibm.com/software/rational/
Loecher, S., Ocke, S.: A Metamodel-Based OCL-Compiler for UML and MOF. Department of Computer Science. Dresden University of Technology (September 2003)
McNeely, C., Rugaber, S., Stirewalt, K., Zook, D.: DYNAMO Design Guidebook. Technical Report GIT-CC-02-37, College of Computing, Georgia Institute of Technology, June 27 (2002), ftp://ftp.cc.gatech.edu/pub/coc/tech_reports/2002/GIT-CC-02-37.ps.Z
Medvidovic, N., Rosenblum, D.S., Redmiles, D.F., Robbins, J.E.: Modeling Software Architectures in UML. ACM Transactions on Software Engineering and Methodology 11(1), 2–57 (2002)
Object Management Group. Unified Modeling Language, Version 1.4. OMG Document Number 01-09-67, Chapter 6, http://www.omg.org/cgi-bin/apps/doc?formal/01-09-67.pdf
Object Management Group. XML Metadata Interchange (XMI), http://www.omg.org/technology/documents/formal/xmi.htm
Rugaber, S., Stirewalt, K.: Metaprogramming Compilation of Invariant Maintenance Wrappers from OCL Constraints. Technical Report GIT-CC-03-46, College of Computing, Georgia Institute of Technology, October 28 (2003), http://www.cc.gatech.edu/dynamo/papers/compile.pdf
Rugaber, S., Stirewalt, K.: Final Project Report / Dynamic Assembly from Models (DYNAMO). Technical Report, GIT-CC-05-03, College of Computing, Georgia Institute of Technology (March 2005), ftp://ftp.cc.gatech.edu/pub/coc/tech_reports/2005/GIT-CC-05-03.pdf
Smaragdakis, Y., Batory, D.: Implementing Layered Designs with Mixin Layers. In: Proceedings of the 12th European Conference on Object-oriented Programming (1998)
Sullivan, K., Notkin, D.: Reconciling Environment Integration and Software Evolution. ACM Transactions on Software Engineering and Methodology 1(3), 229–268 (1992)
Taylor, R.N., et al.: Chiron-1: A Software Architecture for User Interface Development, Maintenance, and Run-Time Support. ACM Transactions on Computer-Human Interaction 2(2), 105–144 (1995)
Tigris.org. Welcome to ArgoUML, http://argouml.tigris.org/
VanHilst, M., Notkin, D.: Using Role Components to Implement Collaboration-Based Designs. In: Proceedings of OOPSLA 1996, pp. 359–369 (1996)
Warmer, J., Kleppe, A.: The Object Constraint Language. Addison-Wesley, Reading (1999)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Stirewalt, K., Rugaber, S. (2005). Automated Invariant Maintenance Via OCL Compilation. In: Briand, L., Williams, C. (eds) Model Driven Engineering Languages and Systems. MODELS 2005. Lecture Notes in Computer Science, vol 3713. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11557432_46
Download citation
DOI: https://doi.org/10.1007/11557432_46
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-29010-0
Online ISBN: 978-3-540-32057-9
eBook Packages: Computer ScienceComputer Science (R0)