1 / 24

軟體工程

軟體工程. 第 3 章 關鍵系統. 學習目標. 瞭解關鍵系統的故障將對人員或經濟會發生嚴重影響 瞭解可信賴度的四個方面,包括可用性、可靠性、安全性和保全性 瞭解為了達成可信賴度,在系統開發時必須避免發生錯誤、當系統在使用時必須偵測和移除錯誤,以及降低作業錯誤所造成的損害. 關鍵系統( critical system ). 有些系統若發生故障卻可能導致嚴重的經濟損失、實體損失或威脅到人們的生命,這類系統被稱為關鍵系統。

velma
Download Presentation

軟體工程

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 軟體工程 第3章 關鍵系統

  2. 學習目標 • 瞭解關鍵系統的故障將對人員或經濟會發生嚴重影響 • 瞭解可信賴度的四個方面,包括可用性、可靠性、安全性和保全性 • 瞭解為了達成可信賴度,在系統開發時必須避免發生錯誤、當系統在使用時必須偵測和移除錯誤,以及降低作業錯誤所造成的損害

  3. 關鍵系統(critical system) • 有些系統若發生故障卻可能導致嚴重的經濟損失、實體損失或威脅到人們的生命,這類系統被稱為關鍵系統。 • 關鍵系統主要分為三類:安全關鍵系統(safety-critical system)、任務關鍵系統(mission-critical system)、企業關鍵系統(business-critical system)。 • 關鍵系統最重要的一個外顯性質是它的可信賴度。可信賴度(dependabi- lity)這個術語是由Laprie(Laprie 1995)所提出的,它涵蓋可用性、可靠性、安全性和保全性這些系統特性。

  4. 關鍵系統的故障可能出現在下列3種系統元件中: • 系統硬體:可能是因為硬體元件設計不良、製造錯誤或是元件壽命已到。 • 系統軟體:可能是規格、設計或實作上的錯誤所造成。 • 人為操作:可能是因為系統的人員操作錯誤所造成。近年來隨著軟硬體越來越可靠,現在人為失誤可能是導致系統故障最常見的原因。

  5. 3.1一個簡易的安全關鍵系統 • 關鍵系統的種類很多,從機器設備的控制系統,到資訊或電子商務系統都有可能。 • 而本書各章是使用一個簡易的醫療用安全關鍵系統為例。 • 這個系統是一個模擬人體內胰腺運作的系統,目的是監控糖尿病所需的胰島素傳遞。這類系統的安全性和可靠性非常重要

  6. 胰島素幫浦結構

  7. 胰島素給藥系統的資料流程模型

  8. 這個胰島素給藥系統有2個可信賴度上的需求:這個胰島素給藥系統有2個可信賴度上的需求: • 在病患需要時,系統必須能夠傳送胰島素給病患。 • 系統必須根據目前的血糖程度可靠的傳送正確劑量的胰島素給病患。 • 這類系統如果發生故障,可能會造成連續注射胰島素而危害到病人生命。這種情況的故障是絕對不能發生的。

  9. 3.2系統的可信賴度 • 電腦系統的可信賴度(dependability)是系統的一項特性,等於電腦值得信任的程度。可信賴度是指使用者對系統會如預期操作,以及系統在正常使用情況下不會當機的信心。這項特性無法用數字表達,但是可以用「不可靠」、「很可靠」以及「非常可靠」這3個術語來表示對系統不同程度的信任。

  10. 可信賴度可分成4個主要方面 • 可用性(availability):非正式的說,可用性是代表系統在任何時間點都能夠運作且提供有用服務的機率。 • 可靠性(reliability):非正式的說,可靠性是代表經過一段時間後,系統仍然能夠提供使用者預期之正確服務的機率。 • 安全性(safety):非正式的說,安全性是代表系統對使用者或環境造成損害的可能性評估。 • 保全性(security):非正式的說,保全性是代表系統對防止意外或有意的入侵動作的可能性評估。

  11. 可信賴度的涵蓋方面

  12. 除了這4個主要方面之外,可信賴度還涵蓋一些其他的系統性質: • 易修復性(repairability):系統會發生故障是無可避免的,但是如果能將系統儘快修復,就可以將因為故障所導致的損害降到最低。 • 易維護性(maintainability):隨著系統使用越久,新的需求就會逐漸出現。 • 存活能力(survivability):網際網路(Internet)系統的重要特性之一是它的存活能力,它與保全性和可用性息息相關(Ellison, et al., 1999)。存活能力是指系統在遭受攻擊而且有部分功能無法運作時,還能持續提供服務的能力。 • 容錯能力(error tolerance):這個性質可被視為易使用性(usability)的一部分,它代表的是系統應該如何設計才能避免和容忍使用者的錯誤輸入。

  13. 成本與可信賴度曲線

  14. 3.3可用性與可靠性 • 系統的可用性與可靠性是關係密切的性質,而且兩者都可以用數值機率來表示。系統的可靠性(reliability)是指系統能正確提供預期服務的機率,而可用性(availability)是指當使用者向系統要求服務時,系統能對使用者提供服務的機率。

  15. 系統的可靠性和可用性的精確定義如下 • 可靠性:在某段時間內,在某個限定環境中,針對特定目的而執行的動作不發生錯誤的機率。 • 可用性:系統在某個時間點能夠運作和提供所要求服務的機率。

  16. 可靠性的相關術語

  17. 3個改善系統可靠性的辦法: • 避免錯誤:利用開發技術減少錯誤發生的可能性,且(或)在這些錯誤引發系統故障之前找出錯誤所在。 • 錯誤偵測和移除:使用確認與驗證技術提高發現錯誤的機會,並且在系統使用前移除這些錯誤。有系統的執行系統測試與除錯是一種錯誤偵測技術。 • 容錯:使用一些技術以確保這些缺陷不會讓系統出錯,或是確保系統錯誤不會造成系統故障。例如,在系統中納入自我檢查功能,以及使用重複的系統模組都是有用的容錯技術。

  18. 輸入資訊與輸出資訊的對應關係

  19. 軟體的使用模式

  20. 3.4安全性 • 安全關鍵系統是指這類系統的運作必須絕對安全;也就是說,無論在任何情況下,即使系統故障也不能危害到人們或系統環境。 • 安全關鍵軟體可分為兩類: • 主要的安全關鍵軟體:這類軟體通常是被當作控制器內嵌於系統中。這類軟體若發生故障將導致硬體故障,進而造成人員傷亡或環境破壞。 • 次要的安全關鍵軟體:這類軟體會間接造成傷害。

  21. 確保安全性的關鍵在於確保系統不會發生意外,或是降低意外所造成的後果,有下列3個方法可以達成 : • 避免危險:設計可以避開危險的系統。例如裁切系統最好設計成同時按下兩個不同按鈕才運作,以避免使用者不小心將手放在刀片下而發生危險。 • 偵測與移除危險:設計可以偵測與移除危險的系統。例如,化工廠的系統應該要能夠偵測過高的壓力,並且能夠在發生爆炸之前打開閥門以降低壓力。 • 限制損害範圍:系統可以包含一些防護功能,以降低意外所造成的損害。例如,飛機的引擎通常會含有自動滅火裝置,若引擎起火,必須在造成機體危險前將火勢控制。

  22. 3.5保全性 • 系統的保全性(security)是一種系統保護自己免於受到外來攻擊的系統能力。由於有愈來愈多系統連線到網際網路,所以系統的保全性變得愈來愈重要。 • 保全性對所有的關鍵系統都很重要,若沒有一定程度的保全措施,當系統遭受外來攻擊時,它的可用性、可靠性和安全性都可能都會受到影響。 • 這是因為確保系統可用性、可靠性和安全性的所有方法,都必須依賴運作中的系統要跟安裝時的原來系統一模一樣才行。

  23. 外來攻擊可能會造成下列3種損害: • 阻絕服務(Denial of service):系統可能會被迫進入一個無法提供正常服務的狀態,顯然這將影響到系統的可用性。 • 程式或資料毀損:系統的軟體元件可能遭到未經授權的修改,這會影響到系統的行為,進而影響到它的可靠性和安全性。如果毀損程度非常大,那麼連系統的可用性也會受到影響。 • 機密資料外洩:若系統所管理的資料為機密的資料,外來的攻擊可能會將這些資料外洩給其他人知道。

  24. 確保系統保全性的方法 : • 避免弱點:設計沒有該項弱點的系統。例如,如果系統不和外界的網路相連,那麼就絕對不會遭受到公開的攻擊。 • 偵測與移除弱點:設計可以偵測弱點,並能在弱點導致暴露前移除此弱點的系統。例如病毒檢查程式就是弱點偵測與移除的範例,它會分析傳進來的檔案是否中毒,若有的話則修改檔案將病毒移除。 • 限制暴露範圍:讓受到攻擊所造成的損害減到最小。

More Related