你的工程應(yīng)該有個(gè)好的起點(diǎn)。一個(gè)小組要帶領(lǐng)客戶進(jìn)入需求啟發(fā)階段而且你要寫軟件需求說明書。這份說明有些大,但客戶會(huì)很重視,所以說明必須得到贊同。
現(xiàn)在你正在設(shè)計(jì)其中的一個(gè)特性,已經(jīng)發(fā)現(xiàn)了需求的一些問題。你可以用多種不同的方式解釋需求15;需求9 的說明正好與需求21相反,你因該相信哪一個(gè)?需求24非常含糊,你根本不明白它的意思;你不得不花上一個(gè)小時(shí)與2位開發(fā)人員討論需求30,只因?yàn)槟銈儗?duì)其各有各的理解;并且,唯一能夠澄清這些問題的客戶沒有給你們答復(fù)。你被迫破解眾多需求的含義,并且你能預(yù)料到,如果你錯(cuò)了,你要做大量的重復(fù)工作。
許多軟件需求說明書(SRS)寫得非常糟糕。任何產(chǎn)品的質(zhì)量需要其原始材料的質(zhì)量保證,糟糕的軟件需求說明書不可能產(chǎn)出優(yōu)秀的軟件。不幸的是,幾乎沒有開發(fā)人員受過與需求的抽象、分析、文檔、質(zhì)檢有關(guān)的教育。而且,沒有非常多的好需求可以借鑒學(xué)習(xí),部分原因是很少有工程可以找到一個(gè)好的借鑒,其他原因是公司不愿意將其產(chǎn)品說明書放在公共區(qū)域。
這篇文章描述了高質(zhì)量需求敘述和說明的幾個(gè)特性(特點(diǎn))。我們將用這些觀點(diǎn)檢查一些有缺陷的需求,帶著痛楚重新編寫。而且我會(huì)談一些如何編寫好的需求的提示。你也許想通過這些質(zhì)量標(biāo)準(zhǔn)評(píng)估你的工程需求。對(duì)于修訂,也許遲了,但你會(huì)學(xué)到一些有用的東西,并幫助你的小組在下次編寫出更好的需求。
不要期望能夠編寫出一份能體現(xiàn)需求應(yīng)具備的所有特性的SRS。無(wú)論你怎么細(xì)化、分析、評(píng)論和優(yōu)化需求,都不可能達(dá)到完美。但是,如果你牢記這些特性,你就會(huì)編寫出更好的需求,生產(chǎn)出更好的產(chǎn)品。
高質(zhì)量需求敘述的特性
我們?nèi)绾螐囊恍┯袉栴}的需求中分辨出好的軟件需求?這一節(jié)將分別介紹需求敘述應(yīng)體現(xiàn)的6個(gè)特性,下一節(jié)將從整體上介紹SRS文檔應(yīng)具備的特性。判斷每個(gè)需求是否具備應(yīng)有的特性的一種方式是由持有不同觀點(diǎn)的工程資金管理人所作的正規(guī)檢查。另一種有力的方法是在編寫代碼前依據(jù)需求編寫測(cè)試?yán)?。測(cè)試?yán)幽軌蛎鞔_顯現(xiàn)在需求中描述的產(chǎn)品行為(特性),能夠顯現(xiàn)缺陷、冗余和含糊之處。
正確:每個(gè)需求必須精確描述要交付的功能。正確性依據(jù)于需求的來源,如真實(shí)的客戶或高級(jí)別的系統(tǒng)需求說明書。一個(gè)軟件需求與其對(duì)應(yīng)的系統(tǒng)需求說明書相抵觸是不正確的(當(dāng)然,系統(tǒng)需求說明書本身可能不正確)。
只有用戶的代表能夠決定用戶需求的正確性,這就是為什么在檢查需求時(shí),要包括他們或他們的代理的關(guān)鍵所在。不包括用戶的需求檢查就會(huì)導(dǎo)致開發(fā)人員的:“這是沒意義的”,“這可能是他們的意思”等眾所周知的猜測(cè)。
可行性:在已知的能力、有限的系統(tǒng)及其環(huán)境中每個(gè)需求必須是可實(shí)現(xiàn)的。為了避免需求的不可行性,在需求分析階段應(yīng)該有一個(gè)開發(fā)人員參與,在抽象階段應(yīng)該有市場(chǎng)人員參與。這個(gè)開發(fā)人員應(yīng)能檢查在技術(shù)上什么能做什么不能做,哪些需要需要額外的付出或者和其他的權(quán)衡。
必要性:每個(gè)需求應(yīng)載明什么是客戶確實(shí)需要的,什么要順應(yīng)于外部的需求,接口或標(biāo)準(zhǔn)。每個(gè)需求源于你認(rèn)可、具有權(quán)說明需求的原始資料,這是考慮必需的另外情形(譯注,此句翻譯不順,請(qǐng)參照原文:Another way to think of “necessary” is that each requirement originated from a source you recognize as having the authority to specify requirements)。跟蹤每個(gè)需求回溯到出處,如用例,系統(tǒng)需求,規(guī)章,或來自其他用戶的意見。如果你不能標(biāo)識(shí)出處,可能需求只是個(gè)鍍金的例子,沒有真正的必須。
優(yōu)先權(quán):為了表明在一個(gè)詳細(xì)
項(xiàng)目經(jīng)理勝任力免費(fèi)測(cè)評(píng)PMQ上線啦!快來測(cè)測(cè)你排多少名吧~
http://opto-elec.com.cn/pmqhd/index.html