新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 嵌入式系統(tǒng)軟件的全過程質(zhì)量保證

嵌入式系統(tǒng)軟件的全過程質(zhì)量保證

作者:IBM中國有限公司軟件部高級(jí)技術(shù)顧問 靳超 時(shí)間:2008-04-14 來源:電子產(chǎn)品世界 收藏

  質(zhì)量是產(chǎn)品的生命

本文引用地址:http://m.butianyuan.cn/article/81532.htm

  當(dāng)今隨著軟、硬件技術(shù)的發(fā)展,嵌入式系統(tǒng)廣泛應(yīng)用于航空航天、國防軍事、電子通信等行業(yè),其中軟件也越來越復(fù)雜。而這些領(lǐng)域應(yīng)用特點(diǎn),決定了嵌入式系統(tǒng)往往是高安全、任務(wù)關(guān)鍵的系統(tǒng),軟件的微小瑕疵就可能嚴(yán)重威脅到生命和國家的安全、天文數(shù)字的巨額財(cái)產(chǎn)損失。這就使得保證嵌入式軟件的質(zhì)量和可靠性,變得至關(guān)重要。而在這些領(lǐng)域,對(duì)產(chǎn)品質(zhì)量從來就保持著高度的重視,有將“質(zhì)量視為產(chǎn)品的生命”的傳統(tǒng)。這樣,相關(guān)行業(yè)的高層管理人員和開發(fā)人員對(duì)于軟件的質(zhì)量也逐漸提高了重視程度。近年來,在組織上,建立了完善的軟件測試體系;在開發(fā)和測試方法上,建立了中國的軟件過程成熟度的評(píng)價(jià)體系GJB5000;在自動(dòng)化工具方面,投入了大量的經(jīng)費(fèi)和人員在測試設(shè)備的開發(fā)、購置和建設(shè)方面。應(yīng)該說,軟件作為嵌入式產(chǎn)品主要的組成部分之一,對(duì)其質(zhì)量的重視是目前相關(guān)行業(yè)的一個(gè)共識(shí)。

  IBM Rational多年來在軟件工程和質(zhì)量保證方面積累了豐富的方法和經(jīng)驗(yàn)。本文依據(jù)部分嵌入式開發(fā)機(jī)構(gòu)對(duì)軟件質(zhì)量保證工作的一些理解,分析相應(yīng)開發(fā)機(jī)構(gòu)工作中可能的問題,并提出以RUP為核心的全過程質(zhì)量管理的思想和具體的實(shí)現(xiàn)方式,提出不同單位的過程改進(jìn)方法,以一種漸進(jìn)的方式,從簡單的工作開始,逐漸深入地改進(jìn)組織的軟件質(zhì)量管理水平。

  定義質(zhì)量

  對(duì)于任何一個(gè)組織,定義共同的對(duì)質(zhì)量的理解是重要的第一步。軟件開發(fā)組織經(jīng)常按照一種不精確的、概括的質(zhì)量觀念來運(yùn)轉(zhuǎn)。

  在IBM Rational統(tǒng)一過程中,質(zhì)量定義如下:

  ·滿足或超出認(rèn)定的一組需求;

  ·使用經(jīng)過認(rèn)可的評(píng)測方法和標(biāo)準(zhǔn)來評(píng)估;

  ·使用認(rèn)定的流程來生產(chǎn)。

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

  質(zhì)量保證,歸根結(jié)底就是為客戶提供更高品質(zhì)的產(chǎn)品,更好地滿足客戶的需求。另一方面,這個(gè)質(zhì)量定義中明確指出,質(zhì)量更體現(xiàn)在軟件開發(fā)的整個(gè)過程和一個(gè)標(biāo)準(zhǔn)的評(píng)價(jià)方式上。

  軟件開發(fā)過程質(zhì)量就是指為了生成工件而對(duì)可接受流程的實(shí)施和遵守程度,體現(xiàn)在三個(gè)層次:

  ·產(chǎn)品本身和用來生產(chǎn)、組裝軟件產(chǎn)品的零部件質(zhì)量;

  ·在軟件開發(fā)過程的標(biāo)準(zhǔn)化、流程化、自動(dòng)化程度和團(tuán)隊(duì)基本協(xié)作平臺(tái)的效率,各個(gè)過程對(duì)質(zhì)量的承諾;

  ·軟件產(chǎn)品驗(yàn)收的評(píng)測手段應(yīng)該是被業(yè)界廣泛認(rèn)可和接受的方法,所構(gòu)筑的質(zhì)量評(píng)價(jià)標(biāo)準(zhǔn)。

  一個(gè)軟件生產(chǎn)企業(yè)的過程質(zhì)量一般可以用它的軟件過程成熟度等級(jí)來評(píng)估。

  RUP全過程質(zhì)量保證

  Rational Unified Process(RUP)是一個(gè)可以通過Web來使用的軟件工程過程。作為軟件工業(yè)事實(shí)上的標(biāo)準(zhǔn),它回答了我們以下問題:在整個(gè)軟件開發(fā)的各個(gè)過程中,誰(角色)應(yīng)該在什么時(shí)候(詳細(xì)工作流程)做什么(任務(wù))和產(chǎn)生什么樣的開發(fā)結(jié)果(工件),以完成整個(gè)項(xiàng)目的開發(fā)目標(biāo)。建立有效的工作過程,可以提高團(tuán)隊(duì)的生產(chǎn)效率,控制開發(fā)過程中的風(fēng)險(xiǎn),保證軟件開發(fā)進(jìn)度并且提高軟件產(chǎn)品質(zhì)量。同時(shí)通過為所有重要的開發(fā)活動(dòng)提供全面的指南、模板和示例,使整個(gè)軟件開發(fā)團(tuán)隊(duì)能夠有效共享成功經(jīng)驗(yàn),提高團(tuán)隊(duì)效率,最終保證軟件開發(fā)質(zhì)量。

  全過程質(zhì)量保證思想

  RUP把整個(gè)軟件開發(fā)過程分解成:業(yè)務(wù)建模、需求管理、分析設(shè)計(jì)、實(shí)施、測試、部署、配置與變更管理、項(xiàng)目管理和環(huán)境等九個(gè)核心工作流程。每個(gè)核心工作規(guī)程由多個(gè)詳細(xì)工作流程組成。RUP使用角色、任務(wù)和作為輸入/輸出的工件來組織每個(gè)詳細(xì)工作流程,實(shí)現(xiàn)軟件開發(fā)組織內(nèi)部人、資源和流程的融合。RUP通過建立完整的軟件開發(fā)過程,使得產(chǎn)品的質(zhì)量由項(xiàng)目團(tuán)隊(duì)的每個(gè)成員所代表的角色共同負(fù)責(zé),具體體現(xiàn)在:每個(gè)工作流程設(shè)定相應(yīng)的工作指南和工作檢查點(diǎn),每個(gè)角色承擔(dān)相應(yīng)的質(zhì)量任務(wù)。

  在RUP中,整個(gè)軟件開發(fā)過程如圖1所示,它以指定的工件為輸入,通過軟件開發(fā)角色和標(biāo)準(zhǔn)化的軟件開發(fā)活動(dòng),生產(chǎn)出滿足質(zhì)量要求的輸出工件。


    
  用正確的過程和平臺(tái)實(shí)現(xiàn)質(zhì)量

  IBM提供一個(gè)完整的方案以幫助開發(fā)團(tuán)隊(duì)構(gòu)建更高質(zhì)量的軟件。這個(gè)開放和標(biāo)準(zhǔn)的平臺(tái)包括IBM軟件的許多工具,包括IBM Rational統(tǒng)一過程。在開發(fā)的每個(gè)階段和每個(gè)流程都強(qiáng)調(diào)關(guān)注質(zhì)量,幫助團(tuán)隊(duì)來識(shí)別開發(fā)生命周期中的早期問題。以下部分描述了RUP和IBM軟件開發(fā)平臺(tái)中的工具如何支持每個(gè)工作流程中的質(zhì)量實(shí)踐的。

  為減少重復(fù)描述,先將相關(guān)工具的功能統(tǒng)一簡要描述。下面的所有工具都可以以插件的形式集成到開放的Eclipse平臺(tái)上,為開發(fā)者提供集成環(huán)境:

  ·IBM Rational System Developer 用于系統(tǒng)建模和開發(fā)的集成環(huán)境;

  ·IBM Rational TestManager 用于計(jì)劃、管理和報(bào)告任何測試工作要求;

  ·IBM Rational Manual Tester 用以提高手工測試工作的效率;

  ·IBM Rational Test RealTime

  用于嵌入式系統(tǒng)的靜態(tài)度量、代碼規(guī)則檢查、單元測試、覆蓋率分析、內(nèi)存分析、性能分析、代碼跟蹤、線程分析、基于消息的分布式系統(tǒng)測試的跨平臺(tái)解決方案。

  為了推動(dòng)團(tuán)隊(duì)溝通、協(xié)作和合作,IBM Rational還提供多種額外的解決方案選項(xiàng)。

  分析

  根據(jù)統(tǒng)計(jì)得知,引起客戶不滿意問題的80%可以追溯到對(duì)需求的糟糕理解上。對(duì)于任何嵌入式開發(fā)項(xiàng)目,不論是新的系統(tǒng)開發(fā),或遺留系統(tǒng)更新集成,質(zhì)量開始于分析業(yè)務(wù),以確保系統(tǒng)需求清晰且準(zhǔn)確地反映了業(yè)務(wù)和客戶需求。

  我們可以將被測系統(tǒng)置于其將運(yùn)行的環(huán)境中,采用建模的方式,將最優(yōu)確認(rèn)的需求,用條目化的方式管理需求文檔,實(shí)現(xiàn)從需求、到分析、到設(shè)計(jì)、到實(shí)現(xiàn)、到測試的雙向跟蹤,以實(shí)現(xiàn)測試中發(fā)現(xiàn)缺陷到各層次的跟蹤,和影響范圍的分析。

  設(shè)計(jì)

  在設(shè)計(jì)中,主要的質(zhì)量集中在構(gòu)架上,這是軟件的“靈魂”。低質(zhì)量的構(gòu)架會(huì)引起大范圍的質(zhì)量問題,包括(軟件)脆弱、缺乏升級(jí)、以及發(fā)現(xiàn)缺陷也難以修改。這些問題隨著應(yīng)用軟件項(xiàng)目不斷發(fā)展,變得越來越難以解決;并且隨著應(yīng)用軟件從設(shè)計(jì)到開發(fā)、測試和部署,糾正缺陷的成本以指數(shù)在增長。如果軟件開發(fā)人員可以有效地發(fā)現(xiàn)、隔離和解決設(shè)計(jì)和開發(fā)期間的結(jié)構(gòu)上的不足,這項(xiàng)工作會(huì)在整個(gè)項(xiàng)目期間獲得受益。

  開發(fā)

  平均起來,開發(fā)人員在他們寫的每千行代碼中會(huì)產(chǎn)生100到150個(gè)錯(cuò)誤。當(dāng)然,這個(gè)數(shù)量隨著開發(fā)人員和項(xiàng)目的不同而不同。即使只有一小段代碼,產(chǎn)生10%的錯(cuò)誤也是很嚴(yán)重的。

  RUP倡導(dǎo)開發(fā)人員主動(dòng)地測試和分析。盡管單元測試和運(yùn)行分析已經(jīng)變得更為主流,但是許多管理人員仍然有這樣的誤解,即這些過程使時(shí)間表中增加了不必要的時(shí)間。事實(shí)上,如果不采用這些措施,開發(fā)時(shí)間表通常會(huì)一樣或更加延長,這是由于在質(zhì)量保證或客戶發(fā)現(xiàn)問題后,開發(fā)人員在生命周期中調(diào)試代碼要花費(fèi)更多的時(shí)間。

  測試

  管理系統(tǒng)級(jí)功能和性能測試是持續(xù)保證質(zhì)量的一個(gè)主要部分。一個(gè)開發(fā)組織既不應(yīng)當(dāng)過分強(qiáng)調(diào),也不應(yīng)當(dāng)減少系統(tǒng)測試的重要性。如前所述,保證質(zhì)量不只是測試團(tuán)隊(duì)的職責(zé),測試也不只是質(zhì)量保證的唯一領(lǐng)域。某些測試可以并且應(yīng)當(dāng)由開發(fā)人員來運(yùn)行,在某些情況下,可以由構(gòu)架師來運(yùn)行。大量的質(zhì)量保證工作,在RUP的原則下是由其他開發(fā)角色構(gòu)造的。

  支持保證質(zhì)量的團(tuán)隊(duì)職責(zé)

  質(zhì)量是開發(fā)團(tuán)隊(duì)中的每個(gè)人的職責(zé),但是它也是團(tuán)隊(duì)作為一個(gè)整體的職責(zé)。在一個(gè)迭代的過程中,每個(gè)迭代確保了每個(gè)工件質(zhì)量的持續(xù)的重新評(píng)估,這樣,在迭代的方式下,經(jīng)??梢员WC提交質(zhì)量更高的產(chǎn)品。有效的軟件配置管理和變更管理是保證質(zhì)量的一個(gè)基本工具;它幫助組織確保軟件在每次構(gòu)建時(shí)是可重復(fù)的和可靠的,并且保證缺陷和變更請(qǐng)求得到正確的管理。
    
  質(zhì)量過程改進(jìn)的步驟

  當(dāng)我們考慮需要什么來構(gòu)建任務(wù)關(guān)鍵和高安全性的系統(tǒng)軟件,并涉及過程質(zhì)量改進(jìn)時(shí),大家往往想到的是一個(gè)復(fù)雜的過程。其實(shí),軟件過程質(zhì)量改進(jìn),如軟件開發(fā),可以是一個(gè)迭代的過程。你不需要一步就完成所有的事情。即使是小的變化,包括調(diào)整你的組織中對(duì)質(zhì)量的看法,也會(huì)產(chǎn)生一個(gè)切實(shí)的改進(jìn)。

  我們指出兩條參考的改進(jìn)的線路圖,遞進(jìn)式的(或者本質(zhì)的)和演進(jìn)式的(反應(yīng)式的)。遞進(jìn)式的更多考慮工作流程間的依賴性,做到先改善基礎(chǔ)流程,再基于已有的改善基礎(chǔ),做進(jìn)一步改進(jìn)。而演進(jìn)式的多來自于工作中感知到的問題和瓶頸,依據(jù)問題的表面做反應(yīng)式的改進(jìn)?;诟倪M(jìn)后再發(fā)現(xiàn)新的問題,如此反復(fù)。當(dāng)然,我們也在努力發(fā)現(xiàn)一種可以兼顧工作流程間依賴性,有可以快速顯示改進(jìn)效果的改進(jìn)方式。

  我們可以把質(zhì)量保證工作改善劃分為以下幾個(gè)方面:配置管理和變更管理、靜態(tài)分析和單元測試、集成測試和系統(tǒng)測試、迭代開發(fā)和連續(xù)測試、全過程質(zhì)量、組織級(jí)質(zhì)量體系、架構(gòu)分析、需求管理、項(xiàng)目管理。遞進(jìn)式和演進(jìn)式的實(shí)施方式如圖2和圖3所示。

  獲得軟件高質(zhì)量的高收益

  全過程的質(zhì)量保證體系總是比忽略質(zhì)量問題的成本要低。事實(shí)上,如果你正確地運(yùn)用,提高產(chǎn)品質(zhì)量基本上沒有成本。

  在國際上,隨著軟件質(zhì)量保證理論及應(yīng)用研究工作的不斷深入,針對(duì)軟件質(zhì)量保證工作的工作重點(diǎn)也經(jīng)歷了如下發(fā)展歷程:

  ·1970年以前,采用特定(Ad-hoc)測試,與調(diào)試沒有區(qū)分;

  ·1970年末到1980年中期,測試基礎(chǔ)理論和實(shí)用技術(shù)形成,軟件測試作為軟件質(zhì)量保證(SQA)的主要手段和職能;

  ·1980年代末到90年代中期,測試工具在質(zhì)量和數(shù)量上不斷增長,測試與SQA分離,注重于工具對(duì)測試效率的影響;

  ·1990年后期到目前,重新關(guān)注有效的過程管理對(duì)于軟件測試的重要性,將軟件工程視為軟件測試的基礎(chǔ),或形成各種獨(dú)立的測試模型、測試能力成熟度模型。

  現(xiàn)在高品質(zhì)軟件,需要完整的軟件開發(fā)過程和整合的軟件開發(fā)平臺(tái)來共同鑄就。IBM Rational軟件開發(fā)平臺(tái),就是以各種國際標(biāo)準(zhǔn)和開放平臺(tái)為基礎(chǔ),為產(chǎn)品的開發(fā)和生產(chǎn)過程提供了良好的開發(fā)速度和質(zhì)量保證。



關(guān)鍵詞: 嵌入式系統(tǒng)軟件

評(píng)論


技術(shù)專區(qū)

關(guān)閉