![Page 1: 1 OCL Tools Supervised by Prof. Daniel Amyot May Khalil Nadia Spido Submitted to Professor Daniel Amyot in partial fulfillment of the requirements for](https://reader030.vdocuments.site/reader030/viewer/2022032414/56649efa5503460f94c0c3ba/html5/thumbnails/1.jpg)
1
OCL Tools
Supervised by Prof. Daniel Amyot
May Khalil
Nadia Spido
Submitted to Professor Daniel Amyot in partial fulfillment of the requirements for the course CSI 5112
![Page 2: 1 OCL Tools Supervised by Prof. Daniel Amyot May Khalil Nadia Spido Submitted to Professor Daniel Amyot in partial fulfillment of the requirements for](https://reader030.vdocuments.site/reader030/viewer/2022032414/56649efa5503460f94c0c3ba/html5/thumbnails/2.jpg)
2
Outline Project context and goals Methodology Candidate tools
Previously analyzed Dresden OCLE Octopus
Evaluation criteria Experiments Summary and recommendation
![Page 3: 1 OCL Tools Supervised by Prof. Daniel Amyot May Khalil Nadia Spido Submitted to Professor Daniel Amyot in partial fulfillment of the requirements for](https://reader030.vdocuments.site/reader030/viewer/2022032414/56649efa5503460f94c0c3ba/html5/thumbnails/3.jpg)
3
Project Context
Development of Academic Control System
Maple University Software Development Research Group
Support from private company
Interest in OCL: exploration establishment in software development
![Page 4: 1 OCL Tools Supervised by Prof. Daniel Amyot May Khalil Nadia Spido Submitted to Professor Daniel Amyot in partial fulfillment of the requirements for](https://reader030.vdocuments.site/reader030/viewer/2022032414/56649efa5503460f94c0c3ba/html5/thumbnails/4.jpg)
4
Project Goals
Moving towards MDA approach, where the models play a central role in presenting abstractions of real-world systems
therefore, we focus on the use of high precision OCL-based UML models, to help: designers make up a coherent model of the problem domain, developers making use of the implementation of an OCL specification,
which will reduce the development, testing and maintenance effort
Support to free software and open source development
![Page 5: 1 OCL Tools Supervised by Prof. Daniel Amyot May Khalil Nadia Spido Submitted to Professor Daniel Amyot in partial fulfillment of the requirements for](https://reader030.vdocuments.site/reader030/viewer/2022032414/56649efa5503460f94c0c3ba/html5/thumbnails/5.jpg)
5
Methodology
Module “Courses Registration” chosen
![Page 6: 1 OCL Tools Supervised by Prof. Daniel Amyot May Khalil Nadia Spido Submitted to Professor Daniel Amyot in partial fulfillment of the requirements for](https://reader030.vdocuments.site/reader030/viewer/2022032414/56649efa5503460f94c0c3ba/html5/thumbnails/6.jpg)
6
Methodology - Courses Registration simple design
![Page 7: 1 OCL Tools Supervised by Prof. Daniel Amyot May Khalil Nadia Spido Submitted to Professor Daniel Amyot in partial fulfillment of the requirements for](https://reader030.vdocuments.site/reader030/viewer/2022032414/56649efa5503460f94c0c3ba/html5/thumbnails/7.jpg)
7
Methodology – Sample Constraints
A course can not be a direct pre-requisite of itself
The attribute name for courses must be unique
In order to register in a course in a different level from the student's level, a student must have an explicit authorizationcontext Studentinv diffLevel:
regs->select(regcourse_offered.course.level <> self.level)->forAll((auths ->select(authcourse_offered.course.id = regcourse_offered.course.id))->notEmpty)
A student can not be registered for a course if he or she has already passed that course
![Page 8: 1 OCL Tools Supervised by Prof. Daniel Amyot May Khalil Nadia Spido Submitted to Professor Daniel Amyot in partial fulfillment of the requirements for](https://reader030.vdocuments.site/reader030/viewer/2022032414/56649efa5503460f94c0c3ba/html5/thumbnails/8.jpg)
8
Methodology - Evaluation
Similar experiments applied to both tools Assign evaluation marks :
for low level criteria (L) the weight is 1 for high level criteria (H) the weight is 2
Mark Description
0 Feature is not present
1 Feature presents minimum resources
2 Feature is fully implemented
3 Feature offers extra advantages
![Page 9: 1 OCL Tools Supervised by Prof. Daniel Amyot May Khalil Nadia Spido Submitted to Professor Daniel Amyot in partial fulfillment of the requirements for](https://reader030.vdocuments.site/reader030/viewer/2022032414/56649efa5503460f94c0c3ba/html5/thumbnails/9.jpg)
9
Previously analyzed tool
Dresden OCL Toolkit
- Initially good candidate tool- Did not work:
1) Standalone version does not load models
2) Eclipse Plugin needs generation and did compile, no stable version
- Documentation is poor
![Page 10: 1 OCL Tools Supervised by Prof. Daniel Amyot May Khalil Nadia Spido Submitted to Professor Daniel Amyot in partial fulfillment of the requirements for](https://reader030.vdocuments.site/reader030/viewer/2022032414/56649efa5503460f94c0c3ba/html5/thumbnails/10.jpg)
10
Candidate Tools
1. OCL Environment
2. OCL Tool for Precise
UML Specifications
![Page 11: 1 OCL Tools Supervised by Prof. Daniel Amyot May Khalil Nadia Spido Submitted to Professor Daniel Amyot in partial fulfillment of the requirements for](https://reader030.vdocuments.site/reader030/viewer/2022032414/56649efa5503460f94c0c3ba/html5/thumbnails/11.jpg)
11
OCLE
Started in the 90’s
LCI team from BABEŞ-BOLYAI UNIVERSITY - CLUJ-NAPOCA, ROMANIA
UML CASE Tool for both static and dynamic OCL Checking
![Page 12: 1 OCL Tools Supervised by Prof. Daniel Amyot May Khalil Nadia Spido Submitted to Professor Daniel Amyot in partial fulfillment of the requirements for](https://reader030.vdocuments.site/reader030/viewer/2022032414/56649efa5503460f94c0c3ba/html5/thumbnails/12.jpg)
12
Octopus
Started in the 90’s
Jos Warmer and Anneke Kleppe - authors of famous UML and OCL books
OCL Tool for static check OCL expressions
![Page 13: 1 OCL Tools Supervised by Prof. Daniel Amyot May Khalil Nadia Spido Submitted to Professor Daniel Amyot in partial fulfillment of the requirements for](https://reader030.vdocuments.site/reader030/viewer/2022032414/56649efa5503460f94c0c3ba/html5/thumbnails/13.jpg)
13
Evaluation Criteria
Integration Number of integration with case tools and type of Integration (H)
Validation and Verification Syntactical analysis (H) Typechecking (H) Logical consistency checking (L) Dynamic behavior validation (L) Parsing (L)
Transformation Uml Class Diagrams to Java Code (H)
Documentation Provided examples and Efficiency, completeness , and clarity of
documentation (H)
![Page 14: 1 OCL Tools Supervised by Prof. Daniel Amyot May Khalil Nadia Spido Submitted to Professor Daniel Amyot in partial fulfillment of the requirements for](https://reader030.vdocuments.site/reader030/viewer/2022032414/56649efa5503460f94c0c3ba/html5/thumbnails/14.jpg)
14
GRL
![Page 15: 1 OCL Tools Supervised by Prof. Daniel Amyot May Khalil Nadia Spido Submitted to Professor Daniel Amyot in partial fulfillment of the requirements for](https://reader030.vdocuments.site/reader030/viewer/2022032414/56649efa5503460f94c0c3ba/html5/thumbnails/15.jpg)
15
1.Integration1.Integration
Currently each modeling tool uses its own dialect of the UML interchange format XMI. It is therefore very difficult to create an XMI import functionality that works correctly for each UML model
Octopus is an Eclipse plug-in Both tools exchange UML models with ArgoUML OCLE USE Octopus Poseidon
![Page 16: 1 OCL Tools Supervised by Prof. Daniel Amyot May Khalil Nadia Spido Submitted to Professor Daniel Amyot in partial fulfillment of the requirements for](https://reader030.vdocuments.site/reader030/viewer/2022032414/56649efa5503460f94c0c3ba/html5/thumbnails/16.jpg)
16
Octopus Tool
![Page 17: 1 OCL Tools Supervised by Prof. Daniel Amyot May Khalil Nadia Spido Submitted to Professor Daniel Amyot in partial fulfillment of the requirements for](https://reader030.vdocuments.site/reader030/viewer/2022032414/56649efa5503460f94c0c3ba/html5/thumbnails/17.jpg)
17
OCLE Tool
![Page 18: 1 OCL Tools Supervised by Prof. Daniel Amyot May Khalil Nadia Spido Submitted to Professor Daniel Amyot in partial fulfillment of the requirements for](https://reader030.vdocuments.site/reader030/viewer/2022032414/56649efa5503460f94c0c3ba/html5/thumbnails/18.jpg)
18
2. Validation and Verification2. Validation and Verification
OCLE Demo Octopus Demo
![Page 19: 1 OCL Tools Supervised by Prof. Daniel Amyot May Khalil Nadia Spido Submitted to Professor Daniel Amyot in partial fulfillment of the requirements for](https://reader030.vdocuments.site/reader030/viewer/2022032414/56649efa5503460f94c0c3ba/html5/thumbnails/19.jpg)
19
1-Syntactical analysis - Octopus
![Page 20: 1 OCL Tools Supervised by Prof. Daniel Amyot May Khalil Nadia Spido Submitted to Professor Daniel Amyot in partial fulfillment of the requirements for](https://reader030.vdocuments.site/reader030/viewer/2022032414/56649efa5503460f94c0c3ba/html5/thumbnails/20.jpg)
20
1-Syntactical analysis - OCLE
![Page 21: 1 OCL Tools Supervised by Prof. Daniel Amyot May Khalil Nadia Spido Submitted to Professor Daniel Amyot in partial fulfillment of the requirements for](https://reader030.vdocuments.site/reader030/viewer/2022032414/56649efa5503460f94c0c3ba/html5/thumbnails/21.jpg)
21
2-Typechecking - Octopus
As OCL constraints always make reference to an underlying class model, an OCL typechecker has to have access to the underlying UML model information.
![Page 22: 1 OCL Tools Supervised by Prof. Daniel Amyot May Khalil Nadia Spido Submitted to Professor Daniel Amyot in partial fulfillment of the requirements for](https://reader030.vdocuments.site/reader030/viewer/2022032414/56649efa5503460f94c0c3ba/html5/thumbnails/22.jpg)
22
2-Typechecking - OCLE
![Page 23: 1 OCL Tools Supervised by Prof. Daniel Amyot May Khalil Nadia Spido Submitted to Professor Daniel Amyot in partial fulfillment of the requirements for](https://reader030.vdocuments.site/reader030/viewer/2022032414/56649efa5503460f94c0c3ba/html5/thumbnails/23.jpg)
23
3-Logical consistency - Octopus
As was expected non of the tools respond to the contradiction of OCL Constraints
![Page 24: 1 OCL Tools Supervised by Prof. Daniel Amyot May Khalil Nadia Spido Submitted to Professor Daniel Amyot in partial fulfillment of the requirements for](https://reader030.vdocuments.site/reader030/viewer/2022032414/56649efa5503460f94c0c3ba/html5/thumbnails/24.jpg)
24
3-Logical consistency - OCLE
![Page 25: 1 OCL Tools Supervised by Prof. Daniel Amyot May Khalil Nadia Spido Submitted to Professor Daniel Amyot in partial fulfillment of the requirements for](https://reader030.vdocuments.site/reader030/viewer/2022032414/56649efa5503460f94c0c3ba/html5/thumbnails/25.jpg)
25
4-Dynamic Checking - Octopus
The tool imported the object class diagram successfully BUT:
the OCL constraints were not evaluated against the corresponding instance model (object diagram)
![Page 26: 1 OCL Tools Supervised by Prof. Daniel Amyot May Khalil Nadia Spido Submitted to Professor Daniel Amyot in partial fulfillment of the requirements for](https://reader030.vdocuments.site/reader030/viewer/2022032414/56649efa5503460f94c0c3ba/html5/thumbnails/26.jpg)
26
4-Dynamic Checking - OCLE
![Page 27: 1 OCL Tools Supervised by Prof. Daniel Amyot May Khalil Nadia Spido Submitted to Professor Daniel Amyot in partial fulfillment of the requirements for](https://reader030.vdocuments.site/reader030/viewer/2022032414/56649efa5503460f94c0c3ba/html5/thumbnails/27.jpg)
27
5-Parsing Octopus context Course inv CUniqueN: Course::allInstances()->isUnique(name)
![Page 28: 1 OCL Tools Supervised by Prof. Daniel Amyot May Khalil Nadia Spido Submitted to Professor Daniel Amyot in partial fulfillment of the requirements for](https://reader030.vdocuments.site/reader030/viewer/2022032414/56649efa5503460f94c0c3ba/html5/thumbnails/28.jpg)
28
5-Parsing - OCLE
![Page 29: 1 OCL Tools Supervised by Prof. Daniel Amyot May Khalil Nadia Spido Submitted to Professor Daniel Amyot in partial fulfillment of the requirements for](https://reader030.vdocuments.site/reader030/viewer/2022032414/56649efa5503460f94c0c3ba/html5/thumbnails/29.jpg)
29
3. Transformation
correspondence and traceability presentation of generalization relations handling of associations directions representation of collections getters, setters or any additional methods Compilation Code generation for OCL constraints
![Page 30: 1 OCL Tools Supervised by Prof. Daniel Amyot May Khalil Nadia Spido Submitted to Professor Daniel Amyot in partial fulfillment of the requirements for](https://reader030.vdocuments.site/reader030/viewer/2022032414/56649efa5503460f94c0c3ba/html5/thumbnails/30.jpg)
30
Uml Class Diagrams to Java Code -Octopus
![Page 31: 1 OCL Tools Supervised by Prof. Daniel Amyot May Khalil Nadia Spido Submitted to Professor Daniel Amyot in partial fulfillment of the requirements for](https://reader030.vdocuments.site/reader030/viewer/2022032414/56649efa5503460f94c0c3ba/html5/thumbnails/31.jpg)
31
Uml Class Diagrams to Java Code -OCLE
![Page 32: 1 OCL Tools Supervised by Prof. Daniel Amyot May Khalil Nadia Spido Submitted to Professor Daniel Amyot in partial fulfillment of the requirements for](https://reader030.vdocuments.site/reader030/viewer/2022032414/56649efa5503460f94c0c3ba/html5/thumbnails/32.jpg)
32
Summary and recommendation The evaluation was applied to the candidate
tools aiming at the use of OCL as a facilitator resource for modeling and developing the academic system.
OCLE has the dynamic checking, Octopus is an Eclipse plug-in. So it is recommended to benefit from both tools for better checking OCL and building the code.
![Page 33: 1 OCL Tools Supervised by Prof. Daniel Amyot May Khalil Nadia Spido Submitted to Professor Daniel Amyot in partial fulfillment of the requirements for](https://reader030.vdocuments.site/reader030/viewer/2022032414/56649efa5503460f94c0c3ba/html5/thumbnails/33.jpg)
33
References
1. Dresden OCL Toolkit: http://dresden-ocl.sourceforge.net/2. OCLE – Object Constraint Language Environment: http://lci.cs.ubbcluj.r
o/ocle/index.htm3. http://www.klasse.nl/octopus/index.html4. BAAR, T., et al. Tool Support for OCL and Related Formalisms – Needs
and Trends, 20055. GOGOLLA, M., et al. Tool Support for Validating UML and OCL Models
through Automatic Snapshot Generation, 20036. HUSSMANN, H., et al. Modular architecture for a toolset supporting
OCL, 20027. CLARK, T. AND WARMER, J. Object Modeling with the OCL, 2002, pp.
59-688. DZIDEK, W. et al. Lessons Learned from Developing a Dynamic OCL
Constraint Enforcement Tool for Java, 20059. JOS WARMER, ANNEKE KLEPPE. The Object Constraint Language
ISBN 0-201-37940
![Page 34: 1 OCL Tools Supervised by Prof. Daniel Amyot May Khalil Nadia Spido Submitted to Professor Daniel Amyot in partial fulfillment of the requirements for](https://reader030.vdocuments.site/reader030/viewer/2022032414/56649efa5503460f94c0c3ba/html5/thumbnails/34.jpg)
34
Thank you
Questions ?