barak agiv itamar ben-zaken barak nahum vladislav smolensky academic advisor: yuval elovici...

20
Integrated Development Environment for Working with Models ARD Barak Agiv Itamar Ben-Zaken Barak Nahum Vladislav Smolensky Academic Advisor: Yuval Elovici Professional Advisor: Mira Balaban

Post on 19-Dec-2015

224 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Barak Agiv Itamar Ben-Zaken Barak Nahum Vladislav Smolensky Academic Advisor: Yuval Elovici Professional Advisor: Mira Balaban

Integrated Development Environment for Working with Models

ARD

Barak AgivItamar Ben-Zaken

Barak NahumVladislav Smolensky

Academic Advisor: Yuval Elovici

Professional Advisor: Mira Balaban

Page 2: Barak Agiv Itamar Ben-Zaken Barak Nahum Vladislav Smolensky Academic Advisor: Yuval Elovici Professional Advisor: Mira Balaban

To construct an Integrated Development Environment (IDE) for working with models

Providing feedback on the design

Providing modeling tools for the design process

Vision

Page 3: Barak Agiv Itamar Ben-Zaken Barak Nahum Vladislav Smolensky Academic Advisor: Yuval Elovici Professional Advisor: Mira Balaban

Modeling is an essential step in the design process of many systems

A common model is a structural model – depicts the structure of a system, rather than the behavior

A common notation is the Class Diagram in the Unified Modeling Language (UML)

The Problem Domain

Page 4: Barak Agiv Itamar Ben-Zaken Barak Nahum Vladislav Smolensky Academic Advisor: Yuval Elovici Professional Advisor: Mira Balaban

Class Diagrams allow significant expressive power, but also allow the creation of redundant, inconsistent and incorrect models

Designers are human – they make mistakes (e.g. lack of experience, complex models, merging several models)

Most UML Editors offer visualization of the model, and syntactic restrictions – but not semantic restrictions

The Problem Domain Cont.

Page 5: Barak Agiv Itamar Ben-Zaken Barak Nahum Vladislav Smolensky Academic Advisor: Yuval Elovici Professional Advisor: Mira Balaban

Deployed as an Eclipse plug-in Feedback given in Problems View, graphical

editor, dialogs

Software Context

Page 6: Barak Agiv Itamar Ben-Zaken Barak Nahum Vladislav Smolensky Academic Advisor: Yuval Elovici Professional Advisor: Mira Balaban

• UML2Tools – graphical editors for UML diagrams

• UML2 – an EMF-implementation of the UML meta-model

• EMF (Eclipse Modeling Framework) – a meta-modeling framework

Software Interfaces

Tools

UML 2 Tools

UML 2 (meta-model)

EMF

Framework Framework

Page 7: Barak Agiv Itamar Ben-Zaken Barak Nahum Vladislav Smolensky Academic Advisor: Yuval Elovici Professional Advisor: Mira Balaban

Functional Requirements – Class Diagram Refactoring

Rename ClassAfter picking a new class in a wizard, a suggestion for renaming related: associations, fields and parameters is given

Extract Interface Extract features from a class into a new interface, and update references to use the new interface

In-line Class Merge one class into the other

Pull Up Field/Method Move a common field/method from several subclasses to their super-class.

Page 8: Barak Agiv Itamar Ben-Zaken Barak Nahum Vladislav Smolensky Academic Advisor: Yuval Elovici Professional Advisor: Mira Balaban

A class diagram before refactoring:

Extract Interface – An Example

Page 9: Barak Agiv Itamar Ben-Zaken Barak Nahum Vladislav Smolensky Academic Advisor: Yuval Elovici Professional Advisor: Mira Balaban

In order to perform the Extract Interface refactoring we will need to:

Create the interface Create the generalization

between the class and the interface

Move the operations of the class to the interface

Update association ends that pointed to the class to now point to the interface

Extract Interface

Page 10: Barak Agiv Itamar Ben-Zaken Barak Nahum Vladislav Smolensky Academic Advisor: Yuval Elovici Professional Advisor: Mira Balaban

Functional Requirements – Templates Definition

Defining Design-pattern templates

Defining new templates and adding them to the tool-box

Pasting Design-pattern templates into the model

Picking a template from the tool-box and adding it to the model

Page 11: Barak Agiv Itamar Ben-Zaken Barak Nahum Vladislav Smolensky Academic Advisor: Yuval Elovici Professional Advisor: Mira Balaban

Templates – An Example

Page 12: Barak Agiv Itamar Ben-Zaken Barak Nahum Vladislav Smolensky Academic Advisor: Yuval Elovici Professional Advisor: Mira Balaban

Functional Requirements – Analyzing The Model

Define Patterns Ability to add new pattern and registering it in the system

Verifying a Model Against Registered Patterns

Matching registered patterns against a model and warning when a match is found. For example:• Contradictory generalization-set constraints• Finite Satisfiability Pattern• Patterns of Redundant and Incomplete

Design

Generalization –Sets Implementation Proposals

We suggest to find the best alternative implementation for a generalization-set by the compiler constraints according to a heuristic search

Page 13: Barak Agiv Itamar Ben-Zaken Barak Nahum Vladislav Smolensky Academic Advisor: Yuval Elovici Professional Advisor: Mira Balaban

Genset proposal – An Example

Page 14: Barak Agiv Itamar Ben-Zaken Barak Nahum Vladislav Smolensky Academic Advisor: Yuval Elovici Professional Advisor: Mira Balaban

Patterns Recognition - Examples Hierarchy Cycle

Diamond Pattern

Page 15: Barak Agiv Itamar Ben-Zaken Barak Nahum Vladislav Smolensky Academic Advisor: Yuval Elovici Professional Advisor: Mira Balaban

Patterns Recognition - Examples Redundancy

Page 16: Barak Agiv Itamar Ben-Zaken Barak Nahum Vladislav Smolensky Academic Advisor: Yuval Elovici Professional Advisor: Mira Balaban

Verifying a model against an inconsistency pattern should take TBD seconds

The system will be able to handle a model with up to 2500 elements

Defining and registering a new template will be done visually

The system should be responsive at any time

Background processes can be aborted at any time

Non-Functional Requirements

Page 17: Barak Agiv Itamar Ben-Zaken Barak Nahum Vladislav Smolensky Academic Advisor: Yuval Elovici Professional Advisor: Mira Balaban

Use Case Diagram

Page 18: Barak Agiv Itamar Ben-Zaken Barak Nahum Vladislav Smolensky Academic Advisor: Yuval Elovici Professional Advisor: Mira Balaban

Primary actors: Simple Modeler Description: The modeler validates the model and looks for an

inconsistency pattern. He can also choose to look for many/all the existing inconsistency patterns.

Trigger: The modeler wants to check the consistency of the model

Pre-conditions: none Post-conditions: All the found patterns are shown to the

modeler Flow of events:

1. The modeler chooses the patterns he want to look for2. The modeler starts the search3. The system directs the modeler to the matched

patterns Alternative flows: None Covered Requirements: Verifying a model against registered

inconsistency-patterns

Model Verification Against Registered Patterns

Page 19: Barak Agiv Itamar Ben-Zaken Barak Nahum Vladislav Smolensky Academic Advisor: Yuval Elovici Professional Advisor: Mira Balaban

Sequence Diagram

Page 20: Barak Agiv Itamar Ben-Zaken Barak Nahum Vladislav Smolensky Academic Advisor: Yuval Elovici Professional Advisor: Mira Balaban

Thank you!