嵌入式系統軟件的全過程質量保證

2009-04-09 作者:靳超 來源:電子產品世界
 

質量是產品的生命

當今隨着軟、硬件技術的發展,嵌入式系統廣泛應用於航空航天、國防軍事、電子通信等行業,其中軟件也越來越複雜。而這些領域應用特點,決定了嵌入式系統往往是高安全、任務關鍵的系統,軟件的微小瑕疵就可能嚴重威脅到生命和國家的安全、天文數字的鉅額財產損失。這就使得保證嵌入式軟件的質量和可靠性,變得至關重要。而在這些領域,對產品質量從來就保持着高度的重視,有將“質量視爲產品的生命”的傳統。這樣,相關行業的高層管理人員和開發人員對於軟件的質量也逐漸提高了重視程度。近年來,在組織上,建立了完善的軟件測試體系;在開發和測試方法上,建立了中國的軟件過程成熟度的評價體系GJB5000;在自動化工具方面,投入了大量的經費和人員在測試設備的開發、購置和建設方面。應該說,軟件作爲嵌入式產品主要的組成部分之一,對其質量的重視是目前相關行業的一個共識。

IBM Rational多年來在軟件工程和質量保證方面積累了豐富的方法和經驗。本文依據部分嵌入式開發機構對軟件質量保證工作的一些理解,分析相應開發機構工作中可能的問題,並提出以RUP爲核心的全過程質量管理的思想和具體的實現方式,提出不同單位的過程改進方法,以一種漸進的方式,從簡單的工作開始,逐漸深入地改進組織的軟件質量管理水平。

定義質量

對於任何一個組織,定義共同的對質量的理解是重要的第一步。軟件開發組織經常按照一種不精確的、概括的質量觀念來運轉。

在IBM Rational統一過程中,質量定義如下:

  • 滿足或超出認定的一組需求;
  • 使用經過認可的評測方法和標準來評估;
  • 使用認定的流程來生產。

在這個定義中,我們首先看需求,IBM Rational的軟件質量在用戶需求方面的定義分爲五個方面:易用性、可靠性、性能、可支持和功能。

質量保證,歸根結底就是爲客戶提供更高品質的產品,更好地滿足客戶的需求。另一方面,這個質量定義中明確指出,質量更體現在軟件開發的整個過程和一個標準的評價方式上。

軟件開發過程質量就是指爲了生成工件而對可接受流程的實施和遵守程度,體現在三個層次:

  • 產品本身和用來生產、組裝軟件產品的零部件質量;
  • 在軟件開發過程的標準化、流程化、自動化程度和團隊基本協作平臺的效率,各個過程對質量的承諾;
  • 軟件產品驗收的評測手段應該是被業界廣泛認可和接受的方法,所構築的質量評價標準。

一個軟件生產企業的過程質量一般可以用它的軟件過程成熟度等級來評估。

RUP全過程質量保證

Rational Unified Process(RUP)是一個可以通過Web來使用的軟件工程過程。作爲軟件工業事實上的標準,它回答了我們以下問題:在整個軟件開發的各個過程中,誰(角色)應該在什麼時候(詳細工作流程)做什麼(任務)和產生什麼樣的開發結果(工件),以完成整個項目的開發目標。建立有效的工作過程,可以提高團隊的生產效率,控制開發過程中的風險,保證軟件開發進度並且提高軟件產品質量。同時通過爲所有重要的開發活動提供全面的指南、模板和示例,使整個軟件開發團隊能夠有效共享成功經驗,提高團隊效率,最終保證軟件開發質量。

全過程質量保證思想

RUP把整個軟件開發過程分解成:業務建模、需求管理、分析設計、實施、測試、部署、配置與變更管理、項目管理和環境等九個核心工作流程。每個核心工作規程由多個詳細工作流程組成。RUP使用角色、任務和作爲輸入/輸出的工件來組織每個詳細工作流程,實現軟件開發組織內部人、資源和流程的融合。RUP通過建立完整的軟件開發過程,使得產品的質量由項目團隊的每個成員所代表的角色共同負責,具體體現在:每個工作流程設定相應的工作指南和工作檢查點,每個角色承擔相應的質量任務。

在RUP中,整個軟件開發過程如圖1所示,它以指定的工件爲輸入,通過軟件開發角色和標準化的軟件開發活動,生產出滿足質量要求的輸出工件。

 

用正確的過程和平臺實現質量

IBM提供一個完整的方案以幫助開發團隊構建更高質量的軟件。這個開放和標準的平臺包括IBM軟件的許多工具,包括IBM Rational統一過程。在開發的每個階段和每個流程都強調關注質量,幫助團隊來識別開發生命週期中的早期問題。以下部分描述了RUP和IBM軟件開發平臺中的工具如何支持每個工作流程中的質量實踐的。

爲減少重複描述,先將相關工具的功能統一簡要描述。下面的所有工具都可以以插件的形式集成到開放的Eclipse平臺上,爲開發者提供集成環境:

  • IBM Rational System Developer 用於系統建模和開發的集成環境;
  • IBM Rational TestManager 用於計劃、管理和報告任何測試工作要求;
  • IBM Rational Manual Tester 用以提高手工測試工作的效率;
  • IBM Rational Test RealTime

用於嵌入式系統的靜態度量、代碼規則檢查、單元測試、覆蓋率分析、內存分析、性能分析、代碼跟蹤、線程分析、基於消息的分佈式系統測試的跨平臺解決方案。

爲了推動團隊溝通、協作和合作,IBM Rational還提供多種額外的解決方案選項。

分析

根據統計得知,引起客戶不滿意問題的80%可以追溯到對需求的糟糕理解上。對於任何嵌入式開發項目,不論是新的系統開發,或遺留系統更新集成,質量開始於分析業務,以確保系統需求清晰且準確地反映了業務和客戶需求。

我們可以將被測系統置於其將運行的環境中,採用建模的方式,將最優確認的需求,用條目化的方式管理需求文檔,實現從需求、到分析、到設計、到實現、到測試的雙向跟蹤,以實現測試中發現缺陷到各層次的跟蹤,和影響範圍的分析。

設計

在設計中,主要的質量集中在構架上,這是軟件的“靈魂”。低質量的構架會引起大範圍的質量問題,包括(軟件)脆弱、缺乏升級、以及發現缺陷也難以修改。這些問題隨着應用軟件項目不斷髮展,變得越來越難以解決;並且隨着應用軟件從設計到開發、測試和部署,糾正缺陷的成本以指數在增長。如果軟件開發人員可以有效地發現、隔離和解決設計和開發期間的結構上的不足,這項工作會在整個項目期間獲得受益。

開發

平均起來,開發人員在他們寫的每千行代碼中會產生100到150個錯誤。當然,這個數量隨着開發人員和項目的不同而不同。即使只有一小段代碼,產生10%的錯誤也是很嚴重的。

RUP倡導開發人員主動地測試和分析。儘管單元測試和運行分析已經變得更爲主流,但是許多管理人員仍然有這樣的誤解,即這些過程使時間表中增加了不必要的時間。事實上,如果不採用這些措施,開發時間表通常會一樣或更加延長,這是由於在質量保證或客戶發現問題後,開發人員在生命週期中調試代碼要花費更多的時間。

測試

管理系統級功能和性能測試是持續保證質量的一個主要部分。一個開發組織既不應當過分強調,也不應當減少系統測試的重要性。如前所述,保證質量不只是測試團隊的職責,測試也不只是質量保證的唯一領域。某些測試可以並且應當由開發人員來運行,在某些情況下,可以由構架師來運行。大量的質量保證工作,在RUP的原則下是由其他開發角色構造的。

支持保證質量的團隊職責

質量是開發團隊中的每個人的職責,但是它也是團隊作爲一個整體的職責。在一個迭代的過程中,每個迭代確保了每個工件質量的持續的重新評估,這樣,在迭代的方式下,經常可以保證提交質量更高的產品。有效的軟件配置管理和變更管理是保證質量的一個基本工具;它幫助組織確保軟件在每次構建時是可重複的和可靠的,並且保證缺陷和變更請求得到正確的管理。

質量過程改進的步驟

當我們考慮需要什麼來構建任務關鍵和高安全性的系統軟件,並涉及過程質量改進時,大家往往想到的是一個複雜的過程。其實,軟件過程質量改進,如軟件開發,可以是一個迭代的過程。你不需要一步就完成所有的事情。即使是小的變化,包括調整你的組織中對質量的看法,也會產生一個切實的改進。

我們指出兩條參考的改進的線路圖,遞進式的(或者本質的)和演進式的(反應式的)。遞進式的更多考慮工作流程間的依賴性,做到先改善基礎流程,再基於已有的改善基礎,做進一步改進。而演進式的多來自於工作中感知到的問題和瓶頸,依據問題的表面做反應式的改進。基於改進後再發現新的問題,如此反覆。當然,我們也在努力發現一種可以兼顧工作流程間依賴性,有可以快速顯示改進效果的改進方式。

我們可以把質量保證工作改善劃分爲以下幾個方面:配置管理和變更管理、靜態分析和單元測試、集成測試和系統測試、迭代開發和連續測試、全過程質量、組織級質量體系、架構分析、需求管理、項目管理。遞進式和演進式的實施方式如圖2和圖3所示。

獲得軟件高質量的高收益

全過程的質量保證體系總是比忽略質量問題的成本要低。事實上,如果你正確地運用,提高產品質量基本上沒有成本。

在國際上,隨着軟件質量保證理論及應用研究工作的不斷深入,針對軟件質量保證工作的工作重點也經歷瞭如下發展歷程:

  • 1970年以前,採用特定(Ad-hoc)測試,與調試沒有區分;
  • 1970年末到1980年中期,測試基礎理論和實用技術形成,軟件測試作爲軟件質量保證(SQA)的主要手段和職能;
  • 1980年代末到90年代中期,測試工具在質量和數量上不斷增長,測試與SQA分離,注重於工具對測試效率的影響;
  • 1990年後期到目前,重新關注有效的過程管理對於軟件測試的重要性,將軟件工程視爲軟件測試的基礎,或形成各種獨立的測試模型、測試能力成熟度模型。

現在高品質軟件,需要完整的軟件開發過程和整合的軟件開發平臺來共同鑄就。IBM Rational軟件開發平臺,就是以各種國際標準和開放平臺爲基礎,爲嵌入式系統軟件產品的開發和生產過程提供了良好的開發速度和質量保證。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章