今日總結1.1

新晋软工小白發表於2024-09-16

第一章:軟體開發概述
1.1軟體與程式
1.1.1從程式到軟體

計算機程式(簡稱程式)是為了解決某個特定問題而用程式設計語言描述的適合計算機處理的語句序列;
軟體是能夠完成預定功能和效能的可執行的程式和使程式正常執行所需要的資料,加上描述軟體開發過程及其管理、程式的操作和使用的有關文件,即“軟體=程式+資料+文件”
1.1.2軟體型別

按功能:系統軟體、支撐軟體和應用軟體。
按工作方式:實時處理軟體、分時軟體、互動式軟體和批處理軟體。
按服務物件的範圍:專案軟體(定製開發)和產品軟體(通用軟體)
其他:商業軟體、開源軟體、共享軟體。

1.1.3程式設計與軟體開發

程式=演算法+資料結構 程式=演算法+資料結構

資料結構指的是程式處理或應用的資料與資料之間的邏輯關係;
演算法指的是解決特定問題的步驟和方法。
程式設計的核心就是選擇和設計適合特定問題的資料結構。

1.2軟體生存週期
孕育>誕生>成長>成熟>衰亡

1.2.1使用角度的軟體生存週期

提出需求:使用者根據需要,提出要解決的問題和需要的軟體;
獲取軟體∶主要是對獲取軟體的最佳途徑做出決策並選擇最佳的供應商;
購買軟體;
定製或開發軟體;
租賃軟體或租賃服務。
使用軟體:獲得軟體之後,使用者將操作軟體使之為其服務。

1.2.2開發角度的軟體生存週期

定義軟體:

理解問題:用明確的語言描述軟體要解決的問題、目標和範圍;
可行性研究:從經濟、技術、法律等方面分析軟體開發的可行性;
需求分析:描述對軟體系統的所有需求,即明確要軟體做什麼 。

開發軟體:

軟體設計:建立目標軟體的解決方案,包括軟體的結構和組成;
軟體實現: 用程式語言實現設計方案,包括與其他系統的介面和整合;
軟體測試:透過各種測試和評審技術,確認軟體滿足了指定要求。

維護軟體:

軟體交付:釋出開發的軟體,或者安裝、部署到使用者現場以便使用軟體維護;
軟體退役:對軟體進行修改或對需求的變化做出響應終止對軟體的技術支援和維護,軟體停止使用。
1.3軟體開發過程


1.3.1瀑布式開發過程

主要問題在於∶
階段劃分僵硬,每個階段不能預設,而且產生大量文件,增加了工作量;
開發是線性的,只有等到整個過程的末期才能見到開發成果——可執行軟體,不利於快速響應變化的需求;
早期的錯誤要等到開發後期的測試階段才能發現,可能帶來嚴重的後果,增加了開發的風險。

1.3.2增量開發模型

增量開發模型的優點∶

1、在短時間內向使用者提交一個可執行軟牛,夠足使用者急用的一些功能。
2、由於每次只提交部分功能,用屍有較允分的時月子習迫應新的產品。
3、在開發過程中,需求的變化是不可避免的。增量開發模型的靈活性可以使軟體適應需求變化。
4、有利於系統維護,因為整個系統是由一個個增量(部件)整合在一起的,當需求變更時,只變更部分部件,而不必影響整個系統。
增量模型存在以下風險∶

1、由於各個部件是逐漸開公二俱軟Na稱t育T的北的的部件不破壞已構造好的系統,這需要軟體具備開放式的體系結構,否則系統將失去穩定的結構。
2、逐步增加部件的方式,很容易退化為邊做邊改模型,從而使軟體過程的控制失去整體性。
3、在一個軟體開發中如何一致地定義“增量”?如何界定它的工作量、需求範圍、功能或特性?