第20章關鍵系統開發.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
軟體工程 第20章 關鍵系統開發 學習目標 瞭解避免錯誤與容錯技術對於開發可信賴系統的貢獻 知道在可信賴軟體的程序中所包含活動的特性 瞭解要達到避免錯誤的程式設計技巧 瞭解實作容錯系統的階段,以及在容錯架構中要達成多樣性和重複性所使用的方式 要開發可信賴的軟體,有3種可相互搭配的方法: 避免錯誤(fault avoidance):系統的設計與實作程序,應該使用能夠避免程式設計錯誤以及減少程式中出現其他錯誤的軟體開發方法。 偵測錯誤(fault detection):設計驗證與確認程序,目的是在系統開始部署正式上線前發現錯誤並移除錯誤。 容忍錯誤(fault tolerance,簡稱容錯):系統應該設計成在執行期間能夠偵測與管理系統的錯誤或非預期行為,讓系統不會發生故障。 移除殘餘的錯誤所需要的成本逐漸增加 20.1 可信賴的程序 可信賴的程序(dependable process)是指針對錯誤避免和錯誤偵測所採用的各種程序。 可信賴的程序擁有完善定義(well defined)且可重複執行(repeatable),而且包含一系列的驗證與確認活動。 有完善定義的程序是指有經過標準化和文件記錄的程序,可重複執行的程序則是指程序不會因不同人而有不同的詮釋和判斷。 無論參與程序的人為何,這些程序都應該能夠成功的完成。 可信賴程序的特性 針對錯誤避免和錯誤偵測的程序活動包括: 需求檢查(requirements inspections):這是為了要找出系統規格的問題。 需求管理(requirements management):在已交付系統中有很多錯誤,是因為沒有確實的將需求變更包含到系統的設計與實作中所導致。 模型檢查(model checking):模型檢查的活動包括利用CASE工具自動分析系統的模型,以確保內外的一致性。內部的一致性(internal consistency)是指同一個模型內是一致的;而外部的一致性(external consistency)則是指同一個系統的不同模型也必須一致(如狀態模型與物件模型)。 設計與程式碼檢查(design and code inspections):設計與程式碼的檢查通常是依據常見錯誤清單為主,必須在系統測試之前發現並且移除這些錯誤。 靜態分析(static analysis):靜態分析是一個自動分析程式的技巧。此時程式會被詳細的進行分析,以找出可能的錯誤情況。測試規劃與管理(test planning and management):要針對系統設計一套完整的測試,而且測試程序本身也應該小心的管理,以確保系統測試和系統需求與設計之間的測試,能夠完整的被涵蓋與追蹤。 20.2 可信賴的程式設計 可信賴的程式設計(dependable programming)是指使用有助於錯誤避免和容錯的程式設計構件和技術。 程式中會出現錯誤,是因為程式設計人員犯錯的關係。雖然有些錯誤是因為誤解規格所導致,但是還是有些是因為程式過於複雜,或者是採用容易出錯的方式來設計。因此,為了提高可信賴度,設計應該儘量簡單,保護資訊不被未經授權的存取,並減少使用不安全的程式設計構件。 有容錯功能的程式設計技術要能夠有作用,必須先區分錯誤(fault)和故障。所謂的故障(failure)對於系統使用者而言是可以觀察到的東西,而錯誤(fault)則是一種系統內部的特性。 受保護的資訊 若使用資訊隱藏(information hiding)技術,被隱藏的資料就不會受到無權存取的程式元件所損毀。如果介面保持相同,就可以在不影響系統其他元件的情況下變更資料的表示方式。 保護資訊在Java語言中比在其他舊的程式語言(如C或Pascal)中容易。因為這些語言沒有像物件類別這樣的封裝構件(construct),所以資料結構的實作細節無法受到保護。 使用物件導向語言來撰寫程式是非常好的做法,它會提供方法來存取和更新屬性值,而不是讓其他物件直接存取這些屬性。這表示屬性的表示方式可以直接修改,不必考慮其他物件要如何使用這個屬性。 使用Java介面宣告佇列規格 使用Java語言的Signal宣告可隱藏型別表示方式 安全的程式設計 程式中的錯誤以及所導致的許多程式故障,通常都是人為錯誤的結果。 程式設計人員可能會因為沒有追蹤所有狀態變數之間的關係而造成一些錯誤,也可能會寫出一些產生非預期行為和改變系統狀態的程式敘述。 容易產生錯誤的構件如下: 浮點數:浮點數原本就不是非常精確,所以浮點數在進行比較運算時,可能會因為表示方式的不同而發生錯誤。 指標:指標是一種低階的構件,它儲存能直接參考到機器記憶體區域的位址(address)。因為指標允許使用「別名」(alias)技術,而且使用指標比較不容易進行陣

文档评论(0)

wen0000 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档