Software Maintenance Implications on Cost and Schedule Bob Hunt, Bryn Turner, Karen McRitchie Galorath Incorporated 100 North Sepulveda Boulevard Suite 1801 El Segundo, California 90245 (703) 201-0651 [email protected] Abstract—Software Maintenance Implications on Cost and Schedule

1. INTRODUCTION

The dictionary defines maintenance as, "The work of keeping something in proper order." However, this definition does not necessarily fit for software. Software maintenance is different from hardware maintenance because software doesn't physically wear out, but often gets less useful with age. Software is typically delivered with undiscovered flaws. Therefore, software maintenance is: "The process of modifying existing operational software while leaving its primary functions intact." Maintenance typically exceeds fifty percent of the systems’ life cycle cost1. Additionally, software is highly dependent on defined maintenance rigor and operational life expectancy. Software maintenance generally includes sustaining engineering and new function development; corrective changes (fixing bugs); adapting to new requirements (OS upgrade, new processor); perfecting or improving existing functions (improve speed, performance); enhancing application with (minor) new functions (new feature.) Since software maintenance costs can be somewhat set by definition, the implications on cost and schedule must be evaluated. Development decisions, processes, and tools can impact maintenance costs. But, generally even a perfectly delivered system quickly needs upgrades. While software maintenance can be treated as a level of effort activity, there are consequences on quality, functionality, reliability, cost and schedule that can be mitigated through the use of parametric estimation techniques. 2 3

One of the greatest challenges facing software engineers is the management of change control. It has been estimated that the cost of change control can be between 40% and 70% of the life cycle costs4. Software engineers have hoped that new languages and new process would greatly reduce these numbers however, this has not been the case. This is fundamentally because software is still delivered with a significant number of defects. Capers Jones estimates that there are about 5 bugs per Function Point created during Watts Humphrey found “… even Development5. experienced software engineers normally inject 100 or more defects per KSLOC6. Capers Jones says, “A series of studies the defect density of software ranges from49.5 to 94.5 errors per thousand lines off code7.” The purpose of this paper is to first review the fundamentals of software maintenance and to present alternative approaches to estimating software maintenance. A key element to note is that development and management decisions made during the development process can significantly affect the developmental cost and the resulting maintenance costs. This paper addresses issues associated with software maintenance estimating and touches on development and management decision that can significantly affect maintenance costs.

2. SOFTWARE MAINTENANCE

TABLE OF CONTENTS 1. INTRODUCTION ......................................................1 2. SOFTWARE MAINTENANCE ..................................1 3. APPROACHING THE MAINTENANCE ISSUE ..........2 4. SANITY CHECKS ...................................................3 5. FIVE ALTERNATIVE APPROACHES ........................3 REFERENCES .............................................................6 BIOGRAPHY ...............................................................6

Maintenance activities include all work carried out postdelivery and should be distinguished from block modifications which represent significant design and development effort and supersede a previously released software package. These maintenance activities can be quite diverse, and it helps to identify exactly what postdelivery activities are to be included in an estimate of 1 4

Practical Software Maintenance, Thomas Pigoski, page 30, Wiley Computer Publishing, 1997 5 Geriatric Issues of Aging Software, Capers Jones, CrossTalk, Dec 2007, Vol. 20 No 12 6 Humphrey, W.,“A Personal Commitment to Software Quality.” Pittsburg, PA: The Software Engineering Institute (SEI) 7 Jones, T.C. Programming Productivity. New York: McGraw-Hill, 1972

1 1

Software Total Ownership Cost: Development Is Only Part of the Equation, Dan Galorath, Webinar presentation, 2007.

2 3

1-4244-1488-1/08/$25.00 ©2008 IEEE. IEEEAC paper#1098, Version 4, Updated 2007:10:26

1

maintenance effort. Maintenance activities, once defined, may be evaluated in a quite different light than when called simply “maintenance”. Software maintenance is different from hardware maintenance because software doesn't physically wear out, but software often gets less useful with age and it may be delivered with undiscovered flaws. In addition to the undiscovered flaws, it is common that some number of known defects pass from the development organization to the maintenance group. This bow wave of unclosed bugs is exacerbated when multiple versions of the same deliverable exist simultaneously. Accurate estimation of the effort required to maintain delivered software is aided by the decomposition of the overall effort into the various activities that make up the whole process.

d) Enhance - maintenance is a change made to forestall or reverse a deterioration From the table below 8 it is obvious that maintenance related to enhancement or perfection of a software product is the largest single cost driver.

In his book Software Engineering Economics, Barry Boehm defines maintenance as the process of modifying existing operational software while leaving its primary functions intact. The definition includes the following types of activity within the category of software maintenance:

Enhance/Perfect

50%

Adapt

25%

Correct

20%

Prevent

5%

Maintenance is a complicated and structured process. In his textbook, Estimating Software Intensive Systems, Richard Stuzke outlines the typical software maintenance process. It is apparent that the process is more than just writing new code. The chart below summarizes the Stuzke process.9

• Design and development of smaller interfacing software packages which require some redesign (of less than 20%) of the existing software product. product’s

Percent of Total Maintenance Effort

3. APPROACHING THE MAINTENANCE ISSUE

• Redesign and redevelopment of smaller portions (less than 50% new code) of an existing software product.

• Modification of the software documentation, or data base structure.

Repair Categories

code,

The Software Maintenance Process* User s

The definition excludes the following types of activity from the category of software maintenance:

Sub mit Pro b le m Re por t s

Consolid ate Valid ate Pro b le m Re por t s

• Major redesign and redevelopment (more than 50% new code) of a new software product performing substantially the same functions.

Analyze Co s t and Sc he d ule Co ns traints , Prio ritie s

Design, Code, Test, Integr ate, Build, Docume nt

Distr ib ute Build

• Data processing system operations, data entry and modification of values in the data base

* Estimat in g Softwar e Intens ive Systems; Richar d Stuzke, 2005, Addison - We sle y, p 128

The following checklist can be used to explore the realism and accuracy of maintenance requirements.

IEEE and others generally identify four categories of Software Maintenance efforts.

• Which pieces of software will be maintained?

Correct - maintenance is a change made in order to remove a fault

• How long will the system need to be maintained?

b) Adapt - maintenance is a change made in order to become suited to a different condition

2

8

c)

Define Build

Ap p ro ve d Mo d ific atio n Re p o rts

• Design and development of a sizable (more than 20% of the source instructions comprising the existing product) interfacing software package which requires relatively little redesign of the existing product

a)

Re je c tio ns Dup e s Inad e q uate Info rma tio n No t re p ro d uc ib le Exte rnal Caus e Manuals o r Training Wro ng Hard w are failure

Software Maintenance Concepts and Practices (second Edition) by Penny Grubb and Armstrong Takang, World Scientific, 2005, page 50 9 Estimating Software Intensive Systems; Richard Stuzke, 2005, AddisonWesley, p 128

Perfect - maintenance is a change made in order to improve 2

• One maintainer can handle about 10,000 lines per year.

• Are you estimating the entire maintenance problem, or just incremental maintenance? • What level of maintenance is required?

• Overall life-cycle effort is typically 40% development and 60% maintenance.

• Is that which is being called maintenance in fact a new development project?

• Maintenance costs on average are one-sixth of yearly development costs.

• Who will do the maintenance? Will it be done organically by the original developer? Will there be a separate team? Will there be a separate organization?

• Successful systems are usually maintained for 10 to 20 years. Finally, as in development, the amount of code that is new versus modified makes a difference. The effective size, that is, the equivalent effort if all the work were new code, is still the key input for both development and maintenance cost estimation. This is demonstrated below in three scenarios, representing the effort impact between low, moderate and higher proportions of new code to reused code. (to use this last sentence you would need to replace the chart below with C3-50 from the May 07 era training material)

• Will maintainers be using the same tools used during development? Are any proprietary tools required for maintenance? • How much Commercial-Off-The-Shelf (COTS) is there? How tightly coupled are the interfaces? Some follow-on development may be disguised as maintenance. This will either inflate maintenance figures, or else cause shortfalls if basic maintenance gets pushed aside. These questions will help you ask whether maintenance is being honestly represented.

Effective Size Is Key for Both Development Maintenance Total vs. Effective Size Growth

• Is the activity really an incremental improvement?

Effective Size grows 54%

120000 100000

• Are healthy chunks of the original code being rewritten or changed?

Size

80000 60000 40000

Effort and Schedule Growth

20000

• Will additional staff be brought in to perform the upgrade?

0

120 Requirements

Des ign

100 Coding

Phase

• Is the maintenance effort schedule regular and fairly flat, or does it contain staffing humps that look like new development?

Total Size

80

Effective60Size 40 20

Effort Estimate +61% Schedule Estimate +27% No additional functionality

0 Requirements

Des ign Phase

Effort (Thousands of Hours)

Coding

Schedule (Months)

4. SANITY CHECKS 5. FIVE ALTERNATIVE APPROACHES

Although sanity checks should be sought on a year-by-year basis, they should not be attempted for overall development. The reason for this is that maintenance activities can be carried on indefinitely, rendering any life-cycle rules useless. As an example, consider Grady (p. 17):

All software estimation techniques must be able to model the theory and the likely real world result. The real world scenario is presented in the figure below and points out that over time, the overlay of changes upon changes makes software increasingly difficult to maintain and thus less useful. Maintenance effort estimation techniques range from the simplistic level of effort method, through more thoughtful analysis and development practice modifications, to the use of parametric models in order to use historical data to project future needs.

We spend about 2 to 3 times as much effort maintaining and enhancing software as we spend creating new software.10 This and similar observations apply at an organizational level and higher, but not for a specific project. Any development group with a history will be embroiled in the long tail ends of their many delivered projects, still needing indefinite attention. Here are a few quick sanity checks: 3

10

Grady, Robert P, Practical Software Metrics For Project Management and Process Improvement, Prentice Hall, Englewood Cliffs, NJ (1992)

3

Software Maintenance Is Often A Series of Block Changes

Given the repair category activities and the great variance shown in the table below, this approach clearly has deficiencies. In this approach, a level of effort to maintain software is based on size and type.

A ma inte na nc e mode l mus t be a ble to mode l the the or y a nd the like ly s c e na r io (pr a c tic e )

These are more precise figures for the number of lines per year that can be maintained by a single programmer, by application category. Some caution must be applied when using these figures for an estimate:

5.1 Level of Effort



The definition of lines of code, function points, or other artifacts must be consistent



Maintenance productivity (lines per programmer year) is often governed by the size of each Computer Software Configuration Item (CSCI) or work breakdown system item - larger CSCIs are more complex, and so more effort is required to maintain each line.



Technical and personnel ability will influence maintenance.

As is sometimes the case in the development environment, software maintenance can be modeled as a level of effort activity. As mentioned above, maintenance can be divided into several categories.

11

found the following typical Lientz and Swanson proportions for the different types of maintenance:

Source

Application Type

Non-Comment Source Lines Per Year

Wolverton

Aerospace

4,000 to 8,000

Ferens-Harris

Aerospace

5,000 to 10,000

Daily

Real Time

5,000 to 30,000

Griffin

Real Time

6,000 to 12,000

Graver

Business (High Level Languages)

10,000 to 20,000

Rubin

Business

Up to 40,000

5.2 Level of Effort Plus Stuzke (see reference above) proposed that software maintenance starts with basic level of effort (minimum people needed to have a core competency and then that that basic core staff must be modified by assessing three additional factors; configuration management, quality assurance, and project management. His process (outlined on pages 135 to 141 of his textbook) addressed some of the additional factors affecting software maintenance. 5.3 Maintenance Change Factor

Overall Range

Software Cost Estimation with COCOMO II12 (Boehm 2000) proposes a deceivingly simple, but also quite useful methodology for determining annual maintenance. Maintenance is one of the menu selections in the menu bar. In COCOMO II Maintenance encompasses the process of modifying existing operational software while leaving its primary functions intact. This process excludes: •

4,000 to 30,000



4

Major re-design and re-development (more than 50% new code) of a new software product performing substantially the same functions. Design and development of a sizeable (more than 20% of the source instructions comprising the existing product) interfacing software package

4

11

B.P. Lientz and E.B. Swanson, Software Maintenance Management: A Study of the Maintenance of Computer Application Software in 487 Data Processing Organizations, Addison-Wesley, Reading, MA (1980)

12

Barry Boehm, et al, Software Cost Estimation with COCOMO II, Prentice Hall, PTR, New Jersey (2000)

4



which requires relatively little redesigning of the existing product. Data processing system operations, data entry, and modification of values in the database.

Lloyd Huff and George Novak of Lockheed Martin Aeronautics in their paper “Lockheed Martin Aeronautics Performance Based Software Sustainment for the F-35 Lightning II” propose a series of development and management decision designed to impact and reduce software maintenance costs. They propose an eight step process to estimate and control software maintenance13. Their proposed steps are:

The maintenance calculations are heavily based upon the Maintenance Change Factor (MCF) and the Maintenance Adjustment Factor (MAF). The MCF is similar to the Annual change Traffic in COCOMO81, except that maintenance periods other than a year can be used. The resulting maintenance effort estimation formula is the same as the COCOMO II Post Architecture development model:

1. Strive for Commonality 2. Apply Industrial Engineering Practices to Software 3. Engage 4. Adopt a Holistic Approach to Sustainment

As stated previously, three cost drivers for maintenance differ from development. Those cost drivers are software reliability, modern programming practices, and schedule. COCOMO II assumes that increased investment in software reliability and use of modern programming practices during software development has a strong positive effect upon the maintenance stage. Annual Maintenance Effort = (Annual Change Traffic) * (Original Software Development Effort)

5. Develop Highly Maintainable Systems and Software 6. Manage the Off-the-Shelf Software 7. Plan for the Unexpected 8. Analyze and Refine the Software Sustainment Business Case (use Parametric software sustainment cost estimates)

The quantity Original Software Development Effort refers to the total effort (person-months or other unit of measure) expended throughout development, even if a multi-year project.

5.5 A Parametric Maintenance

Assessment

of

Software

Parametric models like SEER for Software maintenance to be modeled in either of two ways:

The multiplier Annual Change Traffic is the proportion of the overall software to be modified during the year. This is relatively easy to obtain from engineering estimates. Developers often maintain change lists, or have a sense of proportional change to be required even before development is complete.

allow

Estimating maintenance as a part of the total lifecycle cost. Choosing the appropriate Maintenance category parameters will include an estimate of maintenance effort with the development estimate for the individual software program. Several reports and charts show breakdowns of development vs. maintenance effort. This method is best used to evaluate life cycle costs for each individual software program.

5.4 Managing Software Maintenance Costs by Developmental Techniques and Management Decisions During Development

Estimating maintenance as a separate activity. Using the appropriate maintenance parameters for the software to be maintained you can model the maintenance effort as a separate activity. This method will allow you to fine tune your maintenance estimate by adjusting parameters. Maintenance size should be the same as development size, but should be entered as all pre-existing code. This method can also be useful in breaking out total project maintenance costs from project development costs.

When it comes to maintenance, “a penny spent is a pound saved.” Better development practices (even if more expensive) can significantly reduce maintenance effort, and reduce overall life cycle cost. The more effort put into development, the less required in maintenance. As an example, the software development cost and schedule can be significantly impacted (reduced) by letting the number of defects delivered grow. This cost and schedule reduction is more than offset by the increase in maintenance cost. The following discussion is an example of how management decision can significantly affect/reduce software maintenance costs.

5

13

Lloyd Huff, George Novak; Lockheed Martin Aeronautics; Lockheed Martin Aeronautics Performance Based Software Sustainment for the F-35 Lightning II

5

The general parametric approach is outlined in the flow diagram below.

Parametric Maintenance Estimation Flow (As represented in SEER for Software) Size Parameters Sites Annual Change Growth Percent to be Maintained Maintain Total System



Software maintenance can be accurately estimated using parametric processes.



Software maintenance is best modeled when development and management decisions are coupled with parametric cost estimation techniques.

Defects Annual Change

Compute Maintenance Size

Compute Maintenance Technology Rating

Steady State

Compute Annual Maintenance Staff Levels

Maintenance Level

REFERENCES

Growth

[1] Software Maintenance Concepts and Practices (second Edition) by Penny Grubb and Armstrong Takang, World Scientific, 2005.

Allocate Maintenance Staff

Perceptive Corrective

Technology & Environment Parameters

Enhancement

[2] Estimating Software Intensive Systems; Richard Stuzke, 2005, Addison-Wesley.

Adaptive

Personnel Diffs, Environment Diffs

[3] Lloyd Huff, George Novak; Lockheed Martin Aeronautics; Lockheed Martin Aeronautics Performance Based Software Sustainment for the F-35 Lightning II.

As shown in the “Parametric Maintenance Estimation Flow” diagram, a good parametric estimate for maintenance includes a wide range of information. Critical information for completing a software maintenance estimate is the size or amount of software that will be maintained, the quality of that software, the quality and availability of the documentation, and the type or amount of maintenance that will be done. Many organizations don’t actually estimate maintenance costs, they simply have a budget for software maintenance. In this case, a parametric model should be used to compute how much maintenance can actually be performed with the given budget.

[4] G. Edward Bryan, “CP-6: Quality and Productivity Measures in the 15-Year Life Cycle of an Operating System,” Software Quality Journal 2, 129–144, June 1993.

BIOGRAPHY Bob Hunt is Vice President for Services of Galorath Incorporated. Mr. Hunt is responsible for the management and technical direction of the services staff and the quality of the services products. Mr. Hunt has provided software program assessments, SEI Checklist evaluations, software sizing analyses, and software cost estimating for commercial and federal clients including the Customs and Border Patrol, the Department of Defense, NASA, and various commercial clients. Mr. Hunt’s resource management experience includes cost analysis, should cost analysis, and competition analysis experience. His experience extends to traditional and nontraditional hardware and software weapons systems for major and non-major weapon systems acquisitions

Estimating and planning for maintenance are critical activities if the software is required to function properly throughout its expected life. Even with a limited budget, a plan can be made to use the resources available in the most efficient, productive manner. Looking at the diagram above, you can see that not only are the multiple inputs that impact the maintenance, but there are several key outputs that provide the information necessary to plan a successful maintenance effort.

6. Conclusion The conclusions of this paper are: •

Software maintenance can be modeled using a simplistic method like Level of Effort Staffing, but this technique has significant drawbacks in that it does not account for changes in language or developmental processes.



Software maintenance costs can be significantly affected by management decision during the developmental process. 6

Software Maintenance Implications on Cost and Schedule - IEEE Xplore

Since software maintenance costs can be somewhat set by definition, the implications on cost and schedule must be evaluated. Development decisions, processes, and tools can impact maintenance costs. But, generally even a perfectly delivered system quickly needs upgrades. While software maintenance can be treated ...

312KB Sizes 0 Downloads 195 Views

Recommend Documents

Evolutionary Computation, IEEE Transactions on - IEEE Xplore
search strategy to a great number of habitats and prey distributions. We propose to synthesize a similar search strategy for the massively multimodal problems of ...

Optimized Software Implementation of a Full-Rate IEEE ... - IEEE Xplore
Hardware implementations are often used to meet the high-data- rate requirements of 802.11a standard. Although software based solutions are more attractive ...

Probabilistic Critical Path Identification for Cost-Effective ... - IEEE Xplore
School of Computer Science and. Technology. Huazhong University of Science and Technology. Wuhan, China 430074 [email protected]. Steve Versteeg.

IEEE Photonics Technology - IEEE Xplore
Abstract—Due to the high beam divergence of standard laser diodes (LDs), these are not suitable for wavelength-selective feed- back without extra optical ...

On the Polarization Entropy - IEEE Xplore
polarimetric SAR image. In this paper, the authors propose a new method to calculate the polarization entropy, based on the least square method. Using a ...

On the Structure of Balanced and Other Principal ... - IEEE Xplore
[9]. [IO]. 11. IMFULSE RESPONSE INTERSION. In h s section we mill give the essential results starting with the following. Theorem 2.1: Z has an M-delay inverse ...

wright layout - IEEE Xplore
tive specifications for voice over asynchronous transfer mode (VoATM) [2], voice over IP. (VoIP), and voice over frame relay (VoFR) [3]. Much has been written ...

Device Ensembles - IEEE Xplore
Dec 2, 2004 - time, the computer and consumer electronics indus- tries are defining ... tered on data synchronization between desktops and personal digital ...

wright layout - IEEE Xplore
ACCEPTED FROM OPEN CALL. INTRODUCTION. Two trends motivate this article: first, the growth of telecommunications industry interest in the implementation ...

Future Perspectives on Nanotechnology/Material ... - IEEE Xplore
Delphi Studies and Sci-Tech Policies in Japan, Mainland China and Taiwan ... culture and geography. .... approach technologies which will meet with China's.

On the Stability and Agility of Aggressive Vehicle ... - IEEE Xplore
is used to capture the dynamic friction force characteristics. We also introduce the use of vehicle lateral jerk and acceleration in- formation as the agility metrics to ...

Special Issue on Computational Intelligence and ... - IEEE Xplore
Apr 11, 2013 - (MIT Media Lab) in 1995 as. “computing that ... porting children's social and cognitive development and ... billion 10-year Future and Emerging.

I iJl! - IEEE Xplore
Email: [email protected]. Abstract: A ... consumptions are 8.3mA and 1.lmA for WCDMA mode .... 8.3mA from a 1.5V supply under WCDMA mode and.

Symposium on Emerging Topics in Control and Modeling - IEEE Xplore
Dec 2, 2010 - 132 IEEE CONTROL SYSTEMS MAGAZINE » DECEMBER 2010 student-led event ... sion were the technical cosponsors of the event, and the ...

Gigabit DSL - IEEE Xplore
(DSL) technology based on MIMO transmission methods finds that symmetric data rates of more than 1 Gbps are achievable over four twisted pairs (category 3) ...

IEEE CIS Social Media - IEEE Xplore
Feb 2, 2012 - interact (e.g., talk with microphones/ headsets, listen to presentations, ask questions, etc.) with other avatars virtu- ally located in the same ...

Grammatical evolution - Evolutionary Computation, IEEE ... - IEEE Xplore
definition are used in a genotype-to-phenotype mapping process to a program. ... evolutionary process on the actual programs, but rather on vari- able-length ...

SITAR - IEEE Xplore
SITAR: A Scalable Intrusion-Tolerant Architecture for Distributed Services. ∗. Feiyi Wang, Frank Jou. Advanced Network Research Group. MCNC. Research Triangle Park, NC. Email: {fwang2,jou}@mcnc.org. Fengmin Gong. Intrusion Detection Technology Divi

striegel layout - IEEE Xplore
tant events can occur: group dynamics, network dynamics ... network topology due to link/node failures/addi- ... article we examine various issues and solutions.

Digital Fabrication - IEEE Xplore
we use on a daily basis are created by professional design- ers, mass-produced at factories, and then transported, through a complex distribution network, to ...

Toward Runtime Self-adaptation Method in Software ... - IEEE Xplore
exploit some “craft” from the perspective of qualitative analysis. However, these methods are often incapable of reasoning about the history of requested services ...

Iv~~~~~~~~W - IEEE Xplore
P. Arena, L. Fortuna, G. Vagliasindi. DIEES - Dipartimento di Ingegneria Elettrica, Elettronica e dei Sistemi. Facolta di Ingegneria - Universita degli Studi di Catania. Viale A. Doria, 6. 95125 Catania, Italy [email protected]. ABSTRACT. The no

Device Ensembles - IEEE Xplore
Dec 2, 2004 - Device. Ensembles. Notebook computers, cell phones, PDAs, digital cameras, music players, handheld games, set-top boxes, camcorders, and.

Fountain codes - IEEE Xplore
7 Richardson, T., Shokrollahi, M.A., and Urbanke, R.: 'Design of capacity-approaching irregular low-density parity check codes', IEEE. Trans. Inf. Theory, 2001 ...