25
Software Dependencies, Work Dependencies, and their impact on Failures Jeffrey A.Roberts, James D.Herbsleb, Marcelo cataldo and Audris Mockus Presented By : Abirami Poonkundran

Presented By : Abirami Poonkundran

  • Upload
    betha

  • View
    39

  • Download
    1

Embed Size (px)

DESCRIPTION

Software Dependencies, Work Dependencies, and their impact on Failures Jeffrey A.Roberts , James D.Herbsleb , Marcelo cataldo and Audris Mockus. Presented By : Abirami Poonkundran. Concept. This paper is a case study on the impact of Syntactic Dependencies, Logical Dependencies and - PowerPoint PPT Presentation

Citation preview

Page 1: Presented By :  Abirami Poonkundran

Software Dependencies, Work Dependencies, and their impact on

FailuresJeffrey A.Roberts, James D.Herbsleb, Marcelo cataldo and Audris Mockus

Presented By : Abirami Poonkundran

Page 2: Presented By :  Abirami Poonkundran

This paper is a case study on the impact of ◦ Syntactic Dependencies, ◦ Logical Dependencies and ◦ Work Dependencies

on a software development project, and identifies which dependencies have the higher impact on fault proneness

Concept

Page 3: Presented By :  Abirami Poonkundran

Introduction Software Dependencies

◦ Syntactic Dependencies◦ Logical Dependencies◦ Work Dependencies

Data Collection Measuring Failure Results Conclusion Pro’s and Con’s

Overview

Page 4: Presented By :  Abirami Poonkundran

Research has shown that software faults are caused by violation of dependencies

Dependencies could be:◦ Software Dependencies

Technical Caused by developers

◦ Work Dependencies Organizational Caused by how work is organized

This paper examines the relative impact that each of these dependencies have on the fault proneness of the software system

Introduction

Page 5: Presented By :  Abirami Poonkundran

Software Dependencies could be:◦ Syntactic◦ Logical

Software Dependencies

Page 6: Presented By :  Abirami Poonkundran

Focuses on Control and Dataflow relationships

Dependencies are discovered by analysis of source code or from an intermediate representation like byte code or syntax trees

These dependencies could be:◦ Data Related Dependency - e.g., a particular

data structure modified by a function and used in another function

◦ Functional Dependency – e.g., Method A calls Method B

Syntactic Dependencies

Page 7: Presented By :  Abirami Poonkundran

Dependencies between the source code files of a system that are changed together as part of software development

Often Logical Dependencies provide more valuable information than Syntactic Dependencies (eg., in Remote Procedure Calls)

They can identify important dependencies that are not visible in Syntactic Code analysis

Logical Dependencies

Page 8: Presented By :  Abirami Poonkundran

Only recent research have started shedding light on the impact of human and organizational factors on the failure proneness of software systems

Caused because of lack of proper communication and coordination between developers

Research have shown that identification and management of work dependencies is a major challenge

Work Dependencies

Page 9: Presented By :  Abirami Poonkundran

Examined two large software development projects:◦ Project A

Complex distributed system Data are covered for 3 years of development activity The company had 114 developers grouped into 8

development team and has 3 development locations ≃ 5 million lines of code distributed in 7,737 source

code files in C language

Data Collection (1)

Page 10: Presented By :  Abirami Poonkundran

◦ Project B: Embedded software system 40 developers in the project over a period of 5 years 1.2 million lines of code were used in both C and C+

+ language

Data Collection (2)

Page 11: Presented By :  Abirami Poonkundran

In both projects, every change to source code was controlled by Modification Requests (MR)

Every change made to Source code has to be committed to Version Control System

Information Used for this Analysis:◦ Collected a total of 8,257 and 3,372 MRs for

Project A and Project B◦ Version control system from both projects◦ The source code itself from both projects

Data Collection (3)

Page 12: Presented By :  Abirami Poonkundran

Goal is to investigate failure proneness at the file level

File Buggyness – indicates whether a file has been modified in the course of resolving a defect

Measuring Failure

Page 13: Presented By :  Abirami Poonkundran

Used C-REX tool to identify programming language tokens and references in each entity of each source-code file

Source code snap shot was taken every quarter

Syntactic dependency analysis was done for each source code snapshot

Syntactic dependencies between source code file was identified by data, function and method references

Syntactic Dependencies

Page 14: Presented By :  Abirami Poonkundran

Relate source-code files that are modified together as part of an MR

If only one file was changed for an MR, then there is no dependencies

Using the Commit information from the Version control system, a logical dependency matrix (LDM) was created

LDM is a symmetric matrix of source-code files where Cij represents the sum, across all releases, of the number of times files i and j were changed together as part of an MR

Logical Dependencies

Page 15: Presented By :  Abirami Poonkundran

Used two measures:◦ Workflow Dependencies

Captures the temporal aspects of the development effort

Two developers i and j are said to be interdependent if the MR was transferred from one developer i to developer j some point during that MR

◦ Coordination Requirements Captures the intradeveloper coordination

requirements Uses two matrix:

Task Assignment Matrix – Developer to file matrix Task Dependency Matrix – File to file matrix

Work Dependencies

Page 16: Presented By :  Abirami Poonkundran

Analysis consists of two stages:◦ First Stage: Focus on examining the relative

impact of each dependency type on failure proneness of source-code files

◦ Second Stage: Verified the consistency of the initial results by conduction a number of confirmatory analysis

Constructed several logistic regression models

Results

Page 17: Presented By :  Abirami Poonkundran

Results

Page 18: Presented By :  Abirami Poonkundran

Results

Page 19: Presented By :  Abirami Poonkundran

If Odds Ratio is larger than 1, then positive relationship between the independent and dependent variables

If Odds ratio less than 1, then negative relationship

Model 1:◦ Based on LOC and Average Lines Changed◦ LOC is positively associated with failure proneness◦ Average lines changed is also positively

associated with defects

Results

Page 20: Presented By :  Abirami Poonkundran

Model II:◦ Introduces Syntactic Dependency measures by:

Inflow Data Has significant impact on error proneness

Inflow Functional This type of syntactic dependency has less impact on

failure pronenesss Model III:

◦ Higher number of logical dependencies related to an increase in the likelihood of failure

Results

Page 21: Presented By :  Abirami Poonkundran

Model IV:◦ Workflow dependencies do increase the likelihood

of defects Model V:

◦ Coordination requirement has an higher impact in Project A and lesser impact in Project B

Results

Page 22: Presented By :  Abirami Poonkundran

All dependencies increases fault proneness

Logical Dependencies has the highest impact, followed by Workflow dependencies and then Syntactic Dependencies

Conclusion

Page 23: Presented By :  Abirami Poonkundran

Analysis is based on data collection from 2 projects

Logical Dependencies has the highest impact when compared to other 2 dependencies

Weakness: Data collection from only 2 projects They have not mentioned about other

dependencies except software and work dependencies

Not provided a method to solve the errors for the dependencies

Strength:

Page 24: Presented By :  Abirami Poonkundran

Need to provided a method to solve the errors for the dependencies

Discussion about other dependencies General concepts should be introduced

Suggestions

Page 25: Presented By :  Abirami Poonkundran