Visualizing Software Evolution in Lagrein Andrejs Jermakovics, Alberto Sillitti, Raimund Moser, Giancarlo Succi

Slides:



Advertisements
Similar presentations
SOFTWARE MAINTENANCE 24 March 2013 William W. McMillan.
Advertisements

R2PL, Pittsburgh November 10, 2005 Copyright © Fraunhofer IESE 2005 Analyzing the Product Line Adequacy of Existing Components Jens Knodel
Benjamin J. Deaver Advisor – Dr. LiGuo Huang Department of Computer Science and Engineering Southern Methodist University.
OORPT Object-Oriented Reengineering Patterns and Techniques 7. Problem Detection Prof. O. Nierstrasz.
Contents Introduction Requirements Engineering Project Management
Software engineering for real-time systems
© S. Demeyer, S. Ducasse, O. Nierstrasz Duplication.1 7. Problem Detection Metrics  Software quality  Analyzing trends Duplicated Code  Detection techniques.
Dr Kettani, Spring 2002 Software Engineering IIFrom Sommerville, 6th edition Software change l Managing the processes of software system change.
Contents Introduction Requirements Engineering Project Management Software Design Detailed Design and Coding Quality Assurance.
Object-Oriented Metrics
PVK-HT061 Contents Introduction Requirements Engineering Project Management Software Design Detailed Design and Coding Quality Assurance Software Maintenance.
PVK-Ht061 Contents Introduction Requirements Engineering Project Management Software Design Detailed Design and Coding Quality Assurance Maintenance.
© Copyright Eliyahu Brutman Programming Techniques Course.
An Introduction to Software Visualization Dr. Jonathan I. Maletic Software DevelopMent Laboratory Department of Computer Science Kent State University.
Galin, SQA from theory to implementation © Pearson Education Limited Chapter 13 CASE Tools and their Effect on Software Quality.
Configuration Management
Software maintenance Managing the processes of system change.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Chapter 27 Software Change.
Software Reengineering 2003 년 12 월 2 일 최창익, 고광 원.
Software Re-engineering
1 Software Maintenance and Evolution CSSE 575: Session 8, Part 2 Analyzing Software Repositories Steve Chenoweth Office Phone: (812) Cell: (937)
Software evolution. Objectives l To explain why change is inevitable if software systems are to remain useful l To discuss software maintenance and maintenance.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 1 Refactoring.
Das SCCH ist eine Initiative der Das SCCH befindet sich im Empirical Evaluation of Strategies to Detect Logical Change Dependencies SOFSEM 2010 Günter.
Chapter 3: Software Maintenance Process Omar Meqdadi SE 3860 Lecture 3 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Reviewing Recent ICSE Proceedings For:.  Defining and Continuous Checking of Structural Program Dependencies  Automatic Inference of Structural Changes.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Software change l Managing the processes of software system change.
Basic Concepts Software Architecture. What is Software Architecture? Definition: – A software architecture is the set of principal design decisions about.
©Ian Sommerville 2004 Software Engineering. Chapter 21Slide 1 Chapter 21 Software Evolution.
Object Oriented Reverse Engineering JATAN PATEL. What is Reverse Engineering? It is the process of analyzing a subject system to identify the system’s.
Distributed Information Systems. Motivation ● To understand the problems that Web services try to solve it is helpful to understand how distributed information.
An Automatic Software Quality Measurement System.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution 1.
CSc 461/561 Information Systems Engineering Lecture 5 – Software Metrics.
Software Architecture Evaluation Methodologies Presented By: Anthony Register.
Chapter 2: Software Maintenance Omar Meqdadi SE 3860 Lecture 2 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Review of Parnas’ Criteria for Decomposing Systems into Modules Zheng Wang, Yuan Zhang Michigan State University 04/19/2002.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
Object-Oriented (OO) estimation Martin Vigo Gabriel H. Lozano M.
Software change Software change is inevitable –New requirements emerge when the software is used –The business environment changes –Errors must be repaired.
Presented by Lu Xiao Drexel University Quantifying Architectural Debt.
© SERG Reverse Engineering (Software Maintenance & Reengineering) Software Maintenance Managing the processes of system change.
CASE Tools and their Effect on Software Quality
Exploring Software Evolution Using Spectrographs Jingwei Wu, Richard C. Holt, Ahmed Hassan School of Computer Science University of Waterloo Waterloo ON.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini XVI. Software Evolution.
Object Oriented Systems Design
Software Metrics 1.
Object-Oriented Software Engineering Using UML, Patterns, and Java,
Computer Aided Software Engineering (CASE)
Software Engineering and Best Practices
Introduction to Software Engineering: Second Edition
Software Engineering PPT By :Dr. R. Mall.
Software Maintenance PPT By :Dr. R. Mall.
Design Metrics Software Engineering Fall 2003
Design Metrics Software Engineering Fall 2003
INFS 6225 Object-Oriented Systems Analysis & Design
CSC 480 Software Engineering
Tools of Software Development
Predicting Fault-Prone Modules Based on Metrics Transitions
CS 350 – Software Design An Introduction to Design Patterns – Chapter 5 A proposition behind design patterns is that quality of software systems can be.
Chapter 8 Software Evolution.
Software Metrics SAD ::: Fall 2015 Sabbir Muhammad Saleh.
Rapid software development
TECHNICAL PAPER PRESENTATION By: Srihitha Yerabaka
SOFTWARE DEVELOPMENT LIFE CYCLE
Testing, Inspection, Walkthrough
Introduction Software maintenance:
Software Re-engineering and Reverse Engineering
SeeSoft A Visualization Tool..
CSCI 360: Software Architecture & Design
Presentation transcript:

Visualizing Software Evolution in Lagrein Andrejs Jermakovics, Alberto Sillitti, Raimund Moser, Giancarlo Succi Center of Applied Software Engineering Free University of Bozen-Bolzano

Outline Introduction Background Single version visualizations Evolution visualizations

Introduction Why visualize software? Improve understanding New people in organisation A lot of code Detect problems (easier) Overly large/complex parts Highly coupled parts/With many concerns Violations of architecture (dep. cycles) Candidates for refactoring/testing

Introduction Why visualize software? Keep track Quality Effort distribution Re-engineering Retrieve design Communicate

Introduction Why visualize software evolution? Improve understanding Studying how software evolved (history) Understand the impact of accumulated changes See tendency Identify "drift" in the architecture Track/monitor quality Increases in complexity, size, couplings Spot patterns Repetitions, fluctuations Detect logical couplings – often modified together (clones, co-maintainable parts)

Background Why study software evolution? Identify change-prone parts of your systems Must be better designed Identify fault-prone/vulnerable parts of your system Must be better tested Must be maintained Identify artifacts that tend to change together Impact analysis Maintaining cloned code Change propagation on crosscutting concerns

Background Approaches Classical: Chart [Lehman97]

Background Approaches Comparing 2 versions [SeeSoft] [GASE]

Background Approaches Many Different Hard to compare Specific purpose

Background Approaches Evolution Matrix [Lanza01]

Background General problems Scalability Loss of details Trade-off Approaches Levels of granularity Aggregation Perspectives

Visualization in Lagrein Project visualizations Polymetric views [Lanza03] Switching, customizing, interacting, selecting granularity Using software metrics LOC, NOM, NOA, WMC, CBO, LCOM, RFC,... Spot trends and outliers

Visualization in Lagrein Project visualizations Dependency view Polymetric Selectable granularity Spring layout algorithm Grouping/clustering Dependencies: Calls Inheritance Same package

Visualization in Lagrein Data source – PROM (PRO Metrics)

SW Evolution in Lagrein The Obvious Version/Release chart Polymetric Aggregated metrics Evolution Matrix

SW Evolution in Lagrein Gradient Shows history/age Combined with any view Spot patterns (stable, grows, fluctuates) Enables comparisons of change speed

SW Evolution in Lagrein Animated polymetric views Seeing change In metrics In structure (additions) Seeing trends Tracking individual classes, packages Full control navigation

SW Evolution in Lagrein Animated polymetric views Dependency view Reusing previous layout (faster, smoother) Updating strengths Adding new classes close to neighbours (less movements) Observable change at system level and entity level

Critique Need to know what looking for (somewhat) Scalability Difficult to evaluate Computationally expensive

Thank you! Questions Comments Suggestions