軟件需求是
(1)用戶解決問題或達(dá)到目標(biāo)所需的條件或權(quán)能(CapaBIlity)。
(2)系統(tǒng)或系統(tǒng)部件要滿足合同、標(biāo)準(zhǔn)、規(guī)范或其它正式規(guī)定文檔所需具有的條件或權(quán)能。
(3)一種反映上面(1)或(2)所描述的條件或權(quán)能的文檔說明。
(IEEE軟件工程標(biāo)準(zhǔn)詞匯表(1997年)中定義)
一、軟件需求的發(fā)展
需求工程是隨著計(jì)算機(jī)的發(fā)展而發(fā)展的,在計(jì)算機(jī)發(fā)展的初期,軟件規(guī)模不大,軟件開發(fā)所關(guān)注的是代碼編寫,需求分析很少受到重視。后來(lái)軟件開發(fā)引入了生命周期的概念,需求分析成為其第一階段。隨著軟件系統(tǒng)規(guī)模的擴(kuò)大,需求分析與定義在整個(gè)軟件開發(fā)與維護(hù)過程中越來(lái)越重要,直接關(guān)系到軟件的成功與否。人們逐漸認(rèn)識(shí)到需求分析活動(dòng)不再僅限于軟件開發(fā)的最初階段,它貫穿于系統(tǒng)開發(fā)的整個(gè)生命周期。80年代中期,形成了軟件工程的子領(lǐng)域——需求工程(requirement engineering, RE)。進(jìn)入90年代以來(lái),需求工程成為研究的熱點(diǎn)之一。從1993年起每?jī)赡昱e辦一次需求工程國(guó)際研討會(huì)(ISRE),自1994年起每?jī)赡昱e辦一次需求工程國(guó)際會(huì)議(ICRE),在1996年Springer-Verlag發(fā)行了一新的刊物——《Requirements Engineering》。一些關(guān)于需求工程的工作小組也相繼成立,如歐洲的RENOIR(Requirements Engineering Network of International COOPerating RESearch Groups ),并開始開展工作。
二、軟件需求的層次
下面這些定義是需求工程領(lǐng)域中常見術(shù)語(yǔ)的定義說明。
軟件需求包括三個(gè)不同的層次—業(yè)務(wù)需求、用戶需求和功能需求—也包括非功能需求。業(yè)務(wù)需求( business requirement)反映了組織機(jī)構(gòu)或客戶對(duì)系統(tǒng)、產(chǎn)品高層次的目標(biāo)要求,它們?cè)陧?xiàng)目視圖與范圍文檔中予以說明。用戶需求(user requirement) 文檔描述了用戶使用產(chǎn)品必須要完成的任務(wù),這在使用實(shí)例(Use Case)文檔或方案腳本(scenario)說明中予以說明。功能需求(functional requirement)定義了開發(fā)人員必須實(shí)現(xiàn)的軟件功能,使得用戶能完成他們的任務(wù),從而滿足了業(yè)務(wù)需求。所謂特性(feature)是指邏輯上相關(guān)的功能需求的集合,給用戶提供處理能力并滿足業(yè)務(wù)需求。軟件需求各組成部分之間的關(guān)系如圖所示。
作為補(bǔ)充,軟件需求規(guī)格說明還應(yīng)包括非功能需求,它描述了系統(tǒng)展現(xiàn)給用戶的行為和執(zhí)行的操作等。它包括產(chǎn)品必須遵從的標(biāo)準(zhǔn)、規(guī)范和合約;外部界面的具體細(xì)節(jié);性能要求;設(shè)計(jì)或?qū)崿F(xiàn)的約束條件及質(zhì)量屬性。所謂約束是指對(duì)開發(fā)人員在軟件產(chǎn)品設(shè)計(jì)和構(gòu)造上的限制。質(zhì)量屬性是通過多種角度對(duì)產(chǎn)品的特點(diǎn)進(jìn)行描述,從而反映產(chǎn)品功能。多角度描述產(chǎn)品對(duì)用戶和開發(fā)人員都極為重要。 值得注意的一點(diǎn)是,需求并未包括設(shè)計(jì)細(xì)節(jié)、實(shí)現(xiàn)細(xì)節(jié)、項(xiàng)目計(jì)劃信息或測(cè)試信息。需求與這些沒有關(guān)系,它關(guān)注的是充分說明你究竟想開發(fā)什么。
Frederick BrOOks在他1987年的經(jīng)典的文章“No Silver Bullet:Essence and AccIDEnts ofSoftware Engineering ”中充分說明了需求過程在軟件項(xiàng)目中扮演的重要角色:
開發(fā)軟件系統(tǒng)最為困難的部分就是準(zhǔn)確說明開發(fā)什么。最為困難的概念性工作便是編寫出詳細(xì)技術(shù)需求,這包括所有面向用戶、面向機(jī)器和其它軟件系統(tǒng)的接口。同時(shí)這也是一旦做錯(cuò),將最終會(huì)給系統(tǒng)帶來(lái)極大損害的部分,并且以后再對(duì)它進(jìn)行修改也極為困難。
為什么這么說呢,因?yàn)樵诖蠖鄶?shù)的軟件系統(tǒng)中,最終用
項(xiàng)目經(jīng)理勝任力免費(fèi)測(cè)評(píng)PMQ上線啦!快來(lái)測(cè)測(cè)你排多少名吧~
http://m.opto-elec.com.cn/pmqhd/index.html