軟體工程閱讀(中英文對照)之軟體維護

來源:互聯網
上載者: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 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              遠程通訊協定

  

翻譯:
   
  術語“軟體維護”用來描述在軟體產品交付給使用者以後所進行的軟體工程活動。軟體生存周期維護階段指軟體產品完成有效工作的時間段。典型的情形是:一個軟體產品的開發週期持續1年或2年,而它的維護階段則曆時5至10年。
  維護活動包含增強軟體產品、調整軟體產品以適應新的環境和糾正問題。軟體產品增強可以包含:提供新的功能,改進使用者顯示和互動模式,升級外部文檔和內部檔案說明,或升級系統的效能指標。軟體對新環境的適應可以包括把軟體移植到不同的機器,或者,例如修改軟體以適合於新的遠程通訊協定或添加的磁碟機。問題的糾正包括修改和重新確認軟體以糾正錯誤。有些錯誤需要立即採取措施,有些則可按計劃定期糾正,而另一些錯誤雖然測知但卻永遠未作糾正。
  維護活動在整個生存周期預算中占很大比例是公認的。它占軟體生存周期費用的70%是常見的(而軟體開發費佔30%)。按一般經驗法則,軟體維護預算配置是:60%用於功能增強;適應新環境和錯誤修正各佔20 %。
  如果維護要花費某一軟體產品整個生存周期的70%,而維護費用的60%用於此產品的功能增強,那麼,產品功能加強要佔產品整個生存周期的42%。據此觀點,很明顯產品在開發週期結束時交給使用者的僅僅是系統的最初版本。有一些作者已建議比較合適的軟體生存周期模型應該是開發——進化一一進化……
  由此觀點可見軟體開發的主要目標應是生產可維護的軟體系統產品。像所有高層品質屬性一樣,可維護性可用包含在產品內部的屬性來表達。影響軟體可維護性的主要產品屬性有明晰度、模組性、良好的內部原始碼文檔說明以及適當的支援文檔。
  還應看到軟體維護是軟體開發週期的縮影。軟體的功能增強和適應使開發重新回到分析階段,而軟體錯誤修正可使開發週期回到分析階段、設計階段或實現階段。因此,所有用於開發軟體的工具和技術對軟體維護都有潛在的用途。
  軟體維護的分析活動包括瞭解希望所做的更改的範圍和影響,以及對所作更改的限制條件。維護階段的設計包括根據想作的更改來重新設計產品,然後必須實現更改,代碼的內部文檔說明必須更新,必須設計新的測試案例以評估修改的恰當性。還必須更新支援文檔(需求、設計規格說明、測試計劃、操作原理、使用者手冊、交叉參考目錄等)以反映所做的更改。更新後的軟體版本(代碼和支援文檔)必須分發到各個使用者網站,各網站的配置控制記錄必須更新。
  所有這些任務都必須通過系統的、有條理的方法去跟蹤和分析變更要求,仔細地重新設計,重新實現,重新確認和重新對所作更改編製文檔來完成。否則,軟體產品將因為維護過程而很快降級。常常有設計良好、實現合理和有合適文檔的初版軟體產品因不適當的維護過程而變得不可維護,這會導致重新實現一個模組或子系統比修改已存在版本更容易和花費更少。軟體維護活動一定不要損壞軟體的可維護性。原始碼中的一個細微更改往往需要測試套件和支撐文檔作大規模變動。忽視原始碼中所謂“小小的變動”到頭來付出代價是軟體維護中最重大的問題之一。

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 than
  c.equal or less than                 d.equal or larger than
(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 to            
    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 customers             should be provided.
(2)Updated versions of the software must then be distributed to           
(3)Problem correction involves              to correct errors.
(4)Design during maintenance involves             to incorporate the desired changes.
(5)Software maintenance is a              of the software development cycle.
(6)Primary goal of software development should be production of            
(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

 
答案:

 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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

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.