软件工程阅读之软件维护(中英文对照)

软件工程阅读之软件维护(中英文对照),第1张

软件工程阅读之软件维护(中英文对照),第2张

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 includes 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 devoted to a particular 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 initial version of the system.Some authors have suggested that the appropriate life-cycle model for software is development→evolution→evolution→evolution…
  This perspective makes it apparent that the primary goal of software development should 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 should 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 incorporate 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 documents)must then be distributed to various 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 documented 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 significant problems in software maintenance.

NOTES
  [1] enhancement:增强。
  [2] periodic:定期的。
  [3] budget:预算。
  [4] rule of thumb:经验法则。
  [5] build into:内含在,构建在……中。
  [6] microcosm:微观世界,缩影。
  [7] reinitiate:回置,回到。

KEYWORDS
  software maintenance                 软件维护
  telecommunication protocol              远程通信协议

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 软件工程阅读之软件维护(中英文对照)

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情