一、軟體工程的關注點(特點)及主要解決思路(基本原理)
1、特點
(1)關注于大型的軟體的建構
多人合作花費半年以上時間的軟體稱之為。。。
(2)中心課題:控制複雜度
業務邏輯很複雜
構件間的依賴和通信
不同開發人員間的溝通
–分解(各個可以獨立的構架,溝通接口)–>多人合作開發
(3)軟體經常變化-》關注變更控制的管理
(4)注重軟體開發效率
a)變化的商業需求需要及時修改已有的軟體
b)趕在競争者之前開發出軟體
c)社會對軟體的需求超過了人力資源所能提供的限制
(5)關注團隊間的合作(和諧的合作式開發軟體的關鍵)
(6)軟體必須有效的支援使用者
研究使用者,獲得正确的功能需求,可用性,品質的要求(可靠性,響應的時間)
(7)軟體工程師《–》特定領域的人員
2、7基本的原理(B.W. Beohm)
(1)用分段的生命周期計劃嚴格管理。
問: 你覺得大部分軟體失敗的原因:不合理的進度安排
a)合理估算工作量
b)把軟體生命周期劃分為若幹個階段,并相應的指定出切實可行的計劃,
然後嚴格按照計劃對軟體的開發和維護進行管理
(2)堅持進行階段評審
a)大部分的軟體錯誤發生在編碼之前:設計錯誤63%,編碼錯誤37%
b)發現更改錯誤越晚,代價越大
(3)嚴格的産品控制
開發過程中不建議你修改需求–>代價很多
開發過程中的需求變化是在所難免
—順應需求變更的要求
(4)采用現代的程式設計技術
(5)結果應該清楚的被審查
(6)開發小組的人員應該少而精(10個)
a)高素質的人員&一般的工程師 幾倍–幾十倍
b)增加溝通成本
5000人月 20倍 500人月 --->團隊模式
(7)承認不斷改進軟體工程的必要性
二、軟體生命周期
1、需求分析->軟體設計->建構(編碼+單元測試)->綜合測試(內建&系統測試)->維護
(1)需求分析:
起始:軟體需要解決什麼問題,軟體為哪些人服務,軟體性質,軟體的邊界
–>可行性分析
擷取:業務需求+功能需求+使用者需求(用例)
細化:詳細的使用者場景
協商:
沖突
資源有限,使用者要求很高
各個利益相關者的要求沖突了
規格說明書
促進一緻的更易于了解的方式表達需求—》合同的一部分
确認
(2)軟體設計:建立軟體的模型:
體系機構:定義軟體的主要結構化構件以及他們之間的關系
資料結構:設計類的實作以及軟體實作所需要的資料
接口:軟體與其他協助系統,軟體與使用者,各構件之間的通信
構件細節:
(3)構件
(4)綜合測試
(5)維護:通過各種必要的維護活動使系統持久得滿足使用者的需求:
更正性維護/适應性維護/完善性的維護/預防性
三、軟體過程(線路圖)
1、過程:定義活動的時間,人員,工作内容和達到預期目标的途徑
2、軟體導論:軟體過程:為了獲得高品質的軟體,所需要完成的一系列活動架構,
它規定了完成各項任務的工作步驟。
實踐者的研究方法: 軟體過程給定了工作産品建構時所執行的活動,動作和任務的
集合,描述了執行順序和執行時間上如何組織這些活動,動作和任務集。
溝通–》 策劃–》 --》模組化 --》 編碼 —》部署
(需求) (估算,計劃)