軟件開發(fā)生命周期包含需求、設計、編碼和測試四個過程階段,其中需求過程是個也是重要的一個階段。軟件需求包括三個不同的層次:業(yè)務需求,說明了提供給客戶和產(chǎn)品開發(fā)商的新系統(tǒng)的利益,反映了組織機構(gòu)或客戶對系統(tǒng)、產(chǎn)品高層次的目標要求,它們將在項目視圖與范圍文檔中予以說明;用戶需求,描述了用戶使用系統(tǒng)必須要完成的任務,這在使用實例文檔或方案腳本說明中予以說明;功能需求和非功能需求,定義了開發(fā)人員必須實現(xiàn)的軟件功能,使得用戶能順利完成他們的任務,從而滿足了業(yè)務需求。
軟件需求過程包括了5個主要活動:需求獲取、需求分析和確認、編寫需求規(guī)格說明書、需求驗證和需求管理。
需求獲取
需求的收集、分析、細化、核實并組織的步驟,并將它編寫成文檔。這個活動包括了編寫項目視圖和范圍文檔、用戶群分類、選擇用戶代表、建立核心隊伍、確定使用實例、召開聯(lián)合會議、分析用戶工作流程、確定質(zhì)量屬性、檢查問題報告和需求重用10個具體任務,文章將在后面進行詳細的闡述。
需求分析
根據(jù)需求獲取中得到的需求文檔,分析系統(tǒng)實現(xiàn)方案。這個活動需要完成下面幾個任務:
1、繪制關聯(lián)圖,用于定義系統(tǒng)與系統(tǒng)外部實體間的邊界和接口的簡單模型;
2、創(chuàng)建開發(fā)原型,當開發(fā)人員或用戶不能明確某些需求時,開發(fā)一個系統(tǒng)原型,這樣使得許多概念和可能發(fā)生的事更為直觀明了;
3、分析可行性,在允許的成本、性能要求下,分析每項需求實施的可行性,明確每項需求實現(xiàn)相聯(lián)系的風險,包括與其它需求的沖突,涉及各類用戶的利益平衡,對外界因素的依賴和技術障礙;
4、確定需求優(yōu)先級:分析方法來確定使用實例、系統(tǒng)特性或單項需求實現(xiàn)的優(yōu)先級別,以優(yōu)先級為基礎確定產(chǎn)品版本將包括哪些特性或哪類需求;
5、為需求建立模型,為需求建立圖形分析模型是軟件需求規(guī)格說明極好的補充說明,可以為系統(tǒng)需求從多個角度建模;
6、編寫數(shù)據(jù)字典,創(chuàng)建數(shù)據(jù)字典數(shù)據(jù)字典是對系統(tǒng)用到的所有數(shù)據(jù)項和結(jié)構(gòu)的定義,以確保開發(fā)人員使用統(tǒng)一的數(shù)據(jù)定義;
7、應用質(zhì)量功能調(diào)配,將系統(tǒng)特性、屬性與對客戶的重要性聯(lián)系起來,提供了一種分析方法以明確哪些是客戶為關注的特性。
編寫需求規(guī)格說明書
需求開發(fā)的終成果是客戶和開發(fā)小組對將要開發(fā)的產(chǎn)品達成一致協(xié)議,這一協(xié)議就是通過文檔化的需求規(guī)格說明書來體現(xiàn)。需求規(guī)格說明書包括項目視圖和范圍文檔說明了系統(tǒng)的業(yè)務需求,而使用實例文檔則說明了用戶需求。這個活動需要完成下面幾個任務:
1、采用模版,在你的組織中要為編寫軟件需求規(guī)格說明書等文檔定義一種標準模板,該模板為記錄系統(tǒng)需求和各種其它與需求相關的重要信息提供了統(tǒng)一的結(jié)構(gòu);
2、指明需求來源,為了讓所有項目風險承擔者明白需求規(guī)格說明書中為何提供這些功能需求,要能追溯每項需求的來源,來源可能是一種使用實例或其它客戶要求,也可能是某項更高層系統(tǒng)需求、業(yè)務規(guī)范、政府法規(guī)、標準或別的外部來源,這些來源應該記錄在需求的跟蹤能力矩陣中;
3、為每項需求注上標號,為了需求的可跟蹤性和可修改性的質(zhì)量標準,必須確定每個軟件需求,為制定一種慣例來為需求規(guī)格說明書中的每項需求提供一個獨立的可識別的標號或記號;
4、記錄業(yè)務規(guī)范,是指關于系統(tǒng)的操作原則,比如誰能在什么情況下采取什么動作,將這些編寫成需求規(guī)格說明書中的一個獨立部分,或一獨立的業(yè)務規(guī)范文檔;
5、創(chuàng)建需求跟蹤能力矩陣,建立一個矩陣把每項需求來源、定義與實現(xiàn)、測試它的設計和代碼部分聯(lián)系起來,這樣有利于需求的管理和需求變更影響范圍的評估。
需求驗證
需求的驗證是為了確保需求說明準確、完整,表達必要的質(zhì)量特點,需求將要作為系統(tǒng)設計和終驗證的依據(jù),因此一定要保證它的正確性。需求驗證務必確保符合完整性、正確性、靈活性、必要性、無二義性、一致性、可跟蹤性及可驗證性這些良好特征。這個活動需要完成下面幾個任務:
1、審查需求文檔,對需求文檔進行正式審查是保證軟件質(zhì)量的有效的方法。組織一個由不同代表(如用戶,分析人員,設計人員,測試人員)組成的小組,對需求規(guī)格說明書及相關模型進行仔細的檢查;
2、依據(jù)需求編寫測試用例,根據(jù)用戶需求所要求的產(chǎn)品特性寫出系統(tǒng)的功能測試用例作為系統(tǒng)測試依據(jù);
3、編寫用戶手冊,在需求開發(fā)早期即可起草一份用戶手冊,用它作為需求規(guī)格說明的參考并輔助需求分析;
4、確定合格的標準,需求說明中描述什么樣的產(chǎn)品才算滿足用戶的要求和適合他們使用的,將合格的測試建立在使用情景描述或使用實例的基礎之上。
需求管理
需求管理是組織、控制和文檔化需求的系統(tǒng)方法,也是一種建立和維護用戶和開發(fā)組織對于改變系統(tǒng)功能的協(xié)議。需求開發(fā)的結(jié)果經(jīng)驗證批準就定義了開發(fā)工作的需求基線,這個基線在客戶和開發(fā)人員之間就構(gòu)筑了一個需求約定,需求管理包括在項目進展過程中維持需求約定一致性和精確性的活動。現(xiàn)在很多商業(yè)化的需求管理工具都能很好的支持需求管理活動。這個活動需要完成下面幾個任務:
1、確定變更控制過程,確定一個選擇、分析和決策需求變更的過程,所有的需求變更都需遵循此流程;
2、建立軟件變更控制委員會(SCCB,Software Change Control Board),組織一個由項目風險承擔者組成的小組作為變更控制委員會,由他們來評估和確定需求變更;
3、進行變更影響分析,評估需求變更對項目進度、資源、工作量和項目范圍以及其它需求的影響;
4、跟蹤變更影響的產(chǎn)品,當進行某項需求變更時,參照需求跟蹤能力矩陣找到相關的其它需求、設計文檔、源代碼和測試用例,這些相關部分可能也需要修改;
5、建立基準和控制版本,需求文檔確定一個基線,這是一致性需求在特定時刻的快照,之后的需求變更就遵循變更控制過程即可;
6、維護變更的歷史記錄,記錄變更需求文檔版本的日期以及所做的變更、原因,還包括由誰負責更新和更新的新版本號等情況;
7、跟蹤每項需求的狀態(tài),這里狀態(tài)包括"確定"、"已實現(xiàn)"、"暫緩"、"新增"、"變更" 等。建立一個數(shù)據(jù)庫,其中每一條記錄記錄一項需求;
8、衡量需求穩(wěn)定性,記錄基線需求的數(shù)量和每周或每月的變更(添加、修改、刪除)數(shù)量。
需求獲取是在問題及其終解決方案之間架設橋梁的步,是軟件需求過程的主體。一個項目的目的就是致力于開發(fā)正確的系統(tǒng),要做到這一點就要足夠詳細地描述需求,也就是系統(tǒng)必須達到的條件或能力,使用戶和開發(fā)人員在系統(tǒng)應該做什么,不應該做什么方面達成共識。我們都知道開發(fā)軟件系統(tǒng)為困難的部分就是準確說明開發(fā)什么,為困難的概念性工作便是編寫出詳細技術需求,這包括所有面向用戶、面向機器和其它軟件系統(tǒng)的接口。
獲取需求就是為了解決這些問題,它必不可少的成果就是是對項目中描述的用戶需求的普遍理解,一旦理解了需求,分析者、開發(fā)者和用戶就能探索出描述這些需求的多種解決方案。這一階段的工作一旦做錯,將終會給系統(tǒng)帶來極大損害的部分,由于需求獲取事物造成的對需求定義的任何改動,都將導致設計、實現(xiàn)和測試上的大量返工,而這時花費的資源和時間將大大超過仔細精確獲取需求的時間和資源。
軟件項目獲取用戶需求的一些溝通技巧
更新時間: 2006-01-05 16:58:36來源: 粵嵌教育瀏覽量:2911
推薦閱讀
- ·粵嵌科技獲批特級技師/首席技師認定資質(zhì),物聯(lián)網(wǎng)技能人才培養(yǎng)再添權威背書!!
- ·代碼空間優(yōu)化技巧(如使用查表法替代復雜計算)?
- ·如何減少中斷延遲?
- ·深化校企合作,共譜產(chǎn)教融合新篇章 —— 廣州航海學院與粵嵌科技開展校企交流活動
- ·校企聯(lián)動促實踐!湖北工程學院 300 + 學子開啟企業(yè)級實訓之旅!!
- ·粵嵌科技31項命題入選中國國際大學生創(chuàng)新大賽(2025)產(chǎn)業(yè)賽道,誠邀高校團隊共創(chuàng)未來!
- ·在資源受限(如內(nèi)存不足)的設備中如何實現(xiàn)功能擴展?
- ·廣東賽鉑安智能科技有限公司專場招聘會
- ·設計一個低功耗傳感器采集系統(tǒng),需考慮哪些因素?
- ·校企聯(lián)動促實踐!湖北工程學院 300 + 學子開啟企業(yè)級實訓之旅!!