構建之法第一章學習筆記
阿新 • • 發佈:2018-10-28
增長 項目 問題 五個 速度 計算機 系統軟件 數學基礎 四種
軟件=程序+軟件工程
軟件工程是什麽
軟件可分為:系統軟件,應用軟件與惡意軟件,他的存在都是為了解決某種需求。計算機的硬件能力發展符合摩爾定律,即大致每兩年提高一倍的速度,而軟件開發流程的提速過程卻沒有如此迅速,原因是由於軟件自身的本質特性,大概分為以下五個:
1.復雜性:
(1)源代碼多
(2)模塊間依賴關系復雜
(3)系統增長與模塊增多關系數量以幾何級數速度增長
2.不可見性:
(1)無法直接看到源代碼的具體執行過程
(2)無法重現問題
3.易變性:
(1)新功能多,適應新硬件需求多
(2)正確修改困難
4.服從性:
(1)服從系統其他組成部分
(2)服從用戶需求
(3)服從行業系統要求
5.非連續性:
輸入與輸出變化不成正比
軟件開發項目目的分為四種:
1.發現客觀規律或探求方法優劣
2.演示目的,展現某個技術作用
3.服務一定範圍目標用戶
4.贏得用戶
軟件工程知識構成
軟件工程涉及到計算基礎,數學基礎以及工程基礎三大基礎知識領域
學習軟件工程的重要方法不是了解軟件工程的專業名詞概念以及定義,而是需要在實踐中學習,去了解軟件工程究竟是做什麽的,在每個項目裏的具體體現。
軟件工程的目標:
創造‘足夠好’的軟件是軟件工程的目的。但足夠好的定義是什麽呢?軟件中bug的多少可以直接衡量一個軟件的開發效率,用戶滿意度,可靠性和可維護性。但是一個bug到底是缺陷還是功能這是一個值得考慮的問題。有些缺陷可能也是一種功能,因此在多種約束條件下,當軟件足夠好了就可以發布了而不是一定要等軟件完美。學習本書的目標是:
(1)研發出符合用戶需求的軟件
(2)在預計時間內發布足夠好的軟件
(3)能證明所開發的軟件是可以維護和繼續發展的
構建之法第一章學習筆記