司雁鵬
摘 要:在軟件開發的過程中,對軟件進行需求分析是最基本也是最重要的一個環節之一,它能指引一個軟件開發的大方向,使軟件開發者少走彎路,所以對需求分析的研究對于一個軟件開發者來說也是必不可少的。本文通過對相關資料的查閱,著重介紹了軟件需求分析的過程、方法以及對需求變更的解決方法,其中對需求分析方法的研究中,以原型法為例進行了介紹。此外通過對軟件的需求分析研究,認識到客戶與軟件開發者之間的交互對于一個軟件的完整性和可行性都有著必不可少的關系。
關鍵詞:軟件 需求 客戶 原型
中圖分類號:TP311.5 文獻標識碼:A 文章編號:1674-098X(2017)10(b)-0134-02
隨著軟件開發技術的發展和軟件行業的競爭日益激烈,出現了越來越多元的軟件開發工具及方法,同時也給予了軟件開發工作者更多的選擇。可無論是哪一種軟件開發方法,面對一項開發工程,首先我們該從何入手,先去做什么,如何能夠盡最大可能地滿足用戶的各項需求,并且能夠成功實現用戶所要求的功能,這些都是我們要面對的問題。然而要解決這些問題,靠的就是軟件開發的需求分析。
1 軟件需求分析的任務
想要分析軟件需求的具體任務,我們先來了解一下什么是軟件需求分析。舉個例子,當一個房地產公司要在某一地段蓋一棟樓房,除了考慮地質和樓房的外觀規劃,更要考慮到的是住進該樓房的主人的定向需求,比如陽光的覆蓋率、周圍環境是否嘈雜,以及出行是否方便,而物主的這些對生活的基本需求也決定了樓房的建造位置及方向,可以說用戶的需求問題是一項工程里不能忽視的重要部分。在軟件需求分析里也需要有詳細的文檔,要做的就是從用戶的具體要求中提取出軟件系統,然后通過對需求的分析,規劃出軟件大概需要實現什么基本功能,這也是直接關系到做出來的軟件是否讓客戶滿意,是否能順利交付到用戶,用戶是否能成功運行我們的軟件且解決了一些問題。
1.1 首先要確定對系統的綜合要求
第一,功能需求。所謂功能需求是指軟件所必須要提供的服務。我們通過需求分析得到了系統所需要完成的所有功能,類似建造樓房需要滿足的用戶條件。第二,性能需求。性能需求指定系統的約束,其中包括定時約束或容量約束,通常包括速度(響應時間)、信息量速率、主存容量、磁盤容量、安全性等方面的需求。第三,出錯處理需求。需求說明,當軟件系統出現錯誤或者卡頓,應該如何去處理。第四,接口需求。接口需求描述應用系統與它的環境通信的格式。第五,將來可能提出的要求。應該明確地列出那些雖然不屬于當前系統開發范疇,但是據分析將來很可能會提出來的要求。
1.2 分析數據要求
信息處理系統是任何一個軟件系統的根本,系統必須處理的信息和系統應該產生的信息,在很大程度上決定了系統的面貌,對軟件設計有深遠影響,因此,必須分析系統的數據要求,這是軟件需求分析的一個重要任務。
1.3 導出邏輯模型
我們綜合了上述兩項分析的結果,導出了系統的詳細的邏輯模型,通常包括用狀態轉換圖、數據流圖、實體聯系圖、數據字典和描述這個邏輯模型,還包括主要的處理算法。
1.4 更新開發計劃
根據在分析過程中獲得的對系統的更深入更具體的了解,可以比較準確地估計系統的成本和進度,修正以前制定的開發計劃。
2 需求分析的過程
其過程為:獲取到用戶的需求→分析用戶需求→編寫需求文檔→評審需求文檔。首先,需求階段我們需要充分細致地了解客戶所期待的目標,包括用戶所完成業務的內容、流程等,屬于需求分析的基礎準備工作。其次,在需求調研前,我們要配合人員進行分類,層次化。分析的初期階段,需要得到客戶整體意義上的需求。再次,多方位地描述客戶的相同需求,從基層人員到高層領導都會覆蓋。所以需求應該從各個角度、各個方位進行描述,這樣就不會漏掉重要信息,保證了表達的完整性,當進行到后期的設計工作的時候就會省去不必要的麻煩。然后,由于需求將作為設計的基礎,我們需要清晰化每一項數據,包括弄清所有的數據項的來龍去脈,不可以存在模糊不清的項。最后,充分地挖掘用戶的潛在需求。我們軟件工作者對于軟件技術非常熟悉,所以一些由于技術所帶來的潛在需求很難被客戶發現,所以實現不實現這些需求,對于軟件并沒有太大的影響,但是如果實現了則會使軟件更加人性化。
3 需求分析的方法
在此用軟件需求分析方法之一——原型法來展開說明。現在的軟件產品存在一些不完整和不系統的問題,其中有很大一部分是由于需求分析的錯誤導致的,所以成功的需求分析成為軟件項目成功的關鍵一步。
3.1 原型法的概念
原型法憑借著系統分析人員對用戶要求的理解,在強有力的軟件環境支持下,快速給出一個實實在在的模型,然后與用戶反復協商、修改,最終形成實際系統。原型化的需求定義過程是一個軟件工程師和客戶之間合作的反復過程。它允許在滿足用戶基本需求的條件之上,允許客戶在軟件的開發過程中進行交流,或者提出更加人性化的要求,對系統進行完善。
3.2 原型法的特點
其特點是直觀性、動態性、明細性、嚴謹性。原型法是一種用戶和軟件開發者不停往復循環且螺旋上升的過程。此外,原型法還強調了用戶的參與過程,用戶參與對模型的描述以及系統需求的檢驗。在這樣的方法里,用戶起到了主導作用,在用戶與開發人員的交流過程中,不斷地縮短了用戶和開發者的距離,并且能夠及時地反饋出軟件開發過程中的問題,也增加了軟件系統的可行性和適用性。
3.3 原型法的分析流程
(1)快速地對用戶需求進行分析。(2)開發初始原型系統。(3)軟件開發者和客戶共同評價原型。
3.4 采用原型法的注意事項
(1)所有的需求都需要后期的交互和完善,注意與客戶之間的交互。(2)原型可以克服項目參加者之間的交流困難。(3)需要準備可以供客戶參與的系統模型。(4)有安全的開發環境,同時也要保證兼容性。(5)需求一旦確定,就應該遵從嚴格的方法,不可以擅自改動。
4 需求變更
在我們日常的軟件開發過程中,總是感覺做不完,出現的問題越來越多,用戶總是有新的需求出現,這種現象就叫作需求變更。所以如何來應對需求變更也成為不可忽視的問題。一旦發生了需求變化,你必須重新進行你的設計而且需要重寫代碼,這是每一個軟件開發人員最頭痛的事。需求是無盡的,而軟件開發者的耐心是有限的。所以應對的方法之一:把需求記錄成文檔,當用戶出現系統變更,可以及時通過翻看文檔,確定出需要修改的地方,并且及時更新文檔。此外,根據對進行多年項目開發的項目小組的考察,進行需求評審也是必要的。所以應該讓不同的人員對軟件需求進行各個角度的驗證,驗證需求的可行性、完整性、一致性、正確性等。
5 結語
軟件需求分析,其實可以說是進行軟件開發的必經之路,看似簡單卻是軟件開發的核心,對軟件開發起到了決策的作用。軟件需求分析跟程序設計有相似之處,具有合理性和可行性才是最重要的,只有真正看到顧客想要什么,才能設計出顧客所需要的軟件,如果一味地追求進度,最終得不償失。
參考文獻
[1] 鄭人杰.軟件工程導論[M].北京:清華大學出版社,1997.
[2] 陳明.軟件工程學教程[M].北京:科學出版社,2002.
[3] 張海藩.軟件工程導論[M].北京:清華大學出版社,2003.endprint