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

維護【軟體工程總結】

一. 軟體維護就是在軟體已經交付使用後,為了改正錯誤或滿足新的需求而修改軟體的過程。

二. 軟體維護的特點

1. 非結構化維護和結構化維護差別巨大,前者維護的物件只是程式程式碼,而內部文件不足,導致維護需要付出很大代價。後者維護的物件是完整的軟體配置,需要從設計文件評價開始,經過分析軟體特點,估量修改帶來的影響,再經過一系列修改步驟才開始編寫相應原始碼,這使得軟體維護減少了精力的浪費,提高維護的總體質量。

2. 維護的代價昂貴,在過去幾十年裡,維護費用逐年上升,而且如果軟體開發沒有運用軟體工程方法學,原來的開發者不參與維護,那麼維護的工作和質量將指數地增加。

3. 維護的問題很多,如理解別人的程式有難度,往往沒有合格的文件,原始開發人員可能不在,絕大多數軟體在設計時沒有考慮將來的修改等等。

三. 軟體維護過程

維護過程本質上是修改和壓縮了軟體定義和開發過程。

1. 建立維護團隊,明確分工。

2. 制定軟體報告,說明維護要求的工作量、性質、優先次序和修改有關的事後資料。

3. 按照維護事件流開展工作,如下圖所示,

4. 保護維護的各項記錄,以確定程式產品的"優良"程式,比如源語句數、機器指令條數、使用的程式設計語言、程式改動的日期、與完成的維護相聯絡的純效益等等。

5. 評價度量維護工作,從幾個方面評價:

①每次程式執行平均失效的次數

②用於每一類維護活動的總人時數

③平均每個程式、每種語言、每種維護型別所做的程式變動數

④維護過程中增加或刪除一個源語句平均花費的人時數

⑤維護每種語言平均花費的人時數

⑥一張維護要求表的平均週轉時間

⑦不同維護型別所佔的百分比

四. 軟體的可維護性

1. 決定軟體可維護性的因素:可理解性,可測試性,可修改性,可移植性,可重用性。

2. 文件是影響可維護性的決定因素,分為使用者文件和系統文件。

3. 可維護性複審

五. 預防性維護,可定義為"把今天的方法學應用到昨天的系統上,以支援明天的需求"。

六. 軟體再工程過程,其模型如下,