presented by abirami poonkundran n.
Skip this Video
Loading SlideShow in 5 Seconds..
Presented By : Abirami Poonkundran PowerPoint Presentation
Download Presentation
Presented By : Abirami Poonkundran

Loading in 2 Seconds...

play fullscreen
1 / 25

Presented By : Abirami Poonkundran - PowerPoint PPT Presentation

  • Uploaded on

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

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about 'Presented By : Abirami Poonkundran' - tristana-kato

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
presented by abirami poonkundran

Software Dependencies, Work Dependencies, and their impact on FailuresJeffrey A.Roberts, James D.Herbsleb, Marcelo cataldo and AudrisMockus

Presented By : AbiramiPoonkundran

  • 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

  • Introduction
  • Software Dependencies
    • Syntactic Dependencies
    • Logical Dependencies
    • Work Dependencies
  • Data Collection
  • Measuring Failure
  • Results
  • Conclusion
  • Pro’s and Con’s
  • 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
software dependencies
Software Dependencies
  • Software Dependencies could be:
    • Syntactic
    • Logical
syntactic dependencies
Syntactic Dependencies
  • 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
logical dependencies
Logical Dependencies
  • 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
work dependencies
Work Dependencies
  • 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
data collection 1
Data Collection (1)
  • 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 2
Data Collection (2)
  • 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 3
Data Collection (3)
  • 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
measuring failure
Measuring Failure
  • 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
syntactic dependencies1
Syntactic Dependencies
  • 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
logical dependencies1
Logical Dependencies
  • 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
work dependencies1
Work Dependencies
  • 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
  • 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
  • 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
  • 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
  • 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
  • All dependencies increases fault proneness
  • Logical Dependencies has the highest impact, followed by Workflow dependencies and then Syntactic Dependencies
  • Analysis is based on data collection from 2 projects
  • Logical Dependencies has the highest impact when compared to other 2 dependencies


  • 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
  • Need to provided a method to solve the errors for the dependencies
  • Discussion about other dependencies
  • General concepts should be introduced