Model Inconsistency Management



Similar documents
A Case Study for Program Refactoring

Business Process Modelling Notation A tutorial

Rules and Business Rules

Challenges in bootstrapping a model-driven way of software development

Model-Based Analysis of Role-Based Access Control

Vrije Universiteit Brussel - Belgium Faculty of Sciences In Collaboration with Ecole des Mines de Nantes - France

Managing Software Evolution through Reuse Contracts

AN intrinsic property of software in a real-world environment

Réponse à une question de Roger Bastide Document 40

Optimising Measurement Processes Using Automated Planning

Types of UML Diagram. UML Diagrams OOAD. Computer Engineering Sem -IV

A Model Repository for Collaborative Modeling with the Jazz Development Platform


Requirements engineering

An Automatic Reversible Transformation from Composite to Visitor in Java

BIS 3106: Business Process Management. Lecture Two: Modelling the Control-flow Perspective

A Business Process Driven Approach for Generating Software Modules

How To Test Automatically

Model based testing tools. Olli Pekka Puolitaival

Requirements engineering and quality attributes

Case studies: Outline. Requirement Engineering. Case Study: Automated Banking System. UML and Case Studies ITNP090 - Object Oriented Software Design

CSE4213 Lecture Notes

70 October 1997/Vol. 40, No. 10 COMMUNICATIONS OF THE ACM

Sofware Requirements Engineeing

Some Methodological Clues for Defining a Unified Enterprise Modelling Language

LECTURE 1. SYSTEMS DEVELOPMENT

Traceability and fine-grained Constraints in interactive Inconsistency Management

Semantics of UML class diagrams

Modelling the Railway Control Domain rigorously with a UML 2.0 Profile

A NEW APPROACH TO MODEL A FORMALISED DESCRIPTION OF A COMMUNICATION SERVICE

Graph-Grammar Based Completion and Transformation of SDL/UML-Diagrams

Lecture 03 ( ) Quality of the Software Development Process

Tools Page 1 of 13 ON PROGRAM TRANSLATION. A priori, we have two translation mechanisms available:

AUTOMATED TEST GENERATION FOR SOFTWARE COMPONENTS

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces

BUSINESS RULES CONCEPTS... 2 BUSINESS RULE ENGINE ARCHITECTURE By using the RETE Algorithm Benefits of RETE Algorithm...

Efficient and Scalable Graph View Maintenance for Deductive Graph Databases based on Generalized Discrimination Networks

How To Create A Complex Diagram On A Computer Game

EXTREME: EXecuTable Requirements Engineering, Management and Evolution. Dr. Ella Roubtsova Open University of the Netherlands

Generating Enterprise Applications from Models

RANKING REFACTORING PATTERNS USING THE ANALYTICAL HIERARCHY PROCESS

A Framework for the Semantics of Behavioral Contracts

A CSPm Model for the Procure to Pay Case Study

Object Oriented Programming. Risk Management

Software Processes. Agile Methods

Modelling Workflow with Petri Nets. CA4 BPM PetriNets

INTRODUCTION TO BUSINESS PROCESS MODELING NOTATION BPMN 1.2 AND BPMN 2.0

Business Process Modelling Languages

Supporting Software Development through Declaratively Codified Programming Patterns

Scenario-based Requirements Engineering and User-Interface Design

Process Modeling Notations and Workflow Patterns

Using Bonds for Describing Method Dispatch in Role-Oriented Software Models

Automating Business Processes Using SharePoint Designer

On Open Source Tools for Behavioral Modeling and Analysis with fuml and Alf

Reuse Contracts: Managing the Evolution of Reusable Assets

Modeling Systems - External and Internal Behavior Models

Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements

Supporting Software Development Process Using Evolution Analysis : a Brief Survey

Chapter 10 Practical Database Design Methodology and Use of UML Diagrams

Quick Guide Business Process Modeling Notation (BPMN)

UML PROFILING AND DSL

Process Modeling using BPMN 2.0

Architecture Design & Sequence Diagram. Week 7

CHAPTER 1 INTRODUCTION

An ARIS-based Transformation Approach to Semantic Web Service Development

WS15. Workshop on Knowledge-Based Object-Oriented Software Engineering (KBOOSE)

OVERVIEW OF THE PROJECT USAGE MAP. ` Four Key Improvements When Managing the Teamwork Server Repository


The Workflow Management Coalition Specification Workflow Management Coalition Terminology & Glossary

A Model-Based Development Process for Embedded System

Synthesizing Object Life Cycles from Business Process Models

1.. This UI allows the performance of the business process, for instance, on an ecommerce system buy a book.

Detecting and Refactoring Operational Smells within the Domain Name System

UML: Classes -- Association

The BPM to UML activity diagram transformation using XSLT

Clustering and scheduling maintenance tasks over time

Chapter 10 Practical Database Design Methodology and Use of UML Diagrams

Model Transformation by Graph Transformation: A Comparative Study

Process Mining Using BPMN: Relating Event Logs and Process Models

Ghizlane El Boussaidi , boul. Lévesque Est Phone : (450)

Representing Code History with Development Environment Events

IT Service Manager Agent Guide

Database Design Methodology

AMFIBIA: A Meta-Model for the Integration of Business Process Modelling Aspects

Mathematics for Computer Science/Software Engineering. Notes for the course MSM1F3 Dr. R. A. Wilson

Policy Modeling and Compliance Verification in Enterprise Software Systems: a Survey

The Best Software Testing Arie Van Deursen TU Delft, 2011

Using UML Part Two Behavioral Modeling Diagrams

Brief description of the paper/report. Identification

Load balancing in SOAJA (Service Oriented Java Adaptive Applications)

Expert PHP 5 Tools. Proven enterprise development tools and best practices for designing, coding, testing, and deploying PHP applications.

Umbrello UML Modeller Handbook

Aspect Oriented Strategy to model the Examination Management Systems

Chapter 19. Activity Diagrams

An Automation Approach Based on Workflows and Software Agents for IPS² by

EVALUATION. WA1844 WebSphere Process Server 7.0 Programming Using WebSphere Integration COPY. Developer

Applying 4+1 View Architecture with UML 2. White Paper

Adaptation of the ACO heuristic for sequencing learning activities

SysML Modelling Language explained

From Workflow Design Patterns to Logical Specifications

Transcription:

Model Inconsistency Management by means of Graph Transformation Dependency Analysis Tom Mens (tom.mens@umh.ac.be) Institut d Informatique Université de Mons-Hainaut Belgium

Acknowledgements This talk reports on joint work with Maja D Hondt LIFL, Université des Sciences et des Technologies de Lille Ragnhild Van Der Straeten Universität Paderborn / Vrije Universiteit Brussel Tom Mens, Atelier sur l évolution du logiciel, Nîmes, 21 Mars 2006 2

Challenge: Model-driven evolution Observation Model-driven software engineering approaches do not adequately address software evolution problems Need better support (tools, formalisms) for Tom Mens, Atelier sur l évolution du logiciel, Nîmes, 21 Mars 2006 3

Model inconsistency management Goal Specify model inconsistencies and their resolution strategies as graph transformation rules Use this formalisation to support the inconsistency management process Automate the detection of inconsistencies Interactively support the resolution of inconsistencies Analyse transformation dependencies to optimise this process Detect sequential dependencies between resolution rules Detect parallel conflicts between resolution rules that cannot be applied together Remove redundancy between resolution rules Provide optimal resolution strategies Tom Mens, Atelier sur l évolution du logiciel, Nîmes, 21 Mars 2006 4

Model inconsistency management Inconsistency management process inconsistency detection rules? inconsistency resolution rules? UML model detect inconsistencies in UML model select inconsistencies to be resolved choose inconsistency resolution strategy apply inconsistency resolutions annotate model with inconsistencies found modify model by selected resolution rules (may give rise to new inconsistencies) Tom Mens, Atelier sur l évolution du logiciel, Nîmes, 21 Mars 2006 5

Experiment Use AGG (version 1.4), a general-purpose graph transformation language specify the metamodel as a type graph specify the models as graphs detect model inconsistencies by means of graph transformation rules resolve model inconsistencies by means of graph transformation rules detect parallel conflicts and sequential dependencies between inconsistency resolutions by means of critical pair analysis Tom Mens, Atelier sur l évolution du logiciel, Nîmes, 21 Mars 2006 6

Step 1: Specify the metamodel AGG type graph Tom Mens, Atelier sur l évolution du logiciel, Nîmes, 21 Mars 2006 7

Example of a model inconsistency Dangling operation reference Using UML notation Using graph notation contains Class name= ATM isabstract=false Operation name= ejectcard visibility= public nuofpars=0 isabstract=false instanceof Operation name= retaincard visibility= public nuofpars=0 isabstract=false calls InstanceSpecification ConnectableElement represents Interaction LifeLine contains contains represents MessageEvent MessageOccurrenceSpecification Tom Mens, Atelier sur l évolution du logiciel, Nîmes, 21 Mars 2006 8

Step 2: Identify model inconsistencies Dangling Type Reference Classless Instance Abstract Object Abstract Operation Abstract State Machine Cyclic Composition Dangling Operation Reference Transition Without Operation An operation has one or more parameters whose types are not specified A model contains an instance specification that is not linked to a class A model contains an instance specification that is an instance of an abstract class that does not have any concrete subclasses. An abstract operation is defined in a concrete class. A state machine expresses the behaviour of an abstract class that does not have any concrete subclasses. A class contains at least one instance of its subclasses through a composition relationship that may lead to an infinite containment of instances of the affected classes. A state machine contains a transition that refers to an operation that does not belong to any class (or that belongs to a different class than the one whose behaviour is expressed by the state machine). A transition does not have a referred operation attached to it. Tom Mens, Atelier sur l évolution du logiciel, Nîmes, 21 Mars 2006 9

Example of a model inconsistency Dangling operation reference Using UML notation Using graph notation contains Class name= ATM isabstract=false Operation name= ejectcard visibility= public nuofpars=0 isabstract=false instanceof Operation name= retaincard visibility= public nuofpars=0 isabstract=false calls InstanceSpecification ConnectableElement represents Interaction LifeLine contains contains represents MessageEvent MessageOccurrenceSpecification Conflict description= dangling operation reference Tom Mens, Atelier sur l évolution du logiciel, Nîmes, 21 Mars 2006 10

Step 3: Detect model inconsistencies Tom Mens, Atelier sur l évolution du logiciel, Nîmes, 21 Mars 2006 11

Step 3: Detect model inconsistencies Tom Mens, Atelier sur l évolution du logiciel, Nîmes, 21 Mars 2006 12

Step 4: Identify inconsistency resolutions Dangling Type Reference Res1 Res2 Res3 Remove the parameter whose type is undefined. Assign an existing class as the type of the previously undefined parameter. Assign a new class as the type of the previously undefined parameter. Classless Instance Abstract Object Res1 Res2 Res3 Res1 Res2 Res3 Res4 Remove the instance specification. Link the instance specification to an existing class. Link the instance specification to a new class. Change the abstract class into a concrete one. Add a concrete descendant of the abstract class, and redirect the outgoing instance-of relation of the instance specification to this concrete descendant. Remove the instance specification. Add a concrete descendant class of the abstract class. Tom Mens, Atelier sur l évolution du logiciel, Nîmes, 21 Mars 2006 14

Step 5: Resolve model inconsistencies Tom Mens, Atelier sur l évolution du logiciel, Nîmes, 21 Mars 2006 15

Step 6: Detect parallel conflicts between resolution rules Some resolution rules cannot be jointly applied (parallel conflict!) Conflict graph can be generated in AGG by means of critical pair analysis Tom Mens, Atelier sur l évolution du logiciel, Nîmes, 21 Mars 2006 16

Step 6: Detect parallel conflicts Example of a critical pair representing a conflict situation Tom Mens, Atelier sur l évolution du logiciel, Nîmes, 21 Mars 2006 17

Step 7: Detect sequential dependencies Some resolution rules may give rise to new opportunities for applying other resolution rules Dependency graph generated by critical pair analysis Tom Mens, Atelier sur l évolution du logiciel, Nîmes, 21 Mars 2006 18

Step 7: Detect sequential dependencies Example of a critical pair representing a sequential dependency Tom Mens, Atelier sur l évolution du logiciel, Nîmes, 21 Mars 2006 19

Step 7: Detect sequential dependencies Some resolution rules may give rise to new model inconsistencies Tom Mens, Atelier sur l évolution du logiciel, Nîmes, 21 Mars 2006 20

Step 8: Refactor resolution rules Observation Different resolution rules for the same model inconsistency may be redundant Different resolution rules for a different model inconsistency may be redundant (even identical) Tom Mens, Atelier sur l évolution du logiciel, Nîmes, 21 Mars 2006 21

Step 8: Refactor resolution rules Dangling Type Reference Classless Instance redundancy Abstract Object Res1 Res2 Res3 Res1 Res2 Res3 Res1 Res2 Res3 Res4 Remove the parameter whose type is undefined. Assign an existing class as the type of the previously undefined parameter. Assign a new class as the type of the previously undefined parameter. Remove the instance specification. Link the instance specification to an existing class. Link the instance specification to a new class. Change the abstract class into a concrete one. Add a concrete descendant of the abstract class, and redirect the outgoing instance-of relation of the instance specification to this concrete descendant. Remove the instance specification. Add a concrete descendant class of the abstract class. Tom Mens, Atelier sur l évolution du logiciel, Nîmes, 21 Mars 2006 22

Step 8: Refactor resolution rules Dangling Type Reference redundancy Classless Instance redundancy Abstract Object Res1 Res2 Res3 Res1 Res2 Res3 Res1 Res2 Res3 Res4 Remove the parameter whose type is undefined. Assign an existing class as the type of the previously undefined parameter. Assign a new class as the type of the previously undefined parameter. Remove the instance specification. Link the instance specification to an existing class. Link the instance specification to a new class. Change the abstract class into a concrete one. Add a concrete descendant of the abstract class, and redirect the outgoing instance-of relation of the instance specification to this concrete descendant. Remove the instance specification. Add a concrete descendant class of the abstract class. Tom Mens, Atelier sur l évolution du logiciel, Nîmes, 21 Mars 2006 23

Step 8: Refactor resolution rules Goal (Future Work!) Detect redundancy automatically Based on the computed conflicts and dependencies between resolution rules Remove redundancy automatically Refactor the resolution rules Transform (i.e., refactor) the transformation rules - Transformations need to be first class models - Reflective transformation engine is needed Tom Mens, Atelier sur l évolution du logiciel, Nîmes, 21 Mars 2006 24

Tool Support Integrate ideas into a modeling tool Ongoing student project export UML models from MagicDraw into AGG, detect and resolve inconsistencies in AGG, and import back into MagicDraw Ongoing student project Add interface on top of AGG to provide interactive support for selecting and resolving inconsistencies based on detected conflicts and dependencies Future work Integrate current work into existing RACOON tool for model inconsistency management (based on description logics) Tom Mens, Atelier sur l évolution du logiciel, Nîmes, 21 Mars 2006 25

Discussion topics Optimality Expressiveness Completeness Compositionality Termination Tom Mens, Atelier sur l évolution du logiciel, Nîmes, 21 Mars 2006 26

Discussion topics Optimality Find an optimal way to resolve model inconsistencies How can we define optimality? Use heuristics and resolution strategies, locally as well as globally Avoid resolution rules that introduce too many new inconsistencies Prefer resolution rules that add new model elements over rules that remove model elements Take into account, and learn, resolution rules preferred by the user other strategies? Tom Mens, Atelier sur l évolution du logiciel, Nîmes, 21 Mars 2006 27

Discussion topics Expressiveness Can all model inconsistencies be expressed? Which types of model inconsistency can be expressed? Structural? Behavioural? Can all resolution rules be expressed? Completeness Are all possible ways to resolve a particular inconsistency covered by the resolution rules? Tom Mens, Atelier sur l évolution du logiciel, Nîmes, 21 Mars 2006 28

Discussion topics Compositionality How to define resolution strategies as a composition of primitive resolution rules? Using sequencing, branching, looping constructs Taking into account the computed dependency analysis Termination Given a set of resolution rules, can we prove that it will resolve all detected inconsistencies and terminate in a finite amount of time? Rely on termination results of graph transformation? Tom Mens, Atelier sur l évolution du logiciel, Nîmes, 21 Mars 2006 29