University of Southern California Center for Systems and Software Engineering © 2009, USC-CSSE 1 Assessing and Estimating Corrective, Enhancive, and Reductive.

Slides:



Advertisements
Similar presentations
ACM International Conference on Software Engineering (ICSE) T.H. Ng, S.C. Cheung, W.K. Chan, Y.T. Yu Presented by Jason R. Beck and Enrique G. Ortiz.
Advertisements

Early Effort Estimation of Business Data-processing Enhancements CS 689 November 30, 2000 By Kurt Detamore.
Difference between project and other assignments  real customer  before programming: negotiations with client to clarify requirements  often.
USC 21 st International Forum on Systems, Software, and COCOMO Cost Modeling Nov 2006 University of Southern California Center for Software Engineering.
Automated Analysis and Code Generation for Domain-Specific Models George Edwards Center for Systems and Software Engineering University of Southern California.
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
Reliability and Software metrics Done by: Tayeb El Alaoui Software Engineering II Course.
University of Southern California Center for Systems and Software Engineering Productivity Data Analysis and Issues Brad Clark, Thomas Tan USC CSSE Annual.
March 30, Exploratory Testing Testing Approaches Analytical Information-driven Intuitive Exploratory Design the tests and test concurrently Learn.
University of Southern California Center for Systems and Software Engineering 1 © USC-CSSE Unified CodeCounter (UCC) with Differencing Functionality Marilyn.
University of Southern California Center for Systems and Software Engineering © 2010, USC-CSSE 1 COCOMO II Maintenance Model Upgrade Vu Nguyen, Barry Boehm.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
University of Southern California Center for Systems and Software Engineering 1 © USC-CSSE A Constrained Regression Technique for COCOMO Calibration Presented.
Introduction Wilson Rosa, AFCAA CSSE Annual Research Review March 8, 2010.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
USC 21 st International Forum on Systems, Software, and COCOMO Cost Modeling Nov 2006 University of Southern California Center for Software Engineering.
Technische Universität München The influence of software quality requirements on the suitability of software cost estimation methods 24th International.
Software evolution.
University of Southern California Center for Systems and Software Engineering © 2009, USC-CSSE 1 Reuse and Maintenance Estimation Vu Nguyen March 17, 2009.
Software evolution.
University of Southern California Center for Systems and Software Engineering © 2009, USC-CSSE 1 An Analysis of Changes in Productivity and COCOMO Cost.
Difference between project and other assignments real customer before programming: negotiations with client to clarify requirements often changes.
Software maintenance Managing the processes of system change.
CS 577b Software Engineering II -- Introduction
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Industrial Application.
Software Re-engineering
SEG Software Maintenance1 Software Maintenance “The modification of a software product after delivery to correct faults, to improve performance or.
Lecture # 22 Software Evolution
Software evolution. Objectives l To explain why change is inevitable if software systems are to remain useful l To discuss software maintenance and maintenance.
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.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 Software Engineering The first lecture.
Reviewed By: Paul Varcholik University of Central Florida EEL 6883 – Software Engineering II Spring 2009 Wojciech James Dzidek, Erik.
What Do We Know about Defect Detection Methods P. Runeson et al.; "What Do We Know about Defect Detection Methods?", IEEE Software, May/June Page(s):
Experimentation in Computer Science (Part 1). Outline  Empirical Strategies  Measurement  Experiment Process.
University of Southern California Center for Software Engineering C S E USC Using COCOMO for Software Decisions - from COCOMO II Book, Section 2.6 Barry.
©Ian Sommerville 2004 Software Engineering. Chapter 21Slide 1 Chapter 21 Software Evolution.
1 Ontology Summit 2011 Track 3 Value Metrics & Value Models Ontology Use - Maintenance Todd Schneider Raytheon 17 February 2011.
Software evolution l Software evolution is the term used in software engineering (specifically software maintenance) to refer to the process of developing.
Lecture 14 Maintaining the System and Managing Software Change SFDV Principles of Information Systems.
University of Southern California Center for Systems and Software Engineering Vu Nguyen, Barry Boehm USC-CSSE ARR, May 1, 2014 COCOMO II Cost Driver Trends.
Chapter 3: Software Project Management Metrics
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution 1.
Software Evolution Program evolution dynamics Software maintenance Complexity and Process metrics Evolution processes 1.
Software Maintenance Speaker: Jerry Gao Ph.D. San Jose State University URL: Sept., 2001.
University of Southern California Center for Systems and Software Engineering © 2010, USC-CSSE 1 Trends in Productivity and COCOMO Cost Drivers over the.
Proposed Metrics Definition Highlights Raymond Madachy Naval Postgraduate School CSSE Annual Research Review March 8, 2010.
University of Southern California Center for Systems and Software Engineering Reducing Estimation Uncertainty with Continuous Assessment: Tracking the.
1 Overview of Maintenance CPRE 416-Software Evolution and Maintenance-Lecture 3.
System Maintenance Modifications or corrections made to an information system after it has been released to its customers Changing an information system.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
First week. Catalog Description This course explores basic cultural, social, legal, and ethical issues inherent in the discipline of computing. Students.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
Local Calibration: How Many Data Points are Best? Presented by Barry Boehm on behalf of Vu Nguyen, Thuy Huynh University of Science Vietnam National University.
CS223: Software Engineering Lecture 32: Software Maintenance.
1 / 14 CS 425/625 Software Engineering Software Change Based on Chapter 27 of the textbook [SE-6] Ian Sommerville, Software Engineering, 6 th Ed., Addison-Wesley,
University of Southern California Center for Systems and Software Engineering 26 th Annual COCOMO Forum 1 November 2 nd, 2011 Mauricio E. Peña Dr. Ricardo.
1 Agile COCOMO II: A Tool for Software Cost Estimating by Analogy Cyrus Fakharzadeh Barry Boehm Gunjan Sharman SCEA 2002 Presentation University of Southern.
Software Development Module Code: CST 240 Chapter 6: Software Maintenance Al Khawarizmi International College, AL AIN, U.A.E Lecturer: Karamath Ateeq.
Estimate Testing Size and Effort Using Test Case Point Analysis
Software Configuration Management
Overview Software Maintenance and Evolution Definitions
Maintenance Issues in Software Engineering
Metrics and Terms SLOC (source lines of code)
CS 425/625 Software Engineering Software Evolution
SLOC and Size Reporting
Automated Analysis and Code Generation for Domain-Specific Models
Software Maintenance Part1 Introduction. Outlines What Is Software Maintenance Purposes of Maintenance Why We Need It Maintenance Difficilties Some Tips.
Center for Software and Systems Engineering,
Presentation transcript:

University of Southern California Center for Systems and Software Engineering © 2009, USC-CSSE 1 Assessing and Estimating Corrective, Enhancive, and Reductive Maintenance Tasks: A Controlled Experiment * Presented by Vu Nguyen on behalf of Vu Nguyen, Barry Boehm, Phongphan Danphitsanuphan (*) paper accepted for Asia-Pacific Software Engineering Conference 2009 (APSEC 2009)

University of Southern California Center for Systems and Software Engineering © 2009, USC-CSSE 2 Outline Motivation and Background Experiment Design Results and Explanatory Models Conclusions

University of Southern California Center for Systems and Software Engineering © 2009, USC-CSSE 3 Motivation and Background

University of Southern California Center for Systems and Software Engineering © 2009, USC-CSSE 4 Maintenance is crucial in software engineering Systems are tightly coupled with their environment –Environment changes require changing its software systems Technologies and requirements are continuously changing –Software systems are outdated quickly –Software systems must be updated and upgraded to maintain their values Maintenance is important in market competition –New software has more advantages than the existing one –Software system must be upgraded to keep its market share

University of Southern California Center for Systems and Software Engineering © 2009, USC-CSSE 5 Majority of software costs incur after the first operational release (Boehm ’81) Maintenance cost is usually 2x to 100x as much as new development cost (Sommerville, 2006) K$ Time System 1 System 2 Release 1Release 2Release 3 Release 1Release 2 Adapted from (Summerville, 2006)New Development Maintenance Release N

University of Southern California Center for Systems and Software Engineering © 2009, USC-CSSE 6 Software estimation community has paid little attention to software maintenance Most estimation models regard maintenance estimation as secondary –COCOMO, SEER-SEM, SLIM, PRICE-S models were built using mainly data of new development projects Use of SLOC metrics for models is inconsistent –Some models use SLOC added, modified, deleted –Others use only SLOC added and modified Impact of different SLOC metrics on productivity has not been investigated Projects tend to use experience or expert judgment methods to estimate software effort and cost instead

University of Southern California Center for Systems and Software Engineering © 2009, USC-CSSE 7 Research Questions and Hypotheses RQ1: Are there any differences in the productivity of enhancive, corrective, and deductive maintenance? –Hypothesis 1 (H1): no difference RQ2: Are there any differences in the effort distribution among the maintenance types? –Hypothesis 2 (H2): no difference Explanatory models to estimate participant’s maintenance effort

University of Southern California Center for Systems and Software Engineering © 2009, USC-CSSE 8 Software Maintenance –“Modification of a software product after delivery to correct faults, to improve performance or other attributes, or to adapt the product to a modified environment” [IEEE ‘98] Types of Maintenance –Swanson ’76: Adaptive, Corrective, Perfective –IEEE ’98: all Swanson’s plus Preventive –Chapin et al, 2001: 12 types, including three business rules types: Enhancive Corrective Reductive

University of Southern California Center for Systems and Software Engineering © 2009, USC-CSSE 9 Experimental Design

University of Southern California Center for Systems and Software Engineering © 2009, USC-CSSE 10 Experiment Description Task Group# Tasks# Participants Enhancive57 Corrective69 Reductive68 23 masters’ students and 1 senior, computer science major Participants worked on tasks individually in the lab –Enhancive: add new capabilities –Corrective: fix the existing capabilities –Reductive: remove the existing capabilities UCC as a target program –5K+ source statements (logical SLOC) in 20 C++ classes MS Visual Studio 2005 was used for maintenance

University of Southern California Center for Systems and Software Engineering © 2009, USC-CSSE 11 Calculating Maintenance SLOC Equivalent SLOC = TRCF x AAM TRCF = the total SLOC of task-relevant code fragments S = the size in SLOC (added, modified, or deleted) SU = the software understandability UNFM = the level of programmer unfamiliarity with the program Task-relevant code fragment (TRCF)

University of Southern California Center for Systems and Software Engineering © 2009, USC-CSSE 12 Results and Models

University of Southern California Center for Systems and Software Engineering © 2009, USC-CSSE 13 Resulted Data 24 students participated Each task requires four activities –Task comprehension –Code isolation –Editing code –Unit test Timesheet has 490 activity records, totaling hours Total of 909 SLOC added, modified, and deleted 402 added 216 modified 291 deleted

University of Southern California Center for Systems and Software Engineering © 2009, USC-CSSE 14 Effort distribution is different among the groups Corrective group spent much time for code isolation –twice as much as that of the enhancive group Enhancive group spent majority of time for editing code Effort distribution is statistically different among three groups (p-value = ) –H2 is rejected Kruskal-Wallis rank-sum test

University of Southern California Center for Systems and Software Engineering © 2009, USC-CSSE 15 Productivity is significantly different among the groups Corrective group has lowest productivity Reductive group has highest productivity Productivity between groups are statistically different (p-value = ) –H1 is rejected Enhancive Reductive Corrective Productivity (SLOC/Hour)

University of Southern California Center for Systems and Software Engineering © 2009, USC-CSSE 16 Participant Time Explanatory Models Two models for participant effort M1 Effort = * S * EAF M2 Effort = (2.8*Add + 5.3*Mod + 1.3*Del) * EAF Effort = Time spent by the participant on all maintenance tasks EAF = Effort adjustment factor, a product of Programmer capability (PCAP), Language experience (LTEX), and Platform Experience (PLEX) Add, Mod, Del = Equivalent SLOC added, modified, and deleted by the participant, respectively S = Add + Mod + Del All the estimates of coefficients are significant (p-value < 0.05) R 2 = 0.5 R 2 = 0.75

University of Southern California Center for Systems and Software Engineering © 2009, USC-CSSE 17 Model M 2 outperforms M 1 M1M1 M2M2 MMRE33%20% PRED(.25)46%71% PRED(.3)58%79%

University of Southern California Center for Systems and Software Engineering © 2009, USC-CSSE 18 Threats to Validity Internal design –Groups have imbalanced skills and capability –Imbalanced complexity of tasks on three groups –Incorrect time recorded Generalizability –Professional programmers are more experienced –Professional programmers are more familiar with the software maintained –Maintenance process is different in industry

University of Southern California Center for Systems and Software Engineering © 2009, USC-CSSE 19 Conclusions Productivity and effort distribution are significantly different among the maintenance types SLOC metrics are relevant factors for estimating effort Three SLOC metrics (added, modified, and deleted) have different impact on effort –SLOC deleted is an important factor for estimating effort –It is more expensive to modify than to add or delete a statement Assigning experienced programmers to fixing defect can save up to 40% of effort

University of Southern California Center for Systems and Software Engineering © 2009, USC-CSSE 20 References Barry W. Boehm, “Software Engineering Economics”, Prentice Hall, 1991 Ian Sommerville, “Software Engineering,” 8 th Ed., Addison- Wesley, 2006 Ned Chapin, et al., “Types of software evolution and software maintenance,” Journal of Software Maintenance: Research and Practice, v.13 n.1, p.3-30, Jan IEEE, IEEE Standard Glossary of Software Engineering Terminology. Institute of Electrical and Electronics Engineers: New York NY, 1990: 83 pp IEEE Std , IEEE Standard for Software Maintenance, IEEE Computer Society, 1998