OCL. Heinrich Hussmann, Birgit Demuth, and Frank Finger. Dresden University of Technology, Department of Computer Science

Size: px
Start display at page:

Download "OCL. Heinrich Hussmann, Birgit Demuth, and Frank Finger. Dresden University of Technology, Department of Computer Science"

Transcription

1 Modular Architecture for a Toolset Supporting OCL Heinrich Hussmann, Birgit Demuth, and Frank Finger Dresden University of Technology, Department of Computer Science Abstract. The practical application of the Object Constraint Language, which is part of the UML specification since version 1.1, depends crucially on the existence of adequate tool support. This paper discusses general design issues for OCL tools. It is argued that the nature of OCL will lead to a large variety of tools, applied in combination with a variety of different UML tools. Therefore, a flexible modular architecture for a UML/OCL toolset is proposed. The paper reports on the first results of an ongoing project which aims at the provision of such an OCL toolset for the public domain. 1 Introduction Since version 1.1, the UML standard comprises a formal annotation language for UML models, the Object Constraint Language (OCL) [19]. This language is used in the UML standard for precisely defining the well-formedness rules of UML models on the metamodel level. Moreover, OCL is currently gaining popularity in the definition of other OMG standards. Besides this usage on a meta-level there is also high potential in using OCL in the actual development process of software to improve software quality. In the analysis phase, business rules can be expressed precisely. Usually, OCL invariants are attached to class diagrams and enable the specification of constraints which go far beyond the possibilities of plain" UML (i.e. UML without OCL). Some of the most useful constructs of plain UML for the analysis phase can be seen just as abbreviations for simple OCL invariants (e.g. the construct of association multiplicities), and as soon as more complex constraints appear, OCL is the language of choice. In the design phase (mainly), constraints can be used to precisely specify preand postconditions for operations, and therefore provide a precise contract [13] for the implementor and user of the operations. In development tools, OCL can be used as a simple query and navigation language. At various other places in UML models, object constraints can be used for preciseness, e.g. in guards of statechart diagrams. An example for a full UML-based development method which incorporates OCL usage is Catalysis [10].

2 Recently, at several places experiments have been started to introduce OCL into the practical object-oriented software development process (e.g. [2]). However, all such attempts are facing the problem that there is a definite lack of tool support for OCL. With a few exceptions [5], the tool industry seems to ignore OCL. There are at least two good reasons for this lack of commercial support: First, it has still to be proven that the theoretical potential of OCL leads to practical improvements in real software projects. Second, the needed functionality of OCL support tools is still rather unclear. So there is a need for significant further research before OCL can achieve a status of broad market acceptance and commercial tool support. In this paper, we report on an attempt to enable serious practical experiments with OCL. We describe a software platform for OCL tool support which is designed for openness and modularity, and which is provided as OpenSource. The goal of this platform is to enable practical experiments with various variants of OCL tool support. In this paper, we analyze the requirements for this tool platform and describe the key design decisions. This paper is structured as follows: In section 2, an overview of the full range of possibilities for OCL tool support is given, setting the scene for the analysis of the requirements for the tool platform. Section 3 describes the actual architecture chosen, based on key requirements derived from section 2. Several examples for possible configurations of the tool platform are given, and the current status of the implementation is described. Section 4, finally, summarizes our results and gives ideas for further investigations and projects. 2 Potential for OCL Tool Support The specification of OCL constraints enhancing a UML model causes a significant amount of additional effort, so the crucial question is an economic one: How can we ensure that the additional development effort spent on adding all this detailed information really pays back? From this perspective, several kinds of tools are required: Tools that use the high precision present in OCL-based specifications for a thorough analysis of the UML/OCL model. Tools that help the modeler to ensure that the actual constraints together with other UML diagrams make up a sensible model of the problem domain. Tools that reduce the development, testing and maintenance effort by making use of the information given in OCL. Tools that enable a higher level of trust in the implementation of an OCL specification, and therefore are suitable e.g. for development of safety-critical applications. When discussing tool support for OCL, an important difference between OCL and many other formal specification languages has to be pointed out: OCL constraints are executable in the sense that they can be evaluated mechanically for a given snapshot of a universe of objects. Nevertheless, OCL contains all language

3 constructs of classical first-order logic, like the classical quantifiers forall" and exists", and these quantifiers can be applied in arbitrary nesting. In contrast to general predicate logic, however, OCL always ensures that these constructs are applied only to a finite set, so they can be checked mechanically by enumeration of the set. This property of OCL was less clear in early versions of the UML specification (due to constructs like Integer.allInstances). However, for UML 1.3 several changes have been applied which prohibit the usage of infinite sets, and which even ensure that the evaluation of a constraint on a snapshot always terminates. The executability of OCL is a key feature for effective and simple tool support. Let us briefly discuss the most important kinds of tools supporting OCL. Syntactical analysis The simplest form of support is of course parsing OCL expressions. This form of tool support, however, is able to find only very basic OCL errors. Typechecking After some amendments to the standard, there is now a relatively stable type system for OCL which enables mechanical static typechecking of OCL constraints, much in the same way as typechecking of a typed programming language. However, OCL constraints always make reference to an underlying class model. So an OCL typechecker has to have access to the underlying UML model information. Practical experience shows that this relatively simple tool feature already significantly improves the quality of OCL specifications. Logical consistency checking Since OCL is a logic language, it is possible to write down sets of constraints which are contradictory in themselves. Although it would be very helpful to have a tool checking statically for such inconsistencies, there are many open questions still to be solved before such tools can be built. In general, it is even likely that consistency is undecidable, so one maywant todevelop appropriate criteria for decidable subcases. Moreover, links to recent research prototypes for symbolic constraint solving (e.g. [9]) may lead to interesting results. Dynamic invariant validation From the point of view of the tool builder, an invariant is a Boolean-valued function which can be evaluated on a given snapshot of the system. So it makes sense to provide tools which actually do this evaluation during the evolution of a system. There are several approaches to such a dynamic verification: To integrate assertion tests into standard generation of code (fragments); to generate specific code doing automatic invariant checking, as it is possible for database integrity constraints [6]; or to provide a simulation tool for construction of sample system states [5], [17]. Dynamic pre/postcondition validation In a very similar way to the treatment of invariants, pre- and postconditions can be evaluated at runtime of a system constructed from the specification. In this case, the most appropriate approach seems to be to integrate assertion statements into the generation of code (fragments). Test automation An automated test tool may make use of the OCL pre- and postconditions to achieve an automatic check of test results against the specification. Moreover, it may be possible to derive test cases from an analysis

4 of the functional specification written in OCL. This class of tools may be the most interesting one from an economic point of view, since it helps to save some of the usually high costs for quality assurance. Also maintenance costs can be reduced by such tools since automatic regression testing against the formal specification is enabled, and the semantic consistency of specification and code is enforced. Code verification and synthesis In the long run, OCL may also form a basis for code verification and synthesis. First projects in this direction have been started (e.g. the Karlsruhe KeY project [8]), but this is clearly the most ambitious kind of tool which may be appropriate only for special, safetycritical development projects. From the list above, it becomes obvious that there is a large variety of different tools, all of which rely on a rather small common functionality. This observation is reflected in the toolset architecture described below. 3 Toolset Architecture 3.1 Requirements From an analysis of potential OCL tools, as summarized above, a number of requirements can be derived: Requirement 1: The architecture shall enable interworking with various CASE tools and repositories, regarding the access to model information for typechecking. A simple and flexible interface is required which supports the construction of stand-alone experimental tools (working e.g. on a file representation of the model) as well as a tight integration into CASE tools, for more user-friendly versions of tools. Requirement 2: Syntax analysis and type checking of OCL constraints is the functionality which is common to all tool variants. So a simple interface to this functionality is needed in order to enable integration into various OCL tools. Requirement 3: The tool platform has to provide a simple and easily reusable interface for accessing the actual constraint information (the abstract syntax of the constraints) from different kinds of tools. Ultimately, the solution should be compliant with an OCL metamodel [16], which is still under discussion. Requirement 4: Different tools want different levels of abstraction in accessing the representation of OCL constraints. For example, a tool generating programming language code may want to expand automatically all select operations into the generic iterate mechanism. In contrast, a tool generating SQL integrity conditions may want to keep the select operations since they can be mapped easily and directly to SQL [6].

5 3.2 Key Design Decisions In the following, a modular architecture for an OCL toolset satisfying the above listed requirements is presented. The architecture is designed based on our experience with a prototype implementation [14]. We decided to develop the OCL toolset in Java because of the high popularity of Java as implementation language in the Open Source Community and therewith the availability of useful tools like parser generators and the possibility to integrate the OCL toolset with free CASE tools such as Argo/UML. A further decision was that an OCL toolset should be fully compliant to the UML/OCL specification version 1.3 [15]. Unfortunately, this specification contains some ambiguities and contradictions. These have to be solved in a sensible way, and aspects where the implementation deviates from the specification have to be documented in detail. The first requirement from above means that a toolset should be adaptable to different environments. This adaptability can be achieved if all external interfaces are designed and documented carefully. Dependencies between the OCL toolset and the environment have to be minimized. With the adaptibility comes the extensibility of the design. As discussed in section 2, a large variety of OCL tools is imaginable that the toolset architecture should support. While it is very hard or even impossible to achieve this fully for very sophisticated tools like consistency checkers, the architecture should at least offer the possibility to use the toolset as the first stage of such a tool. As a result, the new tool can benefit from the adaptability of the toolset to different environments, and reuses existing functionality. The reuse of functionality can be achieved by the design of small, configurable modules with clearly defined responsibilities. Information can be passed between modules using a blackboard strategy [3] with each module being implemented as a separate traversal of the abstract syntax tree of the OCL expression. Additional dependencies, such as type information offered by the type checker module, are restricted to Java interfaces to allow different implementations (strategy pattern [7]). 3.3 Modules and the Abstract Syntax Tree According to the above listed requirements and design decisions as well as common compiler implementation principles, the toolset architecture consists of the modules presented below. Figure 1 gives an overview of the basic modules of the OCL toolset. Following classical techniques from compiler design, the essential internal interface of the OCL toolset is the abstract syntax tree. Abstract Syntax Tree Abstract syntax tree classes are created out of a grammar description using the the parser generator SableCC [18]. The parser generator creates abstract classes for productions and a concrete subclass for each of the alternatives of the production. These classes, generated for a straightforward translation of the OCL grammar in [15] into the specification format of SableCC,

6 Fig. 1. Modules of the OCL toolset are used as the primary information exchange data structure between modules. Figure 2 shows a screenshot displaying the abstract syntax tree of the prototype implementation. The current user interface is more targeted towards test and demonstration of the core functionality of the toolset. It is easy to replace this user interface by other interfaces, which are for instance more integrated with other UML tools. The decision to use an abstract syntax tree as internal storage form of the OCL toolset was taken for very pragmatic reasons. The SableCC system provides quite a number of helpful mechanisms to deal with abstract syntax trees effectively, which could be reused. Moreover, in the current situation, the evolving OCL metamodel [16] is not yet an alternative since it is not fully stabilized (and will probably not become stable before UML 2.0). The current decision allows a very loose coupling between the OCL toolset and its environment and is based on current standards. As soon as the metamodel is stable, it will be easily possible to introduce an additional layer of abstraction on top of the syntax tree, which will be based on an OCL metamodel. In fact, a metamodel view was already used in some of the typechecking algorithms (see below). Parser The parser transforms the input OCL expression into an abstract syntax tree. Of course it is straightforward to use a SableCC-generated parser for this task, but it can be fulfilled by an arbitrary parser that creates the appropriate instances of the SableCC-generated abstract syntax tree classes. Semantical Analysis The abstract syntax tree classes can be seen as a representation of a static UML metamodel 1. By formulating invariants that constrain this model, consistency rules (well-formedness rules) on the abstract syntax tree 1 This metamodel is not the one proposed in [16], but the UML model corresponding to the classes generated by SableCC.

7 Fig. 2. User interface of the OCL toolset prototype can be defined. The Java code generator of the OCL toolset can be used to automatically transform these constraints into Java code which can then be used as a part of semantical analysis. In fact, part of the typechecking in the prototype was bootstrapped" already this way. Type checking is implemented as a module that, in addition to checking semantical correctness with reference to the OCL type system, offers type information about syntax tree nodes and variables towards other modules. To minimize inter-module dependencies, this information is made available through a clean Java interface. It is important to note that OCL type checking is not possible without information about the UML model the OCL constraint is part of. Such information is not available within the OCL toolset, but has to be extracted from the toolset's environment. An external interface for this purpose is described in subsection 3.4. Normalisation In order to be able to support a variety of tools, it is desirable to avoid that every tool has to implement the execution of any OCL expression completely. This can be achieved by defining a normal form of OCL terms, such that all terms can be mapped into a simpler subset of the OCL language. Such a normal form could for example disallow multiple iterators for the collection property forall, since they can be replaced by nested iteration. As it was mentioned in requirement 4 above, different normal forms are preferable for different purposes: For consistency checking it might be helpful to normalise collection properties like forall and exists to iterate, but a

8 Java code generator might produce less efficient code after this modification. Customized normalisation is made possible in our tool architecture by defining and implementing small normalisation steps, like remove multiple iterators" or expand shorthand for collect". The implementors of OCL tools based on our platform are free to combine these steps as desired, or even to add further normalisation steps. While the normalisation module does not define an additional internal interface, other modules depend on properties of the abstract syntax tree achieved by normalisation. These dependencies can be made explicit by managing a list of asserted invariants for the syntax tree. Normalisation steps can add invariants to this list, and modules dependent on certain invariants can assure that these have been asserted before. Code Generation Code generator modules transform the normalised syntax tree into a target language. How this is done is to a large extent dependent on the target language. For the implementation of a Java code generator, a combination of a class library and a comparatively simple syntax-directed translation has proven to be sufficient. The class library offers Java-representations for the predefined OCL types, and the code generator can make straightforward translations of OCL property accesses into Java method calls for most cases. Fig. 3. Model information source interfaces 3.4 Interfaces of Tool Modules to the Environment An OCL toolset needs at least two interfaces for communication with its environment, as stated above in requirements 1 and 2. The first interface allows the environment to pass OCL expressions into the toolset. Constraints are here represented as simple String objects.

9 Fig. 4. Communication between type checker and model information source Fig. 5. Model for example constraints

10 The second external interface is used by the type checker of the toolset to access model information. Since OCL expressions are dependent only on a small part of the UML meta model (classifiers, behavioural and static features, associations, and states), the necessary queries can be restricted to the small and elegant interfaces ModelFacade and Any shown in figure 3. These have to be implemented for a toolset environment. Figure 4 shows how the type checker and implementations of these interfaces cooperate to examine the following constraint: context Person inv: managedcompanies->forall(employees->includes(self)) All example constraints refer to the model in figure 5. Several experimental implementations of the ModelFacade interface have been realised already. For instance, there is an implementation which reads the model information out of a file in the XML-based UML exchange format XMI (compatible with the XMI export facility of Rational Rose), and an implementation which takes the model information directly from the repository of the OpenSource CASE tool Argo/UML. Another implementation extracts model information from Java classes that are enriched with Javadoc comments which show the element type of collections. Additional external interfaces may be added by other modules. For example, for a code generator it makes sense to offer an interface where produced code can be queried. Such an interface should not only make the generated code itself available, but also offer information such as the constrained class and operation or, for procedural target languages, the variable that holds the result of the evaluation. 3.5 Java Assertion Generation As a first complete configuration of the modules of the described toolset, a compiler has been realised which translates OCL constraints into Java assertion code [14]. According to the classification given in section 2, this OCL tool has the functionalities of dynamic invariant validation and dynamic pre/postcondition validation. It can also be used for test automatisation. The approach to generate code which is executed at runtime as part of an actual implementation of the UML model is less straightforward that e.g. an OCL interpreter and model animator [5]. However, we believe that for the application of OCL in larger projects, the compilation into assertions is much more important, whereas the interpretative approach is more suited to education in OCL. The prototype compiler uses the XMI-based implementation of the Model- Facade interface. Therefore it can be used to generate Java assertion code out of two files: a text file containing OCL constraints and a UML/XMI file (containing the class diagram), which is created by export from standard UML CASE tools. Internally to the compiler, the normalisation module is used to transform the input constraint into a sublanguage of OCL that avoids the use of multiple iterators, iterating properties without declarator, multiple use of the same variable

11 name, and use of the default navigation context 2. Figure 6 shows a normalisation example. input expression context Company inv: employees->forall(e1, e2 e1 <> e2 implies e1.name <> e2.name) normalised expression context Company inv tudoclinv0: let tudocllet0 : Set(Person) = self.employees in tudocllet0 -> forall ( e1 : Person tudocllet0 -> forall ( e2 : Person e1 <> e2 implies e1.name <> e2.name ) ) Fig. 6. Example for normalisation The Java code generator module then follows syntax-driven rules to produce Java code, a sample of which isshown in figure 7. The classes used in this code, like OclAnyImpl or OclSet, are defined in a class library, which defines among other things implementations for the standard collection data types of OCL. As usual with compilers, the generated code is not meant for human readers but for execution by machine. It uses a number of auxiliary variables to break down the code in relatively small pieces (a standard compiler construction technique). After executing this code, the result variable (tudoclnode8) contains a value which indicates whether the examined object fulfills the constraint. In order to access the actual snapshot of the model at runtime, again a simple and elegant Java interface has been defined (using the Factory Method design pattern) that makes it easy to adapt the assertion code to any chosen representation of UML constructs in Java. This feature is particularly important for the representation of associations, where many significantly different design choices exist. In order to make practical use of our prototype OCL compiler, a separate tool is required which takes this code and inserts it as the body of a new method assertocl() into a Java source code file. Figure 8 shows the effect of this tool for the file Company.java from the running example. Using such generated tests, component testing can be greatly simplified. For instance, in the JUnit testing framework [11], assertions are made that usually compare the result of a method call with the desired result. Using the automatic generation of assertions, it is sufficient to just make calls to the methods that are being tested. The validation of the result is automatised based on an OCL post-condition for the method which was formulated during modelling. Figure 9 gives an overview of the interaction of client and compiler modules for Java assertion generation. 2 Not using the default navigation context means that every navigation expression has to begin with a bound name, like self or an iterator name, or a literal.

12 final OclAnyImpl tudoclnode0=ocl.tooclanyimpl( Ocl.getFor(this) ); final OclSet tudoclnode1= Ocl.toOclSet(tudOclNode0.getFeature("employees")); final OclIterator tudocliter0=tudoclnode1.getiterator(); final OclBooleanEvaluatable tudocleval0=new OclBooleanEvaluatable() public OclBoolean evaluate() final OclIterator tudocliter1=tudoclnode1.getiterator(); final OclBooleanEvaluatable tudocleval1=new OclBooleanEvaluatable() public OclBoolean evaluate() final OclBoolean tudoclnode2= Ocl.toOclAnyImpl(tudOclIter0.getValue()). isnotequalto(ocl.tooclanyimpl(tudocliter1.getvalue())); final OclString tudoclnode3= Ocl.toOclString(Ocl.toOclAnyImpl(tudOclIter0.getValue()). getfeature("name")); final OclString tudoclnode4= Ocl.toOclString(Ocl.toOclAnyImpl(tudOclIter1.getValue()). getfeature("name")); final OclBoolean tudoclnode5= tudoclnode3.isnotequalto(tudoclnode4); final OclBoolean tudoclnode6=tudoclnode2.implies(tudoclnode5); return tudoclnode6; } }; final OclBoolean tudoclnode7= tudoclnode1.forall(tudocliter1, tudocleval1); return tudoclnode7; } }; final OclBoolean tudoclnode8=tudoclnode1.forall(tudocliter0,tudocleval0); Fig. 7. Generated Java code for the example of figure 6

13 import tudresden.ocl.lib.*; import java.util.*; public class Company public int numberofemployees; protected Person manager; protected Vector employees; public void assertocl() tudoclassert0(); } private void tudoclassert0() // generated Java code is inserted here } } if (! tudoclnode8.istrue() ) throw new RuntimeException("constraint violated"); } Fig. 8. Java class with assert method (generated code is omitted) 3.6 SQL Integrity Constraint Generation Another configuration of the modules of the presented OCL toolset architecture is currently under development, which aims towards an integration with database schema generation tools. The intention is to automatically generate SQL integrity constraints [12] as part of a relational database schema. The integrity constraints are derived from OCL expressions that are specified in form of business rules on UML models. Basic mappings from OCL invariants to SQL constraints (create assertion et al.) are given in [6]. For this purpose, the parser and type checker can be reused without change. However, SQL as declarative language requires in contrast to Java other properties of the abstract syntax tree. For example, it makes no sense to normalise the above given example (see figure 6) in the same way as presented above. In this case, it would be better to normalise the OCL expression into an abstract syntax tree representing the equivalent OCL constraint: context Company inv: employees->isunique(name) This expression can be easily transformed into a SQL unique key constraint. Therefore, specific normalisation steps have to be developed and added to the normalisation module. A further development step is then the implementation of the code generation interface for the generation of SQL statements. Because of the large number of relational database system vendors that offer different

14 Fig. 9. Inter-module communication for Java code generation

15 implementations of the SQL standard, a flexible approach for code generation is needed. One way toachieve this is the separation of the SQL code generator from the mapping rules by their description in XML. The structure of such a document is predefined by a document type definition (DTD) and can be seen as a catalog that contains SQL code templates related to the grammar rules of the OCL specification. Using this approach, the generated SQL code is to a large extent independent of the compiled code and can easily be adapted to different SQL dialects using XML-Editors. The current OCL prototype toolset supports both SQL-92 [12] and Oracle/SQL code generation. Although this development is not yet completed, the design of it already gives some proof for the adequateness of the chosen modular structure of our OCL toolset. 4 Summary and Outlook The purpose of this paper was not just to describe a particular implementation of an OCL tool. Instead, a rather general discussion of the potential tool support for OCL has been given, and the described design contains a number of ideas which may be transferable also to other tool environments. Moreover, the described tool platform may be interesting for a wide audience, since the full source code is freely available under GNU Library General Public License [14]. The current status of realisation comprises a complete and stable implementation of all the modules which were mentioned in figure 1. The compiler from OCL constraints to Java assertions is available and thoroughly tested. The compiler from OCL to SQL integrity constraints is currently under development. There are already several other (academic) projects which have decided to take the tool platform described here as the basis for their development of OCL tools. The design of the toolset is oriented towards an easy integration into all kinds of other (Java-based) environments. It was an encouraging experience regarding the toolset design that a first prototype of the integration into the OpenSource UML tool Argo/UML was produced within just a few hours of development time (as could be observed live" by the participants of an OCL workshop taking place in Canterbury/UK in March 2000). The core parts of our OCL toolset will be fully integrated into future releases of Argo/UML. Moreover, experiments for integration with other Java-based CASE tools, e.g. Together, are going on in cooperation with other research institutions. Further work from our side will concentrate on additional modules for the toolset which enable practical experimentation with fully automatic tool support for OCL. Among the future plans is to develop an OCL interpreter based on our toolset and to connect it with a CASE tool in order to automatically check meta-level OCL constraints on UML models. Such a tool may provide significant help in stabilizing the formal OCL parts of the current OMG standard for UML. Another goal for the near future is to provide adequate tool support for automatic testing based on OCL, and to carry out pilot studies for the use of such tools in small but realistic development projects.

16 From the viewpoint of tool developers, we can summarize that effective support for the OCL part of UML is possible, and that the language is in principle well designed to achieve a high level of automatisation within such tools. Acknowledgment: The authors would like to thank Ralf Wiebicke and Sten Loecher for their contributions to the prototype implementation. References 1. Argo/UML Page, 2. Baar, Th.: Experiences with the UML/OCL-Approach to Precise Software Modeling: A Report from Practice, Unpublished report 2000, see 3. Buschmann, F. et al.: Pattern-Oriented Software Architecture - A System of Patterns. John Wiley and Sons Ltd, Chichester, UK, Booch, G., Rumbaugh, J., Jacobson, I.: The Unified Modeling Language User Guide. Addison-Wesley, BoldSoft, Object Constraint Language Support Information, 6. Demuth, B., Hussmann, H.: Using OCL Constraints for Relational Database Design. in: UML'99 The Unified Modeling Language, Second Int. Conference Fort Collins, CO, USA, October 1999, Springer, Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns. Addison-Wesley, Haehnle, R., Menzel, W., Schmitt, P.H. KeY - Integrated Deductive Software Design, see 9. Jackson, D. et al. (MIT Software Design Group): Alcoa D'Souza, D.F., Wills, A.C.: Objects, Components, and Frameworks with UML - The Catalysis Approach, Addison-Wesley JUnit, Melton, J., Simon, A.: Understanding the New SQL: A Complete Guide. Morgan Kaufmann, Meyer, N.: Applying Design by Contract", IEEE Computer, 25(10), Oktober 1992, pp OCL Page, Dresden University of Technology, OMG UML v. 1.3 specification, Richters, M., Gogolla, M.: A Metamodel for the UML Object Constraint Language OCL. in: UML'99 The Unified Modeling Language, Second Int. Conference Fort Collins, CO, USA, October 1999, Springer, Richters, M., Gogolla, M.: Validating UML Models and OCL Constraints. in: UML2000 The Unified Modeling Language, contained in this proceedings, Springer, SableCC Homepage, Warmer, J., Kleppe, A.: The Object Constraint Language. Precise Modeling with UML. Addison-Wesley, 1999

Modular architecture for a toolset supporting OCL

Modular architecture for a toolset supporting OCL Science of Computer Programming 44 (2002) 51 69 www.elsevier.com/locate/scico Modular architecture for a toolset supporting OCL Heinrich Hussmann, Birgit Demuth, Frank Finger Department of Computer Science,

More information

A Pratical Application of the Object Constraint Language OCL

A Pratical Application of the Object Constraint Language OCL A Pratical Application of the Object Constraint Language OCL Kjetil Måge Agder University College E-mail: kmage01@siving.hia.no Abstract. The Unified Modeling Language, UML, has for several years been

More information

A Metamodel-Based OCL-Compiler for UML and MOF

A Metamodel-Based OCL-Compiler for UML and MOF Electronic Notes in Theoretical Computer Science 102 (2004) 43 61 www.elsevier.com/locate/entcs A Metamodel-Based OCL-Compiler for UML and MOF Sten Loecher, Stefan Ocke 1,2 Department of Computer Science

More information

Spemmet - A Tool for Modeling Software Processes with SPEM

Spemmet - A Tool for Modeling Software Processes with SPEM Spemmet - A Tool for Modeling Software Processes with SPEM Tuomas Mäkilä tuomas.makila@it.utu.fi Antero Järvi antero.jarvi@it.utu.fi Abstract: The software development process has many unique attributes

More information

First Steps Towards Conceptual Schema Testing

First Steps Towards Conceptual Schema Testing First Steps Towards Conceptual Schema Testing Albert Tort and Antoni Olivé Universitat Politècnica de Catalunya {atort,olive}@lsi.upc.edu Abstract. Like any software artifact, conceptual schemas of information

More information

OCL Support in MOF Repositories

OCL Support in MOF Repositories OCL Support in MOF Repositories Joachim Hoessler, Michael Soden Department of Computer Science Technical University Berlin hoessler@cs.tu-berlin.de, soden@cs.tu-berlin.de Abstract From metamodels that

More information

Computation Independent Model (CIM): Platform Independent Model (PIM): Platform Specific Model (PSM): Implementation Specific Model (ISM):

Computation Independent Model (CIM): Platform Independent Model (PIM): Platform Specific Model (PSM): Implementation Specific Model (ISM): viii Preface The software industry has evolved to tackle new approaches aligned with the Internet, object-orientation, distributed components and new platforms. However, the majority of the large information

More information

4 CoffeeStrainer Virtues and Limitations

4 CoffeeStrainer Virtues and Limitations In this chapter, we explain CoffeeStrainer s virtues and limitations and the design decisions that led to them. To illustrate the points we want to make, we contrast CoffeeStrainer with a hypothetical,

More information

Pattern-Based Architectural Design Process Model

Pattern-Based Architectural Design Process Model Pattern-Based Architectural Design Process Model N. Lévy, F. Losavio Abstract: The identification of quality requirements is crucial to develop modern software systems, especially when their underlying

More information

Automation of Semantic Web based Digital Library using Unified Modeling Language Minal Bhise 1 1

Automation of Semantic Web based Digital Library using Unified Modeling Language Minal Bhise 1 1 Automation of Semantic Web based Digital Library using Unified Modeling Language Minal Bhise 1 1 Dhirubhai Ambani Institute for Information and Communication Technology, Gandhinagar, Gujarat, India Email:

More information

Agenda. More on the Unified Modeling Language. UML diagram types. Packages

Agenda. More on the Unified Modeling Language. UML diagram types. Packages Agenda More on the Unified Modeling Language Perdita Stevens, University of Edinburgh July 2010 And the rest... deployment diagrams, component diagrams, object diagrams, timing diagrams, etc. OCL and alternatives

More information

OCL for the Specification of Model Transformation Contracts

OCL for the Specification of Model Transformation Contracts OCL for the Specification of Model Transformation Contracts Eric Cariou, Raphaël Marvie, Lionel Seinturier, and Laurence Duchien LIFL - Université des Sciences et Technologies de Lille UMR CNRS 8022 -

More information

Formal Specification of Software Systems

Formal Specification of Software Systems Formal Specification of Software Systems Lecture Notes Winter Term 2001 / 2002 Heinrich Hußmann Technische Universität Dresden Formal Specification of Software Systems Summary: Construction of large software

More information

UML is still inconsistent!

UML is still inconsistent! Department of Computer Science Institute for Software and Multimedia Engineering, Software Technology Group UML is still inconsistent! How to improve OCL Constraints in the UML 2.3 Superstructure Claas

More information

SCENTOR: Scenario-Based Testing of E-Business Applications

SCENTOR: Scenario-Based Testing of E-Business Applications SCENTOR: Scenario-Based Testing of E-Business Applications Jeremiah Wittevrongel, Frank Maurer The University of Calgary jeremiah@cpsc.ucalgary.ca, maurer@cpsc.ucalgary.ca Abstract E-business software

More information

Towards a Java Framework for Knowledge Representation and Inference

Towards a Java Framework for Knowledge Representation and Inference Towards a Java Framework for Knowledge Representation and Inference Adrian GIURCA University of Craiova, Faculty of Mathematics and Computer Science Email: giurca@inf.ucv.ro Abstract. The Knowledge Representation

More information

Object-Oriented Theories for Model Driven Architecture

Object-Oriented Theories for Model Driven Architecture Object-Oriented Theories for Model Driven Architecture Tony Clark 1, Andy Evans 2, Robert France 3 1 King s College London, UK, anclark@dcs.kcl.ac.uk, 2 University of York, UK, andye@cs.york.ac.uk, 3 University

More information

Cover Page. The handle holds various files of this Leiden University dissertation

Cover Page. The handle   holds various files of this Leiden University dissertation Cover Page The handle http://hdl.handle.net/1887/22891 holds various files of this Leiden University dissertation Author: Gouw, Stijn de Title: Combining monitoring with run-time assertion checking Issue

More information

Compositional Model Based Software Development

Compositional Model Based Software Development Compositional Model Based Software Development Prof. Dr. Bernhard Rumpe http://www.se-rwth.de/ Seite 2 Our Working Groups and Topics Automotive / Robotics Autonomous driving Functional architecture Variability

More information

WHY WE NEED AN XML STANDARD FOR REPRESENTING BUSINESS RULES. Introduction. Production rules. Christian de Sainte Marie ILOG

WHY WE NEED AN XML STANDARD FOR REPRESENTING BUSINESS RULES. Introduction. Production rules. Christian de Sainte Marie ILOG WHY WE NEED AN XML STANDARD FOR REPRESENTING BUSINESS RULES Christian de Sainte Marie ILOG Introduction We are interested in the topic of communicating policy decisions to other parties, and, more generally,

More information

Seminar: Specification and Verification of Object-oriented Software. The KeY Tool

Seminar: Specification and Verification of Object-oriented Software. The KeY Tool The KeY Tool developed by: W. Ahrendt, T. Baar, B. Beckert, R. Bubel, M. Giese, R. Hähnle, W. Menzel, W. Mostowski, A. Roth, S. Schlager, P.H. Schmitt, and others Information Security, ETH Zürich, Switzerland

More information

Scenario-based Synthesis of Annotated Class Diagrams in UML

Scenario-based Synthesis of Annotated Class Diagrams in UML Scenario-based Synthesis of Annotated Class Diagrams in UML Petri Selonen and Tarja Systä Tampere University of Technology, Software Systems Laboratory, P.O.Box 553, FIN-33101 Tampere, Finland {pselonen,tsysta}@cs.tut.fi

More information

USING ABSTRACT STATE MACHINES TO SUPPORT UML MODEL INSTANTIATION CHECKING

USING ABSTRACT STATE MACHINES TO SUPPORT UML MODEL INSTANTIATION CHECKING USING ABSTRACT STATE MACHINES TO SUPPORT UML MODEL INSTANTIATION CHECKING Wuwei Shen Department of Computer Science Western Michigan University Kalamazoo, MI 49008, USA email: wwshen@cs.wmich.edu Weng

More information

CIS 771: Software Specifications

CIS 771: Software Specifications CIS 771: Software Specifications Lecture 11: Introduction to OCL & USE Copyright 2001-2002, Matt Dwyer, John Hatcliff, and Rod Howell. The syllabus and all lectures for this course are copyrighted materials

More information

TIME-BASED CONSTRAINTS IN THE OBJECT CONSTRAINT LANGUAGE OCL

TIME-BASED CONSTRAINTS IN THE OBJECT CONSTRAINT LANGUAGE OCL TIME-BASED CONSTRAINTS IN THE OBJECT CONSTRAINT LANGUAGE OCL Ali Hamie, John Howse School of Computing, Mathematical and Information Sciences, University of Brighton, Brighton, UK. {a.a.hamie@brighton.ac.uk,

More information

Outline. A little history. Outline. The Unified Modeling Language Opportunities and Challenges for Formal Methods

Outline. A little history. Outline. The Unified Modeling Language Opportunities and Challenges for Formal Methods Outline The Unified Modeling Language Opportunities and Challenges for Formal Methods An update on UML Language definition Tools A precise OO meta-modeling facility - MMF Stuart Kent University of Kent

More information

Metaprogrammable Toolkit for Model-Integrated Computing

Metaprogrammable Toolkit for Model-Integrated Computing Metaprogrammable Toolkit for Model-Integrated Computing Akos Ledeczi, Miklos Maroti, Gabor Karsai and Greg Nordstrom Institute for Software Integrated Systems Vanderbilt University Abstract Model-Integrated

More information

Report on the Aachen OCL Meeting

Report on the Aachen OCL Meeting Report on the Aachen OCL Meeting Achim D. Brucker, Dan Chiorean, Tony Clark, Birgit Demuth, Martin Gogolla, Dimitri Plotnikov, Bernhard Rumpe, Edward D. Willink, and Burkhart Wolff Abstract. As a continuation

More information

Process-Integrated Refinement Patterns in UML

Process-Integrated Refinement Patterns in UML Process-Integrated Refinement Patterns in UML Timo Kehrer Dept. of Computer Science and Media Stuttgart Media University (HdM) Nobelstr. 10, D-70569 Stuttgart, Germany Tel: +49 711 8923 2619 Fax: +49 711

More information

Enforcing Modeling Guidelines in an ORDBMS-based UML-Repository

Enforcing Modeling Guidelines in an ORDBMS-based UML-Repository Enforcing Modeling Guidelines in an ORDBMS-based UML-Repository Abstract N.Ritter, H.-P. Steiert University of Kaiserslautern, Dept. of Computer Science P. O. Box 3049, D-67663 Kaiserslautern, Germany

More information

Index. business modeling syntax 181 business process modeling 57 business rule 40

Index. business modeling syntax 181 business process modeling 57 business rule 40 OCL.book Page 203 Tuesday, July 22, 2003 9:48 PM Index Symbols OclAny, of 167 = OclAny, of 167 @pre 34, 86, 155 ^ 34, 156 ^^ 157 A abstract syntax 93 accumulator 153 action in statechart 56 activity

More information

Combining UML and Z in a Software Process

Combining UML and Z in a Software Process Combining UML and Z in a Software Process Ebba Thora Hvannberg University of Iceland, Reykjavik, Iceland, ebba@hi.is Abstract: Observing students writing specification in UML and Z has motivated the work

More information

Ingegneria del Software Corso di Laurea in Informatica per il Management. Introduction to UML

Ingegneria del Software Corso di Laurea in Informatica per il Management. Introduction to UML Ingegneria del Software Corso di Laurea in Informatica per il Management Introduction to UML Davide Rossi Dipartimento di Informatica Università di Bologna Modeling A model is an (abstract) representation

More information

Design Patterns for Description-Driven Systems

Design Patterns for Description-Driven Systems Design Patterns for Description-Driven Systems N. Baker 3, A. Bazan 1, G. Chevenier 2, Z. Kovacs 3, T Le Flour 1, J-M Le Goff 4, R. McClatchey 3 & S Murray 1 1 LAPP, IN2P3, Annecy-le-Vieux, France 2 HEP

More information

Coral: A Metamodel Kernel for Transformation Engines

Coral: A Metamodel Kernel for Transformation Engines Coral: A Metamodel Kernel for Transformation Engines Marcus Alanen and Ivan Porres TUCS Turku Centre for Computer Science Department of Computer Science, Åbo Akademi University Lemminkäisenkatu 14, FIN-20520

More information

Static analysis and testing of executable DSL specification

Static analysis and testing of executable DSL specification Static analysis and testing of executable DSL specification Qinan Lai 1, Andy Carpenter 1 1 School of Computer Science, the University of Manchester, Manchester, UK {laiq,afc}@cs.man.ac.uk Keywords: Abstract:

More information

The Specifications Exchange Service of an RM-ODP Framework

The Specifications Exchange Service of an RM-ODP Framework The Specifications Exchange Service of an RM-ODP Framework X. Blanc (*+), M-P. Gervais(*), J. Le Delliou(+) (*)Laboratoire d'informatique de Paris 6-8 rue du Capitaine Scott F75015 PARIS (+)EDF Research

More information

Canica: An IDE for the Java Modeling Language

Canica: An IDE for the Java Modeling Language Canica: An IDE for the Java Modeling Language Angelica B. Perez, Yoonsik Cheon, and Ann Q. Gates TR #06-36 August 2006 Keywords: Integrated development environment, specification tool, programming tool,

More information

METADATA INTERCHANGE IN SERVICE BASED ARCHITECTURE

METADATA INTERCHANGE IN SERVICE BASED ARCHITECTURE UDC:681.324 Review paper METADATA INTERCHANGE IN SERVICE BASED ARCHITECTURE Alma Butkovi Tomac Nagravision Kudelski group, Cheseaux / Lausanne alma.butkovictomac@nagra.com Dražen Tomac Cambridge Technology

More information

Product Line Annotations with UML-F

Product Line Annotations with UML-F Product Line Annotations with UML-F Wolfgang Pree 1, Marcus Fontoura 2, and Bernhard Rumpe 3 1 Department of Computer Sciences (guest), Univ. of California, Berkeley, pree@eecs.berkeley.edu 2 IBM Almaden

More information

ROLE OF OCL AND ITS SUPPORTING TOOLS IN REQUIREMENT SPECIFICATION

ROLE OF OCL AND ITS SUPPORTING TOOLS IN REQUIREMENT SPECIFICATION ROLE OF OCL AND ITS SUPPORTING TOOLS IN REQUIREMENT SPECIFICATION A thesis submitted in partial fulfillment of the requirements for the award of degree of Master of Engineering in Software Engineering

More information

Evaluating OO-CASE tools: OO research meets practice

Evaluating OO-CASE tools: OO research meets practice Evaluating OO-CASE tools: OO research meets practice Danny Greefhorst, Matthijs Maat, Rob Maijers {greefhorst, maat, maijers}@serc.nl Software Engineering Research Centre - SERC PO Box 424 3500 AK Utrecht

More information

Keywords: Abstract Factory, Singleton, Factory Method, Prototype, Builder, Composite, Flyweight, Decorator.

Keywords: Abstract Factory, Singleton, Factory Method, Prototype, Builder, Composite, Flyweight, Decorator. Comparative Study In Utilization Of Creational And Structural Design Patterns In Solving Design Problems K.Wseem Abrar M.Tech., Student, Dept. of CSE, Amina Institute of Technology, Shamirpet, Hyderabad

More information

Transforming UML Collaborating Statecharts for Verification and Simulation

Transforming UML Collaborating Statecharts for Verification and Simulation Transforming UML Collaborating Statecharts for Verification and Simulation Patrick O. Bobbie, Yiming Ji, and Lusheng Liang School of Computing and Software Engineering Southern Polytechnic State University

More information

Towards Generating Domain-Specific Model Editors with Complex Editing Commands

Towards Generating Domain-Specific Model Editors with Complex Editing Commands Towards Generating Domain-Specific Model Editors with Complex Editing Commands Gabriele Taentzer Technical University of Berlin Germany gabi@cs.tu-berlin.de May 10, 2006 Abstract Domain specific modeling

More information

The Unified Modelling Language. Example Diagrams. Notation vs. Methodology. UML and Meta Modelling

The Unified Modelling Language. Example Diagrams. Notation vs. Methodology. UML and Meta Modelling UML and Meta ling Topics: UML as an example visual notation The UML meta model and the concept of meta modelling Driven Architecture and model engineering The AndroMDA open source project Applying cognitive

More information

Business Activity. predecessor Activity Description. from * successor * to. Performer is performer has attribute.

Business Activity. predecessor Activity Description. from * successor * to. Performer is performer has attribute. Editor Definition Language and Its Implementation Audris Kalnins, Karlis Podnieks, Andris Zarins, Edgars Celms, and Janis Barzdins Institute of Mathematics and Computer Science, University of Latvia Raina

More information

Static Safety Analysis of UML Action Semantics for Critical Systems Development

Static Safety Analysis of UML Action Semantics for Critical Systems Development Static Safety Analysis of UML Action Semantics for Critical Systems Development Zsigmond Pap, Dániel Varró Dept. of Measurement and Information Systems Budapest University of Technology and Economics H-1521

More information

Rich Hilliard 20 February 2011

Rich Hilliard 20 February 2011 Metamodels in 42010 Executive summary: The purpose of this note is to investigate the use of metamodels in IEEE 1471 ISO/IEC 42010. In the present draft, metamodels serve two roles: (1) to describe the

More information

Model Transformation Testing Challenges

Model Transformation Testing Challenges Model Transformation Testing Challenges Benoit Baudry 1, Trung Dinh-Trong 2, Jean-Marie Mottu 1, Devon Simmonds 2, Robert France 2, Sudipto Ghosh 2, Franck Fleurey 1, Yves Le Traon 3 1 IRISA, Campus Beaulieu,

More information

Checking General Safety Criteria on UML Statecharts

Checking General Safety Criteria on UML Statecharts Checking General Safety Criteria on UML Statecharts Zsigmond Pap, István Majzik 1 and András Pataricza Dept. of Measurement and Information Systems Budapest University of Technology and Economics H-1521

More information

1.1 Jadex - Engineering Goal-Oriented Agents

1.1 Jadex - Engineering Goal-Oriented Agents 1.1 Jadex - Engineering Goal-Oriented Agents In previous sections of the book agents have been considered as software artifacts that differ from objects mainly in their capability to autonomously execute

More information

CHAPTER 1. Topic: UML Overview. CHAPTER 1: Topic 1. Topic: UML Overview

CHAPTER 1. Topic: UML Overview. CHAPTER 1: Topic 1. Topic: UML Overview CHAPTER 1 Topic: UML Overview After studying this Chapter, students should be able to: Describe the goals of UML. Analyze the History of UML. Evaluate the use of UML in an area of interest. CHAPTER 1:

More information

USE CASE BASED REQUIREMENTS VERIFICATION

USE CASE BASED REQUIREMENTS VERIFICATION USE CASE BASED REQUIREMENTS VERIFICATION Verifying the consistency between use cases and assertions Stéphane S. Somé, Divya K. Nair School of Information Technology and Engineering (SITE), University of

More information

JOURNAL OF OBJECT TECHNOLOGY Online at Published by ETH Zurich, Chair of Software Engineering. JOT, 2002

JOURNAL OF OBJECT TECHNOLOGY Online at  Published by ETH Zurich, Chair of Software Engineering. JOT, 2002 JOURNAL OF OBJECT TECHNOLOGY Online at www.jot.fm. Published by ETH Zurich, Chair of Software Engineering. JOT, 2002 Vol. 1, No. 2, July-August 2002 Representing Design Patterns and Frameworks in UML Towards

More information

Formal Methods for Java

Formal Methods for Java Formal Methods for Java Lecture 1: Introduction Jochen Hoenicke Software Engineering Albert-Ludwigs-University Freiburg October 26, 2011 Jochen Hoenicke (Software Engineering) Formal Methods for Java October

More information

A System of Patterns for Web Navigation

A System of Patterns for Web Navigation A System of Patterns for Web Navigation Mohammed Abul Khayes Akanda and Daniel M. German Department of Computer Science, University of Victoria, Canada maka@alumni.uvic.ca, dmgerman@uvic.ca Abstract. In

More information

Configuration Provider: A Pattern for Configuring Threaded Applications

Configuration Provider: A Pattern for Configuring Threaded Applications Configuration Provider: A Pattern for Configuring Threaded Applications Klaus Meffert 1 and Ilka Philippow 2 Technical University Ilmenau plop@klaus-meffert.de 1, ilka.philippow@tu-ilmena.de 2 Abstract

More information

BIG MODELS AN ALTERNATIVE APPROACH

BIG MODELS AN ALTERNATIVE APPROACH 2. BIG MODELS AN ALTERNATIVE APPROACH Whitepaper Eclipse Summit 2008 Modeling Symposium Jos Warmer, Ordina (jos.warmer@ordina.nl) Abstract Scaling up modeling within project runs into many practical problems.

More information

Product line annotations with UML-F

Product line annotations with UML-F Product line annotations with UML-F Wolfgang Pree 1), Marcus Fontoura 2), Bernhard Rumpe 3) 1) Department of Computer Sciences, University of California, Berkeley 2) IBM Almaden Research Center, San Jose,

More information

CONSTRAINT SPECIFICATIONS USING PATTERNS IN OCL

CONSTRAINT SPECIFICATIONS USING PATTERNS IN OCL CONSTRAINT SPECIFICATIONS USING PATTERNS IN OCL Ali Hamie. University of Brighton, Brighton, UK a.a.hamie@brighton.ac.uk ABSTRACT Constraint patterns are very useful for specifying OCL constraints on UML

More information

Comparison of the Modeling Languages Alloy and UML

Comparison of the Modeling Languages Alloy and UML Comparison of the Modeling Languages Alloy and UML Yujing He Department of Computer Science Portland State University Portland, Oregon, USA Abstract - Alloy is a new modeling language for software design,

More information

Towards Better Support for Pattern-Oriented Software Development

Towards Better Support for Pattern-Oriented Software Development Towards Better Support for Pattern-Oriented Software Development Dietrich Travkin Software Engineering Research Group, Heinz Nixdorf Institute & Department of Computer Science, University of Paderborn,

More information

Thirty one Problems in the Semantics of UML 1.3 Dynamics

Thirty one Problems in the Semantics of UML 1.3 Dynamics Thirty one Problems in the Semantics of UML 1.3 Dynamics G. Reggio R.J. Wieringa September 14, 1999 1 Introduction In this discussion paper we list a number of problems we found with the current dynamic

More information

The Relationships between Domain Specific and General- Purpose Languages

The Relationships between Domain Specific and General- Purpose Languages The Relationships between Domain Specific and General- Purpose Languages Oded Kramer and Arnon Sturm Department of Information Systems Engineering, Ben-Gurion University of the Negev Beer-Sheva, Israel

More information

Activity Nets: A UML profile for modeling workflow and business processes

Activity Nets: A UML profile for modeling workflow and business processes Activity Nets: A UML profile for modeling workflow and business processes Author: Gregor v. Bochmann, SITE, University of Ottawa (August 27, 2000) 1. Introduction 1.1. Purpose of this document Workflow

More information

MODELLING COMPOSITIONS OF MODULAR EMBEDDED SOFTWARE PRODUCT LINES

MODELLING COMPOSITIONS OF MODULAR EMBEDDED SOFTWARE PRODUCT LINES MODELLING COMPOSITIONS OF MODULAR EMBEDDED SOFTWARE PRODUCT LINES Wolfgang Friess AUDI AG wolfgang.friess@audi.de Julio Sincero University Erlangen-Nuernberg sincero@informatik.uni-erlangen.de Wolfgang

More information

FORMALIZED SOFTWARE DEVELOPMENT IN AN INDUSTRIAL ENVIRONMENT

FORMALIZED SOFTWARE DEVELOPMENT IN AN INDUSTRIAL ENVIRONMENT FORMALIZED SOFTWARE DEVELOPMENT IN AN INDUSTRIAL ENVIRONMENT Otthein Herzog IBM Germany, Dept. 3100 P.O.Box 80 0880 D-7000 STUTTGART, F. R. G. ABSTRACT tn the IBM Boeblingen Laboratory some software was

More information

Chapter 1 Introduction

Chapter 1 Introduction Chapter 1 Introduction We hardly need to point out the importance of business process modelling and of respective automation in this place (see, e.g. [39, 45, 58, 110, 141]). Also the advantages and shortcomings

More information

Model-Level Integration of the OCL Standard Library Using a Pivot Model with Generics Support

Model-Level Integration of the OCL Standard Library Using a Pivot Model with Generics Support Faculty of Computer Science, Institute for Software- and Multimedia-Technology, Chair for Software Technology Matthias Bräuer and Birgit Demuth Model-Level Integration of the Using a Pivot Model with Generics

More information

Specification with OCL

Specification with OCL Specification with OCL Jurriaan Hage Slides adapted from Birgit Demuth, TU Dresden e-mail: jur@cs.uu.nl homepage: http://www.cs.uu.nl/people/jur/ Department of Information and Computing Sciences, Universiteit

More information

Towards Reusable Heterogeneous Data-Centric Disentangled Parts

Towards Reusable Heterogeneous Data-Centric Disentangled Parts Towards Reusable Heterogeneous Data-Centric Disentangled Parts Michael Reinsch and Takuo Watanabe Department of Computer Science, Graduate School of Information Science and Technology, Tokyo Institute

More information

A Framework for Modeling, Building and Maintaining Enterprise Information Systems Software

A Framework for Modeling, Building and Maintaining Enterprise Information Systems Software 2009 XXIII Brazilian Symposium on Software Engineering A Framework for Modeling, Building and Maintaining Enterprise Information Systems Software Alexandre Cláudio de Almeida, Glauber Boff and Juliano

More information

Object-Oriented Software Engineering Practical Software Development using UML and Java

Object-Oriented Software Engineering Practical Software Development using UML and Java Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 5: Modelling with Classes Lecture 5 5.1 What is UML? The Unified Modelling Language is a standard graphical

More information

DESIGN PATTERN - INTERVIEW QUESTIONS

DESIGN PATTERN - INTERVIEW QUESTIONS DESIGN PATTERN - INTERVIEW QUESTIONS http://www.tutorialspoint.com/design_pattern/design_pattern_interview_questions.htm Copyright tutorialspoint.com Dear readers, these Design Pattern Interview Questions

More information

Ensuring UML Models Consistency Using the OCL Environment

Ensuring UML Models Consistency Using the OCL Environment Electronic Notes in Theoretical Computer Science 102 (2004) 99 110 www.elsevier.com/locate/entcs Ensuring UML Models Consistency Using the OCL Environment Dan Chiorean Mihai Paşca Adrian Cârcu Cristian

More information

A Formal V&V Framework for UML Models Based on Model Transformation Techniques

A Formal V&V Framework for UML Models Based on Model Transformation Techniques A Formal V&V Framework for UML Models Based on Model Transformation Techniques Soon-Kyeong Kim and David Carrington Information Technology and Electrical Engineering The University of Queensland, St. Lucia,

More information

UML big picture. Perdita Stevens. School of Informatics University of Edinburgh

UML big picture. Perdita Stevens. School of Informatics University of Edinburgh UML big picture Perdita Stevens School of Informatics University of Edinburgh Plan Whence UML? Parts of UML How it all fits together UML as a language Consistency: what does it mean, do we need it? Defining

More information

Extending OCL to Include Actions

Extending OCL to Include Actions Extending OCL to Include Actions Anneke Kleppe 1, Jos Warmer 2 Klasse Objecten, The Netherlands, www.klasse.nl 1 A.Kleppe@klasse.nl 2 J.Warmer@klasse.nl Abstract. The UML s Object Constraint Language provides

More information

Recovery of Design Pattern from source code

Recovery of Design Pattern from source code Recovery of Design Pattern from source code Amit Kumar Gautam and T.Gayen Software Engineering, IIIT Allahabad tgayen@iiita.ac.in, Ise2008004@iiita.ac.in Abstract. The approach for detecting design pattern

More information

Agile Test-based Modeling

Agile Test-based Modeling Agile Test-based Modeling Bernhard Rumpe Software Systems Engineering TU Braunschweig, Germany www.sse.cs.tu-bs.de Model driven architecture (MDA) concentrates on the use of models during software development.

More information

Design Patterns. Manuel Mastrofini. Systems Engineering and Web Services. University of Rome Tor Vergata June 2011

Design Patterns. Manuel Mastrofini. Systems Engineering and Web Services. University of Rome Tor Vergata June 2011 Design Patterns Lecture 1 Manuel Mastrofini Systems Engineering and Web Services University of Rome Tor Vergata June 2011 Definition A pattern is a reusable solution to a commonly occurring problem within

More information

Science of Computer Programming. Aspect-oriented model-driven skeleton code generation: A graph-based transformation approach

Science of Computer Programming. Aspect-oriented model-driven skeleton code generation: A graph-based transformation approach Science of Computer Programming 75 (2010) 689 725 Contents lists available at ScienceDirect Science of Computer Programming journal homepage: www.elsevier.com/locate/scico Aspect-oriented model-driven

More information

OCL EXCEPTION HANDLING. A Thesis PRAMOD GURUNATH

OCL EXCEPTION HANDLING. A Thesis PRAMOD GURUNATH OCL EXCEPTION HANDLING A Thesis by PRAMOD GURUNATH Submitted to the Office of Graduate Studies of Texas A&M University in partial fulfillment of the requirements for the degree of MASTER OF SCIENCE August

More information

Towards Transformation of Integrity Constraints and Database States

Towards Transformation of Integrity Constraints and Database States Towards Transformation of Integrity Constraints and Database States Fabian Büttner, Hanna Bauerdick, Martin Gogolla Database Group, Computer Science Department University of Bremen, D-28334 Bremen, Germany

More information

Requirements Modeling

Requirements Modeling 250 STORM: Software Tool for the Organization of Requirements Modeling Sergiu Dascalu, Eric Fritzinger, Narayan Debnath, Olusegun Akinwale Abstract-Software Engineering is a field of computer science with

More information

Describing Computer Languages

Describing Computer Languages Markus Scheidgen Describing Computer Languages Meta-languages to describe languages, and meta-tools to automatically create language tools Doctoral Thesis August 10, 2008 Humboldt-Universität zu Berlin

More information

Concurrency Control with Java and Relational Databases

Concurrency Control with Java and Relational Databases Concurrency Control with Java and Relational Databases Sérgio Soares and Paulo Borba Informatics Center Federal University of Pernambuco Recife, PE, Brazil scbs,phmb @cin.ufpe.br Abstract As web based

More information

Design and Prototypical Implementation of a Pivot Model as Exchange Format for Models and Metamodels in a QVT/OCL Development Environment

Design and Prototypical Implementation of a Pivot Model as Exchange Format for Models and Metamodels in a QVT/OCL Development Environment Faculty of Computer Science, Institute for Software- and Multimedia-Technology, Chair for Software Technology Matthias Bräuer Design and Prototypical Implementation of a Pivot Model as Exchange Format

More information

Models versus Ontologies - What's the Difference and where does it Matter?

Models versus Ontologies - What's the Difference and where does it Matter? Models versus Ontologies - What's the Difference and where does it Matter? Colin Atkinson University of Mannheim Presentation for University of Birmingham April 19th 2007 1 Brief History Ontologies originated

More information

Object-oriented Compiler Construction

Object-oriented Compiler Construction 1 Object-oriented Compiler Construction Extended Abstract Axel-Tobias Schreiner, Bernd Kühl University of Osnabrück, Germany {axel,bekuehl}@uos.de, http://www.inf.uos.de/talks/hc2 A compiler takes a program

More information

An Eclipse Plug-in for Model Checking

An Eclipse Plug-in for Model Checking An Eclipse Plug-in for Model Checking Dirk Beyer, Thomas A. Henzinger, Ranjit Jhala Electrical Engineering and Computer Sciences University of California, Berkeley, USA Rupak Majumdar Computer Science

More information

Proposal of a Supporting Method for Diagrams Generation with the Transformation Rules in UML

Proposal of a Supporting Method for Diagrams Generation with the Transformation Rules in UML Proposal of a Supporting Method for Diagrams Generation with the Transformation Rules in UML Tetsuro Katayama Department of Computer Science and Systems Engineering, Faculty of Engineering, Miyazaki University

More information

A Type Graph Model for Java Programs

A Type Graph Model for Java Programs A Type Graph Model for Java Programs Arend Rensink and Eduardo Zambon Formal Methods and Tools Group, EWI-INF, University of Twente PO Box 217, 7500 AE, Enschede, The Netherlands {rensink,zambon}@cs.utwente.nl

More information

administrivia today UML start design patterns Tuesday, September 28, 2010

administrivia today UML start design patterns Tuesday, September 28, 2010 administrivia Assignment 2? promise to get past assignment 1 back soon exam on monday review slides are posted your responsibility to review covers through last week today UML start design patterns 1 Unified

More information

Introduction to Modeling

Introduction to Modeling Introduction to Modeling Software Architecture Lecture 9 Copyright Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Objectives Concepts What is modeling? How do we choose

More information

! Use of formal notations. ! in software system descriptions. ! for a broad range of effects. ! and varying levels of use. !

! Use of formal notations. ! in software system descriptions. ! for a broad range of effects. ! and varying levels of use. ! What Are Formal Methods? David S. Rosenblum ICS 221 Winter 2001! Use of formal notations! first-order logic, state machines, etc.! in software system descriptions! system models, constraints, specifications,

More information

Semantic Web Domain Knowledge Representation Using Software Engineering Modeling Technique

Semantic Web Domain Knowledge Representation Using Software Engineering Modeling Technique Semantic Web Domain Knowledge Representation Using Software Engineering Modeling Technique Minal Bhise DAIICT, Gandhinagar, Gujarat, India 382007 minal_bhise@daiict.ac.in Abstract. The semantic web offers

More information

CISC836: Models in Software Development: Methods, Techniques and Tools

CISC836: Models in Software Development: Methods, Techniques and Tools CISC836: Models in Software Development: Methods, Techniques and Tools Topic 4: Code Generation with EMF Meta modeling Languages for meta models: Ecore Using EMF and Ecoreto define a data model Using EMF

More information

CIS 890: Safety Critical Systems

CIS 890: Safety Critical Systems CIS 890: Safety Critical Systems Lecture: SPARK -- Analysis Tools Copyright 2007, John Hatcliff. The syllabus and all lectures for this course are copyrighted materials and may not be used in other course

More information