趙越超
德宏職業(yè)學院
軟件需求分析中的問題與對策
——以德宏職業(yè)學院教務系統(tǒng)成績管理子系統(tǒng)開發(fā)為例
趙越超
德宏職業(yè)學院
需求分析是軟件開發(fā)過程中一個十分重要的環(huán)節(jié),甚至被認為是軟件生命周期中最重要的一個階段。軟件需求分析的質量好壞,對軟件的開發(fā)有著深遠的影響。本文對于在德宏職業(yè)學院教務管理系統(tǒng)成績子系統(tǒng)(以下簡稱該系統(tǒng))開發(fā)過程中遇到的需求分析問題及采取的響應對策加以總結,并為今后的軟件需求分析提供一定的指導經(jīng)驗。
軟件開發(fā);需求分析;迭代;軟件生命周期
本文為德宏職業(yè)學院校級課題,編號:XJ2015017。
軟件需求是指用戶對目標軟件系統(tǒng)在功能、行為、性能、設計約束等方面的期望。而需求分析是在可行性研究的基礎上,將用戶對系統(tǒng)的描述,通過開發(fā)人員的分析概括,抽象為完整的需求定義,再形成一系列文檔的過程。可行性研究旨在評估目標系統(tǒng)是否值得去開發(fā),問題是否能夠解決,而需求分析旨在回答"系統(tǒng)做什么"的問題,確保將來開發(fā)出來的軟件產(chǎn)品能夠真正滿足用戶的需要。
對于該系統(tǒng)而言,如何將學院現(xiàn)有的業(yè)務梳理出來,并且以合適的方式完成系統(tǒng)設計,得到一份介于系統(tǒng)分析和軟件設計階段之間橋梁的文檔,是需求分析的主要目的。一方面,需求分析約束了軟件開發(fā)的范圍,另一方面,需求規(guī)格說明書又能夠作為軟件設計、實現(xiàn)、測試乃至運行維護的基礎。做好分析活動,盡量在設計之前得到用戶想要的,避免或者提早識別錯誤,從而提高軟件生產(chǎn)率,降低開發(fā)成本,提高軟件質量。
3.1需求用戶說不清,分析人員猜不透
該系統(tǒng)的使用主體是學院教務處的教務管理人員,因此,教務管理人員作為了需求采集的主要對象。但是教務管理人員并不懂軟件開發(fā),不同的用戶對需求的理解和表達程度都對采集過程造成了很多影響。其對軟件需求的描述要么停留在自己認識的范圍之內(nèi),覺得自己想要的非常清楚,但是說不明白,要么用過其他的信息管理系統(tǒng)的片段,覺得這個也需要那個也需要,而忽視了學院本身的業(yè)務需要。
針對以上問題,作為需求收集的人員,可以引導教務管理人員,先闡述常規(guī)的需求,再由客戶否定不需要的,對于與本院業(yè)務流程有出入的部分加以更正,這樣就能夠猜可控的范圍內(nèi)獲得真實的需求。若用戶說不清楚需求,為了不造成理解錯誤,可以采用多次溝通的方式,采用類似于小迭代的形式,第一次溝通得到一些信息碎片,溝通結束后進行分析,找出不恰當或者矛盾的需求,列出需要進一步明確細化的需求。之后,再次進行溝通,有了第一次的數(shù)據(jù)文檔,溝通的目的性會更強,效率會更高。然后重復以上步驟,直到挖掘出用戶真實需求為止。
3.2用戶需求稍瞬即變,分析人員應接不暇
需求多變一直是軟件開發(fā)中的一大痛點,也有“需求總是多變的只有這一點是不變的”的說法。引起需求變化的原因很多,對于學院而言,領導的決定成了變動的主要因素,比如為了滿足一些偶發(fā)性的應用場景,需要臨時增加想起來的需求。
這樣的情況在體制內(nèi)的單位中無法避免,但是可以盡量對其加以控制。一是提前識別哪些是穩(wěn)定的需求,哪些是容易變動的需求,在系統(tǒng)設計時有所偏重。二是加強與領導的溝通,陳述變動利弊,以供領導決策。
3.3多方需求相互沖突,需求挖掘有二義性
對于學生的管理,除了教務處外,還涉及到學生管理處,以及各個教學系部,對于不同的部門,角度不一樣,需求也不一樣。若有不一致意見,按任意一方意見修改,都很可能在設計上引起無法周全的情況。
對于這種部門間有沖突的需求,一定要組織相關部門進行討論,由更高的領導做評審,決定采用哪種方案或者折中。需求說明不能有二義性,更不能前后矛盾。如果有,則需要重新分析此需求。
通過對該系統(tǒng)需求的分析過程,我們收集用戶需求時候得到的信息,往往停留在表面層次,這是根據(jù)用戶自身知識體系決定的,往往不是真實的需求,在收集過程中,有以下幾點需要注意。
4.1傾聽用戶不等于聽從于用戶
大多數(shù)的客戶其實不知道自己的真實需求是什么,他們需要的是解決問題的東西,我們需要把最終的產(chǎn)品或者相似的產(chǎn)品對他們進行展示,才能在此基礎上引出他們的真實思考,因此不能盲目的聽從用戶去設計系統(tǒng)。
4.2用戶想要的東西不等于真實的需要
有一個例子,有個客戶想要買一匹每天能跑800公里的馬,并且能夠連續(xù)跑10天,而這樣的馬是不存在的。這個時候需求挖掘人員應當進一步了解客戶想要的到底是馬,還是要到很遠的地方去。最后,挖掘人員給他推薦買了一輛汽車。
用戶想要的需求,是基于他的知識結構的,提出來的并不一定能夠在軟件范圍內(nèi)解決,作為需求分析人員,需要去了解使用該需求背后的目的,達到的結果,再翻過去找解決的辦法,這樣才能夠得到用戶的真實需要。
4.3用戶不要限定實現(xiàn)過程
用戶所要關心的是我有哪些問題需要解決,而不是告訴軟件開發(fā)人員應該怎么做。軟件系統(tǒng)的設計本身是靈活多變的,只要能夠解決用戶的需求,給開發(fā)人員一個自由的空間。這樣,才能給出一個基于開發(fā)人員知識體系的解決用戶實際問題的優(yōu)質系統(tǒng)。
[1]呂云翔,王昕鵬.《軟件工程》.人民郵電出版社,ISBN:978-7-115-20222-2
[2]郝建青,張仲義.信息系統(tǒng)需求分析方法研究.《管理工程學報》,2001
[3]閆榮.挖掘用戶真實需求的6大撒手锏.《產(chǎn)品心經(jīng):產(chǎn)品經(jīng)理應該知道的60件事(第2版)》.機械工業(yè)出版社
[4]《軟件生命周期_百度百科》.地址:http://baike.baidu.com/ view/3110371.htm
趙越超,男,工程碩士,云南芒市人,畢業(yè)于杭州電子科技大學計算機學院,主要研究方向:物聯(lián)網(wǎng),大數(shù)據(jù)挖掘方向。