天天看點

軟體工程基礎知識

一、軟體工程的關注點(特點)及主要解決思路(基本原理)

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、軟體導論:軟體過程:為了獲得高品質的軟體,所需要完成的一系列活動架構,

它規定了完成各項任務的工作步驟。

實踐者的研究方法: 軟體過程給定了工作産品建構時所執行的活動,動作和任務的

集合,描述了執行順序和執行時間上如何組織這些活動,動作和任務集。

溝通–》 策劃–》 --》模組化 --》 編碼 —》部署

(需求) (估算,計劃)