Estimating Software Maintenance - UZH

Transcription

Estimating SoftwareMaintenanceArun Mukhija

Contentsÿ What is Software Maintenance?ÿ Facts and Figuresÿ Maintenance Activities and Costsÿ Maintenance Estimation Modelsÿ Conclusion and Discussion21.01.2002Estimating Software Maintenance2

What is SoftwareMaintenance?

ÿ “Changes that have to be made tocomputer programs after they have beendelivered to the customer or user.” *ÿ Software maintenance includes:llllCorrective maintenanceAdaptive maintenancePerfective maintenanceEnhancements (Although technically they are not apart of software maintenance but, being a post-releaseactivity, are often considered a part of it)* Martin J. and McClure G. “Software Maintenance: The Problem and itsSolutions”, Prentice Hall (1983).21.01.2002Estimating Software Maintenance4

Facts and Figures

ÿ Software maintenance costs around 50%of total software life-cycle cost.ÿ But relatively little is known about thesoftware maintenance process and thefactors that influence its cost.21.01.2002Estimating Software Maintenance6

Software Development and MaintenanceCosts in Large Organizations [Boehm81]update and maintenancedevelopmentPresent of 10-year life-cycle mandand Electronics andcontrol No.1USAFcommandand controlNo.2Estimating Software MaintenanceGeneralMotors7

Software Development and MaintenanceCosts in 487 Organizations [Boehm81]Percent of total software opmentEstimating Software MaintenanceOther8

Software Maintenance Production Function[Boehm81]21.01.2002Estimating Software Maintenance9

21.01.200206.2Estimating Software Maintenance43.4Other5.5Improve code efficiencyImprove documentationEnhancements fro usersAccommondate changings to hardware,OS20Accommondate changings to input data,files10Routine debugingEmergency program fixesPercent of software maintenance effortDistribution of Software Maintenance Effort[Boehm81]504041.83017.412.49.310

21.01.20021056.4Consolidating exsting reports05.6Condensing existing reports10Estimating Software MaintenanceOther15Reformatting existing reports30Added data for existing reports45New reportspercent of user enhancement effortDistribution of User Enhancement Effort[Boehm81]40.8403527.1252010.111

Maintenance Activitiesand Costs

ÿ Defectllllrepairskeep software in operational conditioncosts absorbed by software supplierlow pre-release defect removal efficiency ( 85%)productivity 8 defect repairs per month(can be higher with experienced personnel and defect-tracking tools etc.)Factors influencing defect repairs:lAbeyant defects (10%) - based on unique combination ofeventslllInvalid defects (15%) - misdiagnosed errorsBad fix injection (7%) - derivative errorsDuplicate defects - multiple complaints about the same error21.01.2002Estimating Software Maintenance13

ÿ Error-prone module removalllllconcentration of errors in particular modulescommon among large poorly-structured systemsexpensive to maintain, due to high bad fix injection rate500% more expensive than normal modulesÿ Customer supportllinterface between clients and defect repair teamseffort depends on number of users with phone contact, 1 customer support person for 150 users with electronic contact, 1 customer support person for 1000users21.01.2002Estimating Software Maintenance14

ÿ Code restructuringllldone by automated tools to lower complexity levelslowering complexity eases maintenanceprecursor to other maintenance activitiesÿ Migration across platformslll21.01.2002from one OS or hardware to anotherwith well-documented specifications,migration speed 50 FP per monthwith missing or obsolete specifications,migration speed 5 FP per monthEstimating Software Maintenance15

ÿ Conversion to new architectureslllchanges to interface or file structure of apps.quality of specifications affects productivityreverse engineering may need to be performed toextract missing design info.ÿ Mandatory changeslll21.01.2002in response to changes in law or policyinvolve high costs and tight schedulesdifficult to predict in advanceEstimating Software Maintenance16

ÿ Performance optimizationllto minimize delays in transactionsimproving performance at trouble spotsÿ Enhancementsllll21.01.2002adding new features as per user requestfunded by userannual rate 7% increase in FP total of an app.high integration and testing costs for poorly structuredapps.Estimating Software Maintenance17

MaintenanceEstimation Models

ÿ COCOMO Maintenance Modelfor software maintenance effort estimation(MM)AM (ACT)(MM)DEV(MM)AM : annual maintenance effort in man-month(MM)DEV : development effort in man-monthACT : annual change traffic (fraction of software thatundergoes change during a year)For intermediate and detailed COCOMO,(MM)AM (EAF)M(ACT)(MM)NOM(EAF)M : maintenance effort adjustment factor21.01.2002Estimating Software Maintenance19

ÿ Maintenance/Development Cost Ratio(MM)M (M/D)(MM)DEV(MM)M : overall life-cycle maintenance effort in man-month(MM)DEV : development effort in man-monthM/D : maintenance/development cost ratioValue of M/D ranges from 0.67 to 4.5, depending onapplication type.21.01.2002Estimating Software Maintenance20

ÿ Cards-per-person ratioorigin: number of cards each software person can maintain(KDSI/FSP)M : KDSI maintained per full-time software person(FSP)M(KDSI)DEV -----------------(KDSI/FSP)M(FSP)M : number of software maintenance personnel required(KDSI)DEV : size of software in KDSIValue of (KDSI/FSP)M ranges from 3 to 132, depending onapplication type.The annual maintenance effort (MM)AM is then simply(MM)AM 12 (FSP)M21.01.2002Estimating Software Maintenance21

ÿ Maintenance Productivity Ratio(DSI)MOD/YR (ACT)(DSI)DEV(MM)AM(DSI)MOD/YR -----------------(DSI/MM)MOD(DSI)MOD/YR : number of source instructions modified per year(DSI)DEV : size of software in source instructions(MM)AM : annual maintenance effort in man-monthACT : annual change traffic(DSI/MM)MOD : maintenance productivity ratio (number of sourceinstructions modified per man-month of maintenance effort)Average value of ACT is 0.092 and of (DSI/MM)MOD is 241,based on a survey. Estimating Software Maintenance21.01.200222

Conclusion andDiscussion

ÿ“Software processes must produce software thatcan be gracefully evolved at reasonable costs.The choice of software architecture significantlyinfluences modifiability and hence maintainability.” *ÿEstimating maintenance is complex because ofthe relationship between base application andchanges being made. Moreover predictingadaptive maintenance and enhancements inadvance is very difficult.* Richard D. Stutzke. “Software Estimating Technology: A Survey”,CrossTalk (1996).21.01.2002Estimating Software Maintenance24

Referencesÿ [Jones98] Jones T.C.“Estimating SoftwareCosts”, McGraw Hill (1998).ÿ [Boehm81] Boehm B. “Software EngineeringEconomics”, Prentice Hall (1981).21.01.2002Estimating Software Maintenance25

21.01.2002 Estimating Software Maintenance 4 ÿ"Changes that have to be made to computer programs after they have been delivered to the customer or user." * ÿSoftware maintenance includes: lCorrective maintenance lAdaptive maintenance lPerfective maintenance lEnhancements (Although technically they are not a part of software maintenance but, being a post-release