11. 第11章

Download Report

Transcript 11. 第11章

第十一章 應用系統發展管理
本投影片(下稱教用資源)僅授權給採用教用資源相關之旗標書籍為教科書之授課老師
(下稱老師)專用,老師為教學使用之目的,得摘錄、編輯、重製教用資源(但使用量
不得超過各該教用資源內容之80%)以製作為輔助教學之教學投影片,並於授課時搭配
旗標書籍公開播放,但不得為網際網路公開傳輸之遠距教學、網路教學等之使用;除此
之外,老師不得再授權予任何第三人使用,並不得將依此授權所製作之教學投影片之相
關著作物移作他用。
1
第十一章 應用系統發展管理
 應用程式開發是軟體安全的第一步,軟體開發者必須了解
開發程序與模式,並導入相關之安全管理機制,以確保軟
體安全,本章介紹與軟體開發相關之管理模式。軟體開發
也常忽略軟體測試,本章亦介紹各種軟體測試概念,以提
高系統之安全性。有良好的軟體開發管理才能使軟體系統
具備整體安全性,提供良好的服務。本章包含以下內容:
 軟體系統開發
 軟體發展模式
 軟體測試
 軟體建構管理
 資訊安全架構
 服務等級合約
2
11.1 軟體系統開發
 軟體系統的發展是一個循環的過程,稱為系統發展生命週期 (System
Development Life Cycle;SDLC),如圖 11-1。基本上,系統發展生
命週期包含四個階段:




概念階段
發展階段
執行階段
結束階段
階段 I
概念
階段 II
發展
階段 III
執行
階段 IV
結束
工
作
量
時間
圖 11-1 系統發展的四個階段
3
11.1 軟體系統開發
 軟體系統的發展從概念階段開始,經過發展階段、執行階
段、結束階段,資訊系統開發完成且正式啟用。導入使用
一些時日之後,為了因應使用者需求的改變,系統需要修
正或更新,再回到系統分析的階段,再一次進入發展階
段,如此週而復始。
 為了控制軟體系統的品質、時效、與成本,軟體工程界發
展出各種可供參考的軟體系統發展模型。在1970 年由
Royce 等人發展出瀑布模式 (Waterfall Model) 。1971 年
由 Mill 等人發展遞增模式 (Incremental Model) 。1988 年
Boehm 發展出螺旋模式 (Spiral Model)。至1997 年,美
國卡內基美隆大學發展出軟體能力成熟度整合模式
(Capacity Maturity Model Integration;CMMI)。而 1998
年,由Rational 公司發展出統一流程模式 (Rational
Unified Process;RUP)。
4
11.2 軟體發展模式
 軟體系統發展過程,遵循軟體發展模式,可以建立系統化
之步驟及執行程序,有利於標準、規範與政策之推行,使
得開發的過程更有效率,能確保品質,並且容易管理。不
同的軟體發展模式適用於不同的資訊系統開發。
5
11.2.1 瀑布模式
 瀑布模式 ( Waterfall Model ) 是一種軟體系統開發方法,將系統開發過程分成
四個階段:分析 (Analysis)、設計 (Design)、實作(Implementation) 與測試
(Testing),明確定義每一階段的工作。當面對比較複雜的系統時,其實作階
段可以在細分成多個階段。例如圖11-2。
 對於較小型或比較單純的系統時,使用瀑布模式來開發系統,各個階段所需
交付的文件與完成的任務都很明確,管理容易。但瀑布模式也有其缺點,必
須要等到最後階段,才能有成果,風險較高,如果分析階段不夠明確,設計
與實作階段都很難實施,修改原分析文件工程浩大,耗費時間與經費。
分析
設計
實作
測試
圖 11-2 瀑布模式
6
11.2.2 螺旋模式
 螺旋模式 ( Spiral Model )
如迴圈般地持續發展系
統,由雛型發展開始以至
於系統成熟。例如圖113,螺旋模式包含四個階
段:
 決定目標、可行方案與限
制
 開發雛型
 發展與驗證下階段產品
 規劃下階段
決定目標
可行方案與限制
風險分析
雛形_2
雛形_1
規劃下一階段
發展驗證
下一階層產品
圖 11- 3 螺旋模式
7
11.2.2 螺旋模式
 在發展雛型之前需要經過風險分析,方案評估與風險識別
並解決問題,這些是『決定目標、可行方案與限制』階段
的工作。『發展與驗證下階段產品』階段,則依雛型建立
模型與標竿,作為下階段參考,在本階段的工作,包含:
建立需求、設計、細部設計、單元測試、整合測試、驗證
測試等規劃設計。『規劃下階段』階段,則包含發展計劃
與整合測試計劃。依序重覆地執行上述四個階段工作,以
至於完成產品。
8
11.2.3 軟體能力成熟度模式
 軟體能力成熟度模式可協助整合傳統上分開的企
業組織功能,並訂立流程改善目標及優先順序,
同時為欲實行最佳流程的公司提供指引及評估。
軟體能力成熟度模式依軟體發展的能力成熟分為
五個等級,如圖 11-4:
初始級 ( Initial )
管理級 ( Managed )
定義級 ( Defined )
量化管理級 ( Quantitatively Managed )
最佳化級 ( Optimizing )
9
11.2.3 軟體能力成熟度模式
 『初始級』成熟度沒有軟
體發展流程,只在事件發
生後,反應式的改進。
『管理級』成熟度已有專
案流程定義。『定義級』
成熟度已有機構的流程定
義,軟體發展依照一套正
式且有文件的流程,在既
定的發展模式,並積極改
善流程。『量化管理級』
成熟度盡可能了解發展流
程並量化,流程是可以度
量與控制,依照量化數
據,改進流程。『最佳化
級』成熟度能持續與專注
在流程改善。
最佳化級
專注與持續流程改善
量化管理級
流程可度量與控制
定義級
機構流程已定義
管理級
專案流程已定義
初始級
沒有定義專案流程
圖 11- 4成熟度等級
10
11.2.4 Rational 統一流程 (RUP)模式
 Rational 統一流程 ( Rational Unified Process ; RUP) 具
有很多優點,是由Rational 公司發展,採用瀑布式改良開
發流程,在迭代的開發過程,建立了簡潔和清晰的過程結
構,為開發過程提供較大的通用性。
 傳統上的項目組織是順序地通過每個工作流 (Workflow),
每個工作流只有一次,也就是我們熟悉的瀑布模式生命週
期。
11
11.2.4 Rational 統一流程 (RUP)模式
 RUP 模式軟體工程,由Rational 公司發展,採用
瀑布式改良開發流程,分為四個階段:
起始階段 (Initial phase)
精細規劃階段 (Elaboration phase)
建構階段 (Construction phase)
移轉階段 (Transition phase)
12
11.2.4 Rational 統一流程 (RUP)模式
 RUP中有九個核心的工作流 (Core Workflows):
商業建模 (Business Modeling)
需求 (Requirements)
分析和設計 (Analysis & Design)
實作 (Implementation)
測試 (Test)
部署 (Deployment)
配置和變更管理 (Configuration & Change Management)
項目管理 (Project Management)
環境 (Environment)
13
11.2.4 Rational 統一流程 (RUP)模式
 RUP 模式與傳統的瀑布模式相比較,其迭代過程
具有以下優點:
降低了經費支出的風險。管理與開發人員了解開發過程,
減少重覆開發的流程,解省經費的支出。
降低了產品延誤上市的風險。通過在開發早期就確定風
險,可以盡早來解決問題,而不至於延誤到開發後期,因
匆忙而無法解決問題。
加速工程進度。因為開發人員清楚問題的焦點所在,有利
於解決問題,提高工作效率。
14
11.3 軟體測試
 軟體測試依照軟體發展程序,包含以下各種測
試:
單元測試 (Unit Test)
功能測試 (Function Test)
整合測試 (Integration Test)
驗收測試 (User Acceptance Test;UAT)
 這些測試最終目的就是為了讓整個系統能夠正常
順利的運作,只要測試的項目涵蓋範圍夠廣泛完
整,那麼就可以精確掌握各種可能的狀況,讓系
統出錯的機率降到最低。
15
11.3 軟體測試
 在軟體發展完成交付使用前或發布前,需要經過
全面完整的測試,軟體測試方法有兩種:
白箱測試 ( White Box Testing )
黑箱測試 ( Black Box Testing )
 白箱測試,測試程式內部邏輯架構的正確性。白
箱測試使用測試資料,檢查特定的條件或迴圈,
是否與預計之狀態一致,判斷內部邏輯的正確性。
比較重要白箱測試方法是路徑測試 ( Path Testing )
和資料流測試 (Data Flow Testing )。
16
11.3 軟體測試
 黑箱測試,則是測試軟體是否符合功能需求,對於軟體做
介面測試。如圖11-5,測試程式輸出與輸入之間的正確
性。
輸入資料
待測系統
輸出資料
判斷
正確
不正確
圖11-5 黑箱測試示意圖
17
11.3 軟體測試
 白箱測試與黑箱測試皆是系統重要的測試,在測試概念、
測試要項與測試內容皆不一樣,其主要差異比較如表111。
表11- 1白箱測試與黑箱測試之差異
測試種類
白箱測試
黑箱測試
測試概念
結構性測試
功能測試
測試要項
檢查特定的條件或迴圈,是否與
預期之狀態一致
不合乎規格或功能遺漏、介面
錯誤、功能錯誤、資料結構錯
誤、啟動或結束錯誤
測試內容
軟體內容仔細檢查
程式輸出與輸入之間的正確性
18
11.4 軟體建構管理
 為避免已審查定案的工作產出遭受任意更改,而造成其他
相關人員工作之錯誤,則需要建立一套對建構項目妥善管
理控制的流程和方法,讓大家共同遵守,以避免失去控
制。
 軟體建構管理,即是協調開發週期中相關的管理工作,以
避免版本的混亂與錯誤,尤其當用戶需求變更時;並採用
適當的管理工具,以增進管理的效率。
 在系統上線營運時,要保持系統的完整性,若任意改變系
統的環境或參數時,會使系統不穩定、產生漏洞、缺失、
錯誤,降低系統之安全性,造成系統安全弱點。因此需要
完善的建構管理,以降低風險,提高系統安全性。
19
11.4 軟體建構管理
 建構管理包含四項主要工作:
建構識別 ( Configuration Identification)
建構控制 ( Configuration Control)
建構狀態記錄 ( Configuration Status Accounting )
建構審查 ( Configuration Audit)
 建構識別是為了要能有效率與清楚的控管建構項
目,必須針對每一個建構項目分別命名。建構管
理小組必須制訂建構項目的命名規則,以利建構
項目命名後的版本管理工作。
20
11.4 軟體建構管理
 建構控制,系統開發完成或已上線的系統,若要更改系統
參數、程式、或架構,需要經由建構管理流程去改變,包
含三種程序:
 需求控制 ( Request Control )
 變更控制 ( Change Control )
 釋放控制 ( Release Control )
 建構狀態記錄,任何異動都要提出申請,由建構管理人員
評估其影響層面,並通知專案負責人,由其召集相關單位
進行評估,並決定是否准予異動,並加以紀錄追蹤。
 建構稽核,為達成對於建構管理系統中的項目的正確性,
建構管理人員需要定時檢視建構管理項目以確保其結構的
完整性。
21
11.4 軟體建構管理
 建構管理需要建構管理工具的輔助,如圖11-6,為建構管理工具 Star
Team ,圖中顯示其在管理軟體能力成熟度整合 ( CMMI ) 之各項文
件。
圖11-6 建構管理工具
22
11.5 資訊安全架構
 企業資訊安全架構,涵蓋企業安全政策、隱私權保護、降
低威脅、交易與資料保護、應用程式安全、身份識別、存
取管理、實體安全與人員安全等重大安全議題進行分析評
估,以確保企業資訊安全程度能滿足內部營運及外部法規
之要求。
 企業的資訊服務部門必須建置完善的資訊安全機制,以防
止其核心資訊系統與資料遭受內部的破壞者竊取、竄改、
或破壞。並且避免外部的駭客透過網際網路惡意入侵、攻
擊企業營運的神經中樞─網路系統,造成網路服務中斷而
影響其正常運作。
 資訊安全架構工具,包含:防火牆、加密系統、負載平衡、
管理分析系統、網頁過濾與稽核系統、郵件備份與稽核系
統、網路防毒牆、動態密碼卡、入侵偵測系統、弱點稽核
系統等。
23
11.5 資訊安全架構
 在所有安全系統中,硬體設備與作業系統都需要
具備基本的安全等級。作業系統安全架構,包含
以下幾個層面:
流程獨立 ( Process Isolation )
保護圈環 ( Protection Rings )
抽象介面 ( Abstraction Interface)
抽象介面 ( Abstraction Interface)
 作業系統中的各個流程獨立完成,每個流程有隔
離機制,互不影響,各個流程有自己資料堆疊、
記憶體空間等系統資源,透過系統功能與其它流
程交換資料。
24
11.5 資訊安全架構
 保護圈環提供作業系統安
全防護,限制系統的執行
權限,以達到保護系統的
目的。如圖11-7為四階層
的作業系統保護圈環。
 抽象介面是簡化與一般化
的使用者介面,使用者與
程式開發者不需要了解使
用資源之細節,即可以使
用系統資源,細節封裝在
更低階的程式中。
Level 3
Level 2
Level 1
Level
2350 0
圖 11-7 作業系統保護圈環示意圖
25
11.5 資訊安全架構
 Level 0 表示作業系統的核心,是系統的核心流
程,可以控制系統所有資源,使用資源必須要完
全確認的使用權限,所以在此圈環執行的流程稱
為特權模式 ( Privileged Mode ) 或監管模式
( Supervisory Mode )。
 Level 1 和 2 是驅動程式或作業系統的其它服務程
式,提供高階使用系統資源的介面。
 Level 3 是應用程式,這一階層常稱為使用者模式
( User Mode ) 或保護模式 ( Protected Mode ),
這一模式不可以直接存取系統資源,必須經過授
權才可以使用系統資源。
26
11.6 服務等級合約
 資訊系統上線營運後,系統開發廠商如無法提供後續的服
務,將造成業者或顧客重大損失。為了確保後續的服務品
質,需要訂立服務等級合約 ( Service Level Agreements;
SLA )。
 服務等級合約需要考慮項目如下:
 系統上線時間 ( Percentage of Overall Operating Time )
 系統連續停止運作時間 ( Maximum Consecutive Downtime )
 尖峰容量 ( Peak Load )
 平均負載 ( Average Load )
 診斷責任 ( Responsibility for Diagnostics )
 故障復原時間 ( Failover Time )
27
11.6 服務等級合約
 服務等級合約之週期包含五項:
 產品與服務發展
 協商與銷售
 提供與改進
 執行
 評估
 產品與服務發展,公司與客戶簽訂服務等級合約時,首先
需要了解客戶需求,確認適當的服務特性,確認資源與能
力。協商與銷售,依照服務的特性,選取相當的服務水準
與種類。提供與改進,公司提供所需的服務與資源。執行,
一般狀態下的服務提供與監控,即時報告與服務品質的確
認,服務水準發生變異時的即時處理。評估,客戶進行定
期評估與內部營業評估。
28