Software Wartung und Evolution Modeling History with Metamodels. Harald Gall Institut für Informatik Universität Zürich

Size: px
Start display at page:

Download "Software Wartung und Evolution Modeling History with Metamodels. Harald Gall Institut für Informatik Universität Zürich"

Transcription

1 Software Wartung und Evolution Modeling with Metamodels Harald Gall Institut für Informatik Universität Zürich

2 Modeling to Understand Software Evolution 2007, Tudor Gîrba

3 Context: Reverse engineering is creating high level views of the system Requirements Analysis Design Time Implementation Tudor Gîrba 3/47

4 Context: holds useful information for reverse engineering The doctor always looks at my health file Historical information is useful but, it is hidden among huge amounts of data n N versions means N times more data The more data the more techniques are needed to analyze it Tudor Gîrba 4/47

5 Context: Many techniques were developed Trend analysis [Lehman et al. 01] Evolution patterns [Lanza, Ducasse 02] Co-change analysis [Gall etal. 03] Authors analysis [Eick et al. 02] Tudor Gîrba 5/47

6 Problem: Current approaches rely on ad-hoc models or on too specific meta-models Trend analysis [Lehman etal. 01] Evolution patterns [Lanza, Ducasse 02] Research question: How can we build a generic meta-model? Co-change analysis [Gall etal. 03] Authors analysis [Eick etal. 02] Tudor Gîrba 6/47

7 Overview Hismo Hismo: Modeling Applications Historical measurements Yesterday s Weather -based Detection Strategies Hierarchy evolution Co-change patterns Ownership Map Tudor Gîrba 7/47

8 Example: Evolution Matrix reveals different evolution patterns [Lanza, Ducasse 02] Pulsar Class Idle Class Thesis: NOM Polymetric view White Dwarf Class Supernova Class Evolution needs to be modeled as a first class entity Class NOA versions Tudor Gîrba 8/47

9 Solution: encapsulates and characterizes the evolution Pulsar Class Idle Class Class White Dwarf Class ispulsar isidle Supernova Class versions Tudor Gîrba 9/47

10 Hismo: The history meta-model System System Class Class Tudor Gîrba 10/47

11 but, what about relationships? System System Inheritance Inheritance Class Class Tudor Gîrba 11/47

12 Hismo is obtained by transforming the structural meta-model Tudor Gîrba 12/47

13 Overview Application: measurements Hismo Applications Historical measurements Yesterday s Weather -based Detection Strategies Hierarchy evolution Co-change patterns Ownership Map Tudor Gîrba 13/47

14 Problem: holds useful information hidden among large amounts of data How much was a class changed? When was a class changed? Tudor Gîrba 14/47

15 can be measured: How much was a class changed? Evolution of Number of Methods n ENOM(C)= NOM i (C)-NOM i-1 (C) i=2 ENOM(C)= = Tudor Gîrba 15/47

16 can be measured: When was a class changed? Latest Evolution of Number of Methods Earliest Evolution of Number of Methods n LENOM(C)= NOM i (C)-NOM i-1 (C) 2 i - n i=2 n EENOM(C)= i=2 NOM i (C)-NOM i-1 (C) i LENOM(C)= = EENOM(C)= = Tudor Gîrba 16/47

17 measurements compress aspects of the evolution into numbers ENOM LENOM EENOM A B C D E Tudor Gîrba 17/47

18 measurements compress aspects of the evolution into numbers ENOM LENOM EENOM A Balanced changer B Late changer C D Dead stable E Early changer Tudor Gîrba 18/47

19 Many measurements can be defined at different levels of abstraction Evolution Latest/Earliest Evolution Stability Historical Max/Min Historical Average Growth Trend of Number of Methods Number of Statements Cyclomatic Complexity Lines of Code Number of Classes Number of modules But measurements are a means not a goal Tudor Gîrba 19/47

20 Overview Application: Yesterday s Weather Hismo Applications Historical measurements Yesterday s Weather -based Detection Strategies Hierarchy evolution Co-change patterns Ownership Map Tudor Gîrba 20/47

21 Common Wisdom: The recently changed parts are likely to change in the near future Is the common wisdom relevant? [Mens,Demeyer 01] Yesterday s Weather metaphor: It expresses the chances of having the same weather today as we had yesterday It is location specific Switzerland - 30% Sahara - 90% Tudor Gîrba 21/47

22 Yesterday s Weather: For each given version we check the common wisdom Past Late Changers Future Early Changers YesterdayWeatherHit(present): past:=histories.toplenom(start, present) future:=histories.topeenom(present, end) past.intersectwith(future).notempty() hit Past versions Present version Future versions Tudor Gîrba 22/47

23 Overall Yesterday s Weather shows the localization of changes in time hit hit hit hit hit hit hit hit hit hit YW = 3 hits 8 possible hits = 37% YW = 7 hits 8 possible hits = 87% Case studies: 40 versions of CodeCrawler (180 classes): 100% 40 versions of Jun (700 classes): 79% 40 versions of Jboss (4000 classes): 53% Tudor Gîrba 23/47

24 Overview Application: -based Detection Strategies Hismo Applications Historical measurements Yesterday s Weather -based Detection Strategies Hierarchy evolution Co-change patterns Ownership Map Tudor Gîrba 24/47

25 Context: Detection Strategies detect design flaws based on measurements [Marinescu 04] Example: God Class Maintainability problem because it encapsulates a lot of knowledge Class ATFD > 40 Class WMC > 75 Class TCC < 0.2 Class NOA > 20 AND AND OR God Class Tudor Gîrba 25/47

26 -based Detection Strategies take evolution into account Example: a Stable God Class is not necessarily a bad one Last God Class Stability > 95% AND Stable God Class Case study: 5 out of 24 God Classes in Jun were stable and harmless Tudor Gîrba 26/47

27 Overview Application: Characterizing the evolution of class hierarchies Hismo Applications Historical measurements Yesterday s Weather -based Detection Strategies Hierarchy evolution Co-change patterns Ownership Map Tudor Gîrba 27/47

28 Context: Given the evolution of a hierarchy A A A A A B C B C B C B B D D D E time A is persistent B is stable C was removed E is newborn D inherited from C and then from A Tudor Gîrba 28/47

29 but useful information is hidden among large amounts of data How were the hierarchies evolved? Tudor Gîrba 29/47

30 Hierarchy Evolution Complexity View characterizes class hierarchy histories ENOM C A B ENOS Age Removed Class D E Age Removed Inheritance A is persistent B is stable C was removed E is newborn D inherited from C and then from A Tudor Gîrba 30/47

31 Case study: Class hierarchies in Jun reveal evolution patterns Young Unstable root Reliable inheritance Persistent Unbalanced Stable Reliable inheritance Newborn Old Stable Balanced Reliable inheritance Old Unstable Unbalanced Unreliable inheritance Tudor Gîrba 31/47

32 Overview Application: Detecting co-change patterns Hismo Applications Historical measurements Yesterday s Weather -based Detection Strategies Hierarchy evolution Co-change patterns Ownership Map Tudor Gîrba 32/47

33 Context: Repeated co-changes reveal hidden dependencies [Gall etal. 98] A v1 v2 v3 v4 v5 v6 B C D Can we identify co-change patterns like: Parallel Inheritance Shotgun Surgery? E Tudor Gîrba 33/47

34 Formal Concept Analysis (FCA) finds elements that have properties in common [Ganter, Wille 99] A B P1 P2 P3 P4 P5 P6 (A,D,E) (P2) (A,B,C,D,E) () (A,B,C,D) (P6) C FCA (D,E) (P2,P4) (A,D) (P2,P6) (A,B,C) (P5,P6) D (D) (P2,P4,P6) (A) (P2,P5,P6) (C) (P3,P5,P6) E To use FCA, we need to map our interests on elements and properties () (P1,P2,P3,P4,P5,P6) Tudor Gîrba 34/47

35 Formal Concept Analysis (FCA) finds elements that have properties in common [Ganter, Wille 99] A B P1 P2 P3 P4 P5 P6 (A,D,E) (P2) (A,B,C,D,E) () (A,B,C,D) (P6) C FCA (D,E) (P2,P4) (A,D) (P2,P6) (A,B,C) (P5,P6) D (D) (P2,P4,P6) (A) (P2,P5,P6) (C) (P3,P5,P6) E To use FCA, we need to map our interests on elements and properties () (P1,P2,P3,P4,P5,P6) Tudor Gîrba 35/47

36 We use FCA to identify entities that co-changed repeatedly A B v1 v2 v3 v4 v5 v6 (A,D,E) (v2) (A,B,C,D,E) () (A,B,C,D) (v6) C FCA (D,E) (v2,v4) (A,D) (v2,v6) (A,B,C) (v5,v6) D (D) (v2,v4,v6) (A) (v2,v5,v6) (C) (v3,v5,v6) E Elements = Histories Properties = changed in version X () (v1,v2,v3,v4,v5,v6) Tudor Gîrba 36/47

37 Example: Parallel inheritance denotes children added in several hierarchies v1 v2 v3 v4 v5 v6 A Case study: JBoss A A A A A A ServiceMBeanSupport JBossTestCase 14 versions EJBLocalHome EJBLocalObject 9 versions Elements = ClassHistories Properties = changed number of children in version X Tudor Gîrba 37/47

38 Overview Application: Ownership map Hismo Applications Historical measurements Yesterday s Weather -based Detection Strategies Hierarchy evolution Co-change patterns Ownership Map Tudor Gîrba 38/47

39 Context: The code history might tell you what happened, but not why it happened Case study: Outsight [Rysselberghe, Demeyer 04] files Who is responsible for this? time Tudor Gîrba 39/47

40 We color the lines to show which author owned which files in which period Green author large commit Green author ownership File A File B Blue author small commit Tudor Gîrba 40/47

41 The commit history shows what happened Tudor Gîrba 41/47

42 Ownership Map shows which author owned which files in which period Tudor Gîrba 42/47

43 We cluster the file histories to favor colored blocks inside each module We use the Hausdorf distance between the commit timestamps d(a, B) = min 2 { a - b b B } a A A B Tudor Gîrba 43/47

44 Ownership Map on alphabetically ordered files is not very useful, but Tudor Gîrba 44/47

45 The ordered Ownership Map reveals developer patterns Edit Takeover Monologue Familiarization Dialogue Tudor Gîrba 45/47

46 Overview Implementation: Hismo Applications Both Hismo and its applications are implemented in one single infrastructure Historical measurements Yesterday s Weather -based Detection Strategies Hierarchy evolution Co-change patterns Ownership Map Tudor Gîrba 46/47

47 Implementation: All tools are integrated into Moose Van CodeCrawler ConAn Chronia Moose Model repository Extensible meta-model Integration mechanism Tudor Gîrba 47/47

48 Conclusion: Hismo offers a uniform way of expressing evolution analyses Hismo Applications Questions? Historical measurements Yesterday s Weather -based Detection Strategies Hierarchy evolution Co-change patterns Ownership Map Tudor Gîrba 48/47

49 Hismo: is a sequence of s, where a adds the notion of time to Snapshot 1 * * 1 Snapshot date: Date Class Class Class Method Method Method Tudor Gîrba 49/47

50 The techniques are orthogonal to the type of data Node = class Edge = inheritance Node = Class Edge = Inheritance Tudor Gîrba 50/47

51 Entity identity: Are two entities at different points in time the versions of the same history? The current versioning systems record snapshots What are the names? ver 1 ver 2 What are the properties? What we would like Preserve the identity in the environment Record changes as they happen Tudor Gîrba 51/47

Visualizing and Characterizing the Evolution of Class Hierarchies

Visualizing and Characterizing the Evolution of Class Hierarchies Visualizing and Characterizing the Evolution of Class Hierarchies Tudor Gîrba and Michele Lanza Software Composition Group University of Berne Switzerland {girba, lanza}@iam.unibe.ch Abstract Analyzing

More information

Using Concept Analysis to Detect Co-Change Patterns

Using Concept Analysis to Detect Co-Change Patterns Using Concept Analysis to Detect Co-Change Patterns In Proceedings of International Workshop on Principles of Software Evolution (IWPSE 2007) Tudor Gîrba Software Composition Group University of Bern Radu

More information

Software Metrics and Problem Detection

Software Metrics and Problem Detection Software Metrics and Problem Detection Oscar Nierstrasz Yuriy Tymchuk Selected material by Mircea Lungu Roadmap > Software Metrics Size / Complexity Metrics Quality Metrics > Metric-Based Problem Detection

More information

How Developers Drive Software Evolution

How Developers Drive Software Evolution How Developers Drive Software Evolution Masterarbeit der Philosophisch-naturwissenschaftlichen Fakultät der Universität Bern vorgelegt von Mauricio Seeberger January 2006 Supervised by Prof. Dr. Oscar

More information

Restructuring. What is restructuring? Tudor Gîrba Reengineering life cycle. What? forward engineering. reverse engineering

Restructuring. What is restructuring? Tudor Gîrba   Reengineering life cycle. What? forward engineering. reverse engineering Restructuring Tudor Gîrba www.tudorgirba.com Reengineering life cycle Reengineering... is the examination and alteration of a subject system to reconstitute it in a new form and the subsequent implementation

More information

Software Bugs and Evolution: A Visual Approach to Uncover Their Relationship

Software Bugs and Evolution: A Visual Approach to Uncover Their Relationship Software Bugs and Evolution: A Visual Approach to Uncover Their Relationship Marco D Ambros and Michele Lanza Faculty of Informatics University of Lugano, Switzerland Abstract Versioning systems such as

More information

Design Quality Assessment in Practice

Design Quality Assessment in Practice Design Quality Assessment in Practice my two hats... Radu Marinescu radum@cs.upt.ro Associate Professor since 006 Co-Founder and Head since 003 http://www.intooitus.com/ Co-Founder (008) Assessment with

More information

Software Design & Evolution. Lecture 04. You cannot control what you cannot measure. Metrics & Problem Detection. Michele Lanza

Software Design & Evolution. Lecture 04. You cannot control what you cannot measure. Metrics & Problem Detection. Michele Lanza Software Design & Evolution Lecture 04 Michele Lanza Metrics & Problem Detection Metrics? Don t trust them Michele Lanza & Radu Marinescu Object-Oriented Metrics in Practice Using Software Metrics to Characterize,

More information

Detecting and Visualizing Phases in Software Evolution

Detecting and Visualizing Phases in Software Evolution Detecting and Visualizing Phases in Software Evolution Diplomarbeit der Philosophisch-naturwissenschaftlichen Fakultät der Universität Bern vorgelegt von Thomas Bühler October 2004 Supervised by: Prof.

More information

What and Why? Reverse Engineering. I. First Contact: the Forces. The Reengineering Life-Cycle

What and Why? Reverse Engineering. I. First Contact: the Forces. The Reengineering Life-Cycle What and Why? Reverse Engineering Definition Reverse Engineering is the process of analyzing a subject system! to identify the system s components and their interrelationships and! create representations

More information

Churrasco: Supporting Collaborative Software Evolution Analysis

Churrasco: Supporting Collaborative Software Evolution Analysis Churrasco: Supporting Collaborative Software Evolution Analysis Marco D Ambros a, Michele Lanza a a REVEAL @ Faculty of Informatics - University of Lugano, Switzerland Abstract Analyzing the evolution

More information

Software Visualization Applied S. Ducasse rmod.lille.inria.fr / stephane.ducasse.free.fr

Software Visualization Applied S. Ducasse rmod.lille.inria.fr / stephane.ducasse.free.fr Software Visualization Applied S. Ducasse rmod.lille.inria.fr / stephane.ducasse.free.fr Working on more than program visualization... Code analysis Software metrics Quality model Dynamic analysis Refactorings

More information

What can we learn from version control systems?

What can we learn from version control systems? 2IS55 Software Evolution What can we learn from version control systems? Alexander Serebrenik Assignment 2: Feedback # mean std. dev A1 13 3.23 0.725 A2 15 3.2 1.08 Likes: Coding as opposed to report writing

More information

What can we learn from version control systems?

What can we learn from version control systems? 2IS55 Software Evolution What can we learn from version control systems? Alexander Serebrenik Assignments Assignment 4: Deadline: April 6 Questions? Assignment 5: Published on Peach Deadline: April 20

More information

Published in: Proceedings of International Workshop on Principles of Software Evolution (IWPSE 2007)

Published in: Proceedings of International Workshop on Principles of Software Evolution (IWPSE 2007) University of Groningen A Small Observatory for Super-Repositories Lungu, Micea-Filip; Gîrba, Tudor Published in: Proceedings of International Workshop on Principles of Software Evolution (IWPSE 2007)

More information

3 Analysing Software Repositories to Understand Software Evolution

3 Analysing Software Repositories to Understand Software Evolution 3 Analysing Software Repositories to Understand Software Evolution Marco D Ambros 1, Harald C. Gall 2, Michele Lanza 1, and Martin Pinzger 2 1 Faculty of Informatics, University of Lugano, Switzerland

More information

Visualizing Feature Interaction in 3-D

Visualizing Feature Interaction in 3-D Visualizing Feature Interaction in 3-D Orla Greevy 1, Michele Lanza 2 and Christoph Wysseier 1 1 Software Composition Group - University of Berne - Switzerland 2 Faculty of Informatics, University of Lugano

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

Interactive 3-D Visualization of Feature-traces

Interactive 3-D Visualization of Feature-traces Interactive 3-D Visualization of Feature-traces Master Thesis Philosophisch-naturwissenschaftlichen Fakultät der Universität Bern vorgelegt von Christoph Wysseier November 2005 Leiter der Arbeit: Prof.

More information

Commit 2.0. Marco D Ambros, Michele Lanza. Romain Robbes. ABSTRACT

Commit 2.0. Marco D Ambros, Michele Lanza. Romain Robbes. ABSTRACT Commit 2.0 Marco D Ambros, Michele Lanza REVEAL @ Faculty of Informatics University of Lugano, Switzerland {marco.dambros, michele.lanza}@usi.ch Romain Robbes University of Chile Chile romain.robbes@gmail.com

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

SANER 17. Klagenfurt, Austria

SANER 17. Klagenfurt, Austria SANER 17 Klagenfurt, Austria Carol V. Alexandru, Sebastiano Panichella, Harald C. Gall Software Evolution and Architecture Lab University of Zurich, Switzerland {alexandru,panichella,gall}@ifi.uzh.ch 22.02.2017

More information

Understanding software evolution using a combination of software visualization and software metrics

Understanding software evolution using a combination of software visualization and software metrics Understanding software evolution using a combination of software visualization and software metrics Michele Lanza Stéphane Ducasse Software Composition Group University of Berne, Switzerland lanza@iam.unibe.ch,

More information

Enriching Reverse Engineering with Feature Analysis

Enriching Reverse Engineering with Feature Analysis Enriching Reverse Engineering with Feature Analysis Inauguraldissertation der Philosophisch-naturwissenschaftlichen Fakultät der Universität Bern vorgelegt von Orla Greevy von Irland Leiter der Arbeit:

More information

Software Modeling and Analysis. 1. Introduction. Oscar Nierstrasz. Documentation. Extract. Analyze. Process data. Software model.

Software Modeling and Analysis. 1. Introduction. Oscar Nierstrasz. Documentation. Extract. Analyze. Process data. Software model. Software Modeling and Analysis 1. Introduction Oscar Nierstrasz Documentation Process data Extract Software model Analyze Programs Run-time data Reports Instrument Roadmap > Overview > Laws of Software

More information

Change-based Software Evolution

Change-based Software Evolution Change-based Software Evolution Romain Robbes and Michele Lanza Faculty of Informatics University of Lugano, Switzerland Abstract Software evolution research is limited by the amount of information available

More information

Moose for Java Enterprise Application

Moose for Java Enterprise Application Moose for Java Enterprise Application Perin Fabrizio SCG - Software Composition Group Institut für Informatik und Angewandte Mathematik University of Bern, Switzerland 18/03/10 Revision History Date Ver.

More information

Software Archaeology - Reconstructing the Evolution of Software Systems

Software Archaeology - Reconstructing the Evolution of Software Systems POLITECNICO DI MILANO Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Software Archaeology - Reconstructing the Evolution of Software Systems Relatore: Prof. Carlo

More information

Characterizing the Functional Roles of Classes and Methods by Analyzing Feature Traces

Characterizing the Functional Roles of Classes and Methods by Analyzing Feature Traces Characterizing the Functional Roles of Classes and Methods by Analyzing Feature Traces Orla Greevy and Stéphane Ducasse Software Composition Group University of Bern, Switzerland {greevy, ducasse}@iam.unibe.ch

More information

Testing and Migration

Testing and Migration Testing and Migration Tudor Gîrba www.tudorgirba.com Reengineering... is the examination and alteration of a subject system to reconstitute it in a new form and the subsequent implementation of the new

More information

M-REFACTOR: A New Approach and Tool for Model Refactoring

M-REFACTOR: A New Approach and Tool for Model Refactoring M-REFACTOR: A New Approach and Tool for Model Refactoring 1 Maddeh Mohamed, 2 Mohamed Romdhani, 3 Khaled GHEDIRA 1,3 SOIE, Ecole Nationale des Sciences de l Informatique Campus Universitaire Manouba -

More information

Distributed and Collaborative Software Evolution Analysis with Churrasco

Distributed and Collaborative Software Evolution Analysis with Churrasco Distributed and Collaborative Software Evolution Analysis with Churrasco Marco D Ambros a, Michele Lanza a a REVEAL @ Faculty of Informatics - University of Lugano, Switzerland Abstract Analyzing the evolution

More information

Visualizing Live Software Systems in 3D

Visualizing Live Software Systems in 3D Visualizing Live Software Systems in 3D Orla Greevy 1, Michele Lanza 2 and Christoph Wysseier 3 1 Software Composition Group - University of Berne, Switzerland 2 Faculty of Informatics - University of

More information

BugMaps-Granger: A Tool for Causality Analysis between Source Code Metrics and Bugs

BugMaps-Granger: A Tool for Causality Analysis between Source Code Metrics and Bugs BugMaps-Granger: A Tool for Causality Analysis between Source Code Metrics and Bugs Cesar Couto, Pedro Pires, Marco Tulio Valente, Roberto Bigonha, Andre Hora, Nicolas Anquetil To cite this version: Cesar

More information

The Evolution and Impact of Code Smells: A Case Study of Two Open Source Systems

The Evolution and Impact of Code Smells: A Case Study of Two Open Source Systems The Evolution and Impact of Code Smells: A Case Study of Two Open Source Systems Steffen Olbrich Dept. of Computer Sciences, University of Applied Sciences, Mannheim, Germany solbrich@gmail.com Daniela

More information

Lecture 24 Software Visualization and Metrics Polymetric Views. EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim

Lecture 24 Software Visualization and Metrics Polymetric Views. EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim Lecture 24 Software Visualization and Metrics Polymetric Views Today s Agenda (1) Discussion on Practical Applications of Software Evolution Research Concern Graph Delta Debugging Regression Test Selection

More information

Technical Metrics for OO Systems

Technical Metrics for OO Systems Technical Metrics for OO Systems 1 Last time: Metrics Non-technical: about process Technical: about product Size, complexity (cyclomatic, function points) How to use metrics Prioritize work Measure programmer

More information

MEASURE YOUR CODE USING CODE METRICS. CS 599 Software Metrics and Models Hana Alarifi

MEASURE YOUR CODE USING CODE METRICS. CS 599 Software Metrics and Models Hana Alarifi MEASURE YOUR CODE USING CODE METRICS CS 599 Software Metrics and Models Hana Alarifi Overview Quality code is the top priority for a good developer. The code must be not only bug free code but also understandable,

More information

Evolizer A Platform for Software Evolution Analysis and Research

Evolizer A Platform for Software Evolution Analysis and Research Evolizer A Platform for Software Evolution Analysis and Research Michael Würsch, Harald C. Gall University of Zurich Department of Informatics software evolution & architecture lab Friday, April 23, 200

More information

Measuring fine-grained change in software: towards modification-aware change metrics

Measuring fine-grained change in software: towards modification-aware change metrics Measuring fine-grained change in software: towards modification-aware change metrics Daniel M. German Abram Hindle Software Engineering Group Department fo Computer Science University of Victoria Abstract

More information

An Approach to Software Evolution BasedonSemanticChange

An Approach to Software Evolution BasedonSemanticChange An Approach to Software Evolution BasedonSemanticChange Romain Robbes, Michele Lanza, and Mircea Lungu Faculty of Informatics University of Lugano, Switzerland Abstract. The analysis of the evolution of

More information

Reproducible moldable interactions

Reproducible moldable interactions Reproducible moldable interactions Master Thesis Mario Kaufmann from Thun BE, Switzerland Philosophisch-naturwissenschaftlichen Fakultät der Universität Bern April 2018 Prof. Dr. Oscar Nierstrasz Dr. Andrei

More information

6 Detection of Architecturally-Relevant Code Anomalies with Architectural-Sensitive Information

6 Detection of Architecturally-Relevant Code Anomalies with Architectural-Sensitive Information 6 Detection of Architecturally-Relevant Code Anomalies with Architectural-Sensitive Information Chapters 4 and 5 discussed how code anomalies (Fowler et al., Chapter 3) can be related to architectural

More information

Visually Localizing Design Problems with Disharmony Maps

Visually Localizing Design Problems with Disharmony Maps Visually Localizing Design Problems with Disharmony Maps Richard Wettel and Michele Lanza REVEAL @ Faculty of Informatics - University of Lugano, Switzerland Abstract Assessing the quality of software

More information

A Systematic Review of Bad Smells Metrics. Luiz Paulo Coelho Ferreira

A Systematic Review of Bad Smells Metrics. Luiz Paulo Coelho Ferreira A Systematic Review of Bad Smells Metrics Luiz Paulo Coelho Ferreira Motivation One of the main goals in Software Engineering is to transform software development in a process predictable and controlled.

More information

Software Visualization. Mircea Lungu

Software Visualization. Mircea Lungu Software Visualization Mircea Lungu John Snow! The lines on the buildings are proportional to the number of deaths due to cholera from those buildings.! Do you know how did Snow realize which was the cause

More information

ACICE-2013 ISSN: ; e-issn

ACICE-2013 ISSN: ; e-issn A comparative study on different object oriented metrics D.J.SAMATHA NAIDU 1, P.CHITTI BABU 2 1 MCA Department, Annamacharya PG College of Computer Studies, Rajampet, Kadapa,India 2 MCA Department, Annamacharya

More information

Beyond Language Independent Object-Oriented Metrics: Model Independent Metrics

Beyond Language Independent Object-Oriented Metrics: Model Independent Metrics Beyond Language Independent Object-Oriented Metrics: Model Independent Metrics Michele Lanza lanza@iam.unibe.ch Software Composition Group Universitá di Berna, Svizzera Stéphane Ducasse ducasse@iam.unibe.ch

More information

Blazo Nastov. Journée des doctorant, Nîmes, France 19 June 2014

Blazo Nastov. Journée des doctorant, Nîmes, France 19 June 2014 Apport de l Ingénierie des Langages de Modélisation à l Ingénierie Système Basée sur les Modèles : conception d une méthode outillée pour la génération de Langages Métier interopérables, analysables et

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

The LAN-simulation: A Refactoring Teaching Example

The LAN-simulation: A Refactoring Teaching Example The LAN-simulation: A Refactoring Teaching Example Serge Demeyer, Filip Van Rysselberghe, Tudor Gîrba, Jacek Ratzinger, Radu Marinescu, Tom Mens, Bart Du Bois, Dirk Janssens, Stéphane Ducasse, Michele

More information

Data Warehouses Chapter 12. Class 10: Data Warehouses 1

Data Warehouses Chapter 12. Class 10: Data Warehouses 1 Data Warehouses Chapter 12 Class 10: Data Warehouses 1 OLTP vs OLAP Operational Database: a database designed to support the day today transactions of an organization Data Warehouse: historical data is

More information

Lecture 21. Regression Testing Path Spectra. EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim

Lecture 21. Regression Testing Path Spectra. EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim Lecture 21 Regression Testing Path Spectra Today s Agenda (1) Regression Test Selection Path Spectra Presentation by David (skeptic) Presentation by Sidd (advocate) Presentation by Srinivas (skeptic) Today

More information

Knowledge Discovery in Databases II Summer Term 2017

Knowledge Discovery in Databases II Summer Term 2017 Ludwig Maximilians Universität München Institut für Informatik Lehr und Forschungseinheit für Datenbanksysteme Knowledge Discovery in Databases II Summer Term 2017 Lecture 3: Sequence Data Lectures : Prof.

More information

Support for Static Concept Location with sv3d

Support for Static Concept Location with sv3d Support for Static Concept Location with sv3d Xinrong Xie, Denys Poshyvanyk, Andrian Marcus Department of Computer Science Wayne State University Detroit Michigan 48202 {xxr, denys, amarcus}@wayne.edu

More information

Evolutionary and collaborative software architecture recovery with Softwarenaut Lungu, Mircea; Lanza, Michele; Nierstrasz, Oscar

Evolutionary and collaborative software architecture recovery with Softwarenaut Lungu, Mircea; Lanza, Michele; Nierstrasz, Oscar University of Groningen Evolutionary and collaborative software architecture recovery with Softwarenaut Lungu, Mircea; Lanza, Michele; Nierstrasz, Oscar Published in: Science of computer programming DOI:

More information

Designing and debugging real-time distributed systems

Designing and debugging real-time distributed systems Designing and debugging real-time distributed systems By Geoff Revill, RTI This article identifies the issues of real-time distributed system development and discusses how development platforms and tools

More information

CS:2820 (22C:22) Object-Oriented Software Development

CS:2820 (22C:22) Object-Oriented Software Development The University of Iowa CS:2820 (22C:22) Object-Oriented Software Development! Spring 2015 Software Complexity by Cesare Tinelli Complexity Software systems are complex artifacts Failure to master this

More information

Application of Relation Analysis to a Small Java Software

Application of Relation Analysis to a Small Java Software Application of Relation Analysis to a Small Java Software Minna Hillebrand Jonne Itkonen Vesa Lappalainen Department of Mathematical Information Technology University of Jyväskylä Finland E-mail: {mmhilleb

More information

Software Evolution from the Field: An Experience Report from the Squeak Maintainers

Software Evolution from the Field: An Experience Report from the Squeak Maintainers Software Evolution from the Field: An Experience Report from the Squeak Maintainers Marcus Denker SCG University of Berne Switzerland Stéphane Ducasse LISTIC Université de Savoie France Roadmap > A little

More information

Model Driven Development Unified Modeling Language (UML)

Model Driven Development Unified Modeling Language (UML) Model Driven Development Unified Modeling Language (UML) An Overview UML UML is a modeling notation standardized by OMG (proposal 1997, ver.1.1 in 1998, ver. 2.0 in 2004) now in 2.4.1 mature based on notations

More information

Patterns in Software Engineering

Patterns in Software Engineering Patterns in Software Engineering Lecturer: Raman Ramsin Lecture 14 Reengineering Patterns Part 2 1 Reengineering Patterns: Detecting Duplicated Code 2 Detecting Duplicated Code: Compare Code Mechanically

More information

Reverse Engineering with Logical Coupling

Reverse Engineering with Logical Coupling Reverse Engineering with Logical Coupling Marco D Ambros, Michele Lanza - Faculty of Informatics - University of Lugano Switzerland 13th Working Conference on Reverse Engineering October 23-27, 2006, Benevento,

More information

Interactive Exploration of Semantic Clusters

Interactive Exploration of Semantic Clusters Interactive Exploration of Semantic Clusters In proceedings of the International Workshop on Visualizing Software for Understanding and Analysis (VISSOFT 2005) Mircea Lungu 1, Adrian Kuhn 2, Tudor Gîrba

More information

Object Oriented Metrics. Impact on Software Quality

Object Oriented Metrics. Impact on Software Quality Object Oriented Metrics Impact on Software Quality Classic metrics Lines Of Code Function points Complexity Code coverage - testing Maintainability Index discussed later Lines of Code KLOC = 1000 Lines

More information

Tool Support for Refactoring Duplicated OO Code

Tool Support for Refactoring Duplicated OO Code Tool Support for Refactoring Duplicated OO Code Stéphane Ducasse and Matthias Rieger and Georges Golomingi Software Composition Group, Institut für Informatik (IAM) Universität Bern, Neubrückstrasse 10,

More information

Improving Evolvability through Refactoring

Improving Evolvability through Refactoring Improving Evolvability through Refactoring Jacek Ratzinger, Michael Fischer Vienna University of Technology Institute of Information Systems A-1040 Vienna, Austria {ratzinger,fischer}@infosys.tuwien.ac.at

More information

Mining Social Network Graphs

Mining Social Network Graphs Mining Social Network Graphs Analysis of Large Graphs: Community Detection Rafael Ferreira da Silva rafsilva@isi.edu http://rafaelsilva.com Note to other teachers and users of these slides: We would be

More information

A Study of Bad Smells in Code

A Study of Bad Smells in Code International Journal for Science and Emerging ISSN No. (Online):2250-3641 Technologies with Latest Trends 7(1): 16-20 (2013) ISSN No. (Print): 2277-8136 A Study of Bad Smells in Code Gurpreet Singh* and

More information

Enriching Reverse Engineering with Annotations

Enriching Reverse Engineering with Annotations Enriching Reverse Engineering with Annotations Masterarbeit der Philosophisch-naturwissenschaftlichen Fakultät der Universität Bern vorgelegt von Andrea Brühlmann im April 2008 Leiter der Arbeit Prof.

More information

Use of Model Driven Engineering in Building Generic FCA/RCA Tools

Use of Model Driven Engineering in Building Generic FCA/RCA Tools Use of Model Driven Engineering in Building Generic FCA/RCA Tools J.-R. Falleri 1, G. Arévalo 2, M. Huchard 1, and C. Nebut 1 1 LIRMM, CNRS and Université de Montpellier 2, 161, rue Ada, 34392 Montpellier

More information

Recovering the Evolution of Object Oriented Software Systems Using a Flexible Query Engine

Recovering the Evolution of Object Oriented Software Systems Using a Flexible Query Engine Recovering the Evolution of Object Oriented Software Systems Using a Flexible Query Engine Diplomarbeit der Philosophisch-naturwissenschaftlichen Fakultät der Universität Bern vorgelegt von Lukas Steiger

More information

Stacks, Queues & Trees. The Stack Interface. The Stack Interface. Harald Gall, Prof. Dr.

Stacks, Queues & Trees. The Stack Interface. The Stack Interface. Harald Gall, Prof. Dr. Stacks, Queues & Trees Harald Gall, Prof. Dr. Institut für Informatik Universität Zürich http://seal.ifi.uzh.ch The Stack Interface Stack Data structure holding several items. New items added to the top

More information

Run-Time Information Visualization for Understanding Object-Oriented Systems

Run-Time Information Visualization for Understanding Object-Oriented Systems Run-Time Information Visualization for Understanding Object-Oriented Systems Roland Bertuli I3S Laboratory Sophia-Antipolis, France bertuli@essi.fr Stéphane Ducasse Software Composition Group University

More information

Applying Semantic Analysis to Feature Execution Traces

Applying Semantic Analysis to Feature Execution Traces Applying Semantic Analysis to Feature Execution Traces Adrian Kuhn, Orla Greevy and Tudor Gîrba Software Composition Group University of Bern, Switzerland {akuhn, greevy, girba}@iam.unibe.ch Abstract Recently

More information

Maintainability and Agile development. Author: Mika Mäntylä

Maintainability and Agile development. Author: Mika Mäntylä Maintainability and Agile development Author: Mika Mäntylä ISO 9126 Software Quality Characteristics Are the required functions available in the software? How easy is it to

More information

Purpose, features and functionality

Purpose, features and functionality Topic 6 Purpose, features and functionality In this topic you will look at the purpose, features, functionality and range of users that use information systems. You will learn the importance of being able

More information

Software Evolution. Dr. James A. Bednar. With material from

Software Evolution. Dr. James A. Bednar.  With material from Software Evolution Dr. James A. Bednar jbednar@inf.ed.ac.uk http://homepages.inf.ed.ac.uk/jbednar With material from Massimo Felici, Conrad Hughes, and Perdita Stevens SAPM Spring 2012: Evolution 1 Software

More information

A STABLE MODELING OF LARGE PLANT ECOSYSTEMS

A STABLE MODELING OF LARGE PLANT ECOSYSTEMS ICCVG 2002 Zakopane, 25-29 Sept. 2002 Bedřich Beneš ITESM Campus Ciudad de México, Mexico City beda@campus.ccm.itesm.mx A STABLE MODELING OF LARGE PLANT ECOSYSTEMS Abstract. The focus of this paper is

More information

vrealize Operations Manager User Guide

vrealize Operations Manager User Guide vrealize Operations Manager User Guide vrealize Operations Manager 6.5 This document supports the version of each product listed and supports all subsequent versions until the document is replaced by a

More information

Research Article An Empirical Study of the Effect of Power Law Distribution on the Interpretation of OO Metrics

Research Article An Empirical Study of the Effect of Power Law Distribution on the Interpretation of OO Metrics ISRN Software Engineering Volume 213, Article ID 198937, 18 pages http://dx.doi.org/1.1155/213/198937 Research Article An Empirical Study of the Effect of Power Law Distribution on the Interpretation of

More information

ARiSA First Contact Analysis

ARiSA First Contact Analysis ARiSA First Contact Analysis Applied Research In System Analysis - ARiSA You cannot control what you cannot measure Tom DeMarco Software Grail Version 1.3 Programming Language Java 1.4 Date 2 nd of December,

More information

Repository Mining: Social Aspects

Repository Mining: Social Aspects 2IS55 Software Evolution Repository Mining: Social Aspects Alexander Serebrenik Assignment Assignment 2: I m still grading it. So far: min = 3, max = 9 Assignment 3: Published on Peach Deadline: March

More information

Evolving of Monitoring and Control System MICREX-VieW XX (Double X)

Evolving of Monitoring and Control System MICREX-VieW XX (Double X) Evolving of Monitoring and Control System MICREX-VieW XX (Double X) NAGATSUKA, Kazuhito SATO, Yoshikuni SASANO, Kisaburo A B S T R A C T The small-and medium-scale monitoring and control system MICREX-VieW

More information

2.1 Ethics in an Information Society

2.1 Ethics in an Information Society 2.1 Ethics in an Information Society Did you ever hear the old warning, "Just because you can, doesn't mean you should?" Well, a lot of things are possible on the Internet nowadays, but that doesn't mean

More information

Towards Better Understanding of Software Quality Evolution Through Commit Impact Analysis

Towards Better Understanding of Software Quality Evolution Through Commit Impact Analysis Towards Better Understanding of Software Quality Evolution Through Commit Impact Analysis Sponsor: DASD(SE) By Mr. Pooyan Behnamghader 5 th Annual SERC Doctoral Students Forum November 7, 2017 FHI 360

More information

vrealize Operations Manager User Guide Modified on 17 AUG 2017 vrealize Operations Manager 6.6

vrealize Operations Manager User Guide Modified on 17 AUG 2017 vrealize Operations Manager 6.6 vrealize Operations Manager User Guide Modified on 17 AUG 2017 vrealize Operations Manager 6.6 vrealize Operations Manager User Guide You can find the most up-to-date technical documentation on the VMware

More information

Rediffmail Enterprise High Availability Architecture

Rediffmail Enterprise High Availability Architecture Rediffmail Enterprise High Availability Architecture Introduction Rediffmail Enterprise has proven track record of 99.9%+ service availability. Multifold increase in number of users and introduction of

More information

Are you Really Helped by Upstream Kernel Code?

Are you Really Helped by Upstream Kernel Code? Are you Really Helped by Upstream Kernel Code? 1 HISAO MUNAKATA RENESAS SOLUTIONS CORP hisao.munakata.vt(at)renesas.com who am I Working for Renesas (semiconductor) 2 Over 15 years real embedded Linux

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

An experience report on using code smells detection tools

An experience report on using code smells detection tools Università degli Studi di Milano Bicocca DISCo Dipartimento di Informatica, Sistemistica e Comunicazione Francesca Arcelli Fontana, Elia Mariani Andrea Morniroli, Raul Sormani, Alberto Tonello RefTest

More information

Software Reengineering P1: Intro & Organization. Martin Pinzger Delft University of Technology

Software Reengineering P1: Intro & Organization. Martin Pinzger Delft University of Technology Software Reengineering P1: Intro & Organization Martin Pinzger Delft University of Technology Greenfield software development 2 Non-greenfield software development? 3 How often did you...... encounter

More information

Conceptual Model for a Software Maintenance Environment

Conceptual Model for a Software Maintenance Environment Conceptual Model for a Software Environment Miriam. A. M. Capretz Software Engineering Lab School of Computer Science & Engineering University of Aizu Aizu-Wakamatsu City Fukushima, 965-80 Japan phone:

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

Readings and References. Virtual Memory. Virtual Memory. Virtual Memory VPN. Reading. CSE Computer Systems December 5, 2001.

Readings and References. Virtual Memory. Virtual Memory. Virtual Memory VPN. Reading. CSE Computer Systems December 5, 2001. Readings and References Virtual Memory Reading Chapter through.., Operating System Concepts, Silberschatz, Galvin, and Gagne CSE - Computer Systems December, Other References Chapter, Inside Microsoft

More information

Data warehouse architecture consists of the following interconnected layers:

Data warehouse architecture consists of the following interconnected layers: Architecture, in the Data warehousing world, is the concept and design of the data base and technologies that are used to load the data. A good architecture will enable scalability, high performance and

More information

The FAMOOS Object-Oriented Reengineering Handbook

The FAMOOS Object-Oriented Reengineering Handbook The FAMOOS Object-Oriented Reengineering Handbook http://www.iam.unibe.ch/ famoos/handbook/ Holger Bär, Markus Bauer Oliver Ciupke, Serge Demeyer Stéphane Ducasse, Michele Lanza Radu Marinescu, Robb Nebbe

More information

Object Model. Object Orientated Analysis and Design. Benjamin Kenwright

Object Model. Object Orientated Analysis and Design. Benjamin Kenwright Object Model Object Orientated Analysis and Design Benjamin Kenwright Outline Submissions/Quizzes Review Object Orientated Programming Concepts (e.g., encapsulation, data abstraction,..) What do we mean

More information

CocoViz: Towards Cognitive Software Visualizations

CocoViz: Towards Cognitive Software Visualizations CocoViz: Towards Cognitive Software Visualizations Sandro Boccuzzo, Harald Gall Department of Informatics, University of Zurich {boccuzzo, gall}@ifi.unizh.ch Abstract Understanding software projects is

More information

PRIMARY-BACKUP REPLICATION

PRIMARY-BACKUP REPLICATION PRIMARY-BACKUP REPLICATION Primary Backup George Porter Nov 14, 2018 ATTRIBUTION These slides are released under an Attribution-NonCommercial-ShareAlike 3.0 Unported (CC BY-NC-SA 3.0) Creative Commons

More information