隨著信息技術(shù)的廣泛應(yīng)用,軟件已成為大多數(shù)產(chǎn)品的重要組成部分,如何提高軟件質(zhì)量,使軟件更好地服務(wù)于各種應(yīng)用需要,已成為各行各業(yè)廣泛關(guān)注的課題。本文介紹了軟件質(zhì)量概念和軟件質(zhì)量管理的內(nèi)容。針對(duì)軟件的特點(diǎn),并提出了加強(qiáng)軟件質(zhì)量管理的必要性。
一 軟件質(zhì)量的定義
軟件質(zhì)量:即國際化標(biāo)準(zhǔn)組織ISO ISOIEO9126中將軟件質(zhì)量定義為反映軟件產(chǎn)品滿足規(guī)定需求和潛在需求能力的特征和特征的總和。Fisller將軟件質(zhì)量定義所有描述計(jì)算機(jī)軟件優(yōu)秀程度的特性的組合也就是為了滿足軟件的各項(xiàng)精確定義的功能、性能要求合文檔化的開發(fā)標(biāo)準(zhǔn)需要相應(yīng)的給出或設(shè)計(jì)一些質(zhì)量特性及其組合。要得到高質(zhì)量的軟件產(chǎn)品就必須使這些質(zhì)量特性得到滿足。目前對(duì)軟件質(zhì)量特性有多種提法但實(shí)際上是大同小異。ISOIEC 9126國際標(biāo)準(zhǔn)中定義的軟件質(zhì)量特性為以下六項(xiàng):功能性functionality可靠性reiiabilty易使用性u(píng)sability效率efficiency可維護(hù)性maintainability可移植性portability。
二 影響軟件質(zhì)量的因素
軟件本身的特點(diǎn)和目前軟件的開發(fā)模式的一些缺陷,使軟件內(nèi)部的質(zhì)量問題有時(shí)不可能完全避免。
1、軟件本身的特點(diǎn)軟件具有復(fù)雜性、一致性、可變性和不可見性。軟件規(guī)模的增大,導(dǎo)致它的復(fù)雜程度大大增加,并且讓整個(gè)開發(fā)工作變得難以控制和管理。如果說編寫一個(gè)數(shù)十行到數(shù)百行的程序連初學(xué)者也不難完成,那么開發(fā)一個(gè)數(shù)萬以至數(shù)百萬行的軟件,其復(fù)雜度將大大上升,即使是富有經(jīng)驗(yàn)的程序員,也難免顧此失彼。例如,開發(fā)一個(gè)學(xué)生上機(jī)考試系統(tǒng),需要根據(jù)實(shí)際情況考慮到不同專業(yè)、不同考試科目、不同層次的用戶的使用,其復(fù)雜性是顯而易見的。尤其糟糕的是,軟件的可靠性往往隨規(guī)模的增長而下降,質(zhì)量保證也越來越困難。
2,開發(fā)環(huán)節(jié)多根據(jù)傳統(tǒng)的瀑布模型將軟件的生存周期劃分為:計(jì)劃時(shí)期的問題定義和可行性研究;開發(fā)時(shí)期的需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼和測試;運(yùn)行時(shí)期的維護(hù)。各個(gè)階段之間具有順序性和依賴性。在這里,順序性有兩重含義:第一,只有等前一階段的工作完成以后,后一階段的工作才能開始。第二,前一階段的輸出文檔,就是后一階段的輸入文檔。想在后階段獲得正確的結(jié)果,必須在前階段有正確的輸出。因此,如果在生存周期的某一階段出現(xiàn)了問題,往往要追溯到在它之前的一些階段,必要時(shí)還要修改前面已經(jīng)完成的文檔。
3、選擇支持工具目前軟件開發(fā)工作大多是手工操作,借助工具自然可以提高效率,減少出錯(cuò)機(jī)會(huì)。但是,在軟件的整個(gè)開發(fā)過程中,能夠得到的開發(fā)工具或管理工具十分有限。Pasca、G語言、G++、Visual C++、Delphi、Java等都可以作為開發(fā)工具使用,在面臨具體問題時(shí),要根據(jù)各種語言自身的特點(diǎn)和開發(fā)人員的熟練程度,靈活機(jī)動(dòng)地選擇。
4,測試的局限性目前在軟件開發(fā)過程中質(zhì)量保證的主要手段是測試。廣泛采用的仍然是白盒測試和黑盒測試。而軟件測試的局限性在于,雖然它能夠幫助我們盡可能多地發(fā)現(xiàn)軟件中隱藏的問題,但是,有一些錯(cuò)誤仍然存在,因?yàn)闇y試本身也是有缺陷的,不是盡善盡美的。也就是說,我們通過測試,可以在一定程度上把錯(cuò)誤減少到最低限度。
三、軟件質(zhì)量管理方法
由于軟件是一種技術(shù)密集的、智力勞動(dòng)的產(chǎn)品,一般軟件具有實(shí)用性、抽象性、靈活性、復(fù)雜性、無磨損、不老化等特點(diǎn),特定軟件還具有高安全性、高可靠性、適應(yīng)性強(qiáng)、實(shí)時(shí)性要求高等特點(diǎn)。軟件的生產(chǎn)與硬件也不同,軟件沒有明顯的制造過程,軟件的開發(fā)至今仍不能自動(dòng)化地進(jìn)行而以人工開發(fā)方式為主。針對(duì)軟件的特點(diǎn),對(duì)軟件的質(zhì)量控制,更應(yīng)該注重軟件過程的控制,通過完善質(zhì)量管理體系以適應(yīng)軟件質(zhì)量管理要求和加強(qiáng)軟件過程管理來實(shí)現(xiàn)。
1、軟件質(zhì)量管理體系軟件及軟件質(zhì)量形成與硬件有明顯的差別,因此軟件質(zhì)量管理要求與硬件質(zhì)量管理要求也有所不同?;谀壳爱a(chǎn)品主要承制單位按照9000標(biāo)準(zhǔn)要求建立質(zhì)量管理體系的實(shí)際,為了提高質(zhì)量管理體系對(duì)軟件質(zhì)量管理的適應(yīng)性,確保軟件開發(fā)質(zhì)量,根據(jù)軟件的特點(diǎn),對(duì)于承擔(dān)軟件研制的承制單位,應(yīng)在現(xiàn)有質(zhì)量管理體系的基礎(chǔ)上,補(bǔ)充完善軟件質(zhì)量管理要求,以確保軟件質(zhì)量滿足要求。與此同時(shí),根據(jù)軟件質(zhì)量形成的特點(diǎn)和軟件作為產(chǎn)品管理的理念還沒有得到普遍接受的實(shí)際,在質(zhì)量管理體系建設(shè)中還要采取以下方法以強(qiáng)化軟件的質(zhì)量管理:
(1)建立標(biāo)準(zhǔn)軟件過程。標(biāo)準(zhǔn)軟件過程是指承制方定義的基本軟件過程,它描述基本的軟件過程單元以及這些軟件過程單元之間的關(guān)系,用它來引導(dǎo)建立項(xiàng)目軟件過程。
(2)納入項(xiàng)目計(jì)劃。軟件應(yīng)作為相應(yīng)項(xiàng)目的配套產(chǎn)品納入項(xiàng)目研制計(jì)劃和產(chǎn)品配套表。
(3)管理開發(fā)和驗(yàn)證環(huán)境。應(yīng)確定、提供并維護(hù)軟件開發(fā)和驗(yàn)證環(huán)境(工具、技術(shù)和方法),驗(yàn)證環(huán)境也應(yīng)按質(zhì)量管理標(biāo)準(zhǔn)有關(guān)監(jiān)視和測量裝置的控制要求進(jìn)行控制。
(4)控制采購軟件。對(duì)采購的軟件產(chǎn)品也應(yīng)按照質(zhì)量管理標(biāo)準(zhǔn)有關(guān)采購的要求進(jìn)行控制。
2、軟件過程管理方法
(1)軟件給定需求控制給定需求,即“指定給軟件的系統(tǒng)需求”,是系統(tǒng)需求的一部分,以文檔形式給出。
(2)軟件質(zhì)量策劃對(duì)具體的軟件項(xiàng)目,承制方應(yīng)根據(jù)軟件項(xiàng)目的特點(diǎn),策劃和實(shí)施與質(zhì)量有關(guān)的活動(dòng),軟件質(zhì)量策劃應(yīng)與質(zhì)量管理體系其他過程的要求相一致。
(3)軟件維護(hù) 根據(jù)合同的要求和策劃的安排,對(duì)交付和安裝后以及運(yùn)行過程中的軟件進(jìn)行維護(hù),維護(hù)活動(dòng)結(jié)束應(yīng)保持軟件的一致性。
(4)軟件開發(fā)策劃對(duì)軟件的開發(fā)進(jìn)行策劃和控制,應(yīng)根據(jù)承制方的標(biāo)準(zhǔn)軟件過程,通過策劃確定項(xiàng)目軟件過程編制項(xiàng)目開發(fā)計(jì)劃。
(5)軟件配置管理配置管理提供一個(gè)標(biāo)識(shí)、控制和追蹤每個(gè)軟件項(xiàng)的正式版本的機(jī)制,以保證軟件項(xiàng)目生成的產(chǎn)品在軟件生命周期中的完整性。
(6)軟件開發(fā)控制 軟件開發(fā)應(yīng)在受控條伴下進(jìn)行,按選定的開發(fā)文檔標(biāo)準(zhǔn)編制文檔。
四 加強(qiáng)軟件質(zhì)量管理的途徑
軟件企業(yè)可以通過多種途徑加強(qiáng)質(zhì)量管理,提高軟件產(chǎn)品的質(zhì)量。
1、重視質(zhì)量管理 我們都知道,在工業(yè)生產(chǎn)中,即使有先進(jìn)的設(shè)備與技術(shù),管理不善的企業(yè)也不能獲得良好的經(jīng)濟(jì)效益。對(duì)于軟件生產(chǎn),不能按時(shí)按質(zhì)完成計(jì)劃,其中管理混亂往往是一條重要原因。我國軟件開發(fā)機(jī)構(gòu)的管理相對(duì)比較薄弱,其中質(zhì)量管理尤其顯著,這與我們重技術(shù)、輕管理有關(guān)。為了做好軟件質(zhì)量管理工作,首先要從認(rèn)識(shí)上轉(zhuǎn)變過來,因?yàn)樗枷胪切袆?dòng)的先導(dǎo)。
2、開發(fā)小組的人員應(yīng)該少而精 軟件的質(zhì)量依賴于參與開發(fā)工作人員的質(zhì)量和數(shù)量。開發(fā)過程,提高軟件產(chǎn)品質(zhì)量。近年來,采用面向?qū)ο蟮拈_發(fā)技術(shù)、原型開發(fā)方法、三層結(jié)構(gòu)、軟件構(gòu)件、軟件復(fù)用、分布計(jì)算、Agent等方法,取得了一定的效果。除此之外,還有一種凈室開發(fā)技術(shù),其基本思想在于“凈化”軟件開發(fā)過程,使得差錯(cuò)或缺陷不可能有機(jī)會(huì)混入開發(fā)過程。如果軟件的需求可以用形式描述方法方便地表達(dá)出來,那么整個(gè)開發(fā)過程就會(huì)像公式推導(dǎo)那樣嚴(yán)謹(jǐn)、無懈可擊。
總之提高軟件質(zhì)量勢在必行,只有認(rèn)識(shí)到軟件質(zhì)量的重要性,了解影響軟件質(zhì)量的因素,才能有的放矢,采用科學(xué)的管理技術(shù)和先進(jìn)的技術(shù)方法,才可以確保軟件的質(zhì)量。