王蘇明
(福州大學(xué),福建 福州 350000)
最初對(duì)軟件的定義源自于 《Encyclopedia of Computer Science》:對(duì)計(jì)算機(jī)非硬件部件的描述,尤其是指使得計(jì)算機(jī)完成特定工作所需要的程序。IEEE《Software Engineering Terminology Standard》中則對(duì)軟件做出了如下定義:計(jì)算機(jī)程序、規(guī)程,以及與運(yùn)行計(jì)算機(jī)系統(tǒng)可能需要的相關(guān)文檔和數(shù)據(jù)。軟件質(zhì)量是軟件產(chǎn)品滿足使用要求的程度。
軟件的可靠性是指在規(guī)定的條件下,在一段規(guī)定時(shí)間內(nèi)完成規(guī)定功能而不失效的概率。軟件可靠性實(shí)際上與軟件設(shè)計(jì)質(zhì)量緊密相關(guān)。對(duì)于軟件來說,可靠性變成了正確性、信心、精確性和準(zhǔn)確性的問題,而不僅是下次失效的時(shí)間問題。
有三種不同方法估計(jì)軟件的可靠性:①基于失效的歷史數(shù)據(jù)。②在輸入域隨機(jī)采樣點(diǎn)輸入所引起的系統(tǒng)行為方式。③種子缺陷和測(cè)試組實(shí)際測(cè)出的缺陷數(shù)。所謂種子缺陷是在調(diào)試開始階段有意插入程序中的,其測(cè)試組是知道的。
軟件的可維護(hù)性是指進(jìn)行預(yù)定的檢查和服務(wù),即可服務(wù)性;當(dāng)出現(xiàn)故障時(shí)進(jìn)行恢復(fù),即可恢復(fù)性。軟件維護(hù)是一個(gè)修改軟件錯(cuò)誤和潛在不足的活動(dòng),軟件維護(hù)為運(yùn)行的程序檢查并修改錯(cuò)誤。軟件維護(hù)是一個(gè)在軟件交付之后對(duì)軟件系統(tǒng)或部件錯(cuò)誤進(jìn)行修改、提高其性能或其他特性或適應(yīng)環(huán)境變化的過程。
質(zhì)量保證是一個(gè)活動(dòng),它向所有有關(guān)的人提供證據(jù)以確立質(zhì)量功能正在按需求運(yùn)行的信心,在這個(gè)基礎(chǔ)上,IEEE在軟件工程術(shù)語中對(duì)質(zhì)量保證的定義是:質(zhì)量保證是有計(jì)劃和系統(tǒng)性的活動(dòng),它對(duì)部件或產(chǎn)品滿足確定的技術(shù)需求提供足夠的信心.與硬件系統(tǒng)不同,軟件不會(huì)磨損,因此在軟件交付之后,其可用性不會(huì)隨時(shí)間的推移而改變,軟件質(zhì)量保證就是一個(gè)系統(tǒng)性的工作以提高交付時(shí)的水平。
本文對(duì)于軟件質(zhì)量保證的定義是:軟件質(zhì)量保證(SQA)是建立一套有計(jì)劃,有系統(tǒng)的的方法,來向管理層保證擬定出的標(biāo)準(zhǔn)、步驟、實(shí)踐和方法能夠正確地被所有項(xiàng)目采用。
(1)SQA在操作系統(tǒng)軟件開發(fā)中的作用。操作系統(tǒng)是一組程序的集合,這些程序協(xié)議計(jì)算機(jī)電路的運(yùn)行從而使計(jì)算機(jī)有效的工作。操作系統(tǒng)包括控制程序。控制程序控制計(jì)算機(jī)的工作效率。處理程序控制計(jì)算機(jī)的處理效率。
本文現(xiàn)在來研究SQA如何進(jìn)入角色。首先,在產(chǎn)品開發(fā)和測(cè)試階段,SQA必須確保一個(gè)嚴(yán)格的配置和控制過程的方式,在這個(gè)過程中基線應(yīng)該得到適當(dāng)?shù)亩x,產(chǎn)品的問題、解決方法和性能得到詳細(xì)的記錄。當(dāng)產(chǎn)品在出現(xiàn)問題時(shí),要有一種快速的方法來確定產(chǎn)品的狀態(tài)。第二,同樣在產(chǎn)品的開發(fā)和測(cè)試階段,SQA要確保根據(jù)市面需求對(duì)產(chǎn)品進(jìn)行大量的測(cè)試和確認(rèn)。這樣大大減少了產(chǎn)品發(fā)布后面臨承擔(dān)責(zé)任的風(fēng)險(xiǎn)。第三,還是在開發(fā)和測(cè)試階段,SQA能夠開展或協(xié)助開展調(diào)查產(chǎn)品是否侵犯了競(jìng)爭(zhēng)對(duì)手的專利或版權(quán)。這一點(diǎn)是不容忽視的。第四,產(chǎn)品一旦發(fā)布,SQA的工作就轉(zhuǎn)移到了評(píng)估客戶滿意度、建議和投訴上。這些信息對(duì)持續(xù)的產(chǎn)品改進(jìn)和將來發(fā)布新版本是很有必要的。
SQA在操作系統(tǒng)的開發(fā)過程中有如下建議:SQA最高優(yōu)先級(jí)工作是在開發(fā)過程中和產(chǎn)品發(fā)布后的配置控制;SQA次高優(yōu)先級(jí)工作是確保產(chǎn)品在發(fā)布之前性能可靠。在需求階段SQA要確定產(chǎn)品競(jìng)爭(zhēng)特征,確保沒有版權(quán)問題;要基于明確的市場(chǎng)需要建立需求;評(píng)價(jià)用戶輸入;考慮平臺(tái)的多功能性。在系統(tǒng)設(shè)計(jì)階段時(shí)要召集同行評(píng)審以確保操作系統(tǒng)的設(shè)計(jì)能力。在實(shí)現(xiàn)階段要考慮測(cè)試版原型,確保對(duì)原型的控制和SCM(軟件配置管理)配置控制,確保對(duì)現(xiàn)場(chǎng)版本控制。在驗(yàn)證階段,可確保用戶手冊(cè)是最新版本;確認(rèn)產(chǎn)品的可靠性以及可靠的性能;確保高優(yōu)先級(jí)的問題得到解決,從而避免用戶不滿;確保有足夠的回歸測(cè)試;確保發(fā)布最終版本的準(zhǔn)備工作完成。在運(yùn)行階段可確保發(fā)布充分的產(chǎn)品包裝保護(hù)和擔(dān)保;可跟蹤用戶建議和投訴的處理;度量客戶滿意度。
(2)SQA在實(shí)時(shí)系統(tǒng)軟件開發(fā)中的作用。實(shí)時(shí)軟件是指對(duì)計(jì)算機(jī)進(jìn)行實(shí)時(shí)控制的軟件。實(shí)時(shí)系統(tǒng)是對(duì)進(jìn)行中的物理過程進(jìn)行控制和提供服務(wù)的系統(tǒng)。
在實(shí)時(shí)狀態(tài)下,工作軟件有嚴(yán)格的性能要求和約束。實(shí)時(shí)軟件必須與其化外部實(shí)體進(jìn)行交互。并在實(shí)時(shí)狀態(tài)下完成所有要求的處理工作。這種軟件因此受到嚴(yán)格的時(shí)間約束。這種軟件具有復(fù)雜性,并以多種形式存在,如匯編語言、微代碼以及高級(jí)語言的可編譯源代碼。
實(shí)時(shí)軟件基于并發(fā)處理和定時(shí)中斷,這二者是為每個(gè)關(guān)鍵功能優(yōu)先級(jí)排序的基礎(chǔ)。盡管實(shí)時(shí)處理也包括恢復(fù)處理和較高的可靠性要求,但實(shí)時(shí)處理的關(guān)鍵還是效率。所以,SQA的責(zé)任就是確保整個(gè)實(shí)時(shí)系統(tǒng)軟件的效率。
對(duì)于實(shí)時(shí)系統(tǒng),SQA需要跟蹤所有系統(tǒng)組件以確保對(duì)規(guī)模和定時(shí)的估算沒有超過預(yù)算,跟蹤由均衡分析和快速原型得出的結(jié)果,通過建?;蛟u(píng)審跟蹤軟件變更對(duì)相關(guān)定時(shí)預(yù)算的影響,評(píng)價(jià)高級(jí)語言和目標(biāo)處理器進(jìn)行并發(fā)處理和中斷處理的能力。
對(duì)實(shí)時(shí)系統(tǒng)軟件SQA的建議有SQA最高優(yōu)先級(jí)工作是軟件效率;SQA次優(yōu)先級(jí)工作是軟件可靠性。在運(yùn)行階段需要跟蹤實(shí)時(shí)性能(實(shí)時(shí)問題、經(jīng)常失效的功能、糾正測(cè)式等),并記錄到數(shù)據(jù)庫中;根據(jù)可靠性模型的預(yù)測(cè)跟蹤實(shí)時(shí)可靠性,并提高下一次預(yù)測(cè)的精確情
(3)SQA在商用軟件開發(fā)中的作用。商用環(huán)境下所使用的軟件一般來說是管理信息系統(tǒng)(MIS)。對(duì)于商用軟件,SQA的工作是審計(jì)信息系統(tǒng)以確保過程的準(zhǔn)確性、系統(tǒng)的安全性、文檔的精確性和及時(shí)性、系統(tǒng)的功能正常。
對(duì)商用軟件SQA的建議有SQA的最高優(yōu)先級(jí)工作是錄的精確性;SQA的次優(yōu)先級(jí)工作是日常運(yùn)行的可靠性。在需求階段SQA的要求有評(píng)審信息系的規(guī)程以確定審計(jì)的區(qū)域;對(duì)日常運(yùn)行的規(guī)程;對(duì)系統(tǒng)故障或功能下降時(shí)的規(guī)程;恢復(fù)的規(guī)程;在審計(jì)前評(píng)間所有項(xiàng)目根據(jù)需要形成或更新審計(jì)檢查單;對(duì)需求的變更形成基線。在設(shè)計(jì)階段的要求是組織對(duì)新設(shè)計(jì)或修改組件的同行評(píng)審;確保提交的設(shè)計(jì)變更得到批準(zhǔn);確保測(cè)試過程能夠提供足夠的測(cè)試覆蓋率。在實(shí)現(xiàn)階段的要求是按進(jìn)度要求監(jiān)督信息系統(tǒng)的運(yùn)行;進(jìn)行審計(jì);確倮對(duì)現(xiàn)有軟件、新軟件和修改軟件的版本控制。在驗(yàn)證階段需要確保對(duì)當(dāng)前發(fā)布版本的配置管理;參加新發(fā)布版本的試驗(yàn)運(yùn)行;確保發(fā)布新的或修改版本的準(zhǔn)備工作就緒。在運(yùn)行階段要監(jiān)督必要的日常運(yùn)行;跟蹤關(guān)鍵量參數(shù),并記錄到數(shù)據(jù)庫中;記錄對(duì)下一次發(fā)布的改進(jìn)。