1. 程式人生 > >軟體工程(一)——前言

軟體工程(一)——前言

筆者正在學習《軟體工程-實踐者的研究方法》這本書,記錄下一些讀書筆記,共勉!

1.軟體開發依舊面臨的問題

①軟體開發時間長;
②開發成本高;
③軟體交付客戶前,無法找到所有錯誤;
④維護已有程式花費較高的時間和人力代價;
⑤軟體開發和維護過程難以度量。

2.軟體的定義

(1)指令的集合,通過執行這些指令可以滿足預期的特徵、功能和效能需求;
(2)資料結構,使得程式可以合理利用資訊;
(3)軟體描述資訊,以硬拷貝和虛擬形式存在,用來描述程式操作和使用。

3. 軟體工程定義

(1)將系統化的、規範的、可量化的方法應用於軟體的開發、執行和維護,即將工程化的方法應用於軟體;


(2)在(1)中所述方法的研究。
軟體工程是一種層次化的技術,如圖。
①支援軟體工程的根基在於質量關注點
②軟降工程的基礎過程,軟體過程將各個層次結合在一起,過程定義了一個框架,構成了軟體專案管理控制的基礎,建立了工作環境以便於應用技術方法、提交工作產品、建立里程碑、保證質量以及正確管理變更;
③軟體工程方法為構建軟體提供技術上的解決方法,包括溝通、需求分析、設計建模、程式設計、測試等;
④軟體過程工具為過程和方法提供自動化和半自動化的支援。

軟體工程層次圖

4. 軟體過程

軟體過程是工作產品構建時所執行的一系列活動、動作和任務的集合。
活動:主要實現寬泛的目標,與應用領域、專案大小、結果複雜性或者實施軟體工程的重要程度沒有關係;
動作:包含了主要的工作產品(如體系結構設計模型)生產過程中的一系列任務;
任務:關注小而明確的目標,能夠產生實際產品。

過程框架(process framework)定義了若干個框架活動,為實現完整的軟體工程過程建立了基礎。通用的軟體工程過程框架通常包含:
①溝通: 和客戶(及其他利益相關者)溝通協調,理解利益相關者的專案目標,收集需求以定義軟體特性和功能;
②策劃: 定義和描述軟體工程工作,包括需要執行的技術任務、可能的風險、資源需求、工作產品和工作進度計劃;
③建模: 搭建模型以更好理解軟體需求;
④構建: 編碼和測試以發現編碼中的錯誤;
⑤部署: 軟體全部或部分增量交付到使用者,使用者對其進行評價並給出反饋意見。

5. 軟體工程實踐

5.1 實踐的精髓:

①理解問題:溝通和需求分析;
②計劃解決方案:建模和軟體設計;
③實施計劃:程式碼生成;
④檢查結果正確性:測試和質量保證。

5.2 一般原則

①存在價值:一個軟體系統因為能給使用者提供價值而具有存在價值;
②保持簡潔:所有的設計儘可能簡潔,但不是過於簡化;
③保持願景:清晰的願景是軟體專案成功的基礎;
④關注使用者:
⑤面向未來:
⑥計劃複用:系統開發過程中的各種層面都有多種技術實現複用;
⑦認真思考。