<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 零缺陷軟件開(kāi)發(fā)工具ZDSD

零缺陷軟件開(kāi)發(fā)工具ZDSD

作者:上海創(chuàng )景 技術(shù)支持經(jīng)理 周?chē)?/span> 時(shí)間:2008-04-14 來(lái)源:電子產(chǎn)品世界 收藏

  前言

本文引用地址:http://dyxdggzs.com/article/81533.htm

  在航空、航天、國防、核工業(yè)、通信、汽車(chē)、醫療、金融等尖端產(chǎn)業(yè),對應用軟件的安全性、可靠性提出的苛刻標準。從事軟件開(kāi)發(fā)的專(zhuān)業(yè)公司中,英國LDRA公司(Liverpool Data Research Associates)由Mike Hennell教授在1975年創(chuàng )建,它的軟件開(kāi)發(fā)()調試和測試工具是拳頭產(chǎn)品。下文對業(yè)界著(zhù)名的嵌入式調試和測試工具作簡(jiǎn)要介紹。

  解決方案

  LDRA公司的ZDSD解決方案的層次模型如圖1所示。在嵌入式系統開(kāi)發(fā)項目中,層次模型包含了五個(gè)基本級別,隨著(zhù)對設計過(guò)程和項目的目標、中間產(chǎn)品和整體生產(chǎn)率的關(guān)注的不同,這些級別可以進(jìn)行調整。

  級別1

  級別1是對一個(gè)將要開(kāi)發(fā)的系統的確定性描述和需要滿(mǎn)足的功能性標準,稱(chēng)為高級需求。這個(gè)級別可以是詳細描述的,也可以不進(jìn)行詳細的描述,它的精確的定義可以推遲到級別2由設計人員,或者甚至級別3的系統概要設計階段由實(shí)現人員去描述。級別1高級需求也叫做系統需求、用戶(hù)需求、產(chǎn)品需求,或者其他相同含義的稱(chēng)謂。這些需求可以以數據庫方式保存(如Telelogic DOORS)或者以文本方式保存(如Microsoft Word)。

  級別2

  級別2是對系統設計,包含對級別1所描述的系統設計的表示方法。這一級別在大多情況下稱(chēng)為低層需求,低層需求必須首先建立起和級別1的聯(lián)接或者追蹤關(guān)系。這個(gè)聯(lián)接關(guān)系稱(chēng)為需求追蹤矩陣(RTM)。圖1的層次模型中的所有級別都直接或者間接的參與到RTM中。

  級別2一般可以采用三種典型設計過(guò)程之一來(lái)表示,第一用設計模型進(jìn)行描述,如統一建模語(yǔ)言(UML)或者專(zhuān)用的建模工具(如Mathworks的Simulink和NI的LabView等)。第二作為選擇,用設計規格說(shuō)明進(jìn)行描述。第三用體系架構概念來(lái)達到項目中的關(guān)鍵要求,而不采用正式的描述方式。

  級別3

  級別3是系統的實(shí)現,包含與級別2的描述保持一致的源代碼或匯編代碼的生成。在采用建模工具的自動(dòng)代碼生成的情況下,級別2和級別3之間的聯(lián)接可以自動(dòng)實(shí)現,確保兩個(gè)級別之間的需求可追蹤性。在通常情況下,使用嵌入式操作系統供應商(如Green Hills、Wind River或者LynxOS)提供的集成開(kāi)發(fā)環(huán)境(IDE)中進(jìn)行手工編碼。

  級別4

  級別4專(zhuān)注于確認。這一級別將對嵌入式軟件進(jìn)行針對功能和針對結構的測試??梢圆捎米皂敹?,自底而上,或者兩種方法相結合的測試策略。這一級別可以采用模擬器、軟件仿真器、測試驅動(dòng)自動(dòng)生成器以及測試用例自動(dòng)生成器。如果要進(jìn)行實(shí)際路徑測試,那么結構測試中需要擴展使用在級別3中應用過(guò)的分析和斷言形式的方法。不采用這些分析技術(shù),缺陷的因果關(guān)系就不能有效的揭示出來(lái)。

  在級別4 RTM得到全面的擴展,將包含測試用例標識、測試規格說(shuō)明和測試結果在內的相關(guān)確認產(chǎn)品項。級別4的重點(diǎn)是在目標機測試和系統集成測試之前更正缺陷?;谥鳈C的測試是非常典型的一種節約費用的選擇,因為它很好地提供了早期測試手段,并且它是不依賴(lài)于目標平臺實(shí)現最底層功能的良好手段。

  級別5

  對嵌入式軟件的確認,特別是安全苛刻性軟件,最有代表性的是在級別5進(jìn)行。然而,由于在這一級功能頻繁的在硬件/軟件之間變化,使得缺陷的確定比級別4更加困難。另外,一個(gè)層面的追蹤,從源代碼到目標碼的追蹤也必須被覆蓋。

  功能測試是第5級中的核心工作。另外,結構覆蓋作為用來(lái)度量功能需求和實(shí)現最終追蹤關(guān)系。在級別4中使用的所有測試產(chǎn)品項都會(huì )在級別5中涉及。

  LDRA公司的ZDSD解決方案完全適合上文描述的ZDSD模型的要求。ZDSD解決方案在V型軟件開(kāi)發(fā)中的應用如圖2所示。

  LDRA產(chǎn)品介紹

  LDRA工具套件主要包括Testbed/TBrun、TBreq以及RTInsight,套件能夠輔助客戶(hù)高效地實(shí)現ZDSD的開(kāi)發(fā)流程。

  Testbed功能介紹

  LDRA開(kāi)發(fā)的工具套件在達到團隊軟件開(kāi)發(fā)和維護目標的過(guò)程中,對六項內容提供幫助,如圖3所示。

  ·代碼評審(檢查編碼規則);

  ·質(zhì)量評審(分析代碼的復雜度、密度和可測試性);

  ·設計評審(分析接口、變量使用和控制流等);

  ·單元測試(自動(dòng)創(chuàng )建測試驅動(dòng)和測試向量);

  ·測試驗證(追蹤測試執行和分析代碼覆蓋率);

  ·測試管理(測試用例管理和文檔管理)。

  1.代碼評審。通過(guò)使用工具提供的強大的(包括編碼規則檢查)分析功能以及工具提供的全面的報告,可以實(shí)現對傳統代碼評審工作的擴展。

  工具提供的代碼評審功能的主要特點(diǎn)是,提供了一個(gè)自動(dòng)化的、有效的、可重復的過(guò)程,這個(gè)過(guò)程既節省了時(shí)間和資源,又為開(kāi)發(fā)者提供了詳細的全面標準,這些是傳統的手工技術(shù)不能與之相比的。

  2.質(zhì)量評審。該功能使用質(zhì)量度量方法快速確定軟件的質(zhì)量,使質(zhì)量評審過(guò)程自動(dòng)化。

  質(zhì)量評審一個(gè)主要特點(diǎn)是全面的代碼可視化、系統級的質(zhì)量度量和代碼的結構簡(jiǎn)化,幫助提高對整個(gè)代碼的信心。

  3.設計評審。對源代碼與最初的設計需求之間的一致性進(jìn)行評估是很重要的。

  4.單元測試。在軟件生命周期中,隨著(zhù)軟件開(kāi)發(fā)的進(jìn)行,發(fā)現錯誤以及修正錯誤的成本越來(lái)越大,這是一個(gè)大家公認的事實(shí)。經(jīng)驗證明代碼開(kāi)發(fā)早期的集中測試可以減少相關(guān)的成本。

  單元測試在初始編碼階段提供了識別和改正錯誤的方法,幫助確認和維護軟件單元/模塊的一致性。單元測試工具使測試過(guò)程自動(dòng)化,解決了傳統的單元測試大量消耗時(shí)間和資源的問(wèn)題。

  5.測試驗證。在開(kāi)發(fā)安全、商業(yè)和任務(wù)苛刻性軟件的過(guò)程中,必須堅持最嚴格的標準。

  代碼的分析、測試和維護占了軟件開(kāi)發(fā)生命周期的70%??焖俨槊鞅粶y試軟件中不適當的部分,并且按照一個(gè)高的標準來(lái)測試并減少回頭測試的成本,這是極為重要的。主要的目的是節省資源,提高產(chǎn)品質(zhì)量,縮短上市時(shí)間。

  6.測試管理。因為充分理解一個(gè)系統可能需要花費很長(cháng)的時(shí)間和大量的人力、物力。工具套件幫助開(kāi)發(fā)者和測試工程師理解、歸檔、維護龐大的復雜系統。

  文檔編制幫助達到質(zhì)量標準(如ISO 9001:2000)。測試管理的一個(gè)主要特點(diǎn)是為評審提供整個(gè)系統的文檔和版本控制,也幫助減少維護的成本。

  TBreq功能介紹

  TBreq包含了LDRA Testbed和TBrun(單元測試工具)的工具包集成, 能夠提供一套完整的解決方案來(lái)幫助測試團隊實(shí)現測試規格說(shuō)明、單元測試場(chǎng)景、測試數據以及代碼覆蓋率驗證,實(shí)現高層次的設計規格說(shuō)明之間的映射。TBreq直接和管理工具(DOORS、ReqPro、Word、Excel)接口來(lái)保證在整個(gè)軟件生命周期中,實(shí)現需求跟蹤以及保證對于需求覆蓋的完整性。

  在LDRA工具包里,TBreq根據需求直接生成測試規格說(shuō)明和可執行的測試用例。測試結果直接自動(dòng)的返回到需求管理工具,從而實(shí)現往返的需求跟蹤驗證。

  所有的這些特點(diǎn)使得TBreq成為當今市場(chǎng)上有效的針對需求管理的解決方案。TBreq是將需求、設計、開(kāi)發(fā)、測試和驗證工作與管理工具和設計開(kāi)發(fā)工具鏈連接起來(lái)的較簡(jiǎn)單的解決方案。

  RTInsightPro嵌入式測試系統

  隨著(zhù)嵌入式實(shí)時(shí)系統的廣泛應用,嵌入式軟件可靠性越來(lái)越成為系統能否正常運行的關(guān)鍵,由于傳統主機平臺軟件測試工具的局限性,給嵌入式平臺軟件測試帶來(lái)很大的困難。

  RTInsightPro充分考慮到嵌入式軟件實(shí)時(shí)性特點(diǎn),結合使用LDRA公司靜態(tài)分析與代碼自動(dòng)插裝技術(shù),可成功用于實(shí)時(shí)嵌入式系統集成與系統測試,提供代碼覆蓋率分析、函數性能分析、內存泄露分析、任務(wù)性能分析、變量監控、堆棧監控及系統跟蹤功能。RTInsightPro測試系統如圖4所示。

  通過(guò)采用LDRA公司Testbed軟件測試工具靜態(tài)分析與代碼插裝技術(shù),以及RTInsightPro硬件,可實(shí)時(shí)地對嵌入式系統進(jìn)行代碼覆蓋率分析與性能分析。由于采用代碼插裝,可準確地判斷代碼執行情況,同時(shí)由于采用RTInsightPro高速虛擬端口技術(shù),使得代碼插裝量可控制在每個(gè)特征點(diǎn)(即函數入口、出口,程序分支點(diǎn))一到兩條指令或語(yǔ)句(代碼增加量可控制在10%之內),大大減少插裝代碼增加對被測系統的影響。

  RTInsighPro提供代碼覆蓋率分析、函數性能分析、變量監控、堆棧使用監控、內存泄漏分析、任務(wù)性能分析及系統跟蹤等功能。

  參考文獻:

  1.  LDRA公司Zero Defect Software Development (ZDSD)_Manifesto Version 2.12



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>