View
224
Download
0
Tags:
Embed Size (px)
Citation preview
Integrated Development Environment for Working with Models
ARD
Barak AgivItamar Ben-Zaken
Barak NahumVladislav 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
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
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.
Deployed as an Eclipse plug-in Feedback given in Problems View, graphical
editor, dialogs
Software Context
• 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
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.
A class diagram before refactoring:
Extract Interface – An Example
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
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
Templates – An Example
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
Genset proposal – An Example
Patterns Recognition - Examples Hierarchy Cycle
Diamond Pattern
Patterns Recognition - Examples Redundancy
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
Use Case Diagram
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
Sequence Diagram
Thank you!