1. 程式人生 > >高質量程式設計指南C++/c語言讀書筆記 第一章

高質量程式設計指南C++/c語言讀書筆記 第一章

第一章 高質量軟體開發之道 1.1質量的定義 詞典:(1)典型或本質的特徵;(2)事物固有的或區別於其他物質的特徵或本質;(3)優秀或出色的程度。 CMM定義:(1)一個系統、元件或過程符合特定需求的程度;(2)一個系統、元件或過程符合客戶或使用者要求或期望的程度。 軟體質量屬性: 功能性指標:正確性、健壯性、可靠性 非功能性指標:效能、清晰性、安全性、易用性、可移植性、相容性、可擴充套件性 1.2細說軟體質量的屬性 正確性指的是軟體能夠按照需求正確執行任務的能力 健壯性指的是軟體在出現異常的情況下正常運作的能力,其中包含容錯性和恢復性,容錯性>恢復性 可靠性指的是軟體在長期執行的情況下程式不出現故障的概率 效能 指的是軟體的時間和空間代價效率 易用性指的是使用者使用軟體的容易程度 清晰性指的是程式碼易讀易理解並且儘量地簡潔 安全性指的是防止系統被非法入侵的能力 可擴充套件性指的是軟體適應變化的能力 相容性指的是兩個以上的軟體相互交換的資訊的能力,通常弱者想辦法與強者相容,強者想辦法讓弱者無法相容 可移植性指的是軟體(程式碼)在不加修改或者稍加修改就能在不同軟硬體上進行執行的能力 1.3人們關心的不僅僅是質量 (1)質量永遠是最重要的,其次才是生產效率與成本; (2)經典軟體工程:
重點研究需求分析、系統設計、程式設計、測試、維護等領域的方法、技術和工具 (3)90年代起、軟體過程改進成為工程學科的一個主流研究方向 (4)過程包括:人員、方法與規程、技術與工具。這三者結合為過程產出產品 1.4高質量軟體開發的基本方法 基本思想:要想順利的開發出高效有質量的軟體,必須有條理的組織技術開發活動和專案管理活動 常見軟體開發模型:瀑布模型、噴泉模型、增量模型、快速原型模型、螺旋模型、迭代模型等 作者推薦模型:精簡併行過程(SPP) 含義: (1)對CMMI3級以內的過程域及關鍵實踐做了精簡處理 (2)對“專案管理過程”、“技術開發過程”、“機構支撐過程”做了“並行”處理。 SPP把產品生命週期分為六個階段: PH0:產品概念階段 PH1:產品定義階段 PH2:產品開發階段 PH3:產品驗證階段 PH4:產品驗收階段 PH5:產品維護階段 專案管理過程:PH0(立項管理)、PH1(專案計劃)、PH2(專案監控,風險管理)、PH3(需求管理)、PH4(外包管理)、PH5(結項管理) 技術開發過程:PH0(需求開發)、PH1(需求開發,技術預研)、PH2(技術預研,系統設計,實現與測試)、PH3(系統測試)、PH4(使用者驗收)、PH5(產品維護) 機構支撐過程:配置管理、質量保證、採購管理、培訓管理 勤勞並且聰明的人把大部分的時間用於小比例的創新工作上,而把小部分的時間用於大比例的複用工作上
分而治之的思想: 能分且能合 優化與折中:永遠不要忘了追求更好的優化,折中不是妥協,是在保證其他質量屬性不差的情況下使得某項質量屬性變得更好,首先要吃飽 1.4.5技術評審的一般流程: 步驟1:準備評審 步驟2:舉行評審會議: 主持人宣講-->作者介紹工作成果-->識別缺陷和問答-->討論缺陷解決方案-->會議結束決議 步驟3:修正跟蹤稽核
修正與跟蹤-->遞交稽核-->稽核工作成果 1.4.6測試:測試的目的是為了找出儘可能多的缺陷 測試的一般流程: 制定測試計劃-->編寫測試用例-->執行測試-->撰寫測試報告-->修改錯誤(迴歸測試-->執行測試)-->完成測試 1.4.7質量保證: 在整個軟體流程中客觀的監控軟體從而持續的改進軟體質量 1.4.8改錯: 改錯是一個神奇的過程,debug的時候一定要和靜靜處好關係,先把bug拉低到和自己同樣的水平,再用豐富的經驗例如二分法、歸納推理等方法解決掉他
1.5軟體的思考 軟體是一門藝術嗎:軟體就是一門藝術,和建築、繪畫、音樂等藝術一樣,簡單的字母數字拼接到了一起,經過程式設計師的結合總結梳理雕刻撫摸,就變成了一個個鮮活的程式、都是把自然界的材料進行人類的改進操作之後就能形成有用的工具,變成令人賞心悅目的藝術品 軟體的錯誤不應分等級 不要刻意耍雜技 1.6小結(自我感受) 程式碼是程式設計師與計算機交流的語言,程式設計師通過程式碼來使得計算機做自己想做的事,好的程式設計師應該能夠懂得語言的美麗,邏輯的美麗,藝術的美麗和工匠的美麗。程式設計師就是一個工人,具有匠心而又有天賦的工人便可以成為大工程師(順推文明5)。