1. 程式人生 > >軟體工程——軟體維護總結

軟體工程——軟體維護總結

一.軟體維護

1.概念:在軟體已經交付使用之後,為了改正錯誤或滿足新的需要而修改軟體的過程。

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

維護的分類 

(1)改正性維護:在軟體交付使用後,因開發時測試的不徹底、不完全,必然會有部分隱藏的錯誤遺留到執行階段。這些隱藏下來的錯誤在某些特定的使用環境下就會暴露出來。為了識別和糾正軟體錯誤、改正軟體效能上的缺陷、排除實施中的誤使用,應當進行的診斷和改正錯誤的過程就叫做改正性維護 。

(2)適應性維護:在使用過程中,外部環境(新的硬、軟體配置)資料環境(資料庫、資料格式、資料輸入/輸出方式、資料儲存介質)可能發生變化 。

(3)完善性維護:在軟體的使用過程中,使用者往往會對軟體提出新的功能與效能要求。為滿求了足這些要求,需要修改或再開發軟體,以擴充軟體功能、增強軟體效能、改進加工效率、提高軟體的可維護性。

(4)預防性維護:採用先進的軟體採用先進的軟體工程方法對需要維護的軟體或軟體中的某一部分(重新)進行設計、編制和測試。

各類維護活動的根本目的是: 延長軟體生存期

維護的重要特點

結構化維護與非結構化維護的對比

 維護的成本

 維護工作的勞動包括生產性活動和非生產性活動

  維護工作量的模型   M = p + Ke^(c - d)- = +

M是維護中消耗的總工作量

p是上面描述的生產性工作量

K是一個經驗常數

c是因缺乏好的設計和文件而導致複雜性的度量

d是對軟體熟悉程度的度量

維護的問題

•別人的程式很難讀懂

•文件與程式碼不一致   

•開發人員往往不參加維護

•大多數軟體在設計時沒有考慮將來的修改

二.維護的過程

本質:修改和壓縮了的軟體定義和開發過程

  1. 可維護性的度量

軟體可維護性是指糾正軟體系統出現的錯誤和缺陷,以及為滿足新的要求進行修 改、擴充或壓縮的容易程度。 n

可維護性、可使用性、可靠性是衡量軟體質量的主要質量特性

  1. 衡量可維護性的軟體特性

可理解性 可使用性 可測 試 性 可移植性 可修改性 效率 可靠性

  1. 文件 ——可維護性的決定因素
  1. 逆向過程與再工程

逆向工程是指分析已有的程式,尋求比原始碼高階的抽象式更高一級的抽象形式。 再生工程,也稱為修復和改造工程,它是在逆向工程所獲資訊的基礎上修改或再 生 已有的系統,產生系統的一個新版本。

  1. 逆向工程恢復資訊的級別

  實現級:程式的抽象語法樹、符號表等資訊

結構級:如呼叫圖、結構圖

功能級:反映程式段功能和段間關係的資訊

領域級:反映程式分量與應用領域概念間對應關係的資訊

  1. 逆向工程的方法

  反彙編、反編譯

程式分析技術: 程式結構分析工具

程式功能分析工具