軟體的本質與軟體工程科學(二)

2021-09-18 03:39:22 字數 1232 閱讀 4431

專案管理實踐

分析就是對軟體產品的需求、可行性進行分析。確定要做什麼功能,需要什麼成本,承擔什麼風險,能否成功,有怎樣的收益,值不值得這麼做。

設計是在軟體產品完成分析階段並決定繼續開發之後,將更加實際地、系統地、細緻地考慮和規劃實現層面的細節,比如確定要用什麼樣的系統架構,什麼樣的管理體系,介面怎麼設計,模組怎麼分工等。

讓分析與設計更簡單、容易理解,提高軟體成品質量,減小維護成本。

行為圖:系統的動態行為

狀態圖:物件的動態行為。狀態 - 事件 - 狀態遷移 - 響應動作

活**:描述系統為完成某功能而執行的操作序列

實現圖:描述系統的組成和分布狀況

軟體的本質決定了軟體開發的難度,brook總結軟體本質特性為:複雜性(complexity)、一致性(conformity)、可變性(changeability)、不可視性(invisibility)。

在實際軟體專案中,即使在有明確的軟體開發合同條件下,這四個約束並不是不可商量的。原因在於軟體生產是易變、不可見、獨特的智力生產!因為我們並不能如生產肥皂、衣服一樣先給乙個樣品參考標準,甚至在專案開完成也無法寫出完善的軟體需求規格說明書。已 word 為例,設計師並不完全知道客戶真需要什麼,會在哪些場景中使用它,除了等待客戶反饋,迭代公升級,別無其他的方法。

從提公升客戶滿意度的角度,了解並控制這四個元素就是 軟體專案成功的關鍵。

scope = time × resources,在專案管理中稱為 str 模型。

由於軟體本身的複雜性、不可見性、不一致性、可變性,軟體範圍多數情況下對於客戶和開發者都是模糊的,這形成軟體產品與其他產品不同的開發過程。因此,範圍管理是軟體專案管理的重中之重!

(實現《uml和模式應用-第3版》第9頁圖1-6)

軟體的本質與軟體工程科學(三)

增量模型 螺旋模型 軟體開發是乙個迭代過程 軟體開發是由use case驅動的 軟體開發是以架構設計為中心的 統一過程是物件導向開發的重要方法,是迭代 敏捷開發實踐的代表,給出了有關軟體開發過程組織及實施的指導。rup中的軟體生命週期在時間上被分解為四個順序的階段,分別是 初始階段 inceptio...

軟體工程的本質

軟體工程的本質 問題域到不同抽象層之間概念和計算邏輯的對映.從問題域到開發平台直接進行對映,勢必存在一定的複雜性。為了控制這一複雜性,需要確定多個抽象層,例如需求 設計 實現 和部署等,每乙個抽象層均由自己特定的術語定義,形成該抽象層的乙個術語空間。如果按照自頂向下的途徑進行軟體開發的話,首先就是通...

二 軟體工程

1.方 軟體開發的過程國際標準 iso iec15504 2.過程管理 cmm cmmi capacity maturity model 能力成熟度模型 反映了軟體組織的軟體開發過程能力及組織能力 cmmi inteligence 能力成熟度模型整合 cmm 5個等級 初始級 可重複級 已定義級 已...