2nd Belgian-Dutch workshop on Software Evolution

Similar documents
Detecting Structural Refactoring Conflicts Using Critical Pair Analysis

Formal Support for Model Evolution

Detecting and Resolving Model Inconsistencies Using Transformation Dependency Analysis

Challenges in Model Refactoring

Formal tool support for software evolution

Motivation: Model-driven. driven Engineering. Semantics of Model Transformation. Reiko Heckel University of Leicester, UK

A Formal Resolution Strategy for Operation-Based Conflicts in Model Versioning Using Graph Modifications

A Graphical Specification of Model Composition With Triple Graph Grammars

On the Use of Graph Transformations for Model Refactoring

Graph-Transformation Based Support for Model Evolution

REFLECTIONS ON OPERATOR SUITES

SCOS-2000 Technical Note

Model-Driven Software Refactoring

From Event-B Models to Dafny Code Contracts

A Generic Visual Language Technique for DSVL Model Refactoring to Patterns

Applying a Model Transformation Taxonomy to Graph Transformation Technology

A formal approach to model refactoring and model refinement

Chapter 8: Class and Method Design

Using Graph Rewriting Models for Object-Oriented Oriented Software Evolution

A Taxonomy of Model Transformation

2 nd UML 2 Semantics Symposium: Formal Semantics for UML

Forschungsberichte der Fakultät IV Elektrotechnik und Informatik

A Visual Editor for Reconfigurable Object Nets based on the ECLIPSE Graphical Editor Framework

Co-Evolving Code-Related and Database-Related Changes in a Data-Intensive Software System

AGG: A Graph Transformation Environment for Modeling and Validation of Software

Towards Generating Domain-Specific Model Editors with Complex Editing Commands

A Formal Approach to Model Refactoring and Model Refinement

Chapter 6 Architectural Design

MDD with OMG Standards MOF, OCL, QVT & Graph Transformations

SiLift: Extending EMF Compare with an Operational View on Model Differences

A Survey of Software Refactoring

Formal Verification for UML/SysML models

Correctness and Completeness of Generalised Concurrent Model Synchronisation Based on Triple Graph Grammars

Sven Apel Don Batory Christian Kastner. Gunter Saake. Feature-Oriented Software Product Lines. Concepts and Implementation.

Pattern composition in graph transformation rules

Fausto Giunchiglia and Mattia Fumagalli

Scenario-based Refactoring Selection

Chapter 7. Modular Refactoring. 7.1 Introduction to Modular Refactoring

RIGOROUSLY AUTOMATING TRANSFORMATIONS OF UML BEHAVIOR MODELS

Static Safety Analysis of UML Action Semantics for Critical Systems Development

Inductively Generated Pointcuts to Support Refactoring to Aspects

Classes and Objects. Object Orientated Analysis and Design. Benjamin Kenwright

Unit 1 Introduction to Software Engineering

Harmonization of usability measurements in ISO9126 software engineering standards

Towards semantic merging of versions of BDI agent systems

SUMMARY: MODEL DRIVEN SECURITY

Towards 2D Traceability

Constraint Programming. Global Constraints. Amira Zaki Prof. Dr. Thom Frühwirth. University of Ulm WS 2012/2013

Applying UML to System Engineering Some Lessons Learned Murray Cantor Principal Consultant

Software Engineering with Objects and Components Open Issues and Course Summary

Evolution of XML Applications

Formalizing Software Refactoring in the Distributed Environment by aednlc Graph Grammar

A Formalism for Automated Verification of Model Transformations

"Charting the Course... Agile Database Design Techniques Course Summary

CURRICULUM The Architectural Technology and Construction. programme

On the Correctness of Model Transformations. Matthew Nizol CSE 814, Fall 2014 Thursday, December 11, 2014

Object-Oriented Theories for Model Driven Architecture

SOFTWARE MAINTENANCE: A

Practical Model-based Testing With Papyrus and RT-Tester

What Is A Relation? Example. is a relation from A to B.

Enterprise Architect Training Courses

CONSUMPTION BASICS. MICROECONOMICS Principles and Analysis Frank Cowell. July 2017 Frank Cowell: Consumption Basics 1

Formal Foundations of Software Engineering

Pattern for Structuring UML-Compatible Software Project Repositories

A Comparison of Software Refactoring Tools

Liveness and Fairness Properties in Multi-Agent Systems

Towards a taxonomy of software change

CONFERENCE ON SERVICE SCIENCE, MANAGEMENT & ENGINEERING (SSME):

model-driven development Separation of Concerns in Model-Driven Development

Software Engineering of Robots

12 The PEPA Plug-in for Eclipse

Beyond the Refactoring Browser: Advanced Tool Support for Software Refactoring

Structuring an Abstract Interpreter through Value and State Abstractions: EVA, an Evolved Value Analysis for Frama C

Agent-Oriented Software Engineering

A Rule-Based Change Impact Analysis Approach in Software Architecture for Requirements Changes

Reichenbach Fuzzy Set of Transitivity

Compositional Model Based Software Development

Systematic Source Code Transformations. Gustavo SANTOS

Ensuring Structural Constraints in Graph-Based Models with Type Inheritance

17Collaborative Software Architecting through Knowledge Sharing

Making Program Refactoring Safer

Real-Time Model-Checking: Parameters Everywhere

Experiences in the Use of MDA and UML in Developing NATO Standards

An Information Model for High-Integrity Real Time Systems

Rekayasa Perangkat Lunak 2 (IN043): Pertemuan 6. Moving on to Design

Parallel Graph Transformation for Model Simulation applied to Timed Transition Petri Nets

Conceptual Framework

T Reactive Systems: Kripke Structures and Automata

Abstract Interpretation

Are functional languages a good way to represent productive meta models?

Automating Big Refactorings for Componentization and the Move to SOA

Reverse Engineering Process for Extracting Views from Domain Ontology

Formal Modelling Techniques for Efficient Development of Railway Control Products

Modelling Languages: (mostly) Concrete (Visual) Syntax. Hans Vangheluwe

Update on AADL Requirements Annex

Uldis Donins Janis Osis

A framework for business processes view integration

EXECUTABLE MODELING WITH FUML AND ALF IN PAPYRUS: TOOLING AND EXPERIMENTS

Tiger EMF Model Transformation Framework (EMT)

UC Irvine UC Irvine Previously Published Works

Transcription:

2nd Belgian-Dutch workshop on Software Evolution BENEVOL 2004 8-9 July 2004 University of Antwerp Belgium

Problem statement More and better tool support needed for software evolution traceability management version control (e.g., software merging) impact analysis change propagation consistency maintenance model transformation co-evolution analysing release histories a "theory of software evolution" Formalisms can be helpful for some of these tools Tom Mens, 8 July 2004, BENEVOL 2004 workshop, University of Antwerp 2

Critical pair analysis of graph transformations for software refactoring Tom Mens Service de Génie Logiciel Université de Mons Hainaut http://www.umh.ac.be/~genlog

Case study: Graph transformation Formalism based on graphs: to represent software entities graph transformation: to represent software evolution offers many theoretical results that can help during analysis type graph, negative application conditions, parallel and sequential (in)dependence, confluence, critical pair analysis Experiment: use graph transformation theory to detect and resolve structural conflicts when refactorings are applied in parallel Use AGG tool for experiments in collaboration with Gabi Taentzer, Berlin Tom Mens, 8 July 2004, BENEVOL 2004 workshop, University of Antwerp 4

Case study: Graph transformation Two concrete scenarios Tom Mens, 8 July 2004, BENEVOL 2004 workshop, University of Antwerp 5

Case study: AGG Tom Mens, 8 July 2004, BENEVOL 2004 workshop, University of Antwerp 6

Case study: critical pair analysis Use critical pair analysis in AGG T 1 and T 2 form a critical pair if they can both be applied to the same initial graph G but applying T 1 prohibits application of T 2 and/or vice versa T 1 G H 1 T 2 X T 2 H 2 T 1 X Tom Mens, 8 July 2004, BENEVOL 2004 workshop, University of Antwerp 7

Case study: parallel refactorings Compute critical pairs for 9 representative refactorings Tom Mens, 8 July 2004, BENEVOL 2004 workshop, University of Antwerp 8

Case study: parallel refactoings Perform confluence analysis to resolve detected conflicts Tom Mens, 8 July 2004, BENEVOL 2004 workshop, University of Antwerp 9

Case study: parallel refactoings To do Improve performance of critical pair analysis algorithm Find out to which extent conflict resolution can be automated Reduce set of critical pairs e.g. by taking into account transitive closure of inheritance Investigate distinction between symmetric and asymmetric conflicts Tom Mens, 8 July 2004, BENEVOL 2004 workshop, University of Antwerp 10

Case study: framework customisation Customisation conflicts due to framework refactoring Tom Mens, 8 July 2004, BENEVOL 2004 workshop, University of Antwerp 11

Case study: framework customisation Customisation conflicts due to framework refactoring Tom Mens, 8 July 2004, BENEVOL 2004 workshop, University of Antwerp 12

Case study: Open question How to deal with semantic conflicts? Tom Mens, 8 July 2004, BENEVOL 2004 workshop, University of Antwerp 13

Case study: another potential scenario Use some tool to detect "bad smells" opportunities for refactoring can be used to propose a list of possible refactorings that can be applied in the same context cf. Mens&Tourwé, CSMR 2003 and IWPSE 2003 Critical pair analysis can be used to identify which of the refactorings in this list are in conflict suggest a non-conflicting sequence of refactorings that removes the detected bad smells Tom Mens, 8 July 2004, BENEVOL 2004 workshop, University of Antwerp 14

Formal foundations for software evolution Tom Mens Software Engineering Lab University of Mons-Hainaut http://www.umh.ac.be/~genlog

Example: Refactoring formalisms Question which formalisms can be used to improve tool support for refactoring? Answers Graph transformation Logic formalisms description logic, fuzzy logic, temporal logic,... Software metrics Formal concept analysis Program slicing Denotational semantics Tom Mens, 8 July 2004, BENEVOL 2004 workshop, University of Antwerp 16

Fundamental Research Questions possible uses of graph transformation to assist with refactoring? How to (de)compose refactorings? How to detect and resolve conflicts due to refactorings? critical pair analysis How to deal with co-evolution? triple (quadruple) graph grammars How to guarantee "behaviour preserving"? How to guarantee "structure improving"? Tom Mens, 8 July 2004, BENEVOL 2004 workshop, University of Antwerp 17

Fundamental Research Questions other formalisms to assist with refactoring? formal concept analysis program slicing description logics... What is behaviour? Behaviour preserving? real-time systems (time); embedded systems (power & memory); safety critical systems (liveness, ) What are good program invariants? How to express them? What is structure? Structure improving? How to measure impact/effect of refactoring on software quality? Co-evolution How to address consistency maintenance and change propagation? code design architecture requirements How to refactor at higher abstraction levels? UML models, design patterns, architectures, components Tom Mens, 8 July 2004, BENEVOL 2004 workshop, University of Antwerp 18

Practical Questions How to measure complexity of refactorings? Comparing different refactorings in same formalism Comparing same refactoring in different formalisms computational complexity of preconditions computational complexity of applying the refactoring readability/understandability of the refactoring How can we determine where and why to refactor? bad smells Where does refactoring fit in the development process? How to combine refactoring with other techniques? design patterns, application frameworks, aspect-oriented programming, generative programming, Tom Mens, 8 July 2004, BENEVOL 2004 workshop, University of Antwerp 19

Opportunities for collaboration Applying refactorings to UML models Fits in the MDA model transformation context Addresses theoretical and practical aspects Theoretical deciding on an appropriate formalism ; subset of UML ; definition of behaviour Practical developing tools / plug-ins for model refactoring Opportunities Suggest as a topic for ERCIM Strategy 2004 Propose a small-scale European project (possible with support from ERCIM) academic partners: UA, UMH, CWI,...? industrial partners? Tom Mens, 8 July 2004, BENEVOL 2004 workshop, University of Antwerp 20