Please enable JavaScript.
Coggle requires JavaScript to display documents.
Chapter 2 Process Models (Process Flow (4大種類 (圖p.5:fire::fire::fire:)…
Chapter 2 Process Models
Software Process Model的Generic View
三個階段
definition
: 專注於what
development
: 專注於how
support
: 專注於correction(校正), adaptation(適應), enhancement(增強), and prevention(預防)
Process Flow
4
大種類 (圖p.5:fire::fire::fire:)
線性 (Linear flow)
瀑布式
說明 : 又被稱為
software life cycle
問題
真正的專案,不太可能真的完全順利照著流程跑
客戶通常無法明確敘述需求
到交貨時,客戶才看的到結果
條件 : 僅適用於
requirements are well-defined and stable
V字
(:fire::fire::fire:圖p.9)
瀑布式的變形。測試與開發流程的對應
反覆(Iterative flow)
演化 (Evolutionary flow)
原型 (Prototyping)
:star::star::star:
說明 : 主要目標是理解系統需求。
優點
可盡快讓客戶看到半成品(常用於介面)
可與多數開發模型做結合
缺點
prototype僅是prototy,實作時仍需與客戶達成compromise
時機 : 用於
poorly understood requirements
時
螺旋式
說明
強調
風險管理
螺旋式模型可適用於整個軟體的生命週期(從產品規格到prototype)
缺點
難以說服客戶,因為不知道會歷經多少個cycle
需要風險評估專家
若風險沒有被發現、管理,會發生大問題
時機 : 適用於大規模系統
Parallel flow (平行式)
要做的工作可同時進行 => 可縮短開發時間
漸進式 v.s 演化式
漸進式開發
: 從先開發
核心
,新版本再
增加
新東西(一步一步)
演化式開發
:
全面
開始進行,新版本中再
修改
(一次考慮)
漸進式(The Incremental Model)
說明
與客戶合作,從 initial outline(最初大綱) -> final system(最終系統)
為複合式model ( 線性 + 平行 )
:fire::fire::fire:圖p.14
條件 :
requirement well-defined
時機
在初期人員配置有限時,特別適用
適合用於有時間限制,且較大、複雜的系統
Concurrent Development Model (並行開發模型)
說明
用於表示process model中反覆、並行的元素
定義出一連串會導致state轉換的事件
並非廣泛地被採用
:fire::fire::fire:圖p.20
特殊的開發模型
元件開發模型
(Component-based development model )
說明
核心目標在於元件的
再利用
It is evolutionary in nature
Formal methods model
定義 : 從
數學
的角度出發,來定義開發模型(較嚴謹)
缺點
耗時、貴
團隊必須受過訓練(須懂formal method)
數學模型不易當作與可戶溝通的媒介
優點
強調安全性,必須保證無bug的程式適用此model (e.g 自動飛航、醫療設備)
容易發現錯誤、不一致、promise of defect-free software(無缺陷的程式)
AOSD
(觀點導向軟體開發) (Aspect-oriented software development)
Aspect
主要在於客戶所關心且涉及多個系統功能的議題
e.g. 使用者介面、Distribution(傳送與接收)、Persistence(資料儲存、檢索)、安全性、交易
定義 : ASOD提供了一種用於
定義
(defining),
指定
(specifying),
設計
(designing), and
建造
(constructing) aspects的過程與方法
開發程序
Unified Process(UP)
說明
將UML用於物件導向軟體工程的一種framework
為
使用者案例驅動
(use-case driven)、
中心架構
(architecture-centric)、
反覆
( iterative)、
漸進
(incremental) 的一種model
*UML :物件導向軟體開發的行業標準
5個階段
Inception : 理解需求、描述use-case、提出粗略系統架構
Elaboration :
refine、expand use-cases
(更清楚地描述需求)
Construction : 開發、完成initial release
Transition : 寫使用者說明、進行α.β測試
Production : 後續追蹤服務(包括defect report、需求變更)
個人軟體程序 Personal Software Process (PSP)
目的 : 軟體開發者可持續增進其能力
包含
準確預估所需時間、獲得的質量
提高軟體質量
學習如何評估技術、方法
說明
強調記錄錯誤,並且進行分析,以協助改善
名詞
Postmortem (驗屍)
: 事後分析錯誤
團隊軟體程序 Team Software Process (TSP)
定義 : 提供
管理
(managing)、
追蹤
(tracking)、
回報團隊進度
(reporting the team's progress) 的process framework
summary
CMM : 改善
組織
的能力; 注重於
管理
面
TSP : 改善
團隊
的績效; 注重於
團隊
與
產品
面
PSP : 改善
個人
的技術與紀律; 注重於
個人