軟體工程的真實與謬誤

2021-04-18 06:33:35 字數 2425 閱讀 3053

上收藏的一篇書評,隨手翻譯了一些,原文在:

有些條款不理解,也沒有上下文,譯得暴爛:-)

1.

軟體工作中最重要的因素是程式設計師的質量。

2. 最優秀的程式設計師比最糟糕的程式設計師好上28倍。

3. 在延期的工程中加入人員,會使工程更為延期。

4. 工作環境對生產力和工作質量有深刻的影響。

工具和技術

對工具和技術的炒作(hype)是軟體工廠的瘟疫(plague)。

新工具和新技術是生產力和質量流失之源。

軟體開發者大量討論工具,卻很少使用它們。

評估(estimation)

兩個常見的導致專案偏離正軌(runaway)的緣故之一是評估不力。

軟體評估常發生在錯誤的時候。

軟體評估常由錯誤的人來完成。

軟體評估甚少跟隨專案程序而改進。

軟體評估不當並不意外,然而我們生死以隨。

[言下之意是:我們常作出錯誤的軟體評估,雖然明知是錯,但我們常常將錯就錯,一錯到底。]

軟體管理者和程式設計師存在斷鏈。

可行性分析的結果通常是:「可以」。

重用

小規模重用可解決問題。

大規模重用依然存在許多問題未能解決。

大規模重用在系列相關系統中工作出色。

可復用元件的構建難度3倍於普通元件,並且需要嘗試三種不同的設定。

修改復用**極易導致錯誤。

復用設計模式是解決**復用問題的乙個方案。

需求

兩個常見的導致專案偏離正軌(runaway)的緣故之一是不明確的需求。

需求錯誤的修改代價在整個生產過程中最為昂貴。

未被發現的(missing)的需求是需求錯誤中最難被糾正的。

設計

顯式的需求會「**」,就像隱式的需求會導致解決方案演化。[言下之意是:我們認為是需求的需求會暴多,但我們沒有洞察到的需求卻會左右方案的演化。]

對乙個軟體問題而言,甚少有個「最好」的設計方案。

設計是個複雜和互動的過程。最初的設計方案通常是錯誤的,而且顯然是未經優化的。

編碼

設計者的「初衷」甚少與程式設計師的「初衷」相符。

cobol

是門極為糟糕的語言,然而其他所有語言更為糟糕。:)

除錯

29.除錯在整個(專案的)生命週期中是個最為耗時的階段。

測試

當前最好的軟體測試也只有55%到60%的覆蓋率。

即是100%的測試覆蓋率仍然是遠遠不夠的。

測試工具是必備的,然而甚少被用。

自動化測試被誇大了,多數測試不能被自動化。

由程式設計師編寫的,嵌入在**裡的除錯**是對測試工具的很好補充。

複審和檢查

嚴格檢查可在第乙個測試用例執行前解決90%的錯誤。

嚴格檢查並不能替代測試。

提交後之複審,事後檢查,以及回顧很重要,但甚少執行。

複審包括技術和社會學兩方面,且此兩個因素必須相互包含。

維護

典型的維護會消耗40%到80%的軟體開銷。它也許是整個軟體生命週期中最為重要的階段。

加強表現力(represent)大概佔據了60%的維護開銷。

維護是個解決方案,而非乙個問題。

理解維護物件是維護任務中最困難的一環。 「

更好的方法」導致維護(成本)增加,而非減少。

質量

質量是(各個)屬性(的質量)之集。

質量不是使用者的滿意度、會議需求、預算和日程,也不是可靠性。

可靠性

大多數程式設計師都有犯某些錯誤的傾向。

錯誤傾向積聚(出現)。

沒有乙個最好而又簡單的途徑解決軟體錯誤。

總是存在清楚未盡的錯誤。我們的目標應該是最小化或者消滅掉嚴重錯誤。

效率

效率更多的源自設計而非編碼。

高階語言能到達相應彙編**的90%的效率。

折中時間優化和空間優化。

研究

52.多數研究者喜歡主張勝過求證。

軟體工程的事實與謬誤

軟體工程的事實與謬誤 robert l.glass 事實1 在軟體開發中,最重要的因素不是程式設計師採用的工具和技術,而是程式設計師自身的質量。事實2 對 個體差異 研究表明,最好的程式設計師要比最差的程式設計師強28倍之多,即使他們的報酬不同,優秀程式設計師仍是軟體業中最廉價的勞動力。事實3 br...

《軟體工程的事實與謬誤》核心內容摘抄

以下文字來自 軟體工程的事實與謬誤 僅僅閱讀這些文字,有很多你可能會一頭霧水,不要緊,花17元就能買到正版書,仔細閱讀你就會明白了。軟體專案很多問題的根源從以下事實和謬誤中我們都能找到答案。專案管理有完整的體系和方法,並且在不斷改進。但如果想做好it行業的專案管理,對軟體工程的本質的東西看不透是不可...

軟體工程 軟體工程的概述

軟體工程是研究和應用如何以系統性的 規範化的 可定量的過程化方法去開發和維護軟體,以及如何把經過時間考 驗而證明正確的管理技術和當前能夠得到的最好的技術方法結合起來的學科,它涉及到程式語言 資料庫 軟體 開發工具 系統平台 標準 設計模式等方面。先從軟體工程的第一章開始說起 軟體工程的概述,這一章是...