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