從整個(gè)軟件項(xiàng)目開發(fā)階段來(lái)看,軟件項(xiàng)目可以分為需求、設(shè)計(jì)、編碼、驗(yàn)證四個(gè)階段。設(shè)計(jì)承接需求分析,基于準(zhǔn)確的需求分析,對(duì)項(xiàng)目目標(biāo)進(jìn)行結(jié)構(gòu)化搭建。設(shè)計(jì)階段產(chǎn)生的設(shè)計(jì)說(shuō)明書以及設(shè)計(jì)規(guī)范是編碼階段的作業(yè)指導(dǎo),也是測(cè)試人員開發(fā)測(cè)試用例的指導(dǎo)書。
設(shè)計(jì)是用戶需求到編碼實(shí)現(xiàn)的必經(jīng)階段,軟件項(xiàng)目在設(shè)計(jì)階段的稟賦決定了軟件項(xiàng)目的資質(zhì)。好的軟件設(shè)計(jì)不是軟件項(xiàng)目成功的唯一條件,但是沒(méi)有好的設(shè)計(jì)軟件項(xiàng)目肯定無(wú)法做好。
一、軟件設(shè)計(jì)的重要性體現(xiàn)在以下幾個(gè)方面:
1、軟件設(shè)計(jì)是對(duì)軟件項(xiàng)目質(zhì)量進(jìn)行保障的關(guān)鍵步驟。
軟件項(xiàng)目的質(zhì)量與需求分析、設(shè)計(jì)、編碼、驗(yàn)證段這四個(gè)階段的質(zhì)量之間的關(guān)系,可以用C語(yǔ)言表達(dá)為:最終的軟件質(zhì)量 = 需求分析質(zhì)量 && 設(shè)計(jì)質(zhì)量 && 編碼質(zhì)量 && 驗(yàn)證質(zhì)量,這種“與”的關(guān)系表明任何一個(gè)階段出現(xiàn)質(zhì)量紕漏,軟件項(xiàng)目的最終質(zhì)量都無(wú)法保障。
2、設(shè)計(jì)階段提供的軟件表示,使軟件項(xiàng)目質(zhì)量的評(píng)價(jià)成為可能。
反映軟件設(shè)計(jì)質(zhì)量的要素有:準(zhǔn)確性、穩(wěn)健性、安全性、通信有效性、處理有效性、可操作性、完備性、一致性、可追蹤性、可見(jiàn)性、可擴(kuò)充性、復(fù)用性、模塊性、清晰性、自描述性、簡(jiǎn)單性、結(jié)構(gòu)性、硬件系統(tǒng)無(wú)關(guān)性、軟件系統(tǒng)無(wú)關(guān)性、文檔完備性等。通過(guò)這些考核要素對(duì)設(shè)計(jì)階段質(zhì)量進(jìn)行控制,從而達(dá)到從項(xiàng)目前端控制軟件質(zhì)量的效果。同時(shí)該階段的設(shè)計(jì)規(guī)范也是進(jìn)行軟件質(zhì)量評(píng)價(jià)的參照標(biāo)準(zhǔn)與基本要求。
因此,想做好整個(gè)軟件項(xiàng)目的質(zhì)量保障,必須充分重視設(shè)計(jì)階段的質(zhì)量保障工作。山東省軟件評(píng)測(cè)中心作為國(guó)內(nèi)最早一批獲得國(guó)家實(shí)驗(yàn)室認(rèn)可并取得政府授權(quán)的中立的第三方機(jī)構(gòu),在十余年的軟件項(xiàng)目質(zhì)量服務(wù)過(guò)程中發(fā)現(xiàn):
二、設(shè)計(jì)階段經(jīng)常出現(xiàn)的質(zhì)量問(wèn)題從大的方面看有以下幾種原因:
1、需求分析階段工作不充分
好的軟件設(shè)計(jì)必然基于準(zhǔn)確的需求分析,離開正確的需求分析,軟件設(shè)計(jì)就是做得再好,在源頭上也是錯(cuò)誤的,更無(wú)任何意義,有時(shí)甚至是南轅北轍。有些軟件項(xiàng)目因?yàn)楣て诰o張或乙方軟件企業(yè)管理不規(guī)范,甲方用戶人員技術(shù)受限或配合不到位或承建方需求分析人員業(yè)務(wù)、技術(shù)經(jīng)驗(yàn)不足等這樣那樣的原因,需求調(diào)研沒(méi)有做透,更有甚者基本的業(yè)務(wù)邏輯還沒(méi)有完全理清,就匆匆開始需求分析然后又囫圇吞棗的進(jìn)行自我想象中的架構(gòu)設(shè)計(jì),結(jié)果可想而知。
2、設(shè)計(jì)不充分
有許多軟件企業(yè)不重視設(shè)計(jì)階段的工作,或者略掉設(shè)計(jì)直接進(jìn)行編碼。這樣必然把許多的問(wèn)題遺留給編碼階段,等寫了一部分代碼后再后頭看,錯(cuò)了,返工……另外,設(shè)計(jì)人員由于技術(shù)欠缺或經(jīng)驗(yàn)不足,或者對(duì)業(yè)務(wù)理解不夠深入,未能充分考慮后期需求變動(dòng)對(duì)設(shè)計(jì)的影響也是造成設(shè)計(jì)不充分的一類重要原因。
設(shè)計(jì)不充分往往導(dǎo)致頻繁變更與諸多性能、安全方面的漏洞。在軟件項(xiàng)目里,越是在項(xiàng)目前期發(fā)現(xiàn)問(wèn)題,解決成本越低。據(jù)相關(guān)機(jī)構(gòu)統(tǒng)計(jì),在設(shè)計(jì)階段發(fā)現(xiàn)偏差比在需求分析階段發(fā)現(xiàn)并修正要高出5 倍,在編碼階段覺(jué)察偏差則會(huì)提高到10倍,而如果延續(xù)到單元測(cè)試或系統(tǒng)測(cè)試階段發(fā)現(xiàn)設(shè)計(jì)缺陷修正成本則會(huì)提高到20倍。另外,設(shè)計(jì)人員由于技術(shù)欠缺或經(jīng)驗(yàn)不足,或者對(duì)業(yè)務(wù)理解不夠深入,未能充分考慮后期需求變動(dòng)對(duì)設(shè)計(jì)的影響也是造成設(shè)計(jì)不充分的一類重要原因。
3、過(guò)度設(shè)計(jì)
與設(shè)計(jì)不充分相對(duì)應(yīng)的一種情況是設(shè)計(jì)過(guò)度,過(guò)度設(shè)計(jì)一般是由于設(shè)計(jì)人員在做項(xiàng)目分析設(shè)計(jì)時(shí),過(guò)分的考慮潛在的、未來(lái)的以及準(zhǔn)備擴(kuò)展等因素,過(guò)度的抽象,過(guò)多思考封裝、分離解耦,導(dǎo)