Please enable JavaScript.
Coggle requires JavaScript to display documents.
SE Ch2 Software Processes (四項基本軟體工程活動 (檢驗 (必須經過驗證以確保其滿足客戶需求), 演進…
SE Ch2
Software Processes
目標
介紹3個process models 跟其 適用性
了解為何要使用processes來應對軟體需求的變化
介紹軟體的 processes & process models
介紹軟體工程的基本過程活動,軟體開發測試和演進
了解軟體流程改進的概念以及影響軟體流程品質的因素
多種不同類型的軟體系統 - 沒有通用方法
使用的方法取決於
公司
開發的軟體類型
軟體客戶的要求
編寫軟體的人員的技能
四項基本軟體工程活動
檢驗
必須經過驗證以確保其滿足客戶需求
演進
必需發展以滿足不斷變化的客戶需求
開發
符合規格
子活動:需求驗證,架構設計,單元測試,軟件配置管理,支持生產活動的項目計劃
訂規格
必須定義軟件的功能及其操作約束
描述和討論流程
這些流程中的活動-例如指定數據模型,設計用戶界面,活動順序
需要描述:涉及的人、生產了什麼、影響活動順序的條件
軟體開發流程
流程演變取決於開發人員的組織和所開發系統的特徵
safety critical sys具有非常結構化的開發流程,並保持詳細記錄
每間公司都有各自的流程
需求快速變化
的業務系統需要更加靈活,敏捷的流程更好。
專業軟體開發
Plan-driven
processes
所有流程活動均已預先計劃,並且根據計劃衡量進度
Agile
processes
計劃是漸進的和連續的。 更改流程更容易以反映不斷變化的客戶或產品要求
計畫、管理活動 為必要
通常,需要在兩種類型的過程之間找到平衡
process models類型
■ Incremental development -交錯 :red_flag: 上述 活動,將系統開發為一系列版本(增量)
–逐步發展多個版本的軟件,直到開發出所需的系統
增量模型在各個階段並不交付一個可運行的完整產品,而是交付滿足客戶需求的一個子集的可運行產品。
整個產品被分解成若幹個構件,開發人員逐個構件地交付產品,這樣做的好處是軟體開發可以較好地適應變化,客戶可以
不斷地看到所開發的軟體
,從而
降低開發風險
。
缺點
加入構件必須不破壞已構造好的系統部分,這需要軟體具備開放式的體繫結構。
系統結構可能會隨著新增量的增加而降級,可能需要重構
無法看見管理相關過程(文件、成果衡量)
優點
降低變更成本
更容易獲得客戶對當前狀態的
反饋
能夠較早使用軟件並從中獲得價值的客戶
■ Integration and configuration(集成和配置)-依賴於
可重用 :red_flag:
組件/系統的可用性
1.需求規格
2.軟件交付和評估
-根據軟件需求概述,搜索提供功能的組件和系統(小心licensing)
-評估候選組件/系統的適用性
3.需求細化
-使用有關找到的可重用組件的信息進行精煉
-進行了修改以反映可用的組件,並重新定義了系統規範。
4.應用系統配置(configuration)
-現成的應用系統符合要求
-配置它以創建新系統
5.組件適應和集成
有可能找不到現成的組建,需要自行編寫
■ Waterfall model –將流程活動表示為流程階段 –規格,開發,驗證,發展
(plain-driven)
1.需求 :分析與定義
3.實施和單元測試
4.集成和系統測試
2.系統與軟件設計
5.操作與維護
usefulness
critical sys
large SW sys
embedded sys
■ Rational Unified process (RUP) - –集成了以上所有過程模型 –支持原型設計和增量軟件交付
project reminders
可以用
wireframe 線匡圖、prototyping原型、mockups視覺稿
來呈現
sketch
wireframe
mockup
prototype
coding 前,確認知道需求,建議用UML
2.2
Process Activities
簡介
SW processes =技術+管理+協作活動 的交錯序列
目標:軟件系統的規範,設計,實施和測試
軟件開發人員必須使用多種工具
2.2.1 SW specification
由開發者按照需求生成,主要給開發者看,簡單的給行銷與客戶看
需要評估需求合理性
2.2.2 SW 設計 與 implementation
2.2.3 SW validation(驗證)
2.2.4 SW evolution