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