Empirical Validation of OO Metrics in Two Different Iterative Software Processes Mohammad Alshayeb Information and Computer Science Department King Fahd.

Slides:



Advertisements
Similar presentations
Computer Science Department
Advertisements

CLUSTERING SUPPORT FOR FAULT PREDICTION IN SOFTWARE Maria La Becca Dipartimento di Matematica e Informatica, University of Basilicata, Potenza, Italy
Presentation of the Quantitative Software Engineering (QuaSE) Lab, University of Alberta Giancarlo Succi Department of Electrical and Computer Engineering.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
1 ECE 453 – CS 447 – SE 465 Software Testing & Quality Assurance Case Studies Instructor Paulo Alencar.
1 Empirical Validation of Three Software Metrics Suites to Predict Fault-Proneness of Object-Oriented Classes Developed Using Highly Iterative or Agile.
1 Predicting Bugs From History Software Evolution Chapter 4: Predicting Bugs from History T. Zimmermann, N. Nagappan, A Zeller.
Prediction of fault-proneness at early phase in object-oriented development Toshihiro Kamiya †, Shinji Kusumoto † and Katsuro Inoue †‡ † Osaka University.
Figures – Chapter 24.
Analysis of CK Metrics “Empirical Analysis of Object-Oriented Design Metrics for Predicting High and Low Severity Faults” Yuming Zhou and Hareton Leung,
Software Development Process Models. The Waterfall Development Model.
Extreme Programming: Practices and Strategies Extreme Programming Practices and Strategies Mohammad Alshayeb Information and Computer.
Software Engineering. How many lines of code? Average CS1004 assignment: 200 lines Average CS4115 project: 5000 lines Corporate e-commerce project: 80,000.
Software Engineering.
Software Metrics II Speaker: Jerry Gao Ph.D. San Jose State University URL: Sept., 2001.
Object-Oriented Metrics
Predicting Class Testability using Object-Oriented Metrics M. Bruntink and A. van Deursen Presented by Tom Chappell.
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
An Agile View of Process
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
CIS 321—IS Analysis & Design
Chapter 2: Approaches to System Development
Chidamber & Kemerer Suite of Metrics
S/W Project Management Software Process Models. Objectives To understand  Software process and process models, including the main characteristics of.
Chapter 2 The process Process, Methods, and Tools
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 1 Refactoring.
Software System Engineering: A tutorial
Japan Advanced Institute of Science and Technology
What is a life cycle model? Framework under which a software product is going to be developed. – Defines the phases that the product under development.
Extreme/Agile Programming Prabhaker Mateti. ACK These slides are collected from many authors along with a few of mine. Many thanks to all these authors.
Software Measurement & Metrics
1 Software Process Models-ii Presented By; Mehwish Shafiq.
Quality Assessment for CBSD: Techniques and A Generic Environment Presented by: Cai Xia Supervisor: Prof. Michael Lyu Markers: Prof. Ada Fu Prof. K.F.
The CK Metrics Suite. Weighted Methods Per Class b To use this metric, the software engineer must repeat this process n times, where n is the number of.
1 OO Metrics-Sept2001 Principal Components of Orthogonal Object-Oriented Metrics Victor Laing SRS Information Services Software Assurance Technology Center.
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
Concepts of Software Quality Yonglei Tao 1. Software Quality Attributes  Reliability  correctness, completeness, consistency, robustness  Testability.
Assessing the influence on processes when evolving the software architecture By Larsson S, Wall A, Wallin P Parul Patel.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 1 Method/Process = step-by-step description of the steps involved.
Object-Oriented Analysis and Design. Lesson 1: Introduction to Software Engineering.
1 Metrics and lessons learned for OO projects Kan Ch 12 Steve Chenoweth, RHIT Above – New chapter, same Halstead. He also predicted various other project.
An Automatic Software Quality Measurement System.
Effort.vs. Software Product “Quality” Effort Product “Quality” Which curve? - linear? - logarithmic? - exponential?
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
CSc 461/561 Information Systems Engineering Lecture 5 – Software Metrics.
Measurement and quality assessment Framework for product metrics – Measure, measurement, and metrics – Formulation, collection, analysis, interpretation,
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
West Virginia University Sherif Yacoub, Hany H. Ammar, and Ali Mili A UML Model for Analyzing Software Quality Sherif Yacoub, Hany H. Ammar, and Ali Mili.
Extreme Programming. Extreme Programming (XP) Formulated in 1999 by Kent Beck, Ward Cunningham and Ron Jeffries Agile software development methodology.
Object-Oriented (OO) estimation Martin Vigo Gabriel H. Lozano M.
Ontology Support for Abstraction Layer Modularization Hyun Cho, Jeff Gray Department of Computer Science University of Alabama
Chapter 1: Introduction Omar Meqdadi SE 3860 Lecture 1 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
CS223: Software Engineering Lecture 18: The XP. Recap Introduction to Agile Methodology Customer centric approach Issues of Agile methodology Where to.
Introduction to Software Engineering Muhammad Nasir Agile Software Development(2)
Software Development.
Methodologies and Algorithms
A Hierarchical Model for Object-Oriented Design Quality Assessment
Software & Software Engineering Pertemuan-4 Dosen :Kundang K Juman
Course Notes Set 12: Object-Oriented Metrics
Object-Oriented Metrics
Design Metrics Software Engineering Fall 2003
Design Metrics Software Engineering Fall 2003
Software Processes.
Introduction to Software Engineering
Predicting Fault-Prone Modules Based on Metrics Transitions
Refactoring.
Software Metrics SAD ::: Fall 2015 Sabbir Muhammad Saleh.
Extreme Programming.
Chapter 2: Building a System
Building a “System” Moving from writing a program to building a system. What’s the difference?! Complexity, size, complexity, size complexity Breadth.
Presentation transcript:

Empirical Validation of OO Metrics in Two Different Iterative Software Processes Mohammad Alshayeb Information and Computer Science Department King Fahd University of Petroleum and Minerals Alshayeb, M. and Wei Li, “ An Empirical Validation of Object- Oriented Metrics in Two Iterative Processes, ” IEEE Transactions on Software Engineering, Vol. 29, No. 11, November 2003.

4 January Agenda  Research Objective.  Introduction.  Research Data.  Research Hypotheses.  Validation Studies.  Conclusion.  Future Work.

4 January Objective  Validate the Predictive Capability of Object-Oriented (OO) Metrics in Two Iterative Software Processes.

4 January Measurement Acceptance  No Wide Acceptance of Software Measurements Because :  Management personnel rarely know how to analyze, interpret or use the software metrics.  Various ways of analyzing software metrics.  Lack of measurement validation.

4 January Measurement Validation  Validation Assures That Measurements Assess What They Are Supposed to Measure.  Types of Validation:  Theoretical: the measure is a proper numerical characterization of a claimed attribute.  Empirical: establishes the accuracy of a prediction system by comparing the model performance with known data in a given environment.

4 January Software Processes  The Waterfall Model  Prototype Model  Rapid Application Development Model  The Incremental Model  The Spiral Model  Component Assembly Model  The Iterative Development Process Model  Extreme Programming

4 January The Iterative Development Process Domain Analysis Release Iteration Prototype Highest Risk Risk Assessment Software Architecture Requirements definition Test Suite & Environment Development Integrate with Previous Iteration Customer Requirements Iteration Luckey et al., “ Iterative Development Process with Proposed Applications, ” 1992

4 January Agile Process: Extreme Programming (XP)  “ A lightweight, efficient, low-risk, flexible, predictable, scientific, and fun way to develop software ” -Beck,  XP Applicability:  Projects with vague or changing requirements.  Small groups of programmers.  The need for customer input.

4 January XP Is Different  Continuity of Feedback Throughout Its Short Cycles.  Incremental Planning.  Flexibility in Scheduling on the Basis of Business Needs.  Dependency on Unit Tests Written by Both Developers and Customers.  Pair Programming.

4 January XP Breakdown Customer System Priority Organization of user stories Story 1Story 2Story 3 Division of system into user stories Iteration 1 Iteration 2Iteration 3 Iterations assigned for the development of each story Story 2Story 3Story 1 Release 2 Release 3 Task 1Task 3 Test Case 2Test Case 1Test Case 3 Release 1 Working, tested system with story 2 integrated Passed, integrate with the system Task 2

4 January XP and Other Software Processes Analysis Design Implementation Testing WaterfallLong Cycled Iterative ProcessShort Cycled Iterative Process XP Beck, “ Embracing changes with Extreme programming, ” 1999

4 January Frameworks  “ A Framework is an OO class hierarchy plus a built-in model which defines how the objects derived from the hierarchy interact with one another ” – Lewis et al,

4 January OO Metrics Suites C&K suite  Weighted Methods per Class (WMC)  Depth of Inheritance Tree (DIT)  Number Of Children (NOC)  Coupling Between Objects (COB)  Response For a Class (RFC)  Lack of Cohesion of Methods (LCOM) Li Suite  Number of Ancestor Classes (NAC)  Number of Local Methods (NLM)  Class Method Complexity (CMC)  Number of Descendent Classes (NDC)  Coupling Through Abstract data types (CTA)  Coupling Through Message passing (CTM)

4 January Research Data Iterative Software Process Process: Extreme Programming (XP)Process: the Framework Iterative Data: Two Java ApplicationsData: JDK Releases

4 January Research Data System 1 Story 1 Story 2 Story 3 Story 4 Story 5 Story 6 JDK JDK 1.0 JDK 1.1 JDK 1.2 JDK 1.3 JDK 1.4 System 2 Story 1 Story 2 Story 3 Story 4 Story 5 Story 6 Story 7

4 January Data Collection  The tasks planned for the current iteration cycle. The tasks come from the user stories, which are supplied by the customer.  A description of the progress or failure of progress towards completing the tasks.  The time spent on each task measured by hours.  A description of the problems encountered during implementing a task and the attempted solutions.  A description of the changes made on the system, the reasons for the changes, and the affected classes.

4 January Data Analysis  Tools support  Webgain ’ s Quality Analyzer  Metamata Metrics  Object-Oriented metrics collection.  Collects 12 metrics.  Krakatau Project Manager for Java  Collecting development/maintenance effort measured by lines of code.

4 January Metrics Validation Criteria Li and Henry Basili et al.Briand et al. EL Emam et al. Briand and W ü st Suite of metrics CK metrics Cohesion and Coupling C&K, Lorenz and Kidd Size, Cohesion and Coupling CK& and Li metrics Type of products OO dialect of Ada C++AdaJavaC++Java Dependent variable Number of changes in components Fault occurrence in C++ classes Fault occurrence in Ada packages Fault- proneness of a class effortDesign Changes (Lines added, changed, and deleted), in a class. Maintenance effort, refactoring effort Statistical technique Least- square regression Logistic regression Poisson regression and regression trees Least-square regression Long-Cycled and Short-Cycled Iterative Processes Short-Cycled Iterative Processes Alshayeb and Li Process?

4 January Multiple Regression  Investigate the Relationship Between a Dependent Variable and Multiple Independent Variables y =     x  +   x    x     The x ’ s are the independent (predictor or regressor) variables.  y is the dependent (response) variable.   — the statistical error — is the difference between the observed value y and the line (     x  +   x     x  )    regression coefficient.  R 2 : The variance percent in the dependent variable based on the knowledge of the independents.

4 January Empirical Validation of Object- Oriented Metrics  Empirically Validate the Predictive Capability of OO Metrics in the Long- Cycled (Framework) and Short-Cycled (Agile) Iterative Software Processes  Investigate the relationship between metrics and development/maintenance efforts in two forms of iterative processes.  Types of Changes:  Lines added (LA), Lines changed (LC), and Lines deleted (LD).  Refactoring and Error-Fix efforts.

4 January Example of Lines Added, Deleted and Changed // Example.java version 1 public class Example{ public static void main(String args[]){ System.out.println("Welcome to java"); System.out.println("Hello"); System.out.println("World"); } // Example.java version 2 public class Example{ public static void main(String args[]){ System.out.println("Hello"); System.out.println("Java"); System.out.println("new World"); } Deleted Added Changed

4 January Research Hypotheses  Hypothesis 1: Using OO metrics, we can predict design changes indicated by added, changed, and deleted source lines of code in classes from one iteration (release) to the next in the long-cycled framework iterative process.  Hypothesis 2: Using OO metrics, we can predict added, changed, and deleted source lines of code in classes from one iteration to the next in the short-cycled XP iterative process.

4 January Research Hypotheses  Hypothesis 3: Using OO metrics, we can predict error-fix maintenance effort (measured in man-hours) in classes from one iteration to the next in the short-cycled XP iterative process.  Hypothesis 4: Using OO metrics, we can predict refactoring effort (measured in man- hours) in classes from one iteration to the next in the short-cycled XP iterative process.

4 January Dependant and Independent Variables -Hypotheses 1 and 2  Dependant Variables Are:  LA, LC, and LD.  Independent Variables  WMC, DIT, LCOM, NLM, CTA, and CTM metrics.

4 January Research Results -Hypothesis 1  Hypothesis 1 Dependent Variables JDK JDK JDK JDK R 2 % LA LC LD

4 January Research Results -Hypothesis 1  Object-Oriented Metrics Cannot Predict Design Changes Indicated by Added, Changed, and Deleted, Source Lines of Code in Classes From One Iteration (Release) to the Next in the Long-cycled Framework Iterative Process.

4 January Research Results -Hypothesis 2  Hypothesis 2 Dependent Variables Story 5-6 R 2 % LA 95.6 LC 97.9 LD 88.5

4 January Research Results -Hypothesis 2  Hypothesis 2 Dependent Variables Story 4-5Story 6-7 R 2 % LA LC LD

4 January Research Results -Hypothesis 2  Object-Oriented Metrics May Predict Design Changes Indicated by Added, Changed, and Deleted Source Lines of Code in Classes From One Iteration to the Next in the Short-cycled XP Iterative Process Only When System Design Accumulates to Certain Mass.

4 January Dependant and Independent Variables -Hypotheses 3 and 4  Dependant Variables Are:  Refactoring and Error-Fix efforts.  Independent Variables  WMC, DIT, LCOM, NLM, CTA, and CTM metrics.

4 January Research Results – Hypotheses 3,4  Hypotheses 3 and 4 System 1RefactoringError Fix R 2 % Story Story

4 January Research Results – Hypotheses 3,4  Hypotheses 3 and 4 System 2RefactoringError Fix R 2 % Story Story Story Story

4 January Research Results – Hypotheses 3,4  Object-oriented Metrics Can Predict the Refactoring Effort and Error-fix Maintenance Effort in the XP-like Process When the System Design Accumulates to Certain Mass.

4 January Conclusion  The Predictive Capability of OO Metrics:  OO metrics are reasonably effective in predicting design changes in the short-cycled XP-like process, but they are largely ineffective in the long-cycled framework evolution process.  OO metrics' predictive capability is limited to the design and implementation changes during the development iterations, not the long-term evolution of an established system in different releases.  OO metrics are effective in predicting error-fix and refactoring efforts in the short-cycled agile process.

4 January Conclusion  The Development Software Process is Related Directly to the Predictive and Project-Progress Indicative Capabilities of OO Metrics:  It is thus essential to clearly identify the software process when validating OO metrics.

4 January Future Work  Studies Can Target OO Metrics Capabilities in Different Software Processes.  Validation Studies More Diverse Data Sets Are Needed to Test the Prediction Accuracy.  Automate the Steps Followed in This Study and Build a Tool to Gather, to Analyze, and to Use Metrics and the Statistical Models in a CASE Tool.

4 January Questions