計算機軟件質量保證計劃示例
計劃名CADCSC軟件質量保證計劃
項目名中國控制系統CAD工程化軟件系統
項目委托單位
代表簽名年月日
項目承辦單位
代表簽名年月日
1引言
1.1目的
本計劃的目的在于對所開發的CADCSC軟件規定各種必要的質量保證措施,以保證所交付的CADCSC軟件能夠滿足項目委托書或合同中規定的各項需求,能夠滿足本項目總體組制定的且經領導小組批準的該軟件系統需求規格說明書中規定的各項具體需求。
軟件開發單位在開發CADCSC軟件系統所屬的各個子系統(其中包括為本項目研制或選用的各種支持軟件)時,都應該執行本計劃中的有關規定,但可根據各自的情況對本計劃作適當的剪裁,以滿足特定的質量保證要求,剪裁后的計劃必須經總體組批準。
1.2定義本計劃用到的一些術語的定義按GB/T11457和GB/T12505.1.3參考資料GB/T11457軟件工程術語GB8566計算機軟件開發規范GB8567計算機軟件產品開發文件編制指南GB/T12504計算機軟件質量保證計劃規范GB/T12505計算機軟件配置管理計劃規范CADCSC軟件配置管理計劃
2管理
2.1機構在本軟件系統整個開發期間,必須成立軟件質量保證小組負責質量保證工作。軟件質量保證小組屬總體組領導,由總體組代表、項目的軟件工程小組代表、項目的專職質量保證人員、項目的專職配置管理人員以及各個子系統軟件質量保證人員等方面的人員組成,由項目的軟件工程小組代表任組長。各子系統的軟件質量保證人員在業務上受軟件質量保證小組領導,在行政上受各子系統負責人領導。
軟件質量保證小組和軟件質量保證人員必須檢查和督促本計劃的實施。各子系統的軟件質量保證人員有權直接向軟件質量保證小組報告子項目的軟件質量狀況。各子系統的軟件質量保證人員應該根據對子項目的具體要求,制訂必要的規程和規定,以確保完全遵守本計劃的所有要求。
2.2任務軟件質量保證工作涉及軟件生存周期各階段的活動,應該貫徹到日常的軟件開發活動中,而且應該特別注意軟件質量的早期評審工作。因此,對新開發的或正在開發的各子系統,要按照GB8566與本計劃的各項規定進行各項評審工作。軟件質量保證小組要派成員參加所有的評審與檢查活動。評審與檢查的目的是為了確保在軟件開發工作的各個階段和各個方面都認真采取各項措施來保證與提高軟件的質量。在CADCSC軟件開發過程中,經總體組研究決定,要進行如下幾類評審與檢查工作:a.階段評審:在軟件開發過程中,要定期地或階段性地對某一開發階段或某幾個開發階段的階段產品進行評審。根據總體組研究決定,在CADCSC軟件及其所屬各子系統的開發過程中,應該進行以下三次評審:第一次評審軟件需求、概要設計、驗證與確認方法;第二次評審詳細設計、功能測試與演示,并對第一次評審結果復核;第三次是功能檢查、物理檢查和綜合檢查。關于這些評審工作的詳細內容見第5章。
階段評審工作要組織專門的評審小組,原則上由項目總體小組成員或特邀專家擔任評審組長,評審小組成員應該包括項目委托單位或用戶的代表、質量保證人員、軟件開發單位和上級主管部門的代表,其他參加人員視評審內容而定。
每一次評審工作都應填寫評審總結報告(RSR)、評審問題記錄(RPL)、評審成員簽字表(RMT)與軟件問題報告單(SPR)等四張表格。這四張階段評審報表的具體格式應與附錄C中的規定相一致。
b.日常檢查:在CADCSC軟件的工程化生產過程中,各子系統應該填寫項目進展報表,即軟件進展報表表頭、軟件階段進度表、軟件階段產品完成情況表、軟件開發費用表等四張表格。項目總體組楊以通過項目進展季報表發現有關軟件質量的問題。項目進展季報表的具體格式應與附錄B中的規定相一致。
c.軟件驗收:必須組織專門的驗收小組對CADCSC軟件系統及其所屬各個子系統進行驗收。驗收工作應按照經項目委托單位“國家自然科學基金委員會信息科學部”與CADCSC總體組雙方都認可的驗收規程正式履行驗收手續。驗收內容應包括文檔驗收、程序驗收、演示、驗收測試與測試結果評審等幾項工作。具體的驗收規程另行制訂。
2.3職責在CADCSC項目的軟件質量保證小組中,其各方面人員的職責如下:a.組長全面負責有關軟件質量保證的各項工作;b.總體組代表負責有關階段評審、項目進展報表檢查以及軟件驗收準備等三方面工作中的質量保證工作;c.項目的專職配置管理人員負責有關軟件配置變動、軟件媒體控制以及對供貨單位的控制等三方面的質量保證活動;d.各子系統的軟件質量保證人員負責測試復查和文檔的規范化檢查工作;e.用戶代表負責反映用戶的質量要求,并協助檢查各類人員對軟件質量保證計劃的執行情況;f.項目的專職質量保證人員協助組長開展各項軟件質量保證活動,負責審查所采用的質量保證工具、技術和方法,并負責匯總、維護和保存有關軟件質量保證活動的各項記錄。
3文檔
本章給出了在CADCSC軟件開發過程各階段需要編制的文檔名稱及其要求,并且規定了評審文質量的通用的度量準則。
3.1.基本文檔為了確保軟件的實現滿足項目委托單位“國家自然科學基金委員會信息科學部”認可的需求規格說明書中規定的各項需求,CADCSC軟件各開發單位至少應該編寫以下八個方面內容的文檔:a.軟件需求規格說明書(SRS);b.軟件設計說明書(SDD),對一些規模較大或復雜性較高的項目,應該把本文檔分成概要設計說明書(PDD)與詳細設計說明書(DDD)兩個文檔;c.軟件測試計劃(STP);d.軟件測試報告(STR);e.用戶手冊(SUM);f.源程序清單(SCL);g.項目實施計劃(PIP);h.項目開發總結(PDS)。
3.2其他文檔除了基本文檔之外,對于尚在開發中的軟件,還應該包括以下四個方面的文檔:a.軟件質量保證計劃(SQAP);b.軟件配置管理計劃(SCMP);c.項目進展報表(PPR);d.階段評審報表(PRR)。
注:前面兩個文檔由項目軟件工程小組制訂,屬于管理文檔,各個子系統的項目承辦單位與軟件開發單位都應充分考慮執行計劃中規定的條款。后面兩類文檔屬于工作文檔,就是本計劃的2.2中提到的四張階段評審表與四張項目進展季報表,各個子系統的項目承辦單位或軟件開發單位應該按照規定要求認真填寫有關內容。
3.3文檔質量的度量準則文檔是軟件的重要組成部分,是軟件生存周期各個不同階段的產品描述。驗證和確認就是要檢查各階段文檔的合適性。評審文檔質量的度量準則有以下六條:a.完備性:所有承擔軟件開發任務的單位,都必須按照GB8567的規定編制相應的文檔,以保證在開發階段結束時其文檔是齊全的。
b.正確性:在軟件開發各個階段所編寫的文檔的內容,必須真實地反映該階段的工作且與該階段的需求相一致。
c.簡明性:在軟件開發各個階段所編寫的各種文檔的語言表達應該清晰、準確簡練,適合各種文檔的特定讀者。
d.可追蹤性:在軟件開發各個階段所編寫的各種文檔應該具有良好的可追蹤性。文檔的可追蹤性包括縱向可追蹤性與橫向可追蹤性兩個方面。前者是指在不同文檔的相關內容之間相互檢索的難易程度;后者是指確定同一文檔某一內容在本文檔中的涉及范圍的難易程度。
e.自說明性:在軟件開發各個階段所編寫的各種文檔應該具有較好的自說明性。文檔的自說明性是指在軟件開發各個階段中的不同文檔能獨立表達該軟件其相應階段的階段產品的能力。
f.規范性:在軟件開發各個階段所編寫的各種文檔應該具有良好的規范性。文檔的規范性是指文檔的封面、大綱、術語的含義以及圖示符號等符合有關規范的規定。
4標準、條例和約定在CADCSC工程化軟件系統的開發過程中,還必須遵守下列標準、條例和約定:a.《CADCSC軟件配置管理計劃》,CADCSC軟件工程小組編,1988年。
b.《C語言編程格式約定》,CADCSC軟件工程小組編,1988年。
5評審和檢查
本章具體規定了應該進行的階段評審、階段評審的內容和評審時間要求。對新開發的或正在開發的各個子系統,都要按照GB8566的規定認真進行定期的或階段性的各項評審工作。就整個軟件開發過程而言,至少要進行軟件需求評審、概要設計評審、詳細設計評審、軟件驗證和確認評審、功能檢查、物理檢查、綜合檢查以及管理評審等八個方面的評審和檢查工作。如本計劃第2.2條所述,經總體組研究決定,在CADCSC軟件及其所屬各個子系統的開發過程中,把前七種評審分成三次進行。在每次評審之后,要對評審結果作出明確的管理決策。下面給出每次評審應該進行的工作。
5.1第一次評審第一次評審會對軟件需求、概要設計以及驗證與確認方法進行評審。
a.軟件需求評審(SRR)應確保在軟件需求規格說明書中規定的各項需求的合理性。
b.概要設計評審(PDR)應評價軟件設計說明書中的軟件概要設計的技術合適性。
c.軟件驗證和確認評審(SV&VR)應評價軟件驗證和確認計劃中確定的驗證和確認方法的合適性與完整性。
5.2第二次評審第二次評審會要對詳細設計、功能測試與演示進行評審,并對第一次評審結果進行復核。如果在軟件開發過程中發現需要修改第一次評審結果,則應按照《CADCSC軟件配置管理計劃》的規定處理。
a.詳細設計評審(DDR)應確定軟件設計說明書中的詳細設計在滿足軟件需求規格說明書中的需求方面的可接受性。
b.編程格式評審應確保所有編碼采用規定的工作語言,能在規定的運行環境中運行,滿足《C語言編程格式約定》,并且符合GB8566中提倡的編程風格。在滿足這些要求之后,方可進行測試工作評審。
c.測試工作評審應對所有的程序單元進行靜態分析,檢查其程序結構(即模塊和函數的調用關系和調用序列)和變量使用是否正確。在通過靜態分析后,再進行結構測試和功能測試。在結構測試中,所有程序單元結構測試的語句覆蓋率Co必須等于100%,分支覆蓋率C1必須大于或等于85%.要給出每個單元的輸入和輸出變量的變化范圍。各個子系統只進行功能測試,不單獨進行結構測試,因而要登錄程序單元之間接口的變量值,力圖使滿足單元測試的C1和Co準則的那此測試用例在子系統功能測試時得到再現。測試工作評審要檢查所進行的測試工作是否滿足這些要求。特別在評審功能測試工作時,不僅要運行變量的等價值,而且要運行變量的(合法的和非法的)邊界值;不僅要運行開發單位給出的測試用例,而且要允許運行任務委托單位或用戶、評審人員選定的采樣用例。
5.3第三次評審第三次評審會要進行功能檢查、物理檢查和綜合檢查。這些評審會應在集成測試階段結束后進行。
a.功能檢查(FA)應驗證所開發的軟件已經滿足在軟件需求規格說明書中規定的所有需求。
b.物理檢查(PA)應對軟件進行物理檢查,以驗證程序和文檔已經一致、并已做好了交付的準備。
c.綜合檢查(CA)應驗證代碼和設計文檔的一致性、接口規格說明之間的一致性(硬件和軟件)、設計實現和功能需求的一致性、功能需求和測試描述的一致性。
6軟件配置管理
對CADCSC工程化軟件系統的各項配置進行及時、合理的管理,是確保軟件質量的重要手段,也是確保該軟件具有強大生命力的重要措施。有關CADCSC工程化軟件的配置管理工作,可按CADCSC軟件工程小組編寫的《CADCSC軟件配置管理計劃》。在軟件配置管理工作中,要特別注意規定對軟件問題報告、追蹤和解決的步驟,并指出實現報告、追蹤和解決軟件問題的機構及其職責。
7工具、技術和方法
在CADCSC項目所屬的各個子系統(其中包括有關的支持軟件)的研制與開發過程中,都應該在各自的軟件質量保證活動中合理地使用軟件質量活動的支持工具、技術和方法。這些工具主要有下列三種:a.C軟件測試工具。它支持用C語言編寫的模塊的靜態分析、結構測試與功能測試。主要功能為:協助測試人員判斷程序結構與變量使用情況是否有錯;給測試人員提供模塊語句覆蓋率Co和分支覆蓋率C1的值,并顯示未覆蓋語句和未覆蓋分支的號碼及其分支謂詞,給出不同測試用例有效性的表格;同時提出功能測試的有效情況,并協助組織最終交付給用戶的有效測試用例的集合。
b.軟件配置管理工具。它支持用戶對源代碼清單的更新管理以及對重新編譯與連接的代碼的自動組織;支持用戶在不同文檔相關內容之間進行相互檢索并確定同一文檔某一內容在本文檔中的涉及范圍;同時還應支持軟件配置管理小組對軟件配置更改進行科學的管理。
c.文檔輔助生成工具與圖形編輯工具。它主要協助用戶繪制描述程序流程與結構的DFD圖與SC圖、繪制描述軟件功能(輸入、輸出關系)的曲線以及繪制描述控制系統特性的一些其他圖形,同時還可生成若干與CADCSC軟件文檔編制大綱相適應的文檔模塊板。用戶利用這個工具的正文與圖形編輯功能以及上述輔助功能,可以比較方便地產生清晰悅目的文檔,也有利于對文檔進行更改,還有助于提高文檔的編制質量。
8媒體控制
為了保護計算機程序的物理媒體,以免非法存取、意外損壞或自然老化,CADCSC工程化軟件系統的各個子系統(包括支持軟件)都必須設立軟件配置管理人員,并按照CADCSC軟件工程小組制訂的、且經CADCSC總體組批準的《CADCSC軟件配置管理計劃》妥善管理和存放各個子系統及其專用支持軟件的媒體。
9對供貨單位的控制
CADCSC項目所屬的各個子系統開發組,如果需要從軟件銷售單位購買、委托其他開發單位開發、從開發單位現存軟件庫中選用或從項目委托單位或用戶的現有軟件庫中選用軟部件時,則在選用前應向CADCSC總體組報告,然后由CADCSC總體組組織“軟件選用評審小組”進行評審、測試與檢查,只有當演示成功、測試合格后才能批準選用。如果只選用其中部分內容,則按待開發軟件的處理過程辦理,此時CADCSC總體組不作干預。
10記錄收集、維護和保存
在CADCSC項目及其所屬的各個子系統的研制與開發期間,要進行各種軟件質量保證活動,準確記錄、及時分析并妥善保存有關這些活動的記錄,是確保軟件質量的重要條件。在軟件質量保證小組中,應有專人負責收集、匯總與保存有關軟件質量保證活動的記錄。要收集、匯總與保存的記錄名字及其保存期限見表1.表1記錄名稱及其保存的期限附錄B項目進展報表(參考件)
B1項目進展報表(月報表或季報表)由一個項目進展報表表頭(表B1)和另外三個表格(表B2、表B3、表B4)組成。在表B2“軟件階段進度表中”中,要填寫各個階段的開工日期與結束日期。其中計劃進度是指在項目實施計劃中確定的計劃進度,因此可以由管理人員事先填好,而不必由開發人員填寫。實際進度是指該項目實際的開工日期與結束日期,它將隨著該項目的不斷進展填寫。其中調整進度是指項目組長發現實際進度與計劃進度不符時提出的進度修改建議;但經項目管理人員研究后,可能對此修改建議作某些更改。此外,在相繼的若干次報表中,項目組長提出的建議修改日期也可能是不相同的。在此我們規定,最終的調整進度由項目經理來確定。在表B3“軟件階段產品完成情況表”中,要填寫各個文檔的開始編寫日期與完成日期。其中關于對計劃進度、調整進度與實際進度的含義的解釋與上相同。表B4是關于統計軟件開發費用的表格。
表B1項目進展報表表頭
注:SA&SD(systemanalysis&softwaredefinitionphase):系統分析與軟件定義階段。
——RA(requirementsanalysisphase):需求分析階段。
——PD(preliminarydesignphase):概要設計階段。
——DD(detaileddesignphase):詳細設計階段。
——CD&UT(coding&unittestingphase):編碼與單元測試階段。
——IT&ST(integrating&systemtestingphase):組裝與系統測試階段
——IS&AC(installation&acceptancephase):安裝與驗收階段。
——TSSD(totalsoftwaresystemdevelopmentphase):整個軟件系統的開發階段。
附錄C項目階段評審表(參考件)