Dependency Tracking in software systems Presented by: Ashgan Fararooy.

Slides:



Advertisements
Similar presentations
Configuration Management
Advertisements

1 Mind Visual Diff An architecture comparison tool December 16 th, 2014 – v0.2.2 Seyvoz Stephane Assystem.
Chapter 3 Loaders and Linkers
Clustering Software Artefacts Based on Frequent common changes Presented by Haroon Malik.
Design Spaces for Link and Structure Versioning Jim Whitehead U.C. Santa Cruz
Configuration Management Main issues:  manage items during software life cycle  usually supported by powerful tools.
TA-RE 1 : An Exchange Language for Mining Software Repositories Sunghun Kim, Thomas Zimmermann, Miryung Kim, Ahmed Hassan, Audris Mockus, Tudor Girba,
Memories of Bug Fixes Sunghun Kim, Kai Pan, and E. James Whitehead Jr., University of California, Santa Cruz Presented By Gleneesha Johnson CMSC 838P,
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
Presentation Topic 18.7 of Book Tree Protocol Submitted to: Prof. Dr. T.Y.LIN Submitted By :Saurabh Vishal.
Version control for graph-based models Z. Protić M. F. van Amstel M.G.J. van den Brand.
Configuration Management
Software Configuration Management CSC-532 Chandra Shekar Kandi Chandra Shekar Kandi.
Introduction and Overview to Mining Software Repository Zoltan Karaszi zkaraszi (at) kent.edu MS/PHD seminar (cs6/89191) November 9th,
1 Software Maintenance and Evolution CSSE 575: Session 8, Part 2 Analyzing Software Repositories Steve Chenoweth Office Phone: (812) Cell: (937)
Clustering Software Artifacts Based on Frequent common changes Presented by: Ashgan Fararooy Prepared by: Haroon Malik (Modified)
1 CSE 2102 CSE 2102 CSE 2102: Introduction to Software Engineering Ch9: Software Engineering Tools and Environments.
Software Engineering Modern Approaches
Identifying Reasons for Software Changes Using Historic Databases The CISC 864 Analysis By Lionel Marks.
Software Engineering CS3003
Graph Data Management Lab, School of Computer Science gdm.fudan.edu.cn XMLSnippet: A Coding Assistant for XML Configuration Snippet.
Das SCCH ist eine Initiative der Das SCCH befindet sich im Empirical Evaluation of Strategies to Detect Logical Change Dependencies SOFSEM 2010 Günter.
Change Impact Analysis for AspectJ Programs Sai Zhang, Zhongxian Gu, Yu Lin and Jianjun Zhao Shanghai Jiao Tong University.
SZZ – An overview David Bowes University of Hertfordshire.
© 2006 Pearson Addison-Wesley. All rights reserved14 A-1 Chapter 14 Graphs.
Department of Computer Science, Graduate School of Information Science & Technology, Osaka University A Method to Detect License Inconsistencies for Large-
Reviewing Recent ICSE Proceedings For:.  Defining and Continuous Checking of Structural Program Dependencies  Automatic Inference of Structural Changes.
Version Control Systems academy.zariba.com 1. Lecture Content 1.What is Software Configuration Management? 2.Version Control Systems (VCS) 3.Basic Git.
CMCD: Count Matrix based Code Clone Detection Yang Yuan and Yao Guo Key Laboratory of High-Confidence Software Technologies (Ministry of Education) Peking.
Samad Paydar Web Technology Lab. Ferdowsi University of Mashhad 10 th August 2011.
Aspect Mining Eclipse Plug-in Provide the integrated aspect mining environment in the Eclipse IDE. Consists of the following functional components –Flexible.
Event Data History David Adams BNL Atlas Software Week December 2001.
1 Software Configuration Management (SCM) and Software Reuse Presented By: Edmund Leng (HT052446J) Choo Zhi Min (HT052430X)
Automatic Identification of Bug-Introducing Changes. Presenter: Haroon Malik.
Presented by: Ashgan Fararooy Referenced Papers and Related Work on:
Computer Science Automated Software Engineering Research ( Mining Exception-Handling Rules as Conditional Association.
Mining Version Histories to Guide Software Changes Thomas Zimmerman Peter Weisgerber Stephan Diehl Andreas Zeller.
Andrea Capiluppi Dipartimento di Automatica e Informatica Politecnico di Torino, Italy & Computing Dept. The Open University, UK AICA 2004, Benevento,
Prepared by: Steve Teo Contributors: Tong Huu Khiem.
Configuration Management Main issues:  manage items during software life cycle  usually supported by powerful tools ©2008 John Wiley & Sons Ltd.
Management of Software Project CSM Software Configuration Management (SCM)
1 Multi-level Configuration Management with Fine-grained Logical Units Tien N. Nguyen Electrical and Computer Engineering Department Iowa State University.
API Hyperlinking via Structural Overlap Fan Long, Tsinghua University Xi Wang, MIT CSAIL Yang Cai, MIT CSAIL.
1 Experience from Studies of Software Maintenance and Evolution Parastoo Mohagheghi Post doc, NTNU-IDI SEVO Seminar, 16 March 2006.
© 2006 Pearson Addison-Wesley. All rights reserved 14 A-1 Chapter 14 Graphs.
Discovering functional interaction patterns in Protein-Protein Interactions Networks   Authors: Mehmet E Turnalp Tolga Can Presented By: Sandeep Kumar.
Recommending Adaptive Changes for Framework Evolution Barthélémy Dagenais and Martin P. Robillard ICSE08 Dec 4 th, 2008 Presented by EJ Park.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Requirement Engineering with URN: Integrating Goals and Scenarios Jean-François Roy Thesis Defense February 16, 2007.
October 19, 1998Doctoral Symposium OOPSLA’98 Kim Mens Intentional annotations for evolving object-oriented software Kim Mens Programming Technology Lab.
COMP53311 Association Rule Mining Prepared by Raymond Wong Presented by Raymond Wong
Compare Programs What do they need to do to be helpful? Copyright © 2016 Curt Hill.
Department of Computer Science, Graduate School of Information Science & Technology, Osaka University Detection of License Inconsistencies in Free and.
Source Control Repositories for Enabling Team Working Doncho Minkov Telerik Corporation
1 Ivan Marsic Rutgers University LECTURE 2: Software Configuration Management.
Directed Acyclic Graph Tool Alice Robson: UNIGE (with thanks to Colin Bernet)
The Emergent Structure of Development Tasks
Software Configuration Management CSC-532
Software Project Configuration Management
LECTURE 2: Software Configuration Management
Csc 2720 Instructor: Zhuojun Duan
Greedy Algorithm for Community Detection
Ruru Yue1, Na Meng2, Qianxiang Wang1 1Peking University 2Virginia Tech
LECTURE 3: Software Configuration Management
Finding a Eulerian Cycle in a Directed Graph
Subversion Basics Guide
Chapter 14 Graphs © 2006 Pearson Addison-Wesley. All rights reserved.
Fine-grained and Accurate Source Code Differencing
Chapter 11: Indexing and Hashing
Recommending Adaptive Changes for Framework Evolution
Presentation transcript:

Dependency Tracking in software systems Presented by: Ashgan Fararooy

Related Papers Supporting Software Evolution Analysis with Historical Dependencies and Defect Information ( ICSM 2008) A Flexible Framework to Support Collaborative Software Evolution Analysis ( CSMR 2008 ) Mining Software Repositories for Traceability Links ( ICPC 2007 ) Tracking Objects to Detect Feature Dependencies ( ICPC 2007 ) Software Repositories: A Source for Traceability Links ( TEFSE-GTC 2007 ) Mining Version Archives for Co-changed Lines ( ICSE 2006 ) Understanding Semantic Impact of Source Code Changes: an Empirical Study

Mining Version Archives for Co-changed Lines Thomas Zimmermann, Sunghun Kim, Andreas Zeller, E. James Whitehead Jr. (ICSE 2006)

Abstract Files, classes, or methods have frequently been investigated in research on co-change Present a first study at the level of lines Annotation Graph which captures how lines evolve over time More fine-grained software evolution information (based on lines)

Overview Co-Change: items that are changed together, are related to each other Any granularity: modules, files, classes, methods What about more fine-grained items: blocks, lines …

Co-Change in More Fine-Grained Items Seemed infeasible Hard to identify across different versions Line numbers are not suitable identifiers SCM systems annotation feature is not enough Line content is not a good identifier either

Annotation Graph Definition: – A multipartite graph where each part corresponds to one version of a file – Within each part/version every line is represented by a single node – Edges between node indicate that a line originates from another: by modification / movement – Node labels (e.g. bold node) indicate a changed line

Annotation Graph

Construction : – One needs to compare all subsequent revisions of a file – Using the GNU diff tool For computing textual differences – The diff tool returns a list of regions (“hunk”s) that differ in the two files

Annotation Graph Three different kinds of changes: – Modifications Result in a complete bipartite subgraphs – Additions Do not result in any edges Positions of the following lines are updated – Deletions The same effect as in addition

Annotation Graph Computation : – Creates nodes for each revision and each line – Two approaches 1- Forward-Directed 2- Backward-Directed

Annotation Graph Computation (Forward-Directed Algorithm): – Iterate over all pairs of subsequent revisions – For each pair compute the differences (hunks) – Process the hunks to create edges Exactly one edge between unchanged lines (nodes) For modified lines all possible edges For inserted and deleted lines no edges – Label the nodes of the later revision in modifications and additions

Annotation Graph Problem : – Changes that modify large parts of a file – Results in a large number of edges – Not reasonable for evolution analysis

Annotation Graph – Treat large modifications as combined deletions and additions – No creation of edges in the annotation graph

Annotation Graph Recognizing Large Modifications :

Annotating Lines Comparison – Most SCM systems have annotating features for each line providing the latest change information – Annotation graphs can be used to get such information – Furthermore, they provide information on all past changes

Life Cycle of Lines Investigated the life cycle of lines for the Eclipse Project – How frequently are lines changed Computed for each line the change count The number of distinct revisions in its annotation – How many developers change a line – What are the most frequently changed lines

Finding Related Lines – Computed related lines using frequent pattern mining – Used transaction ids instead of revision ids – Used Apriori algorithm – Inferred useful association rules

Thank you