軟件工程閲讀之軟件維護(中英文對照)

軟件工程閲讀之軟件維護(中英文對照),第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              遠程通信協議

位律師廻複

生活常識_百科知識_各類知識大全»軟件工程閲讀之軟件維護(中英文對照)

0條評論

    發表評論

    提供最優質的資源集郃

    立即查看了解詳情