Software maintenance for Software Engineering reading (English-Chinese comparison)

Source: Internet
Author: User

Software maintenance

The term "software maintenance" is used to describe the software engineering activities that occur following delivery of a software product to the customer. the maintenance phase of the software life cycle is the time period in which a software product performs useful work. typically, the development cycle for a software product spans 1 or 2 years, while the maintenance phase spans 5 to 10 years.
Maintenance activities involve making enhancements [1] to software products, adapting products to new environments, and correcting problems. software Product enhancement may involve providing new functional capabilities, improving user displays and modes of interaction, upgrading external documents and internal documentation, or upgrading the performance characteristics of a system. adaptation of software to a new environment may involve moving the software to a different machine, or for instance, modifying the software to accommodate a new telecommunications protocol or an additional disk drive. problem correction involves modification and revalidation of software to correct errors. some errors require immediate attention, some can be corrected on a scheduled, periodic [2] basis, and others are known but never corrected.
It is well established that maintenance activities consume a large portion of the total life-cycle budget [3]. it is not uncommon for software maintenance to account for 70 percent of total software life-cycle costs (with development requiring 30 percent ). as a general rule of thumb [4], the distribution of effort for software maintenance between des 60 percent of the maintenance budget for enhancement, and 20 percent each for adaptation and correction.
If maintenance consumes 70 percent of the total life-cycle effort converted Ted to a participant software product, and if 60 percent of Maintenance goes to enhancing the product, then 42 percent of the total life-cycle effort for that product is dedicated to product enhancement. given this perspective, it is apparent that the product delivered to the customer at the end of the development cycle is only the in Itial version of the system. Some authors have suggested that the appropriate life-cycle model for software is development → evolution...
This perspective makes it apparent that the primary goal of Software Development shoshould be production of Maintainable software systems. maintainability, like all high-level quality attributes, can be expressed in terms of attributes that are built into [5] The product. the primary product attributes that contribute to Software maintainability are clarity, modularity, and good internal documentation of the source code, as well as appropriate supporting documents.
It shoshould also be observed that software maintenance is a microcosm [6] of the software development cycle. enhancement and adaptation of software reinitiate development in the analysis phase, while correction of a software problem may reinitiate the development cycle in the analysis phase, the design phase, or the implementation phase [7]. thus, all of the tools and techniques used to develop software are potentially useful for software maintenance.
Analysis activities during software maintenance involve understanding the scope and effect of a desired change, as well as the constraints on making the change. design during maintenance involves redesigning the product to induplicate ate the desired changes. the changes must then be implemented, internal documentation of the Code must be updated, and new test cases must be designed to assess the adequacy of the modification. also, the supporting documents (requirements, design specifications, test plan, principles of operation, user's manual, crossreference directories, etc .) must be updated to reflect the changes. updated versions of the software (code and supporting privileges ENTs) must then be distributed to varous customer sites, and configuration control records for each site must be updated.
All of these tasks must be accomplished using a systematic, orderly approach to tracking and analysis of change requests, and careful redesign, reimplementation, revalidation, and redocumentation of the changes. otherwise, the software product will quickly degrade as a result of the maintenance process. it is not unusual for a well-designed, properly implemented, and adequately specified ented initial version of a software product to become unmaintainable due to inadequate maintenance procedures. this can result in situations in which it becomes easier and less expensive to reimplement a module or subsystem than to modify the existing version. software maintenance activities must not destroy the maintainability of software. a small change in the source code often requires extensive changes to the test suite and the supporting documents. failure to recognize the true cost of a "small change" in the source code is one of the most signiicant problems in software maintenance.

Notes
[1] enhancement: enhancement.
[2] periodic: regular.
[3] budget: Budget.
[4] rule of thumb: rule of thumb.
[5] Build into: embedded in, built in ...... .
[6] microcosm: a microcosm of the world.
[7] reinitiate: return.

Keywords
Software maintenance software maintenance
Telecommunication Protocol

Translation:

The term "software maintenance" is used to describe software engineering activities performed after a software product is delivered to a user. The software life cycle maintenance phase refers to the period during which the software product completes effective work. A typical scenario is that the development cycle of a software product lasts for one or two years, and its maintenance period lasts for 5 to 10 years.
Maintenance activities include enhancing software products, adjusting software products to adapt to new environments and correcting problems. Software product enhancements include: new features, improved user display and interaction modes, upgrades external documents and internal file descriptions, or upgrades system performance indicators. Software adaptation to the new environment can include porting the software to different machines, or, for example, modifying the software to adapt to new remote communication protocols or adding disk drives. Troubleshooting includes modifying and reverifying software to correct errors. Some errors require immediate action, while some can be corrected on a regular basis as planned, while others are never corrected even though they are known.
Maintenance activities account for a large proportion of the entire lifecycle budget. It accounts for 70% of the software life cycle fee (and software development fee accounts for 30% ). According to the general rule of thumb, the software maintenance budget is allocated as follows: 60% for function enhancement; 20% for new environment adaptation and error correction.
If maintenance costs 70% of the entire life cycle of a software product, and 60% of maintenance costs are used for function enhancement of this product, product function enhancement accounts for 42% of the entire life cycle of the product. From this point of view, it is obvious that only the initial version of the system is handed over to the user at the end of the development cycle. Some authors have suggested that the appropriate software life cycle model should be development-evolution-one-to-one evolution ......
From this point of view, we can see that the main goal of software development is to produce maintainable software system products. Like all high-level quality attributes, maintainability can be expressed by Attributes included in the product. The main product attributes that affect Software maintainability include clarity, adequacy, and good internal performance. Source code Documentation and appropriate support documentation.
We should also see that software maintenance is the epitome of the software development cycle. Software function enhancement and adaptation allow development to return to the analysis phase, while Software Error Correction allows the development cycle to return to the analysis, design, or implementation phase. Therefore, all tools and technologies used for software development have potential application for software maintenance.
The software maintenance analysis activities include understanding the scope and impact of the changes you wish to make and the constraints on the changes you wish to make. The design of the maintenance phase involves re-designing the product based on the desired changes, and then the changes must be implemented, Code The internal document description of must be updated and new test cases must be designed to evaluate the suitability of modifications. You must also update the support documentation (requirements, design specifications, test plans, operating principles, user manuals, and cross-reference Directories) to reflect the changes. The updated software version (code and support documentation) must be distributed to each user site, and the configuration control records of each site must be updated.
All these tasks must follow and analyze change requests in a systematic and organized manner, carefully redesign, implement, reconfirm, and redocument changes. Otherwise, software products will be quickly downgraded due to the maintenance process. Early software products with well-designed, reasonable implementation, and appropriate documentation often become unmaintainable due to improper maintenance processes, this will make it easier and less costly to implement a new module or subsystem than to modify an existing version. Do not damage the maintainability of software maintenance activities. A minor change in the source code often requires a large change in the test suite and supporting documentation. Ignoring the so-called "small changes" in the source code is one of the most important problems in software maintenance.

Exercises
1. Multiple choices.
(1) typically, the maintenance phase Spans .
A.1 or 2 years B .2 or 3 years
C.3-4 years D.5-10 years
(2) analysis activities of software maintenance involve .
A. Understanding the scope of a desired change
B. Understanding the effect of a desired change
C. Understanding the constraints on making the change
D. redesigning the product
(3) Consumption of the total life-cycle effort in software maintenance is That in software development.
A. Less than B. Larger
C. equal or less than D. Equal or larger
(4) supporting documents include .
A. User's Manual B. Design Specification
C. Principles of Operation D. Test Plan
(5) In an unmaintainable product it is possible to reimplement a module or subsystem than to modify the existing version.
A. More difficult B. Easier
C. More expensive D. less expensive
(6) correction of a software problem may reinitiate the development cycle in the phase.
A. Development B. Implementation
C. Analysis D. Design
(7) maintenance activities include .
A. Making enhancements to software products
B. Developing a new software product
C. Correcting problems
D. Adapting products to new environments
(8) Enhancing a software product may consume Percent of the total life-cycle effort.
A.70 B .60 C.50 d.42
(9) adaptation of software to a new environment may involve .
A. Modifying the software to accommodate a new telecommunications protocol
B. Moving the software to a different machine
C. Providing mew functional capabilities
D. Modifying the software to accommodate an additional disk drive
(10) All of software maintenance tasks must be accomplished using a systematic, orderly approach .
A. Careful redesign B. redocumentation
C. reimplementation D. Revalidation

2. Fill in the blanks with appropriate words or phrases.
(1) After a software product has been delivered to the MERs Shocould be provided.
(2) updated versions of the software must then be distributed .
(3) problem correction involves To correct errors.
(4) design during maintenance involves To induplicate ate the desired changes.
(5) software maintenance is Of the software development cycle.
(6) primary goal of Software Development shoshould be production .
(7) The product of software delivered to the customer at the end of the development cycle is only .
(8) Are potentially useful for software maintenance.
(9) a small change in the source code often requires To the test suite.
(10) The primary product attributes of Software maintainability include .
A. Modification and revalidation of software
B. All of the tools and techniques used to develop software
C. Software maintenance
D. maintainable Software Systems
E. Clarity, modularity, and good internal documentation of source code
F. Various customer sites
G. Extensive changes
H. microcosm
I. the initial version of the system
J. redesigning the product

 
Answer:

1.
(1) d
(2) a, B, c
(3) B
(4) a, B, c, d
(5) B, d
(6) B, c, d
(7) a, c, d
(8) d
(9) a, B, d
(10) a, B, c, d

2.
(1) c
(2) F
(3) A
(4) j
(5) h
(6) d
(7) I
(8) B
(9) G
(10) e

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.