馮笑媚
摘要:在信息時代的推動下,很多傳統(tǒng)工業(yè)也陸陸續(xù)續(xù)地走上了信息自動化的步伐,如何讓傳統(tǒng)工業(yè)更好地走上信息自動化之路,這也是近幾年來我們一直在探討的問題,下面我將借此篇文章講術(shù)我們實現(xiàn)信息自動化系統(tǒng)的第一步——如何正確獲取需求。本文以《綠色車間檢測系統(tǒng)》項目為例講述了軟件系統(tǒng)需求獲取的技術(shù)的選擇,及其應(yīng)用的過程。在本文中首先介紹了幾種常用的需求獲取的技術(shù),然后討論了選用需求研討論會的主要理由與策略,然后通過一個簡例說明該技術(shù)使用的過程及效果,再通過部分功能的需求來討論使用其他技術(shù)獲取系統(tǒng)需求的必要性,最后簡要小結(jié)了選用多種技術(shù)獲取系統(tǒng)需求的意義及作用。
在項目開展期間,我擔(dān)任了系統(tǒng)分析、系統(tǒng)設(shè)計等大量工作。
綠色車間檢測系統(tǒng)是以車間為載體,融合自動控制技術(shù)、計算機(jī)技術(shù)、物聯(lián)網(wǎng)技術(shù),將生產(chǎn)設(shè)備控制、環(huán)境監(jiān)控、信息管理等功能有機(jī)結(jié)合,通過對生產(chǎn)環(huán)境設(shè)備的集中管理,提供更具綠色、安全、節(jié)能的工作環(huán)境。盡管我們做這類項目豐富的經(jīng)驗,但是我們在開始開發(fā)項目之前也要先獲取到準(zhǔn)確的系統(tǒng)需求。獲取系統(tǒng)需求是獲取哪些需求呢?一般情況下我們需要獲取業(yè)務(wù)需求、用戶需求、功能需求和信息需求等。
為了能準(zhǔn)確的獲取需求,我們需要采用一些技術(shù)來幫助我們,目前常用的需求獲取技術(shù)有:
(1)需求研討論會,即可以建立一個由用戶、系統(tǒng)分析員和領(lǐng)域?qū)<覅⒓拥穆?lián)合分析小組來共同完成需求的獲取。能夠減少交流上的問題。
(2)用戶訪談法,它是分析人員以個別訪談或小組會議的形式與用戶進(jìn)行初步的溝通。
(3)模型驅(qū)動,是一類以定義明確的模型為理論基礎(chǔ),依據(jù)模型指導(dǎo)和組織活動開展的需求獲取方法,建立用例模型是一種需求獲取的有效方法,其簡潔清晰的描述方式容易被軟件人員和用戶共同理解和接受。
(4)文檔考古,指對歷史存在的一些文檔進(jìn)行研究,從帶有數(shù)據(jù)的文件、表單、報表等文檔中獲取所需信息的過程。
經(jīng)過項目組的討論,我們決定在整個獲取系統(tǒng)需求的過程中,先采用了需求研討論會來獲取系統(tǒng)需求,因為該技術(shù)能夠在短暫而緊湊的時間段內(nèi)使用用戶、技術(shù)人員及項目組人員可以在應(yīng)用需求上達(dá)成共識、對操作過程盡快取得統(tǒng)一意見。
下面以一個簡單的例子來看,我們的系統(tǒng)需要對連接的生產(chǎn)設(shè)備的狀態(tài)進(jìn)行實時監(jiān)控,并顯示出來,我們不清楚各個生產(chǎn)設(shè)備的工作流程,因此很難把它的業(yè)務(wù)流程描述出來。如果只是按照我們自己的理解把業(yè)務(wù)流程做出來,很可能是不符合規(guī)定的。采用需求研討論會,可以從車間里各個崗位的負(fù)責(zé)人的工作經(jīng)驗中提取出正確的業(yè)務(wù)流程,保證軟件功能的正確性和嚴(yán)謹(jǐn)性。
現(xiàn)在總結(jié)一下采用需求研討論會的實施過程。在召集會議之前,我們先把用戶交給我們的系統(tǒng)描述細(xì)致閱讀了,從中抽出了系統(tǒng)的需求,把功能清晰明亮的需求用用例模型描述出來,把不清晰的部分列舉出來,整理出會議討論主題;接著我們根據(jù)車間的生產(chǎn)流程,在每個崗位上都確定一個人員來參與會議,確定完人員名單后,我們把會議要討論的主題發(fā)給各位與會人員,讓各個與會人員提前看看討論的主題,如果是關(guān)系人可以確定的問題就可以提前把解決方案發(fā)給我們,這樣就可以減少專題討論會的工作量和時間;在開會的時候,我們讓經(jīng)驗豐富的產(chǎn)品經(jīng)理來當(dāng)會議的主持人,負(fù)責(zé)引導(dǎo)與會人員圍繞我們不明確的需求來展開討論和進(jìn)行頭腦風(fēng)暴,直到需求確定下來為止;會議結(jié)束后,我們當(dāng)天就把會議的紀(jì)要,以及需求說明書整理出來,發(fā)送給各位干系人查看并確認(rèn),確保用戶同意按需求說明書的要求開發(fā)系統(tǒng)。通過這個會議,我們成功地把綠色車間檢測系統(tǒng)不明確的需求都確定下來了。
需求研討論會雖然能幫我們快速地把需求確定下來,但該技術(shù)不夠靈活,因為很難找到所有關(guān)系人都有空的時間來集中開會,尤其是項目比較龐大的時候,組織會議就會有點吃力,因為涉及到的人員越多,集中開會的時間越難確定,開會的頻率也不能太高,很難不妨礙客戶的正常工作。
通過需求研討論會我們基本可以把系統(tǒng)的業(yè)務(wù)需求、用戶需求、功能需求確定下來,但是系統(tǒng)的業(yè)務(wù)流程及信息需求等其他的需求一時間也難以確定下來。我們一致認(rèn)為可以借助其他的需求獲取技術(shù)來幫助,把功能業(yè)務(wù)需求、用戶需求、功能需求以外的其他需求確定下來,比如信息需求。我們一開始不清楚工作環(huán)境中的空氣質(zhì)量進(jìn)行實時監(jiān)控的數(shù)據(jù)有哪些,為了準(zhǔn)確把握好該模塊的信息需求,我們使用了用戶訪談來確定該模塊的需要處理的數(shù)據(jù)。以下是我們使用用戶訪談確定該模塊信息需求的過程。
首先,確定訪談的名單;鑒于該模塊是車間里空氣總質(zhì)量的監(jiān)控,我們找了負(fù)責(zé)管理車間的負(fù)責(zé)人來作為我們的訪談對象。然后我們把訪談的內(nèi)容和問題確定下來,并提前發(fā)給我車間負(fù)責(zé)人。接著我們選擇了一名有豐富項目經(jīng)驗的項目經(jīng)理作為主持人,讓他根據(jù)訪談的內(nèi)容和問題與訪談對象訪談。訪談結(jié)束后,我們快速地整理了訪談的紀(jì)要,并把該模塊需要處理的數(shù)據(jù)一一列舉出來,寫到需求說明書里,并讓用戶進(jìn)行閱讀確定。經(jīng)過與車間負(fù)責(zé)人的訪談,我們能夠及時、快速的得到了我們的信息需求。但是如果涉及到多部門的數(shù)據(jù)時,訪談的工作量就會增多。因此我們要根據(jù)需求的內(nèi)容來考慮是否適合使用訪談。
由于我們打算采用面向?qū)ο蟮募夹g(shù)進(jìn)行系統(tǒng)的開發(fā),所以首先我們使用了基于用例的方法對需求專題討論會獲取到的需求進(jìn)行提煉抽象建模,使用用例建模來描述項目的需求,可以幫助我們?nèi)ダ斫庥脩舻臉I(yè)務(wù)和應(yīng)用領(lǐng)域,后面我們可以運用面向?qū)ο蠓治龊驮O(shè)計方法將用例轉(zhuǎn)化為對象模型來進(jìn)行詳細(xì)設(shè)計。
為了更清楚系統(tǒng)的信息需求,我們通過文檔考古的方式查閱了各個崗位上工作者手頭上記錄設(shè)備的信息,設(shè)備操作指南,設(shè)備維護(hù)記錄等數(shù)據(jù)表及文件,在這些文檔中提取了設(shè)備信息維護(hù)系統(tǒng)中具體要保存處理的數(shù)據(jù)。
在實現(xiàn)對工作環(huán)境中的空氣質(zhì)量進(jìn)行實時監(jiān)控的模塊功能時,我們對具體的流程不太清楚,因此我們通過了用戶訪談的方式與車間的負(fù)責(zé)人去了解具體的流程和操作。為了提高訪談的效率和效果,我們在與車間的負(fù)責(zé)人訪談前準(zhǔn)備好了與該模塊相關(guān)的問題和相應(yīng)的調(diào)查問卷,以便我們能得到更具體的業(yè)務(wù)流程及數(shù)據(jù)。
通過以上需求的獲取的技術(shù),我們把整個系統(tǒng)的需求都確定下來,并編寫了需求說明書與用戶簽下了確認(rèn)書,后續(xù)我們的開發(fā)也是按照該需求說明書作為依據(jù)完成的,效果也符合用戶的需求。從該項目可以看出系統(tǒng)需求獲取技術(shù)及應(yīng)用,對我們軟件開發(fā)過程影響是很深遠(yuǎn)的,需求獲取技術(shù)如何選擇應(yīng)該根據(jù)需求的內(nèi)容來決定,選用高效能的正確的方法,可以使我們軟件需求更準(zhǔn)確,更有利于我們的軟件設(shè)計及實現(xiàn),從而降低了軟件項目的風(fēng)險。