大概在5年以前曾經從網上搜到了barry boehm提出的軟體工程的七原則(seven basic principles of software engineering),這是barry boehm2023年發表的文章,在網上搜到的是別人對這七個原則的轉譯與介紹,看後覺得怪怪的,總是覺得有些地方不能準確把握這七個原則的含義。於是去google搜其原文,未果,最近終於搜到了原文,因此更能準確把握barry boehm老先生的原意。
有人將題目翻譯為軟體工程的七個基本原理,其實,principles在此處還是翻譯為原則更為準確。
依據原文我的對於各原則的理解如下:
原則一:使用
分階段的生命週期計畫管理
(manage using a phased life-cycle plan)
(1)一定要有專案計畫;
(2)專案要劃分生命週期階段,每個階段都要有計畫;
(3)計畫要分層或分階段逐步細化;
(4)要使用專案計畫管理專案,不能棄之不用。
原則二:
執行持續確認
(perform continuous validation)
(1)盡早發現錯誤。大部分缺陷是編碼之前注入的,缺陷越早修復成本越低。
(2)盡早發現錯誤的措施:
深入評審;
設計階段編寫使用者手冊、使用手冊、資料準備手冊;
原型;模擬;
自動化的檢測工具;
設計審查與走查;
等等。原則三:堅持
規範的產品控制
(maintain disciplined product control)
執行配置管理,確保工作產品之間的一致性。
原則四:使用現代化的程式設計實踐(use modern programming practices)
採用現代化的開發方法、開發實踐提公升軟體的效率與質量。
原則五:堅持
結果的清晰的責
任(maintain clear accountability for results)
對於專案的階段產出、各個小組之間的承諾、每個人的產出與承諾要明確、要可驗證。
原則六:使用
少而精的人員(
use better and fewer people)
(1)人與人之間的效率差別達10倍甚至25倍以上,因此要使用精英團隊。
(2)採用多種方式提公升溝通的質量與效率:
不要通過加人的方式解決進度問題
專案的初期不要太多的人員
為高效能提供高的回報
淘汰低效能者
使用自動化的輔助工具
原則七:堅持
過程改進的承諾
(maintain a commitment to improve the process)
識別、分析技術與過程的改進,建立持續改進的機制。
如果仔細去分析敏捷的軟體開發方法,則可以發現,恰恰敏捷的實踐很好的滿足了上述的七個原則:
barry boehm
七原則
敏捷實踐
原則一:使用分階段的生命週期計畫管理
採用迭代的生命週期模型
增量式交付
制定交付計畫與迭代計畫
原則二:執行持續確認
現場客戶隨時執行功能測試
測試驅動開發
持續整合
sprint review
原則三:堅持規範的產品控制
現場客戶或product owner負責維護需求
持續整合
原則四:使用現代化的程式設計實踐
系統隱喻
重構原則五:堅持結果的清晰責任
時間箱管理
開發人員認領任務
使用者故事的驗收準則
每日站立會議
測試驅動開發
持續整合
現場客戶功能測試
sprint review
原則六:使用少而精的人員
每個專案小組不超過10人
採用一專多能,交叉職責的人員
自我管理的團隊
每週工作40小時
原則七:堅持過程改進的承諾
sprint retrospective
軟體工程 軟體工程的概述
軟體工程是研究和應用如何以系統性的 規範化的 可定量的過程化方法去開發和維護軟體,以及如何把經過時間考 驗而證明正確的管理技術和當前能夠得到的最好的技術方法結合起來的學科,它涉及到程式語言 資料庫 軟體 開發工具 系統平台 標準 設計模式等方面。先從軟體工程的第一章開始說起 軟體工程的概述,這一章是...
軟體工程 軟體工程的理解
四 軟體危機 五 軟體工程要素及其作用 針對本學期第一次軟體工程課後的思考題,參考課本以及網路上的資料,作出如下自己的思考理解。在此之前,我所做過的工程僅僅侷限於一些課程的大作業上,並沒有更進一步到軟體上面,僅僅是針對某乙個或者某一類問題進行解決。我的看法 1 書上的定義 書上給出了許許多多的定義,...
軟體工程 軟體工程概述
一.軟體 定義 計算機系統中的程式及其文件 程式 計算任務的處理物件和處理規則的描述 文件 為了便於了解程式所需的闡明性資料 特點 軟體的種類 按功能劃分 系統軟體 支援軟體 應用軟體 二.軟體工程的起源和概念 早期電腦程式 現在人們認為 在資訊產業中,微電子是基礎,計算機和網路是載體,軟體是核心 ...