靳緒果
【摘要】詳細(xì)介紹了軟件需求的過(guò)程:需求工程分為需求開(kāi)發(fā)和需求管理兩個(gè)階段。需求開(kāi)發(fā)又分為需求獲取、需求分析、編寫(xiě)規(guī)格說(shuō)明書(shū)和需求驗(yàn)證,其中需求獲取是該階段的一個(gè)最重要的任務(wù);需求分析時(shí)使用模型來(lái)描述,以獲取用戶更明確的需求;軟件需求規(guī)格說(shuō)明闡述一個(gè)軟件系統(tǒng)必須提供的功能和性能以及它所要考慮的限制條件;一般說(shuō)來(lái),應(yīng)該從四個(gè)方面對(duì)軟件需求進(jìn)行驗(yàn)證,即一致性、完整性、現(xiàn)實(shí)性和有效性。需求管理就是對(duì)需求變更控制的過(guò)程。給出了企業(yè)人事信息管理系統(tǒng)實(shí)例,來(lái)簡(jiǎn)單說(shuō)明需求分析的過(guò)程。
【關(guān)鍵詞】軟件工程 軟件需求 需求工程 需求開(kāi)發(fā) 需求管理
【中圖分類號(hào)】TP311.5 【文獻(xiàn)標(biāo)識(shí)碼】A 【文章編號(hào)】2095-3089(2015)06-0181-02
軟件工程師所需解決的問(wèn)題往往十分復(fù)雜,了解問(wèn)題的性質(zhì)可能是非常困難的,尤其當(dāng)系統(tǒng)是全新的時(shí)候。
1.綜述
軟件工程中包含需求、設(shè)計(jì)、編碼和測(cè)試四個(gè)階段,其中需求工程是軟件工程第一個(gè)也是很重要的一個(gè)階段,這個(gè)階段的任務(wù)仍然不是具體地解決問(wèn)題,而是準(zhǔn)確地確定“為了解決這個(gè)問(wèn)題,目標(biāo)系統(tǒng)必須做什么”,主要是確定目標(biāo)系統(tǒng)必須具備哪些功能。本文以企業(yè)人事信息管理系統(tǒng)為例詳細(xì)介紹了需求工程的構(gòu)成和進(jìn)行方法。
2.需求的標(biāo)準(zhǔn)
定義需求標(biāo)準(zhǔn)有所不同,但在思想上是相同的,都是為了保證項(xiàng)目的順利進(jìn)行。一般的標(biāo)準(zhǔn)為:明確(Clear)、完整(Complete)、一致(Consistent)、可測(cè)試(Testable),還有可跟蹤、可修改等等。
明確:目前大多數(shù)的需求分析采用的仍然是自然語(yǔ)言,自然語(yǔ)言對(duì)需求分析最大的弊病就是它的二義性。所以對(duì)需求分析中采用的語(yǔ)言應(yīng)該做某些限制盡量采用主語(yǔ)+動(dòng)作的簡(jiǎn)單表達(dá)方式。還有,不要使用計(jì)算機(jī)術(shù)語(yǔ)。需求分析最重要的是和用戶溝通,可是用戶多半不是計(jì)算機(jī)的專業(yè)人士,如果在需求分析中使用了行話,就會(huì)造成用戶理解上的困難。
完整:需求的完整性是非常非常重要的,要做到需求的完整性是很艱難的一件事情,它涉及到需求分析過(guò)程的各方各面,貫穿了整個(gè)過(guò)程,從最初的計(jì)劃制定到最后的需求評(píng)審。
一致:用戶需求必須和業(yè)務(wù)需求一致,功能需求必須和用戶需求一致。嚴(yán)格的遵守不同層次間的一致性關(guān)系,就可以保證最后開(kāi)發(fā)出來(lái)的軟件系統(tǒng)不會(huì)偏離最初的實(shí)現(xiàn)目標(biāo)。
可測(cè)試:需求的幾項(xiàng)標(biāo)準(zhǔn)都是為了保證需求的可測(cè)試性,只有系統(tǒng)的所有需求是可以被測(cè)試的,才能夠保證軟件始終圍繞著用戶的需要,保證軟件系統(tǒng)是成功的。
需求工程分為了需求開(kāi)發(fā)和需求管理兩個(gè)階段:下面就以這兩個(gè)階段說(shuō)明:
3.需求開(kāi)發(fā)
需求開(kāi)發(fā)又分為需求獲取、需求分析、編寫(xiě)規(guī)格說(shuō)明書(shū)和需求驗(yàn)證。以下列出和講解分析常規(guī)的步驟,當(dāng)然應(yīng)按照項(xiàng)目的大小和特點(diǎn)等實(shí)際情況我們應(yīng)該自己確定合適的步驟。
3.1需求獲?。?/p>
這是該階段的一個(gè)最重要的任務(wù)。以下為獲取用戶需求需要執(zhí)行的活動(dòng)。
●了解客戶方的所有用戶類型以及潛在的類型。然后,根據(jù)他們的要求來(lái)確定系統(tǒng)的整體目標(biāo)和系統(tǒng)的工作范圍。
●對(duì)用戶進(jìn)行訪談和調(diào)研。交流的方式可以是會(huì)議、電話、電子郵件、小組討論、模擬演示等不同形式。需要注意的是,每一次交流一定要有記錄,對(duì)于交流的結(jié)果還可以進(jìn)行分類,便于后續(xù)的分析活動(dòng)。例如,可以將需求細(xì)分為功能需求、非功能需求(如響應(yīng)時(shí)間、平均無(wú)故障工作時(shí)間、自動(dòng)恢復(fù)時(shí)間等)、環(huán)境限制、設(shè)計(jì)約束等類型。
●需求分析人員對(duì)收集到的用戶需求做進(jìn)一步的分析和整理。
●需求分析人員將調(diào)研的用戶需求以適當(dāng)?shù)姆绞匠式唤o用戶方和開(kāi)發(fā)方的相關(guān)人員。大家共同確認(rèn)需求分析人員所提交的結(jié)果是否真實(shí)地反映了用戶的意圖。
3.2需求分析
需求分析是軟件定義時(shí)期中很重要的一個(gè)階段,它的基本任務(wù)是準(zhǔn)確地回答“系統(tǒng)必須做什么?”這個(gè)問(wèn)題。在很多情形下,分析用戶需求是與獲取用戶需求并行的,主要通過(guò)建立模型的方式來(lái)描述用戶的需求,為客戶、用戶、開(kāi)發(fā)方等不同參與方提供一個(gè)交流的渠道。這些模型是對(duì)需求的抽象,以可視化的方式提供一個(gè)易于溝通的橋梁。用戶需求的分析與獲取用戶需求有著相似的步驟,區(qū)別在于分析用戶需求時(shí)使用模型來(lái)描述,以獲取用戶更明確的需求。
用于需求建模的方法有很多種,最常用的包括數(shù)據(jù)流圖(DFD)、實(shí)體關(guān)系圖(ERD)和用例圖(Use Case)三種方式。DFD作為結(jié)構(gòu)化系統(tǒng)分析與設(shè)計(jì)的主要方法,已經(jīng)得到了廣泛的應(yīng)用,DFD尤其適用于MIS系統(tǒng)的表述。DFD使用四種基本元素來(lái)描述系統(tǒng)的行為,過(guò)程、實(shí)體、數(shù)據(jù)流和數(shù)據(jù)存儲(chǔ)。DFD方法直觀易懂,使用者可以方便地得到系統(tǒng)的邏輯模型和物理模型,但是從DFD圖中無(wú)法判斷活動(dòng)的時(shí)序關(guān)系。
ERD方法用于描述系統(tǒng)實(shí)體間的對(duì)應(yīng)關(guān)系,需求分析階段使用ERD描述系統(tǒng)中實(shí)體的邏輯關(guān)系,在設(shè)計(jì)階段則使用ERD描述物理表之間的關(guān)系。需求分析階段使用ERD來(lái)描述現(xiàn)實(shí)世界中的對(duì)象。ERD只關(guān)注系統(tǒng)中數(shù)據(jù)間的關(guān)系,而缺乏對(duì)系統(tǒng)功能的描述。如果將ERD與DFD兩種方法相結(jié)合,則可以更準(zhǔn)確地描述系統(tǒng)的需求。
3.3編寫(xiě)規(guī)格說(shuō)明書(shū)
項(xiàng)目視圖和范圍文檔包含了業(yè)務(wù)需求,而使用實(shí)例文檔則包含了用戶需求。你必須編寫(xiě)從使用實(shí)例派生出的功能需求文檔,還要編寫(xiě)產(chǎn)品的非功能需求文檔,包括質(zhì)量屬性和外部接口需求。軟件需求規(guī)格說(shuō)明闡述一個(gè)軟件系統(tǒng)必須提供的功能和性能以及它所要考慮的限制條件,它不僅是系統(tǒng)測(cè)試和用戶文檔的基礎(chǔ),也是所有子系列項(xiàng)目規(guī)劃、設(shè)計(jì)和編碼的基礎(chǔ)。它應(yīng)該盡可能完整地描述系統(tǒng)預(yù)期的外部行為和用戶可視化行為。
采用軟件需求規(guī)格說(shuō)明模版:采用需求規(guī)格說(shuō)明書(shū)模板在你的組織中要為編寫(xiě)軟件需求文檔定義一種標(biāo)準(zhǔn)模板。該模板為記錄功能需求和各種其它與需求相關(guān)的重要信息提供了統(tǒng)一的結(jié)構(gòu)。注意,其目的并非是創(chuàng)建一種全新的模板,而是采用一種已有的且可滿足項(xiàng)目需要并適合項(xiàng)目特點(diǎn)的模板。
3.4需求驗(yàn)證
需求分析階段的工作結(jié)果是開(kāi)發(fā)軟件系統(tǒng)的重要基礎(chǔ),大量統(tǒng)計(jì)數(shù)字表明,軟件系統(tǒng)中15%的錯(cuò)誤起源于錯(cuò)誤的需求。為了提高軟件質(zhì)量,確保軟件開(kāi)發(fā)成功,降低軟件開(kāi)發(fā)成本,一旦對(duì)目標(biāo)系統(tǒng)提出一組要求之后,必須嚴(yán)格驗(yàn)證這些需求的正確性。一般說(shuō)來(lái),要按以下步驟進(jìn)行需求驗(yàn)證:
1)審查需求文檔;2)依據(jù)需求編寫(xiě)測(cè)試用例;3)編寫(xiě)用戶手冊(cè);4)確定合格的標(biāo)準(zhǔn)。
4.需求管理
需求開(kāi)發(fā)的結(jié)果應(yīng)該有項(xiàng)目視圖和范圍文檔、使用實(shí)例文檔、軟件需求規(guī)格說(shuō)明及相關(guān)分析模型。經(jīng)評(píng)審批準(zhǔn),這些文檔就定義了開(kāi)發(fā)工作的需求基線。這個(gè)基線在客戶和開(kāi)發(fā)人員之間就構(gòu)筑了計(jì)劃產(chǎn)品功能需求和非功能需求的一個(gè)約定。需求約定是需求開(kāi)發(fā)和需求管理之間的橋梁,需求管理包括在工程進(jìn)展過(guò)程中維持需求約定集成性和精確性的所有活動(dòng)。
5.企業(yè)人事管理系統(tǒng)
5.1企業(yè)人事管理系統(tǒng)概述
企業(yè)人事管理系統(tǒng)是針對(duì)企業(yè)人事方面的大量業(yè)務(wù)處理工作而開(kāi)發(fā)的管理軟件。根據(jù)用戶的要求,實(shí)現(xiàn)人員基本情況管理、工資管理、和考勤管理等幾個(gè)方面的功能。用戶通過(guò)輸入工資、考勤、職工履歷等基本信息,由系統(tǒng)自行生成相應(yīng)的統(tǒng)計(jì)數(shù)據(jù)及各類統(tǒng)計(jì)報(bào)表以供用戶查詢、打印。
5.2系統(tǒng)功能分析
系統(tǒng)開(kāi)發(fā)的總體任務(wù)是實(shí)現(xiàn)企業(yè)人事信息關(guān)系的系統(tǒng)化、規(guī)范化和自動(dòng)化。
系統(tǒng)功能分析是在系統(tǒng)開(kāi)發(fā)的總體任務(wù)的基礎(chǔ)上完成的。經(jīng)過(guò)按照以上分析過(guò)程進(jìn)行分析,分析出企業(yè)人事信息管理需要完成功能。
6.總結(jié)
以上詳細(xì)介紹了軟件需求分析過(guò)程。軟件工程中包含需求、設(shè)計(jì)、編碼和測(cè)試四個(gè)階段,其中需求工程是軟件工程第一個(gè)也是很重要的一個(gè)階段,要想做好一個(gè)項(xiàng)目,必須先做好需求分析,需求工程分為了需求開(kāi)發(fā)和需求管理兩個(gè)階段:需求開(kāi)發(fā)又分為需求獲取、需求分析、編寫(xiě)規(guī)格說(shuō)明書(shū)和需求驗(yàn)證。需求管理就是對(duì)需求變更控制的過(guò)程。通過(guò)介紹企業(yè)人事信息管理系統(tǒng)的需求分析階段,更好地說(shuō)明了需求分析過(guò)程。
參考文獻(xiàn):
[1]張海藩.軟件工程導(dǎo)論.清華大學(xué)出版社 1998