- 需求是軟件工程中重要的部分,沒有之一。企業(yè)在選擇一家軟件開發(fā)公司時(shí),總是會(huì)問什么樣的軟件開公司是好的?或者會(huì)問軟件開發(fā)公司,如果需求變更了,軟件開發(fā)公司會(huì)給企業(yè)提高費(fèi)用嗎?其實(shí),這些問聚焦的都是軟件工程中的需求問題,可見,需求在整個(gè)軟件工程中的重要性。一 個(gè)IT軟件開發(fā)公司,對(duì)需求的認(rèn)知水平和理解水平直接關(guān)系到軟件開發(fā)公司的軟件開發(fā)水平,作為一家專業(yè)的軟件開發(fā)公司,尤其是一家北京軟件開發(fā)公司,對(duì)需求我們也有自 己的認(rèn)知和理解。IT軟件開發(fā)公司或北京軟件開發(fā)公司,對(duì)軟件開發(fā)中需求的認(rèn)知是多種多樣的,都有自己的規(guī)范和管理方法,華盛恒輝也不例外。
需求工程的定義:
需求分析的過程,也叫做需求工程和需求階段,它包括了需求開發(fā)和需求管理兩個(gè)部分。需求開發(fā)是指從情況收集、分析和評(píng)價(jià)到編寫文檔、評(píng)審等一系列產(chǎn)生需求的活動(dòng),分為四個(gè)階段:情況獲取、分析、制訂規(guī)格說明和評(píng)審。這四個(gè)階段不一定是遵循線性順序的,他們的活動(dòng)是相互獨(dú)立和反復(fù)的。需求管理是軟件項(xiàng)目開發(fā)過程中控制和維持需求約定的活動(dòng),它包括:變更控制、版本控制、需求跟蹤、需求狀態(tài)跟蹤等工作。
軟件需求的定義:
(1)用戶解決問題或達(dá)到目標(biāo)所需的條件或能力。
(2)系統(tǒng)或系統(tǒng)部件要滿足合同、標(biāo)準(zhǔn)、規(guī)范或其它正式規(guī)定文檔所需具有的條件或能力。
(3)一種反映上面(1)或(2)所描述的條件或權(quán)能的文檔說明。 實(shí)通俗的講,“需求”就是用戶的需要,它包括用戶要解決的問題、達(dá)到的目標(biāo)、以及實(shí)現(xiàn)這些目標(biāo)所需要的條件,它是一個(gè)程序或系統(tǒng)開發(fā)工作的說明,表現(xiàn)形式一般為文檔形式。
需求開發(fā)與管理:
(1)繪制關(guān)聯(lián)圖:繪制系統(tǒng)關(guān)聯(lián)圖是用于定義系統(tǒng)與系統(tǒng)外部實(shí)體間的界限和接口的簡(jiǎn)單模型。
(2)可行性分析:在允許的成本、性能要求下,分析每項(xiàng)需求實(shí)施的可行性,提出需求實(shí)現(xiàn)相關(guān)風(fēng)險(xiǎn),包括與其它需求的沖突,對(duì)外界因素的依賴和技術(shù)障礙。
(4)系統(tǒng)原型:當(dāng)用戶自身對(duì)有的需求不十分清楚時(shí),我們可以建立一個(gè)系統(tǒng)原型,用戶通過評(píng)價(jià)原型更好地理解所要解決的問題。。
(5)圖形分析模型:繪制圖形分析模型是編制軟件需求規(guī)格說明重要手段。它們能幫助分析人員理清數(shù)據(jù)、業(yè)務(wù)模式、工作流程以及他們之間的關(guān)系,找出遺漏、冗余和不一致的需求。這樣的模型包括數(shù)據(jù)流圖、實(shí)體關(guān)系圖、狀態(tài)變換圖、對(duì)話框圖、對(duì)象類及交互作用圖。
(6)數(shù)據(jù)字典:數(shù)據(jù)字典是對(duì)系統(tǒng)用到的所有數(shù)據(jù)項(xiàng)和結(jié)構(gòu)的定義,以確保開發(fā)人員使用統(tǒng)一的數(shù)據(jù)定義。在需求階段,數(shù)據(jù)字典至少應(yīng)定義客戶數(shù)據(jù)項(xiàng),確??蛻襞c開發(fā)小組是使用一致的定義和術(shù)語。
需求管理的方法:
(1)確定需求變更控制過程。制定一個(gè)選擇、分析和決策需求變更的過程,所有的需求變更都需遵循此過程。
(2)進(jìn)行需求變更影響分析。評(píng)估每項(xiàng)需求變更,以確定它對(duì)項(xiàng)目計(jì)劃安排和其它需求的影響,明確與變更相關(guān)的任務(wù)并評(píng)估完成這些任務(wù)需要的工作量。通過這些分析將有助于需求變更控制部門做出更好的決策。
(3)建立需求基準(zhǔn)版本和需求控制版本文檔。確定需求基準(zhǔn),這是項(xiàng)目各方對(duì)需求達(dá)成一致認(rèn)識(shí)時(shí)刻的一個(gè)快照,之后的需求變更遵循變更控制過程即可。每個(gè)版本的需求規(guī)格說明都必須是獨(dú)立說明,以避免將底稿和基準(zhǔn)或新舊版本相混淆。
(4)維護(hù)需求變更的歷史記錄。將需求變更情況寫成文檔,記錄變更日期、原因、負(fù)責(zé)人、版本號(hào)等內(nèi)容,及時(shí)通知到項(xiàng)目開發(fā)所涉及的人員。為了盡量減少困惑、沖突、誤傳,應(yīng)指定專人來負(fù)責(zé)更新需求。
(5)跟蹤每項(xiàng)需求的狀態(tài)??梢园衙恳豁?xiàng)需求的狀態(tài)屬性(如已推薦的,已通過的,已實(shí)施的,或已驗(yàn)證的)保存在數(shù)據(jù)庫(kù)中,這樣可以在任何時(shí)候得到每個(gè)狀態(tài)類的需求數(shù)量。
(6)衡量需求穩(wěn)定性。可以定期把需求數(shù)量和需求變更(添加、修改、刪除)數(shù)量進(jìn)行比較。過多的需求變更"是一個(gè)報(bào)警信號(hào)",意味著問題并未真正弄清楚。
需求分析評(píng)價(jià)標(biāo)準(zhǔn)
(1)清晰:目前大多數(shù)的需求分析采用的仍然是自然語言,自然語言對(duì)需求分析大的弊病就是它的二義性,所以開發(fā)人員需要對(duì)需求分析中采用的語言做某些限制。例如盡量采用主語+動(dòng)作的簡(jiǎn)單表達(dá)方式。需求分析中的描述一定要簡(jiǎn)單,千萬不要采用疑問句、修飾這些復(fù)雜的表達(dá)方式。 除了語言的二義性之外,注意不要使用行話,就是計(jì)算機(jī)術(shù)語。需求分析重要的是和用戶溝通,可是用戶多半不是計(jì)算機(jī)的專業(yè)人士,如果在需求分析中使用了行話,就會(huì)造成用戶理解上的困難。
(2)完整:需求的完整性是非常重要的,如果有遺漏需求,則不得不返工,在軟件開發(fā)過程中,糟糕的事情莫過于在軟件開發(fā)接近完成時(shí)發(fā)現(xiàn)遺漏了一項(xiàng)需求。但實(shí)際情況是,需求的遺漏是常發(fā)生的事情,這不僅僅是開發(fā)人員的問題,更多發(fā)生在用戶那里。要做到需求的完整性是很艱難的一件事情,它涉及到需求分析過程的各個(gè)方面,貫穿整個(gè)過程,從初的需求計(jì)劃制定到后的需求評(píng)審。
(3)一致:一致性是指用戶需求必須和業(yè)務(wù)需求一致,功能需求必須和用戶需求一致。在需求過程中,開發(fā)人員需要把一致性關(guān)系進(jìn)行細(xì)化,比如用戶需求不能超出預(yù)前指定的范圍。嚴(yán)格的遵守不同層次間的一致性關(guān)系,就可以保證最后開發(fā)出來的軟件系統(tǒng)不會(huì)偏離初的實(shí)現(xiàn)目標(biāo)。
(4)可測(cè)試:一個(gè)項(xiàng)目的測(cè)試從什么時(shí)候開始呢?有人說是從編碼完成后開始,有人說是編碼的時(shí)候同時(shí)進(jìn)行單元測(cè)試,編碼完成后進(jìn)行系統(tǒng)測(cè)試,這些結(jié)論都不完全正確。實(shí)際上,測(cè)試是從需求分析過程就開始了,因?yàn)樾枨笫菧y(cè)試計(jì)劃的輸入和參照。這就要求需求分析是可測(cè)試的,只有系統(tǒng)的所有需求都是可以被測(cè)試的,才能夠保證軟件始終圍繞著用戶的需要,保證軟件系統(tǒng)是成功的。
聯(lián)系方式:北京華盛恒輝科技有限公司
電話:010-52895342
QQ: 615179746
網(wǎng)址:http://bayada.com.cn
【北京華盛恒輝科技有限公司 ——(hivekion)是一家軟件定制開發(fā)公司,專注IT產(chǎn)品研發(fā)與服務(wù),堅(jiān)持穩(wěn)健經(jīng)營(yíng)、持續(xù)創(chuàng)新、開放合作,在安全生產(chǎn)、大數(shù)據(jù)處理等領(lǐng)域構(gòu)筑了端到端的解決方案優(yōu)勢(shì),為企業(yè)客戶提供有競(jìng)爭(zhēng)力的IT解決方案、 產(chǎn)品和服務(wù)。】