Formal tool support for software evolution

Size: px
Start display at page:

Download "Formal tool support for software evolution"

Transcription

1 Service de Génie Logiciel Formal tool support for software evolution Tom Mens staff.umh.ac.be/mens.tom/ Université de Mons-Hainaut

2 Problem statement More and better tool support needed for software evolution traceability management version control impact analysis change propagation consistency maintenance refactoring co-evolution between architecture, design and implementation Formal support can be helpful for some of these 2

3 Formal support for consistency maintenance to ensure that a design model remains consistent when parts of it evolve based on description logics formalism in collaboration with Ragnhild Van Der Straeten Vrije Universiteit Brussel for refactoring to ensure that the refactored software preserves the behaviour of the original version based on graph rewriting formalism in collaboration with Serge Demeyer & Dirk Janssens Universiteit Antwerpen 3

4 Service de Génie Logiciel Formal Support for Consistency Maintenance Université de Mons-Hainaut

5 Maintaining consistency of design models Problem statement UML models represent different views of the system design class diagrams, sequence diagrams, state diagrams Inconsistencies can be introduced due to evolution parallel changes made by different persons involved in the design process refinement UML tools provide poor mechanisms for dealing with this problem 5

6 Maintaining consistency of design models Requires 3 kinds of traceability 6

7 Maintaining consistency of design models Extension (profile) of UML metamodel 7

8 Classification of inconsistencies Behavioural Structural 8 Specification specification conflicts Specification - instance conflicts Instance - instance conflicts Invocation inheritance inconsistency Observation inheritance inconsistency Incompatible definition Invocation inheritance inconsistency Observation inheritance inconsistency Incompatible behaviour inconsistency Dangling type reference Inherited association inconsistency Role specification missing Instance specification missing Disconnected model

9 Motivating example Incompatible behaviour inconsistency Sequence of messages in sequence diagram is inconsistent with specification of behaviour represented by protocol state machine it is not possible to find a path in the state machine that corresponds to the order established by the sequence diagram Invocation inheritance consistency any sequence of operations invocable on the superclass can also be invoked on the subclass (Liskov's substitutability principle) 9

10 Motivating example 10

11 Motivating example 11

12 Motivating example Incompatible behaviour inconsistency 12

13 Motivating example Invocation inheritance inconsistency ATM PrintingATM 13

14 Description Logics Formalism 14 a decidable formalism (to detect inconsistencies) detecting inconsistencies requires answering logic queries in a finite time two-variable fragment of first-order predicate logic used to represent information about individuals (i.e., the model): Tbox classes of individuals (i.e., the metamodel): Abox consistency between metamodel and models comes for free staightforward correspondence between UML and DL classes concepts associations roles attributes roles or concrete domain attribute (primitive types) inheritance subsumption mechanism and transitive closure tool support Classic, Loom, Racer,... inconsistencies can be resolved using logic language

15 Construct Description Logics Dialects Tradeoff expressiveness/performance Syntax Language concept A S FL role name (atomic or transitive) R conjunction value restriction existential quantification top bottom negation disjunction existential restriction (E) number restrictions collection of individuals C D R.C R T A C C D R.C ( n R) ( n R) { a1... an } N O AL* role hierarchy R S H 15 inverse role qualified number restriction R ( n R.C) ( n R.C) I Q

16 Description Logics Dialects Tradeoff expressiveness/performance Language FL, AL ALE, ALR, ALER ALC, ALCO, ALCOU, S, ALCOUE, SI SHIN, SHIQ with atomic roles SHIQ with transitive roles Complexity P NP PSpace ExpTime NExpTime 16

17 Description Logics Formalism manual translation of UML metamodel use Tbox to express terminological knowledge (i.e., UML metamodel entities) (LOOM:defrelation namespace :domain ModelElement :range Model :characteristics :single-valued) (LOOM:defrelation ownedelement :is (:inverse namespace)) (LOOM:defconcept Versioned :is Stereotype (:roles (version))) (LOOM:defconcept VersionedElement :is (:and ModelElement Versioned)) 17

18 Description Logics Formalism automatic translation of UML models use ABox to express assertional knowledge (i.e., UML model entities) (create 'ATM class) (tellm (:about ATM (name ATM) (Has-feature getpin) (Has-feature getamountentry)... (Is-parent-of PrintingATM) (IsAbstract false) (In-namespace Class-Diagram))) 18

19 Description Logics Formalism 19 Use logic rules to reason about the knowledge base < Tbox, Abox > E.g. rules for incompatible behaviour inconsistency Collect operations in sequence diagram (retrieve (?stimulus?callaction?operation) (:and (Receiver-of?object?stimulus) (Initiates?stimulus?callaction) (CallAction-operation?callaction?operation))))) Traverse state diagram (defun traverse-statediagram (?from-state?from-name?op-list)... ;starting from a certain?state ;retrieve?operation set corresponding to events on?transition (do-retrieve (?transition?operation?callevent?state) (:and (Is-source-of?from-state?transition) (Triggered-by?transition?callevent) (Is-occurence-of?callevent?operation) (Is-target-of?state?transition) ) (if (equalp?operation?current) (traverse-statediagram?state (get-value?state 'name) (cdr?op- list)) (format t "Incompatible behaviour found at state: ~S~%"?from-name)))))

20 Description Logics Formalism UML models are developed in a CASE tool (Poseidon) exported in XMI format translated into description logics format by an XSLT tool (Saxon) imported in, and analysed with, a logic reasoning engine (Loom, Racer) 20

21 Description Logics Formalism Output results UML(49): (traverse-sm (fi VerifyAccountBalance-SM-1.0) "VerifyAccountBalance" (generate-received-operations (fi anatm-1.0))) Current operation: I CHECKIFCASHAVAILABLE Current operation: I DISPENSECASH Current operation: I EJECTCARD Inconsistency at state: I GIVECASH NIL Need to improve usability integrate in UML tool OCL front-end 21

22 Description Logics Formalism Current work : model refactoring Claim : There is an equivalence between "inheritance consistency" and "evolution consistency" behaviour inheritance consistency between diagrams within the same model preservation of behavioural properties between diagrams in successive model versions C SD1 inheritance consistency evolution C SD1 evolution consistency 22 D SD2

23 Service de Génie Logiciel Formal support for Software Refactoring Université de Mons-Hainaut

24 Software Refactoring Definition Refactoring is the process of changing a software system in such a way that it does not alter the external behavior of the code, yet improves its internal structure [Fowler 1999] Goals Improve the design of software Increase program understanding Detect existing bugs Avoid introducing new bugs Increase productivity Increase maintainability 26

25 Refactoring through graph transformation Feasibility study of formalism based on graphs Expressive representation of program structure and behaviour graph transformation Intuitive representation of software transformation Theoretical results can help during analysis to specify/apply refactorings in a language-independent manner while guaranteeing behaviour preservation 27

26 Refactoring through graph transformation LAN case: Java source code 30 public class Node { public String name; public Node nextnode; public void accept(packet p) { this.send(p); } protected void send(packet p) { System.out.println( name + "sends to" + nextnode.name); nextnode.accept(p); } } public class Printserver extends Node { public void print(packet p) { System.out.println(p.contents); } public void accept(packet p) { if(p.addressee == this) this.print(p); else super.accept(p); } } public class Packet { public String contents; public Node originator; public Node addressee; } public class Workstation extends Node { public void originate(packet p) { p.originator = this; this.send(p); } public void accept(packet p) { if(p.originator == this) System.err.println("no destination"); else super.accept(p); } }

27 Refactoring through graph transformation LAN case: Program structure Directed, labelled, typed graph 31

28 Refactoring through graph transformation LAN case: Program Behaviour Behaviour of class Node use a kind of "extended" abstract syntax tree {System.out.println( name+"sends to"+nextnode.name); nextnode.accept(p);} {this.send(p);} 32

29 Refactoring through graph transformation well-formedness constraints: Type graph graph metamodel cf. UML metamodel a,u c V M P t t,p l m C l p a,u VD m MD e E i e 33

30 Refactoring through graph transformation Well-formedness constraints = forbidden subgraphs WF-1: a class cannot define the same method twice WF-2: a method cannot refer to variables in descendant classes WF-3: a method cannot refer to parameters of other methods C m m MD MD l l m M C V m l m i* a u MD E e* MD 1 2 p P a u MD E e* 34 WF-1 WF-2 WF-3

31 Refactoring through graph transformation 36 Refactoring EncapsulateField Encapsulates public variables and provides accessor methods EncapsulateField(name,String getname(),setname(string)) EncapsulateField(nextNode,Node,getNextNode(),setNextNode(Node)) Precondition: Accessor methods should not be defined in inheritance chain public class Node { public String name; public Node nextnode; public void accept(packet p) { this.send(p); } protected void send(packet p) { System.out.println( name + "sends to" + nextnode.name); nextnode.accept(p); } } public class Node { private String name; private Node nextnode; public String getname() { return this.name; } public void setname(string s) { this.name = s; } public Node getnextnode() { return this.nextnode; } public void setnextnode(node n) { this.nextnode = n; } public void accept(packet p) { this.send(p); } protected void send(packet p) { System.out.println( this.getname() + "sends to" + this.getnextnode().getname()); this.getnextnode().accept(p); } }

32 Refactoring through graph transformation Graph transformation EncapsulateField EncapsulateField(var,getter,setter) Parameterised transformation Embedding mechanism incoming edges var V 1 P 1 outgoing edges (t,1) (t,1), (p,2), (t,3) var V 1 setter M 2 getter M 3 37

33 Refactoring through graph transformation Graph transformation EncapsulateField EncapsulateField(var,getter,setter) Parameterised transformation Embedding mechanism incoming edges (a,1) (c,3) P 2 (u,1) (c,2) outgoing edges (m,0) (m,0), (m,4), (m,5) 38

34 Refactoring through graph transformation Graph transformation EncapsulateField Controlled (programmed) graph rewriting Control the application order of productions Use application preconditions preconditions for EncapsulateField succeed fail P 1 repeat P 2 39

35 Refactoring through graph transformation Graph transformation EncapsulateField Use preconditions To satisfy wf-constraints to satisfy more specific constraints e.g. EncapsulateField should not introduce accessor method names that exist in inheritance chain Express negative preconditions as forbidden graph expressions var V var V m m VD VD l l C C i* i* C C m m MD MD l l getter M getter M 40

36 Refactoring through graph transformation Graph Transformation EncapsulateField Apply transformation to LAN graph EncapsulateField(name,getName,setName) m 41

37 Refactoring through graph transformation Behaviour preservation Access preservation each method body (transitively) accesses at least the same variables as it did before the refactoring Update preservation each method body (transitively) performs at least the same variable updates as it did before the refactoring Call preservation each method body (transitively) performs at least the same method calls as it did before the refactoring 42

38 Refactoring through graph transformation Graph invariant for access preservation MD?*a V EncapsulateField preserves behaviour access preserving: variables remain accessible via transitive closure a e* MD E var V 1 MD e* l VD c l e a E getter M MD 3 5 E 8 var V 1 43

39 Refactoring through graph transformation Graph invariant for update preservation EncapsulateField preserves behaviour update preserving: variables remain updatable via transitive closure MD e* E u var V 1 MD?*u MD e* V l VD c l e u E setter MD MD 2 4 E 7 var V 1 44

40 Refactoring through graph transformation Graph invariant for call preservation MD?*c M MD Trivially fulfilled for EncapsulateField all existing calles are preserved But: new calls are introduced for each variable access/update! l 45

41 Refactoring through graph transformation Graph transformation PullUpMethod PullUpMethod(parent,child,name) affects all subclasses requires controlled graph rewriting parent C 1 child C 2 MD 3 i m l name M 4 P 1 parent C 1 child C 2 MD 3 i l name M 4 m i parent C 1 i C MD 5 m MD 3 3 MD P 2 l 6 l name M 4 i l parent C 1 i C 5 name M 4 46

42 Refactoring through graph transformation Behaviour preservation of PullUpMethod preserves calls, accesses, updates Only if we assume isomorphism between pulled up method definitions in subclasses C MD m l parent C i name M c c a a u u l m C MD 48

43 Refactoring through graph transformation Behaviour preservation of PullUpMethod preserves calls, accesses, updates Requires tracking function to express method equivalence i parent C 1 C 5 i m MD MD P MD 6 l l name M 4 i l name M 4 parent C 1 i C 5 49

44 Refactoring through graph transformation Tool support Specified refactorings in Fujaba Java source code refactor Fujaba Refactoring transfos Check preservation 50

45 Refactoring through graph transformation 51 Conclusion Graph transformation useful for specifying refactorings Language independent Visual, flexible, precise representation Verifying different kinds of preservation But need to manipulate complex graph structures deep copy (push down method), deep move (move method) current-day tools are immature and not scalable Graph Transformation type graph, graph expressions graph invariants negative application conditions parameterised and controlled graph transformation with embedding mechanism Refactoring wf-constraints behaviour preservavtion preconditions transformation

46 Open Research Questions Support for model refactoring (designs / architectures) Other formalisms for refactoring support How to (de)compose refactorings? How to determine where and why to refactor? What is (preservation of) behaviour? real-time systems (time); embedded systems (power & memory); safety critical systems (liveness, ) What are good program invariants? How to express them? What's the effect of refactoring on software quality? complexity, evolvability, performance,... Co-evolution: How to guarantee consistency? code design architecture requirements How is refactoring related to other techniques? design patterns, application frameworks, aspect-oriented programming, generative programming, 52

Formal Support for Model Evolution

Formal Support for Model Evolution Formal Support for Model Evolution Tom Mens http://w3.umh.ac.be/genlog Software Engineering Lab University of Mons-Hainaut Belgium Introduction - Model Evolution More and better tool support needed for

More information

Using Graph Rewriting Models for Object-Oriented Oriented Software Evolution

Using Graph Rewriting Models for Object-Oriented Oriented Software Evolution Using Graph Rewriting Models for Object-Oriented Oriented Software volution om Mens tom.mens@vub.ac.be rogramming echnology ab epartment of Computer Science Vrije Universiteit Brussel Object-oriented software

More information

2nd Belgian-Dutch workshop on Software Evolution

2nd Belgian-Dutch workshop on Software Evolution 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

More information

Detecting Structural Refactoring Conflicts Using Critical Pair Analysis

Detecting Structural Refactoring Conflicts Using Critical Pair Analysis SETra 2004 Preliminary Version Detecting Structural Refactoring Conflicts Using Critical Pair Analysis Tom Mens 1 Software Engineering Lab Université de Mons-Hainaut B-7000 Mons, Belgium Gabriele Taentzer

More information

A formal approach to model refactoring and model refinement

A formal approach to model refactoring and model refinement Softw Syst Model DOI 101007/s10270-006-0025-9 SPECIAL ISSUE PAPER A formal approach to model refactoring and model refinement Ragnhild Van Der Straeten Viviane Jonckers Tom Mens Received: 4 February 2005

More information

A Formal Approach to Model Refactoring and Model Refinement

A Formal Approach to Model Refactoring and Model Refinement Software and Systems Modeling manuscript No. (will be inserted by the editor) A Formal Approach to Model Refactoring and Model Refinement Ragnhild Van Der Straeten, Viviane Jonckers, Tom Mens 2 System

More information

Inconsistency Detection between UML Models Using RACER and nrql

Inconsistency Detection between UML Models Using RACER and nrql Inconsistency Detection between UML Models Using RACER and nrql Ragnhild Van Der Straeten SSEL, Vrije Universiteit Brussel, Pleinlaan 2, Brussels, Belgium rvdstrae@vub.ac.be Abstract An object-oriented

More information

Using Description Logic to Maintain Consistency between UML Models

Using Description Logic to Maintain Consistency between UML Models Using Description Logic to Maintain Consistency between UML Models Ragnhild Van Der Straeten 1, Tom Mens 2, Jocelyn Simmonds 1, and Viviane Jonckers 1 1 Systems and Software Engineering Lab Department

More information

SUMMARY: MODEL DRIVEN SECURITY

SUMMARY: MODEL DRIVEN SECURITY SUMMARY: MODEL DRIVEN SECURITY JAN-FILIP ZAGALAK, JZAGALAK@STUDENT.ETHZ.CH Model Driven Security: From UML Models to Access Control Infrastructres David Basin, Juergen Doser, ETH Zuerich Torsten lodderstedt,

More information

On the Use of Graph Transformations for Model Refactoring

On the Use of Graph Transformations for Model Refactoring On the Use of Graph Transformations for Model Refactoring Tom Mens Service de Génie Logiciel Université de Mons-Hainaut, Belgium tom.mens@umh.ac.be http://w3.umh.ac.be/genlog Abstract. Model-driven software

More information

Copying Subgraphs within Model Repositories

Copying Subgraphs within Model Repositories Copying Subgraphs within Model Repositories Pieter van Gorp, Hans Schippers, Dirk Janssens April 2, 2006 1 / 37 Contents Languages 2 / 37 Outline Languages 3 / 37 : Model Driven Software Engineering Model

More information

Nonstandard Inferences in Description Logics

Nonstandard Inferences in Description Logics Nonstandard Inferences in Description Logics Franz Baader Theoretical Computer Science Germany Short introduction to Description Logics Application in chemical process engineering Non-standard inferences

More information

Towards using OWL DL as a metamodelling framework for ATL

Towards using OWL DL as a metamodelling framework for ATL Towards using OWL DL as a metamodelling framework for ATL Dennis Wagelaar Vrije Universiteit Brussel, Pleinlaan 2, 1050 Brussels, Belgium dennis.wagelaar@vub.ac.be Abstract. Ontologies have become increasingly

More information

Conformance Relations between Business Processes

Conformance Relations between Business Processes Conformance Relations between usiness Processes Ragnhild Van Der Straeten System and Software Engineering Lab Vrije Universiteit russel Pleinlaan 2, 1050 russel, elgium rvdstrae@vub.ac.be bstract. This

More information

l A family of logic based KR formalisms l Distinguished by: l Decidable fragments of FOL l Closely related to Propositional Modal & Dynamic Logics

l A family of logic based KR formalisms l Distinguished by: l Decidable fragments of FOL l Closely related to Propositional Modal & Dynamic Logics What Are Description Logics? Description Logics l A family of logic based KR formalisms Descendants of semantic networks and KL-ONE Describe domain in terms of concepts (classes), roles (relationships)

More information

Description Logic. Eva Mráková,

Description Logic. Eva Mráková, Description Logic Eva Mráková, glum@fi.muni.cz Motivation: ontology individuals/objects/instances ElizabethII Philip Philip, Anne constants in FOPL concepts/classes/types Charles Anne Andrew Edward Male,

More information

Appendix 1. Description Logic Terminology

Appendix 1. Description Logic Terminology Appendix 1 Description Logic Terminology Franz Baader Abstract The purpose of this appendix is to introduce (in a compact manner) the syntax and semantics of the most prominent DLs occurring in this handbook.

More information

Chapter 7. Modular Refactoring. 7.1 Introduction to Modular Refactoring

Chapter 7. Modular Refactoring. 7.1 Introduction to Modular Refactoring Chapter 7 Modular Refactoring I n this chapter, the role of Unified Modeling Language (UML) diagrams and Object Constraint Language (OCL) expressions in modular refactoring have been explained. It has

More information

Appendix 1. Description Logic Terminology

Appendix 1. Description Logic Terminology Appendix 1 Description Logic Terminology Franz Baader Abstract The purpose of this appendix is to introduce (in a compact manner) the syntax and semantics of the most prominent DLs occurring in this handbook.

More information

Formalizing Software Refactoring in the Distributed Environment by aednlc Graph Grammar

Formalizing Software Refactoring in the Distributed Environment by aednlc Graph Grammar Formalizing Software Refactoring in the Distributed Environment by aednlc Graph Grammar Leszek Kotulski, Adrian Nowak Institute of Computer Science, Jagiellonian University Nawojki 11, 30-072 Kraków, Poland

More information

Detecting and Resolving Model Inconsistencies Using Transformation Dependency Analysis

Detecting and Resolving Model Inconsistencies Using Transformation Dependency Analysis Detecting and Resolving Model Inconsistencies Using Transformation Dependency Analysis Tom Mens 1, Ragnhild Van Der Straeten 2, and Maja D Hondt 3 1 Software Engineering Lab, Université de Mons-Hainaut

More information

OWL 2 Profiles. An Introduction to Lightweight Ontology Languages. Markus Krötzsch University of Oxford. Reasoning Web 2012

OWL 2 Profiles. An Introduction to Lightweight Ontology Languages. Markus Krötzsch University of Oxford. Reasoning Web 2012 University of Oxford Department of Computer Science OWL 2 Profiles An Introduction to Lightweight Ontology Languages Markus Krötzsch University of Oxford Reasoning Web 2012 Remark for the Online Version

More information

Implementing evolution: Refactoring

Implementing evolution: Refactoring 2IS55 Software Evolution Sources Implementing evolution: Refactoring Alexander Serebrenik / SET / W&I 17-5-2010 PAGE 1 Last week Problem: changing code is difficult Assignment 6 Deadline: Today Assignment

More information

Description Logics and OWL

Description Logics and OWL Description Logics and OWL Based on slides from Ian Horrocks University of Manchester (now in Oxford) Where are we? OWL Reasoning DL Extensions Scalability OWL OWL in practice PL/FOL XML RDF(S)/SPARQL

More information

Generating JMI model transformation code from UML profile models for SDM Aligning Graph Rewriting with MDA-light

Generating JMI model transformation code from UML profile models for SDM Aligning Graph Rewriting with MDA-light Segravis School on Foundations of Visual Modelling Techniques, May 2004, Schloss Dagstuhl Generating JMI model transformation code from UML profile models for SDM Aligning Graph Rewriting with MDA-light

More information

A Taxonomy of Model Transformation

A Taxonomy of Model Transformation Electronic Notes in Theoretical Computer Science 152 (2006) 125 142 www.elsevier.com/locate/entcs A Taxonomy of Model Transformation Tom Mens 1 Software Engineering Lab Université de Mons-Hainaut Mons,

More information

UML 2.0 State Machines

UML 2.0 State Machines UML 2.0 State Machines Frederic.Mallet@unice.fr Université Nice Sophia Antipolis M1 Formalisms for the functional and temporal analysis With R. de Simone Objectives UML, OMG and MDA Main diagrams in UML

More information

Specifying Coherent Refactoring of Software Artefacts with Distributed Graph Transformations i

Specifying Coherent Refactoring of Software Artefacts with Distributed Graph Transformations i Specifying Coherent Refactoring of Software Artefacts with Distributed Graph Transformations i Paolo Bottoni 1, Francesco Parisi-Presicce 1,2, Gabriele Taentzer 3 1 University of Rome La Sapienza, 2 George

More information

09. Component-Level Design

09. Component-Level Design 09. Component-Level Design Division of Computer Science, College of Computing Hanyang University ERICA Campus 1 st Semester 2017 What is Component OMG UML Specification defines a component as OO view a

More information

Institute of Automatics AGH University of Science and Technology, POLAND. Hybrid Knowledge Engineering.

Institute of Automatics AGH University of Science and Technology, POLAND. Hybrid Knowledge Engineering. Institute of Automatics AGH University of Science and Technology, POLAND Hybrid Knowledge Engineering http://hekate.ia.agh.edu.pl and the process and (AGH-UST) 1 / 57 Outline 1 2 3 4 and the process and

More information

Coping with API Evolution for Running, Mission-Critical Applications Using Virtual Execution Environment

Coping with API Evolution for Running, Mission-Critical Applications Using Virtual Execution Environment Coping with API Evolution for Running, Mission-Critical Applications Using Virtual Execution Environment Bashar Gharaibeh, Tien N. Nguyen, and J. Morris Chang Electrical and Computer Engineering Department

More information

Model Querying with Graphical Notation of QVT Relations

Model Querying with Graphical Notation of QVT Relations Model Querying with Graphical Notation of QVT Relations Dan LI, Xiaoshan LI Faculty of Science and Technology, University of Macau Volker Stolz University of Oslo, Norway Agenda! Motivation! QVT Relations

More information

CHAPTER 9 DESIGN ENGINEERING. Overview

CHAPTER 9 DESIGN ENGINEERING. Overview CHAPTER 9 DESIGN ENGINEERING Overview A software design is a meaningful engineering representation of some software product that is to be built. Designers must strive to acquire a repertoire of alternative

More information

Specifying Coherent Refactoring of Software Artefacts with Distributed Graph Transformations i

Specifying Coherent Refactoring of Software Artefacts with Distributed Graph Transformations i Specifying Coherent Refactoring of Software Artefacts with Distributed Graph Transformations i Paolo Bottoni 1, Francesco Parisi-Presicce 1,2, Gabriele Taentzer 3 1 University of Rome «La Sapienza», 2

More information

Model-Driven Software Refactoring

Model-Driven Software Refactoring Model-Driven Software Refactoring Tom Mens, University of Mons-Hainaut, Belgium, tom.mens@umh.ac.be Gabriele Taentzer, Dirk Müller, Philipps-Universität Marburg, Germany, {taentzer,dmueller}@mathematik.uni-marburg.de

More information

OWL and tractability. Based on slides from Ian Horrocks and Franz Baader. Combining the strengths of UMIST and The Victoria University of Manchester

OWL and tractability. Based on slides from Ian Horrocks and Franz Baader. Combining the strengths of UMIST and The Victoria University of Manchester OWL and tractability Based on slides from Ian Horrocks and Franz Baader Where are we? OWL Reasoning DL Extensions Scalability OWL OWL in practice PL/FOL XML RDF(S)/SPARQL Practical Topics Repetition: DL

More information

Explaining Subsumption in ALEHF R + TBoxes

Explaining Subsumption in ALEHF R + TBoxes Explaining Subsumption in ALEHF R + TBoxes Thorsten Liebig and Michael Halfmann University of Ulm, D-89069 Ulm, Germany liebig@informatik.uni-ulm.de michael.halfmann@informatik.uni-ulm.de Abstract This

More information

Ontologies and the Web Ontology Language OWL

Ontologies and the Web Ontology Language OWL Chapter 7 Ontologies and the Web Ontology Language OWL vocabularies can be defined by RDFS not so much stronger than the ER Model or UML (even weaker: no cardinalities) not only a conceptual model, but

More information

A UML 2 Profile for Variability Models and their Dependency to Business Processes

A UML 2 Profile for Variability Models and their Dependency to Business Processes A UML 2 Profile for Variability Models and their Dependency to Business Processes Birgit Korherr and Beate List Women s Postgraduate College for Internet Technologies Institute of Software Technology and

More information

Ingegneria del Software Corso di Laurea in Informatica per il Management. Introduction to UML

Ingegneria del Software Corso di Laurea in Informatica per il Management. Introduction to UML Ingegneria del Software Corso di Laurea in Informatica per il Management Introduction to UML Davide Rossi Dipartimento di Informatica Università di Bologna Modeling A model is an (abstract) representation

More information

Logik für Informatiker Logic for computer scientists. Ontologies: Description Logics

Logik für Informatiker Logic for computer scientists. Ontologies: Description Logics Logik für Informatiker for computer scientists Ontologies: Description s WiSe 2009/10 Ontology languages description logics (efficiently decidable fragments of first-order logic) used for domain ontologies

More information

Graph transformation-based Refactorings using Fujaba

Graph transformation-based Refactorings using Fujaba Graph transformation-based Refactorings using Fujaba Leif Geiger 1 Software Engineering Group 1, Department of Computer Science and Electrical Engineering, Wilhelmshöher Allee 73, 34121 Kassel, Germany

More information

The TTC 2011 Reengineering Challenge Using MOLA and Higher-Order Transformations

The TTC 2011 Reengineering Challenge Using MOLA and Higher-Order Transformations The TTC 2011 Reengineering Challenge Using MOLA and Higher-Order Transformations Agris Sostaks, Elina Kalnina, Audris Kalnins, Edgars Celms, and Janis Iraids Institute of Computer Science and Mathematics,

More information

SEMANTICS. Retrieval by Meaning

SEMANTICS. Retrieval by Meaning SEMANTICS 1 Retrieval by Meaning Query: "Accident of a Mercedes" Retrieved image: Methods for retrieval by meaning: high-level image understanding beyond state-of-the-art except easy cases natural language

More information

ECE 122. Engineering Problem Solving with Java

ECE 122. Engineering Problem Solving with Java ECE 122 Engineering Problem Solving with Java Lecture 17 Inheritance Overview Problem: Can we create bigger classes from smaller ones without having to repeat information? Subclasses: a class inherits

More information

Applying a Model Transformation Taxonomy to Graph Transformation Technology

Applying a Model Transformation Taxonomy to Graph Transformation Technology Replace this file with prentcsmacro.sty for your meeting, or with entcsmacro.sty for your meeting. Both can be found at the ENTCS Macro Home Page. Applying a Model Transformation Taxonomy to Graph Transformation

More information

OCL Support in MOF Repositories

OCL Support in MOF Repositories OCL Support in MOF Repositories Joachim Hoessler, Michael Soden Department of Computer Science Technical University Berlin hoessler@cs.tu-berlin.de, soden@cs.tu-berlin.de Abstract From metamodels that

More information

Exam in TDDB84: Design Patterns,

Exam in TDDB84: Design Patterns, Exam in TDDB84: Design Patterns, 2014-10-24 14-18 Information Observe the following, or risk subtraction of points: 1) Write only the answer to one task on one sheet. Use only the front side of the sheets

More information

Week 4. COMP62342 Sean Bechhofer, Uli Sattler

Week 4. COMP62342 Sean Bechhofer, Uli Sattler Week 4 COMP62342 Sean Bechhofer, Uli Sattler sean.bechhofer@manchester.ac.uk, uli.sattler@manchester.ac.uk Today Some clarifications from last week s coursework More on reasoning: extension of the tableau

More information

Scenario-based Refactoring Selection

Scenario-based Refactoring Selection BABEŞ-BOLYAI University of Cluj-Napoca Faculty of Mathematics and Computer Science Proceedings of the National Symposium ZAC2014 (Zilele Academice Clujene, 2014), p. 32-41 Scenario-based Refactoring Selection

More information

Case study: Class diagram restructuring

Case study: Class diagram restructuring Case study: Class diagram restructuring K. Lano, S. Kolahdouz-Rahimi Dept. of Informatics, King s College London, Strand, London, UK This case study is an update-in-place refactoring transformation on

More information

Fortgeschrittene objektorientierte Programmierung (Advanced Object-Oriented Programming)

Fortgeschrittene objektorientierte Programmierung (Advanced Object-Oriented Programming) 2014-03-07 Preface Fortgeschrittene objektorientierte Programmierung (Advanced Object-Oriented Programming) Coordinates: Lecturer: Web: Studies: Requirements: No. 185.211, VU, 3 ECTS Franz Puntigam http://www.complang.tuwien.ac.at/franz/foop.html

More information

! model construction

! model construction Logics of Image Interpretation 1 Describing Image Interpretation in Logical Terms In 2D images (with possible occlusions) we never see the complete 3D reality.? deduction! model construction "from the

More information

Challenges in Model Refactoring

Challenges in Model Refactoring Challenges in Model Refactoring Tom Mens, University of Mons-Hainaut, Belgium tom.mens@umh.ac.be Gabriele Taentzer, Dirk Müller, Philipps-Universität Marburg, Germany {taentzer,dmueller}@mathematik.uni-marburg.de

More information

Leveraging UML Profiles to Generate Plugins From Visual Model Transformations

Leveraging UML Profiles to Generate Plugins From Visual Model Transformations Electronic Notes in Theoretical Computer Science 127 (2005) 5 16 www.elsevier.com/locate/entcs Leveraging UML Profiles to Generate Plugins From Visual Model Transformations Hans Schippers, Pieter Van Gorp,

More information

Alloy: A Lightweight Object Modelling Notation

Alloy: A Lightweight Object Modelling Notation Alloy: A Lightweight Object Modelling Notation Daniel Jackson, ACM Transactions on Software Engineering, 2002 Presented By: Steven Stewart, 2012-January-23 1 Alloy: 2002 to present Software is built on

More information

Description Logics Reasoning Algorithms Concluding Remarks References. DL Reasoning. Stasinos Konstantopoulos. IIT, NCSR Demokritos

Description Logics Reasoning Algorithms Concluding Remarks References. DL Reasoning. Stasinos Konstantopoulos. IIT, NCSR Demokritos Stasinos Konstantopoulos 10-3-2006 Overview Description Logics Definitions Some Family Members Reasoning Algorithms Introduction Resolution Calculus Tableau Calculus Concluding Remarks Definitions The

More information

Features and Feature Interactions in Software Engineering using Logic

Features and Feature Interactions in Software Engineering using Logic Features and Feature Interactions in Software Engineering using Logic Ragnhild Van Der Straeten rvdstrae@vub.ac.be System and Software Engineering Lab Vrije Universiteit Brussel, Belgium Johan Brichau

More information

Defining Classes and Methods

Defining Classes and Methods Defining Classes and Methods Chapter 5 Modified by James O Reilly Class and Method Definitions OOP- Object Oriented Programming Big Ideas: Group data and related functions (methods) into Objects (Encapsulation)

More information

Implementing evolution: Refactoring

Implementing evolution: Refactoring 2IS55 Software Evolution Implementing evolution: Refactoring Alexander Serebrenik Sources / SET / W&I 5-6-2012 PAGE 1 Last week How to implement evolution Last week: evolution strategies and decision making

More information

Object-Oriented Design

Object-Oriented Design Object-Oriented Design Lecture 14: Design Workflow Department of Computer Engineering Sharif University of Technology 1 UP iterations and workflow Workflows Requirements Analysis Phases Inception Elaboration

More information

Extended Example: Discrete Event Simulation

Extended Example: Discrete Event Simulation Extended Example: Discrete Event Simulation 1 Introduction This chapter shows by way of an extended example how objects and higher-order functions can be combined in interesting ways. The task is to design

More information

AI Fundamentals: Knowledge Representation and Reasoning. Maria Simi

AI Fundamentals: Knowledge Representation and Reasoning. Maria Simi AI Fundamentals: Knowledge Representation and Reasoning Maria Simi Description logics LESSON 6: SYNTAX AND SEMANTICS, DECISION PROBLEMS, INFERENCE Categories and objects [AIMA, Cap 12] Most of the reasoning

More information

UNIT II. Syllabus. a. An Overview of the UML: Visualizing, Specifying, Constructing, Documenting

UNIT II. Syllabus. a. An Overview of the UML: Visualizing, Specifying, Constructing, Documenting UNIT II Syllabus Introduction to UML (08 Hrs, 16 Marks) a. An Overview of the UML: Visualizing, Specifying, Constructing, Documenting b. Background, UML Basics c. Introducing UML 2.0 A Conceptual Model

More information

Chapter 8: Class and Method Design

Chapter 8: Class and Method Design Chapter 8: Class and Method Design Objectives Become familiar with coupling, cohesion, and connascence. Be able to specify, restructure, and optimize object designs. Be able to identify the reuse of predefined

More information

Index. Index. More information. block statements 66 y 107 Boolean 107 break 55, 68 built-in types 107

Index. Index. More information. block statements 66 y 107 Boolean 107 break 55, 68 built-in types 107 A abbreviations 17 abstract class 105 abstract data types 105 abstract method 105 abstract types 105 abstraction 92, 105 access level 37 package 114 private 115 protected 115 public 115 accessors 24, 105

More information

Contents Contents 1 Introduction Entity Types... 37

Contents Contents 1 Introduction Entity Types... 37 1 Introduction...1 1.1 Functions of an Information System...1 1.1.1 The Memory Function...3 1.1.2 The Informative Function...4 1.1.3 The Active Function...6 1.1.4 Examples of Information Systems...7 1.2

More information

Racer - An Inference Engine for the Semantic Web

Racer - An Inference Engine for the Semantic Web Racer - An Inference Engine for the Semantic Web Concordia University Department of Computer Science and Software Enineering http://www.cse.concordia.ca/~haarslev/ Collaboration with: Ralf Möller, Hamburg

More information

Software Engineering Fall 2014

Software Engineering Fall 2014 Software Engineering Fall 2014 (CSC 4350/6350) Mon.- Wed. 5:30 pm 7:15 pm ALC : 107 Rao Casturi 11/03/2014 Re Cap - Object Design Close the gap between the application objects and the off-the shelf components.

More information

The Legacy Bridge Problem. Douglas Lyon and Chris Huntley

The Legacy Bridge Problem. Douglas Lyon and Chris Huntley The Legacy Bridge Problem by Douglas Lyon and Chris Huntley Abstract We present a way to automate the reuse of legacy systems without multiple-inheritance, copying source code, accessing existing code

More information

Overview of Eclipse Lectures. Module Road Map

Overview of Eclipse Lectures. Module Road Map Overview of Eclipse Lectures 1. Overview 2. Installing and Running 3. Building and Running Java Classes 4. Refactoring Lecture 2 5. Debugging 6. Testing with JUnit 7. Version Control with CVS 1 Module

More information

Chap 6. Test Models and Strategies

Chap 6. Test Models and Strategies Chap 6. Test Models and Strategies 6.2 State-based Testing 1. Introduction 2. State Transition Diagram 3. Transition Test Strategy 1 1. Introduction -State-based testing relies on the construction of a

More information

Directives for Composing Aspect-Oriented Design Class Models

Directives for Composing Aspect-Oriented Design Class Models Directives for Composing Aspect-Oriented Design Class Models Y. R. Reddy, S. Ghosh, R. B. France, G. Straw, J. M. Bieman, N. McEachen, E. Song, G. Georg Contact Email: ghosh@cs.colostate.edu Computer Science

More information

Process and data flow modeling

Process and data flow modeling Process and data flow modeling Vince Molnár Informatikai Rendszertervezés BMEVIMIAC01 Budapest University of Technology and Economics Fault Tolerant Systems Research Group Budapest University of Technology

More information

Chapter 5 Object-Oriented Programming

Chapter 5 Object-Oriented Programming Chapter 5 Object-Oriented Programming Develop code that implements tight encapsulation, loose coupling, and high cohesion Develop code that demonstrates the use of polymorphism Develop code that declares

More information

BPMN2BPEL transformation with Fujaba - a Case Study

BPMN2BPEL transformation with Fujaba - a Case Study BPMN2BPEL transformation with Fujaba - a Case Study Ruben Jubeh SE, Kassel University Wilhelmshöher Allee 73 34121 Kassel ruben.jubeh@uni-kassel.de ABSTRACT We have modeled a BPMN to BPEL synthesis transformation

More information

OMG Modeling Glossary B

OMG Modeling Glossary B OMG Modeling Glossary B This glossary defines the terms that are used to describe the Unified Modeling Language (UML) and the Meta Object Facility (MOF). In addition to UML and MOF specific terminology,

More information

Object Oriented Programming is a programming method that combines: Advantage of Object Oriented Programming

Object Oriented Programming is a programming method that combines: Advantage of Object Oriented Programming Overview of OOP Object Oriented Programming is a programming method that combines: a) Data b) Instructions for processing that data into a self-sufficient object that can be used within a program or in

More information

Refactorings. Refactoring. Refactoring Strategy. Demonstration: Refactoring and Reverse Engineering. Conclusion

Refactorings. Refactoring. Refactoring Strategy. Demonstration: Refactoring and Reverse Engineering. Conclusion Refactorings Refactoring What is it? Why is it necessary? Examples Tool support Refactoring Strategy Code Smells Examples of Cure Demonstration: Refactoring and Reverse Engineering Refactor to Understand

More information

Evolving Software. CMSC 433 Programming Language Technologies and Paradigms Spring Example. Some Motivations for This Refactoring

Evolving Software. CMSC 433 Programming Language Technologies and Paradigms Spring Example. Some Motivations for This Refactoring CMSC 433 Programming Language Technologies and Paradigms Spring 2007 Refactoring April 24, 2007 Lots of material taken from Fowler, Refactoring: Improving the Design of Existing Code 1 Evolving Software

More information

Reasoning and Query Answering in Description Logics

Reasoning and Query Answering in Description Logics Reasoning and Query Answering in Description Logics Magdalena Ortiz Vienna University of Technology AMW School, 20 May 2013 1/117 Reasoning and Querying in DLs 1. Motivation Ontologies An ontology is a

More information

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

MDD with OMG Standards MOF, OCL, QVT & Graph Transformations 1 MDD with OMG Standards MOF, OCL, QVT & Graph Transformations Andy Schürr Darmstadt University of Technology andy. schuerr@es.tu-darmstadt.de 20th Feb. 2007, Trento Outline of Presentation 2 Languages

More information

OO Design Principles

OO Design Principles OO Design Principles Software Architecture VO (706.706) Roman Kern Institute for Interactive Systems and Data Science, TU Graz 2018-10-10 Roman Kern (ISDS, TU Graz) OO Design Principles 2018-10-10 1 /

More information

Java Object Oriented Design. CSC207 Fall 2014

Java Object Oriented Design. CSC207 Fall 2014 Java Object Oriented Design CSC207 Fall 2014 Design Problem Design an application where the user can draw different shapes Lines Circles Rectangles Just high level design, don t write any detailed code

More information

Administrivia. Programming Language Fall Example. Evolving Software. Project 3 coming out Midterm October 28. Refactoring October 14, 2004

Administrivia. Programming Language Fall Example. Evolving Software. Project 3 coming out Midterm October 28. Refactoring October 14, 2004 CMSC 433 Programming Language Fall 2004 Project 3 coming out Midterm October 28 Administrivia Refactoring October 14, 2004 Lots of material taken from Fowler, Refactoring: Improving the Design of Existing

More information

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

A Rule-Based Change Impact Analysis Approach in Software Architecture for Requirements Changes A Rule-Based Change Impact Analysis Approach in Software Architecture for Requirements Changes ARDA GOKNIL 1, IVAN KURTEV 2, KLAAS VAN DEN BERG 3 1 SnT Centre, University of Luxembourg, Luxembourg 2 Altran,

More information

Theorem proving. PVS theorem prover. Hoare style verification PVS. More on embeddings. What if. Abhik Roychoudhury CS 6214

Theorem proving. PVS theorem prover. Hoare style verification PVS. More on embeddings. What if. Abhik Roychoudhury CS 6214 Theorem proving PVS theorem prover Abhik Roychoudhury National University of Singapore Both specification and implementation can be formalized in a suitable logic. Proof rules for proving statements in

More information

Refactoring-aware Configuration Management for Object-Oriented Programs

Refactoring-aware Configuration Management for Object-Oriented Programs Refactoring-aware Configuration Management for Object-Oriented Programs Danny Dig, Kashif Manzoor, Ralph Johnson University of Illinois at Urbana-Champaign {dig, manzoor2, rjohnson@uiuc.edu Tien N. Nguyen

More information

Compositional Model Based Software Development

Compositional Model Based Software Development Compositional Model Based Software Development Prof. Dr. Bernhard Rumpe http://www.se-rwth.de/ Seite 2 Our Working Groups and Topics Automotive / Robotics Autonomous driving Functional architecture Variability

More information

XRay Views: Understanding the Internals of Classes

XRay Views: Understanding the Internals of Classes XRay Views: Understanding the Internals of Classes Gabriela Arévalo, Stéphane Ducasse, Oscar Nierstrasz Software Composition Group University of Bern (Switzerland) {arevalo, ducasse, oscar}@iam.unibe.ch

More information

COMP 401 Spring 2013 Midterm 1

COMP 401 Spring 2013 Midterm 1 COMP 401 Spring 2013 Midterm 1 I have not received nor given any unauthorized assistance in completing this exam. Signature: Name: PID: Please be sure to put your PID at the top of each page. This page

More information

Beyond the Refactoring Browser: Advanced Tool Support for Software Refactoring

Beyond the Refactoring Browser: Advanced Tool Support for Software Refactoring Beyond the Refactoring Browser: Advanced Tool Support for Software Refactoring Tom Mens Tom Tourwé Francisca Muñoz Programming Technology Lab Vrije Universiteit Brussel Pleinlaan 2, 1050 Brussel, Belgium

More information

A Formalism for Automated Verification of Model Transformations

A Formalism for Automated Verification of Model Transformations Magyar Kutatók 10. Nemzetközi Szimpóziuma 10 th International Symposium of Hungarian Researchers on Computational Intelligence and Informatics A Formalism for Automated Verification of Model Transformations

More information

Modeling multidimensional database

Modeling multidimensional database Modeling multidimensional database Author: Dhananjay Patil Organization: Evaltech, Inc. Evaltech Research Group, Data Warehousing Practice. Date: 07/02/04 Email: erg@evaltech.com Abstract: The Purpose

More information

Towards 2D Traceability

Towards 2D Traceability Towards 2D Traceability in a platform for Contract Aware Visual Transformations with Tolerated Inconsistencies Pieter Van Gorp pieter.vangorp@ua.ac.be Frank Altheide frank.altheide@gmail.com Dirk Janssens

More information

Object-Oriented Design

Object-Oriented Design Object-Oriented Design Lecturer: Raman Ramsin Lecture 10: Analysis Packages 1 Analysis Workflow: Packages The analysis workflow consists of the following activities: Architectural analysis Analyze a use

More information

Model-Driven Development of Reactive Information Systems

Model-Driven Development of Reactive Information Systems Software Tools for Technology Transfer manuscript No. (will be inserted by the editor) Model-Driven Development of Reactive Information Systems From Graph Transformation Rules to JML Contracts Reiko Heckel

More information

Distributed Systems Recitation 1. Tamim Jabban

Distributed Systems Recitation 1. Tamim Jabban 15-440 Distributed Systems Recitation 1 Tamim Jabban Office Hours Office 1004 Tuesday: 9:30-11:59 AM Thursday: 10:30-11:59 AM Appointment: send an e-mail Open door policy Java: Object Oriented Programming

More information

FINE-GRAIN TRANSFORMATIONS FOR REFACTORING EMMAD I. M. SAADEH THESIS

FINE-GRAIN TRANSFORMATIONS FOR REFACTORING EMMAD I. M. SAADEH THESIS FINE-GRAIN TRANSFORMATIONS FOR REFACTORING By EMMAD I. M. SAADEH THESIS Submitted in partial fulfillment of the requirements for the degree of Philosophiae Doctor (Computer Science) in the Faculty of Engineering,

More information

Knowledge Engineering with Semantic Web Technologies

Knowledge Engineering with Semantic Web Technologies This file is licensed under the Creative Commons Attribution-NonCommercial 3.0 (CC BY-NC 3.0) Knowledge Engineering with Semantic Web Technologies Lecture 3 Ontologies and Logic 3.7 Description Logics

More information