提起如今的IT項(xiàng)目,軟件工程倍受關(guān)注。而軟件的質(zhì)量更是眾人關(guān)注的焦點(diǎn),因?yàn)槟壳斑€沒有一套完善的評估標(biāo)準(zhǔn)。甚至有人提出,現(xiàn)在的軟件開發(fā)根本提不上是“工程”,因?yàn)樗赡哿耍€沒有一套成熟的標(biāo)準(zhǔn)來比照;因而軟件項(xiàng)目極易出現(xiàn)失敗或失誤。大量實(shí)踐證明,軟件工程項(xiàng)目的成敗,通常是因?yàn)楣芾韱栴}(協(xié)同工作的能力),而不是技術(shù)上的問題。要想做一盤“完美”的軟件大餐,質(zhì)量管理的作用是不言而喻的。
在實(shí)際的項(xiàng)目質(zhì)量管理中,質(zhì)量管理總是圍繞著質(zhì)量保證(QualityAssurance)過程和質(zhì)量控制(QualityControl)過程兩方面。這兩個(gè)過程相互作用,在實(shí)際應(yīng)用中還可能會發(fā)生交叉。正如引言所述,關(guān)于軟件的質(zhì)量,很難下一個(gè)非常明確的定義。本文主要針對軟件工程中的質(zhì)量管理來進(jìn)行討論。
做軟件“大餐”的工序
軟件質(zhì)量保證(SoftwareQualityAssurance,以下簡稱SQA)的目的是驗(yàn)證在軟件開發(fā)過程中是否遵循了合適的過程和標(biāo)準(zhǔn)。軟件質(zhì)量保證過程一般包含以下幾項(xiàng)活動:
首先是建立SQA組;其次是選擇和確定SQA活動,即選擇SQA組所要進(jìn)行的質(zhì)量保證活動,這些SQA活動將作為SQA計(jì)劃的輸入;然后是制定和維護(hù)SQA計(jì)劃,這個(gè)計(jì)劃明確了SQA活動與整個(gè)軟件開發(fā)生命周期中各個(gè)階段的關(guān)系;還有執(zhí)行SQA計(jì)劃、對相關(guān)人員進(jìn)行培訓(xùn)、選擇與整個(gè)軟件工程環(huán)境相適應(yīng)的質(zhì)量保證工具;最后是不斷完善質(zhì)量保證過程活動中存在的不足,改進(jìn)項(xiàng)目的質(zhì)量保證過程。
獨(dú)立的SQA組是衡量軟件開發(fā)活動優(yōu)劣與否的尺度之一。SQA組的這一獨(dú)立性,使其享有一項(xiàng)關(guān)鍵權(quán)利——“越級上報(bào)”。當(dāng)SQA組發(fā)現(xiàn)產(chǎn)品質(zhì)量出現(xiàn)危機(jī)時(shí),它有權(quán)向項(xiàng)目組的上級機(jī)構(gòu)直接報(bào)告這一危機(jī)。這無疑對項(xiàng)目組起到相當(dāng)?shù)摹巴亍弊饔?,也可以看成是促使?xiàng)目組重視軟件開發(fā)質(zhì)量的一種激勵(lì)。這一形式使許多問題在組內(nèi)得以解決,提高了軟件開發(fā)的質(zhì)量和效率。
選擇和確定SQA活動這一過程的目的是策劃在整個(gè)項(xiàng)目開發(fā)過程中所需要進(jìn)行的質(zhì)量保證活動。質(zhì)量保證活動應(yīng)與整個(gè)項(xiàng)目的開發(fā)計(jì)劃和配置管理計(jì)劃相一致。一般把該活動分為以下五類:
1)評審軟件產(chǎn)品、工具與設(shè)施
軟件產(chǎn)品常被稱為“無形”的產(chǎn)品。評審時(shí)難度更大。在此要注意的一點(diǎn)是:在評審時(shí)不能只對最終的軟件代碼進(jìn)行評審,還要對軟件開發(fā)計(jì)劃、標(biāo)準(zhǔn)、過程、軟件需求、軟件設(shè)計(jì)、數(shù)據(jù)庫、手冊以及測試信息等進(jìn)行評審。評估軟件工具主要是為了保證項(xiàng)目組采用合適的技術(shù)和工具。評估項(xiàng)目設(shè)施的目的是保證項(xiàng)目組有充足設(shè)備和資源進(jìn)行軟件開發(fā)工作。這也為規(guī)劃今后軟件項(xiàng)目的設(shè)備購置、資源擴(kuò)充、資源共享等提供依據(jù)。
2)SQA活動審查的軟件開發(fā)過程
SQA活動審查的軟件開發(fā)過程主要有:軟件產(chǎn)品的評審過程、項(xiàng)目的計(jì)劃和跟蹤過程、軟件需求分析過程、軟件設(shè)計(jì)過程、軟件實(shí)現(xiàn)和單元測試過程、集成和系統(tǒng)測試過程、項(xiàng)目交付過程、子承包商控制過程、配置管理過程。特別要強(qiáng)調(diào)的是,為保證軟件質(zhì)量,應(yīng)賦予SQA阻止交付某些不符合項(xiàng)目需求和標(biāo)準(zhǔn)產(chǎn)品的權(quán)利。
3)參與技術(shù)和管理評審
參與技術(shù)和管理評審的目的是為了保證此類評審滿足項(xiàng)目要求,便于監(jiān)督問題的解決。
4)做SQA報(bào)告
SQA活動的一個(gè)重要內(nèi)容就是報(bào)告對軟件產(chǎn)品或軟件過程評估的結(jié)果,并提出改進(jìn)建議。SQA應(yīng)將其評估的結(jié)果文檔化