1. 程式人生 > >軟體工程小記——軟體維護

軟體工程小記——軟體維護

第七章 軟體維護與專案管理
1.軟體維護:
    軟體維護是指軟體系統交付使用以後,為了改正軟體執行錯誤,或者為了滿足使用者新的
    需求而加入新功能的修改軟體的過程。
2.軟體維護的分類
    a.正確性維護
        正確性維護是指改正在系統開發階段已發生而系統測試階段尚未發現的錯誤。
    b.適應性維護
        適應性維護是指使用軟體適應資訊科技變化和管理需求變化而進行的修改。
    c.完善性維護
        完善性維護是指為擴充和改善效能而進行的修改,主要是對已有的軟體系統增加一些在系統分析
        和設計階段中沒有規定的功能與效能特徵。
    d.預防性維護
        為了改進應用軟體的可靠性和可維護性,為了適應未來的軟硬體環境的變化,應主動增加預防性
        的新的功能,以使應用系統適應各類變化而不被淘汰。
        
3.可維護性
    a.可維護性,是指軟體產品被修改的能力,修改包括糾正、改進或軟體對環境、需求和功能規格說明變化的適應。
    b.可維護性的特性:
        易分析性、易改變性、穩定性、易測試性、維護性的依從性。
        
4.可維護性的度量
    a.可理解性
    b.可靠性
    c.可測試性
    d.可修改性
    e.可移植性
    
5.提高維護性的方法
    a.建立明確的軟體質量目標
    b.利用先進的軟體開發技術和工具
    c.建立明確的質量保證
    e.選擇可維護的語言
    f.改程序序的文件
    h.開發時考慮到維護
    
6.軟體再工程
    6.1 軟體再工程:
        軟體再工程是指對既存軟體系統進行調查,並重新開發的過程,其目的是重新審視現有的系統,以便進一步利用
        高新技術來改善系統或促進現存系統的再利用。
    6.2 軟體再工程模型
        a.庫存目錄分析:
            每個軟體組織應該儲存所有應用的庫存目錄。
        b.文件重構:
        c.逆向工程;
            逆向工程是一個設計恢復過程,逆向工程工具從現存的程式中抽取資料、體系結構和過程的設計資訊。
        d.程式碼重構
        e.資料重構
        f.正向工程

7.逆向工程
    a.逆向工程產品設計可以認為是一個從產品到設計的過程。逆向工程產品設計就是根據已經存在的產品,反向推出
    產品設計資料的過程。
    b.逆向工程的抽象層次是指可以從原始碼中抽取出來的設計資訊的精密程度。
    c.逆向工程的完整性是指在某抽象層次上提供的細節程度。
    
    7.1 處理的逆向工程
    7.2 資料的逆向工程
    7.3 使用者介面的逆向工程

8.重構
    8.1 重構指的是在不改變軟體現有功能的基礎上,通過調整程式程式碼改善軟體的質量、效能,使其程式的設計模式和架構
        更趨合理,提高軟體的擴充套件性和維護性。
    8.2 程式碼重構
        程式碼重構,指對軟體程式碼做任何更改以增加可讀性或者簡化結構而不影響輸出結果。
        程式碼重構既不修正錯誤,又不增加新的功能性。反而是用於提高程式碼的可讀性或者改變程式碼內部結構與設計,並且移出死程式碼,
        使其在將來更容易被維護。
    8.3 資料重構
        資料重構,為取得正確的資料模式和作出正確的預測,在資料探勘過程中必須將經過處理的資料恢復原來的分佈特徵。
        在開始資料重構前,必須先進行分析原始碼的逆行工程活動。