340 likes | 579 Views
軟體工程. 第 9 章 關鍵系統規格 Critical Systems Specification. 學習目標. 透過分析 關鍵系統 所面對的風險找出 可信賴 度( Dependability )需求 安全性( Safety )需求是透過風險分析產生的,不是由系統擁有者提供 瞭解建立保全性( Security )需求的程序 藉由保全性需求對抗各種威脅 瞭解可靠性( Reliability )規格的測量方式,以及如何定義可靠性需求. 系統需求. 功能性需求( Functional Requirements ) 檢查 錯誤 從錯誤狀態中復原
E N D
軟體工程 第9章 關鍵系統規格 Critical Systems Specification
學習目標 • 透過分析關鍵系統所面對的風險找出可信賴度(Dependability)需求 • 安全性(Safety)需求是透過風險分析產生的,不是由系統擁有者提供 • 瞭解建立保全性(Security)需求的程序 • 藉由保全性需求對抗各種威脅 • 瞭解可靠性(Reliability)規格的測量方式,以及如何定義可靠性需求
系統需求 • 功能性需求(Functional Requirements) • 檢查錯誤 • 從錯誤狀態中復原 • 非功能性需求(Non-Functional Requirements) • 可靠度(Reliability) • 可用性(Availability)
9.1 風險性規格Risk Driven Specification • 關鍵系統的規格針對系統的可信賴度 • 補充一般的需求規格程序的不足 • 瞭解系統所面對的風險,找出能應付風險的可信賴度需求 • 風險性規格程序的過程包括 • 瞭解系統所面對的風險 • 找出根源 • 制定能夠管理這些風險的需求。
Risk Decomposition Risk Reduction Assessment Risk Analysis & Classification Risk Identification Risk Assessment Risk Description Root Cause Analysis Dependability Requirements
進行風險分析的程序 • 風險識別(Risk Identification) • 找出可能出現的風險 • 和系統環境有關 • 風險分析和分類(Risk Analysis and Classification) • 風險必須個別處理 • 特別嚴重和令人難以置信的風險必須做進一步的分析 • 不太可能發生的風險會在這個階段被刪除
進行風險分析的程序 • 風險分解(Risk Decomposition) • 對每個風險個別分析,找出造成風險的根源 • 失誤樹分析法(Fault-Tree Analysis)。 • 風險降低評估(Risk Reduction Assessment) • 提出可降低或消除風險的方法,轉換成可信賴度需求 • 預防風險發生 • 即使風險發生了,也在控制範圍之內
風險識別Risk Identification • 找出關鍵系統必須應付的風險。 • 困難 • 風險通常不在正常的狀況下發生 • 系統元件以特定的方式互動產生風險 • 罕見的環境狀況 • 可能導致意外的危險(Hazard) • 身體的危險、電力的危險、生理的危險、幅射危險,以及服務故障危險等。
風險分析和分類Risk Analysis & Classification • 主要的目的 • 風險發生的機率有多高? • 萬一風險發生,危害程度有多大? • 是否能夠接受? • Statement of acceptance
風險的接受程度 • 無法忍受(Intolerable) • 不能讓這種風險發生 • 威脅人命、影響企業財務穩定,而且發生機率不低 • 盡可能降低危險(As Low As Reasonably Practical, ALARP) • 在可能的範圍內(考慮成本),盡可能避免發生 • 比較不嚴重,或是發生機率很低的風險。 • 可接受(Acceptable) • 仍應採取所有可能的步驟,降低危險發生的可能性, • 不增加成本、延遲系統交付時間或是影響其他非功能屬性
機率高低 預估風險 危害程度 中 高 低
風險分解Risk Decomposition • 找出根本原因(Root Cause) • 演繹法(Deductive) • 由上往下,比較容易使用 • 以風險為起點往下分析系統可能發生的故障 • 歸納法(Inductive) • 從系統可能發生的故障開始,找出可能引發這些故障的危險。
失誤樹分析Fault-Tree Analysis 找出不希望它發生的事件 回溯,找出可能的原因 不同狀態彼此之間可以 AND、OR 合併(AND)多項原因的風險比較不會發生
風險降低評估 • 風險避免(Risk Avoidance) • 令風險或危險不會發生 • 風險偵測與移除(Risk Detection and Removal) • 在風險導致意外發生前,先偵測並排除該風險 • 限制損害程度(Damage Limitation) • 將意外的傷害降到最低
9.2 安全規格Safety Specification • 定義安全規格與保險的程序,是整體安全生命週期(Safety Life Cycle)的一部分 • 安全管理國際標準 IEC 61508 • IEC 1998 • 功能性安全需求(Functional Safety Requirement) • 安全性整合需求(Safety Integrity Requirement) • 安全整合等級(Safety Integrity Level, SIL) • 系統越關鍵,SIL越高
9.3 保全規格 Security Requirement • 不適合量化 • 通常是「不應該」的需求 • “Shall NOT” Requirements • 定義無法接受的系統行為,而不是定義系統的功能需求。 • 傳統的(非電腦化)保全分析方法,是以被保護的資產以及對組織的價值為主。
保全分析程序包括下列階段 • 資產識別與評估 • 識別資產(資料和程式) • 所需要的保護程度(依資產的價值而定) • 威脅分析與風險評估 • 找出保全方面可能的威脅,評估這些威脅相關的風險 • 威脅歸類 • 找出與資產相關的威脅,為每項資產列出相關威脅的清單 • 技術分析 • 評估可用的保全技術以及對已識別威脅的適用性。 • 制定保全需求規格 • 制定保全需求規格 • 明確列出可能用來保護系統抵抗威脅的保全技術
10種保全需求 識別(Identification) 驗證(Authentication) 授權(Authorization) 免疫(Immunity) 完整性(Integrity) 入侵偵測(Intrusion Detection) 無法否認(Non-repudiation) 隱私權(Privacy) 保全稽核(Security Auditing) 系統維護保全(System Maintenance Security)
9.4 軟體可靠性規格Software Reliability Specification • 應該從整體系統的角度考慮可靠性,而不是從元件層級 • 系統中的元件有相互依賴的關係,若其中一個元件故障可能就會擴散到整個系統,影響到其他元件的運作。
可靠性的3個方面 • 硬體可靠性(Hardware Reliability) • 硬體元件故障的機率有多高? • 修復該元件所需的時間多長? • 軟體可靠性(Software Reliability) • 軟體元件產生不正確輸出的可能性多大? • 軟體不會因為用太久而磨損。即使產生不正確的結果,之後它還是能繼續正常運作。 • 操作員可靠性(Operator Reliability) • 操作人員犯錯的可能性多大?
硬體的可靠性測量值 • 故障前平均時間 • Mean Time to Failure 縮寫為 MTTF • 元件可正常運作的平均時間 • 修復前平均時間 • Mean Time to Repair 縮寫為 MTTR • 修復或替換該元件所需的時間
軟體的可靠性測量值 • 服務故障率 • Probability of Failure on Demand, POFOD • 出錯率 • Rate of Occurrence of Failure, ROCOF • 故障前平均時間 • Mean Time to Failure, MTTF • 可用率 • Availability
在評估系統可靠性時,可以使用下列3種測量方法: • 對系統服務發出固定次數的要求,測量系統發生故障的次數。這個方法可以用來測量POFOD。 • 測量系統發生故障之間的時間(或交易個數)。這個方法可以用來測量ROCOF和MTTF。 • 測量當系統發生故障,修復所花的時間或重新啟動的所需時間。假設系統必須連續提供服務,這個方法可以用來測量AVAIL。
非功能性的可靠性需求 • 在許多系統需求文件中,可靠性需求都沒有仔細描述。 • 可靠性規格是主觀且無法測量的。 • 描述系統動態行為的敘述也沒有意義。因為系統可靠性是受到軟體故障的影響,而非軟體缺陷。
建立可靠性規格的步驟 • 針對每個子系統找出各種可能發生的故障,並分析這些故障的後果。 • 以系統故障分析的結果將故障分成幾類。 • 針對每一種故障類別,使用適當的可靠性測量值來定義可靠性需求。 • 不同類別的故障不需要使用相同的測量值 • 在適當的時候,找出定義系統功能的可靠性需求,可以降低嚴重故障的機率。
範例:進銷存系統 • 進銷存系統應用於製造業或貿易公司,流程: • 客戶訂單:訂購項目、金額、交貨日期、交貨地址 • 檢查成品庫存量,是否能夠滿足訂購量? • 如果庫存量不足,則開出工單(製令)安排生產流程。 • 依工單與BOM表向零件倉提取零件,若零件庫存不足,則開出採購單,進行採購程序。 • 庫存足夠,開出貨單,向成品倉提貨、檢驗、包裝出貨 • 結帳 • 客戶:應收帳款 • 廠商:應付帳款
範例:進銷存系統 • 風險識別(Risk Identification) • 訂單逾期未交貨 • 風險分析和分類(Risk Analysis and Classification) • 發生機率:Low • 危害程度:High • 接受度:Intolerable • 風險分解(Risk Decomposition) • 失誤樹分析法(Fault-Tree Analysis) • 風險降低評估(Risk Reduction Assessment)