1 ocl tools supervised by prof. daniel amyot may khalil nadia spido submitted to professor daniel...

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 the course CSI 5112

Upload: julian-murphy

Post on 03-Jan-2016

219 views

Category:

Documents


2 download

TRANSCRIPT

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

34

Thank you

Questions ?