【軟件工程導論】第八章.維護

~Ooops:本篇博文爲觀看《軟件工程導論 第五版 》張海潘書籍所做的總結性筆記,

有錯誤請望指出?

一.軟件維護的定義和特點

1.定義:在軟件已經交付使用後,爲了改正錯誤或滿足新的需要,而對軟件產品所做出的修改。

2.目的:通過必要的維護工作 ,使系統持久的滿足用戶的需要。

3.維護的類型:

  • 改正性維護: 指的是在特定環境下暴露的問題,識別和糾正錯誤,修改性能缺陷。
  • 適應性維護:針對硬件和軟件的變化,爲適應新環境而進行軟件修改。
  • 完善性維護:針對用戶提出的新增功能或者時修改已有的功能要求,而進行軟件修改。 一般大部分爲這種類型。
  • 其他維護:除以上維護類型之外的維護。

4.維護的特點:

  • 結構化和非結構化維護差異明顯。

    • 非結構化維護(代價很大)

      只有程序代碼,從評價程序代碼開始,文檔不足,改動的後果難以估計。

    • 結構化維護(代價較小,維護質量高)

      有程序代碼和相關文檔,從評價設計文檔開始,修改設計並進行復查,根據說明書進行迴歸測試

  • 維護的代價高昂。

    • 有形代價: 維護成本高、

    • 無形代價:引發用戶的不滿,降低軟件質量,影響新項目開發。

      維護工作量的模型:

       		M = P + K * exp(c - d)
       M 維護工作總量 P 生產性工作量  K 經驗常數 
       c 軟件複雜程度 d 維護人員對軟件的熟悉程度
      

      以上模型表明,如果軟件開發的途徑不當原開發人員不參加維護工作,都加使維護工作量呈指數級增加

5.影響軟件維護的因素:

​ 修改別人的程序 ,文檔不全,軟件結構不合理,軟件維護易受挫。與軟件維護有關的大多數問題,都可歸因於軟件定義和軟件開發方法有缺陷。

二.軟件維護的過程

軟件維護過程本質上是修改和壓縮了軟件定義和開發過程,而遠在提出意向維護要求之前,與軟件維護有關的工作已經開始了。

維護的一般過程:

建立維護組織 ——> 維護報告 ——> 維護事件流 ——> 保存維護記錄 
											——> 評價維護活動
  1. 軟件維護的決定性因素

    1.可理解性 2.可測試性 3. 可移植性 4.可修改性 5.可重用性

  2. 文檔

    軟件文檔可以分爲用戶文檔系統文檔

    用戶文檔: 描述系統功能和使用方法。

    系統文檔: 描述系統設計,實現,測試等方面內容。

  3. 可維護性複審

    軟件工程每一個階段結束前,應該着重對可維護性進行復審。在系統設計階段的複審期間,應該從容易修改,模塊化,和功能獨立的目的出發

4.逆向過程與再工程

​ 逆向工程是指分析已有的程序,尋求比源代碼高級的抽象式更高一級的抽象形式。 再生工程,也稱爲修復和改造工程,它是在逆向工程所獲信息的基礎上修改或再 生 已有的系統,產生系統的一個新版本。

再工程是:指通過對目標系統的檢查和改造,其中包括設計恢復(庫存目錄分析)、再文檔、逆向工程、程序和數據重構以及正向工程等一系列活動,旨在將逆向工程、重構和正向工程組合起來,將現存系統重新構造爲新的形式,以開發出質量更高、維護性更好的軟件。


三.總結

維護是軟件生命週期的最後一個階段,也是持續時間最長,代價最大的一個階段,而軟件工程的主要目的就是提高軟件的可維護性降低維護的代價

1.軟件工程的四類活動(類型)。

2.決定軟件可維護性的基本因素。

3.文檔是影響軟件可維護性的決定因素,文檔比可執行的程序代碼更重要,分爲用戶文檔系統文檔

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章