Presented By : Abirami Poonkundran.  This paper is a case study on the impact of ◦ Syntactic Dependencies, ◦ Logical Dependencies and ◦ Work Dependencies.

Slides:



Advertisements
Similar presentations
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 25 Slide 1 Chapter 25 Process Improvement.
Advertisements

Making the System Operational
Verification and Validation
Predictor of Customer Perceived Software Quality By Haroon Malik.
Mr. R. R. Diwanji Techniques for Safety Improvements.
Process Improvement.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 28 Slide 1 Process Improvement.
Overview Lesson 10,11 - Software Quality Assurance
1 / 24 CS 425/625 Software Engineering Software Evolution Based on Chapter 21 of the textbook [SE-8] Ian Sommerville, Software Engineering, 8 th Ed., Addison-Wesley,
Software Configuration Management
1 Software Engineering II Presentation Software Maintenance.
Chapter 24 - Quality Management 1Chapter 24 Quality management.
Software Process and Product Metrics
AUDIT PROCEDURES. Commonly used Audit Procedures Analytical Procedures Analytical Procedures Basic Audit Approaches - Basic Audit Approaches - System.
Chapter 24 - Quality Management Lecture 1 1Chapter 24 Quality management.
Prof. Aiken CS 169 Lecture 71 Version Control CS169 Lecture 7.
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
Database Management System Lecture 2 Introduction to Database management.
CMM Level 3 KPA’s CS4320 Fall Organizational Process Focus (Goals) Software process development and improvement activities are coordinated across.
Introduction to Information System Development.
Introduction to Systems Analysis and Design Trisha Cummings.
Verification and Validation Yonsei University 2 nd Semester, 2014 Sanghyun Park.
Quality Planning & Defect Estimation
Does Distributed Development Affect Software Quality???? An Empirical Case Study of Windows Vista Christian Bird, Premkumar Devanbu, Harald Gall, Brendan.
INTRODUCTION TO COMPUTING CHAPTER NO. 06. Compilers and Language Translation Introduction The Compilation Process Phase 1 – Lexical Analysis Phase 2 –
By: Md Rezaul Huda Reza 5Ps for SE Process Project Product People Problem.
Chapter 3: Software Maintenance Process Omar Meqdadi SE 3860 Lecture 3 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
 To explain the importance of software configuration management (CM)  To describe key CM activities namely CM planning, change management, version management.
Presented by Abirami Poonkundran.  Introduction  Current Work  Current Tools  Solution  Tesseract  Tesseract Usage Scenarios  Information Flow.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
Configuration Management (CM)
1 James Herbsleb Carnegie Mellon University The Architecture of Coordination The author gratefully acknowledge.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 25 Slide 1 Process Improvement l Understanding, Modelling and Improving the Software Process.
Georgia Institute of Technology CS 4320 Fall 2003.
Chapter 1. Introduction.
McGraw-Hill/Irwin Copyright © 2013 by The McGraw-Hill Companies, Inc. All rights reserved. Chapter 5 Data Resource Management.
Assessing the influence on processes when evolving the software architecture By Larsson S, Wall A, Wallin P Parul Patel.
Yazd University, Electrical and Computer Engineering Department Course Title: Advanced Software Engineering By: Mohammad Ali Zare Chahooki 1 Machine Learning.
Software Project Management
Configuration Management and Change Control Change is inevitable! So it has to be planned for and managed.
What Type of Defects are Really Discovered in Code Reviews. Mika V
Software Evolution Program evolution dynamics Software maintenance Complexity and Process metrics Evolution processes 1.
SOFTWARE PROCESS AND PROJECT METRICS. Topic Covered  Metrics in the process and project domains  Process, project and measurement  Process Metrics.
CSc 461/561 Information Systems Engineering Lecture 5 – Software Metrics.
Software Maintenance Speaker: Jerry Gao Ph.D. San Jose State University URL: Sept., 2001.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Slide 1 Service-centric Software Engineering. Slide 2 Objectives To explain the notion of a reusable service, based on web service standards, that provides.
CHAPTER 7 STATISTICAL PROCESS CONTROL. THE CONCEPT The application of statistical techniques to determine whether the output of a process conforms to.
Reverse Engineering. Reverse engineering is the general process of analyzing a technology specifically to ascertain how it was designed or how it operates.
Analytical Review and Audit Approaches
Project Management Why do projects fail? Technical Reasons
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
Introduction to System Analysis and Design MADE BY: SIR NASEEM AHMED KHAN DOW VOCATIONAL & TECHNICAL TRAINING CENTRE.
What is a software? Computer Software, or just Software, is the collection of computer programs and related data that provide the instructions telling.
1 Software Engineering Muhammad Fahad Khan Software Engineering Muhammad Fahad Khan University Of Engineering.
Software Engineering Process - II 7.1 Unit 7: Quality Management Software Engineering Process - II.
PROCESS ASSESSMENT AND IMPROVEMENT. Process Assessment  A formal assessment did not seem financially feasible at the onset of the company’s process improvement.
(Atlassian) Software Development tools used in BE/CO Jira, Bamboo, Fisheye+Crucible, Clover
Chapter 25 Process Improvement.
Software Project Configuration Management
Regression Testing with its types
 DATAABSTRACTION  INSTANCES& SCHEMAS  DATA MODELS.
Chapter 5 Data Resource Management.
Introducing ISTQB Agile Foundation Extending the ISTQB Program’s Support Further Presented by Rex Black, CTAL Copyright © 2014 ASTQB 1.
Chapter 13 Quality Management
Version Control at Google
Software metrics.
The Organizational Impacts on Software Quality and Defect Estimation
Version Control CS169 Lecture 7 Prof. Aiken CS 169 Lecture 7.
Presentation transcript:

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

 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 could be: ◦ Syntactic ◦ Logical

 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

 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

 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

 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

◦ 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

 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

 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

 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

 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

 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 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

 Need to provided a method to solve the errors for the dependencies  Discussion about other dependencies  General concepts should be introduced