Lucian Voinea Visualizing the Evolution of Code The Visual Code Navigator (VCN) Nunspeet, 24.11.2008.

Slides:



Advertisements
Similar presentations
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software processes 2.
Advertisements

1 Program Slicing Purvi Patel. 2 Contents Introduction What is program slicing? Principle of dependences Variants of program slicing Slicing classifications.
Metrics for Process and Projects
4.1.5 System Management Background What is in System Management Resource control and scheduling Booting, reconfiguration, defining limits for resource.
Alternate Software Development Methodologies
© S. Demeyer, S. Ducasse, O. Nierstrasz Reverse Engineering.1 2. Reverse Engineering What and Why Setting Direction  Most Valuable First First Contact.
The Experience Factory May 2004 Leonardo Vaccaro.
Hiperspace Lab University of Delaware Antony, Sara, Mike, Ben, Dave, Sreedevi, Emily, and Lori.
Introduction to Software Evolution and Maintenance
SWE Introduction to Software Engineering
Software Evolution Visualization Lucian Voinea.
Ch9: Software Engineering Tools and Environments.
Software maintenance Managing the processes of system change.
Software engineering on semantic web and cloud computing platform Xiaolong Cui Computer Science.
Knowledge Science & Engineering Institute, Beijing Normal University, Analyzing Transcripts of Online Asynchronous.
Software Construction and Evolution - CSSE 375 Reverse Engineering and Reengineering Approaches Shawn & Steve In long-term software developments, the “elephant.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
A Comparative Analysis of the Efficiency of Change Metrics and Static Code Attributes for Defect Prediction Raimund Moser, Witold Pedrycz, Giancarlo Succi.
LÊ QU Ố C HUY ID: QLU OUTLINE  What is data mining ?  Major issues in data mining 2.
1 CSE 2102 CSE 2102 CSE 2102: Introduction to Software Engineering Ch9: Software Engineering Tools and Environments.
Objectives of the Lecture
Rational Unified Process Fundamentals Module 4: Disciplines II.
Chapter 1 Software and Software Engineering. A Quick Quiz 1. What percentage of large projects have excess schedule pressure? 25% 50% 75% 100% 2. What.
GCSE OCR 3 A451 Computing Professional standards
Presented by Abirami Poonkundran.  Introduction  Current Work  Current Tools  Solution  Tesseract  Tesseract Usage Scenarios  Information Flow.
Sharad Oberoi and Susan Finger Carnegie Mellon University DesignWebs: Towards the Creation of an Interactive Navigational Tool to assist and support Engineering.
Software Quality Assurance in Neuroinformatics H Jeremy Bockholt NITRC Grantee Meeting.
Experience with Using a Performance Predictor During Development a Distributed Storage System Tale Lauro Beltrão Costa *, João Brunet +, Lile Hattori #,
HCI in Software Process Material from Authors of Human Computer Interaction Alan Dix, et al.
CHAPTER TEN AUTHORING.
Jump to first page (c) 1999, A. Lakhotia 1 Software engineering? Arun Lakhotia University of Louisiana at Lafayette Po Box Lafayette, LA 70504, USA.
1 Experience-Driven Process Improvement Boosts Software Quality © Software Quality Week 1996 Experience-Driven Process Improvement Boosts Software Quality.
Principles and Techniques of Evolutionary Architecture Rebecca Parsons Chief Technology Officer ThoughtWorks.
DEV-05: Ratcheting up your OpenEdge™ Development Productivity Sunil S Belgaonkar Principal Software Engineer.
© 2012 xtUML.org Bill Chown – Mentor Graphics Model Driven Engineering.
Design Management: a Collabortive Design Solution ECMFA 2013 Montpellier, France Maged Elaasar (Presenter) Senior Software Engineer, IBM
Lecture 5: Writing the Project Documentation Part III.
SEMINAR WEI GUO. Software Visualization in the Large.
Object Oriented Reverse Engineering JATAN PATEL. What is Reverse Engineering? It is the process of analyzing a subject system to identify the system’s.
CSSE 375 Software Construction and Evolution: More SCM, and a loop back to Feathers! Shawn and Steve Left – On big systems, SCM is a well-defined process.
Lecture 14 Maintaining the System and Managing Software Change SFDV Principles of Information Systems.
WEB MINING. In recent years the growth of the World Wide Web exceeded all expectations. Today there are several billions of HTML documents, pictures and.
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University IWPSE 2003 Program.
Software Maintenance Speaker: Jerry Gao Ph.D. San Jose State University URL: Sept., 2001.
Introduction to Interactive Media Interactive Media Tools: Authoring Applications.
Generating Software Documentation in Use Case Maps from Filtered Execution Traces Edna Braun, Daniel Amyot, Timothy Lethbridge University of Ottawa, Canada.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
Extraction Tools and Relational Database Schemas for CVS, SVN, and Bazaar Revision Control Systems.
Approved for Public Release, Distribution Unlimited The Challenge of Data Interoperability from an Operational Perspective Workshop on Information Integration.
1 Chapter 12 Configuration management This chapter is extracted from Sommerville’s slides. Text book chapter 29 1.
® IBM Software Group © 2009 IBM Corporation Essentials of Modeling with the IBM Rational Software Architect, V7.5 Module 15: Traceability and Static Analysis.
CS223: Software Engineering Lecture 2: Introduction to Software Engineering.
Software Configuration Management SEII-Lecture 21
1 Predicting Classes in Need of Refactoring – An Application of Static Metrics Liming Zhao Jane Hayes 23 September 2006.
© Prentice Hall, 2007 Excellence in Business Communication, 7eChapter Writing Reports and Proposals.
Real Time Collaboration and Sharing
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
Objective ICT : Internet of Services, Software & Virtualisation FLOSSEvo some preliminary ideas.
© Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.
Slide 1 © 2016, Lera Technologies. All Rights Reserved. Oracle Data Integrator By Lera Technologies.
1 Process activities. 2 Software specification Software design and implementation Software validation Software evolution.
Visualizing Complex Software Systems
Chapter 18 Maintaining Information Systems
Applications of Data Mining in Software Engineering
Software Processes.
Reverse Engineering: A Roadmap
Project insights using mining software repositories
DocuMelt 2.0 An EmpFinesseTM Fundamentals Solution.
Software Maintenance Main issues: why maintenance is such an issue
Presentation transcript:

Lucian Voinea Visualizing the Evolution of Code The Visual Code Navigator (VCN) Nunspeet,

The software maintenance challenge Software maintenance costs 80% of TCO ( total cost of ownership) = Mostly spent on understanding software Often caused by uninformed decisions

What is software visualization? Code Evolution Visualization in VCN o Line of code level o File level Conclusions Outline

What is software visualization? Scientific Visualization: “The use of computers or techniques for comprehending data or to extract knowledge from the results of simulations, computations, or measurements” [McCormick et al, 1987] Information Visualization: “Visualization applied to abstract quantities and relations in order to get insight in the data” [Chi, 2000][Diehl, 2006][…] Software Visualization: “Information visualization applied to software artefacts e.g. source code, design documents, profiling logs, and dynamic data structures in order to better write, understand and maintain, software”

Software visualization vs visual programming visual programming tool software visualization tool SW engineer the visual artifact space the software visual programming program visualization is read by creates generates is analyzed by creates is examined by

Software visualization pipeline software data acquisition internal data processing data mapping enriched data visual representations graphics rendering image human interpretation software analysis data visualization

Software visualization classifications Matrix of techniques [Myers, 1990] type of data time aspect Dynamic (behavior) Static (structure) CodeDataAlgorithm VCN fewmany evolution

Visual Code Navigator (VCN) a toolset that provides different, but strongly interconnected views on software source code VCN VCN database CVS SVN Data processing engines SCM

Code evolution visualization Goal: Understand when, why, and how software changed to cope with future activities (e.g. refactoring, release scheduling, test planning etc.) Developers Management Use cases: - identify the system parts that could be affected by a change or migration - identify the system areas that are subject to debugging in the near future - get context dependent code editing suggestions - discover the developer network Benefits: - assess impact more accurately - better plan maintenance activities - reduce software understanding time - minimize error injection probability

Code evolution visualization in VCN Line of code levelFile level CVSscanCVSgrab

Evolution visualization at line level Goal: Understand how did a file evolve. - What were the major refactorings, contributions - Who is in charge of a given piece of code CVSscan

Color encodes authors Color encodes line contents Time (version) File line Time (version) File line Evolution visualization at line level CVSscan

Version 2Version 1Version 3 File 2 Version 1Version 2 File 3 Version 1Version 2 File 1 Time Project Evolution visualization at file level CVSgrab Goal: Understand how did a project evolve.

Version 2Version 1Version 3 File 2 Version 1Version 2 File 3 Version 1Version 2 File 1 Time Project Author ID Release ID Size Complexity Searched word … Release ID Size Complexity Searched word … Evolution visualization at file level CVSgrab Goal: Understand how did a project evolve. Sorting and clustering operations

Conclusion: 1. Software is not in a mature state (development is not stabilized). 2. It is difficult to maintain (high activity in large files). 3. Highly complex (≈ 30% have McCabe’s metric ≥ 7 per 30 lines of code) Case: Shall we buy this software stack ? Evolution visualization at file level CVSgrab

Case: What is the risk of releasing the software now? Conclusion: 1. There are currently no large scale debugging activities performed 2. The largest recent debugging activity was localized to one folder 3. Changes in the identified folder do not propagate outside Evolution visualization at file level CVSgrab

Conclusion: Well distributed knowledge Risky distribution of knowledge Case: What is the risk of one person leaving the team ? Evolution visualization at file level CVSgrab

Conclusions Software Visualization is a new but quickly growing field; many tools are emerging at a high pace promising but validation is still a problem; integration is a must! Visual Code Navigator contains two tools for analyzing source code evolution (CVSscan, CVSgrab) offers a set of visual techniques that can supports a large variety of analysis scenarios tries to bridge the gap between research and industry by tight integration with common software configuration management (SCM) systems (e.g., CVS, Subversion)

Thank you for your attention !