張靖笙,張靖笙講師,張靖笙聯(lián)系方式,張靖笙培訓師-【中華講師網】
張靖笙 2019年度中國50強講師
數字化轉型、大數據、工業(yè)4.0、人工智能、智能制造、區(qū)塊鏈
56
鮮花排名
0
鮮花數量
張靖笙:如何分析企業(yè)管理信息系統(tǒng)的需求
2016-01-20 50774

如何分析企業(yè)管理信息系統(tǒng)的需求

張靖笙舊作新改

摘要:

    文章分析了企業(yè)管理信息系統(tǒng)需求的特點,結合作者在工作實踐中分析了傳統(tǒng)需求分析方法在開發(fā)企業(yè)管理信息系統(tǒng)中遇到的問題,提出相應的解決方法。

關鍵字:

    軟件工程,需求分析,企業(yè)管理信息系統(tǒng)

前言:

作者曾在一家大型國有商業(yè)銀行擔任軟件工程師工作多年,按照軟件工程理論組織開發(fā)工作一直是我對于自己的要求,但為單位開發(fā)信息系統(tǒng)的過程中工作實踐中,我發(fā)現嚴格套用傳統(tǒng)軟件工程理論在需求分析方面的規(guī)范比較困難。

傳統(tǒng)需求分析規(guī)范在實踐中的遇到的矛盾

需求分析階段關系到一個軟件開發(fā)的成敗,這已經得到了普遍的認識,然而,根據作者在實際開發(fā)工作的自身經歷,以及作者曾主動地和許多同行的交流中發(fā)現,發(fā)現現在國內的許多軟件開發(fā)的需求分析階段,基本沒有按照嚴格的軟件工程的規(guī)范要求,可以說,在許多開發(fā)項目中,按照傳統(tǒng)軟件工程規(guī)范要求的需求分析往往是一個非常尷尬的過程,為什么呢?

    這是因為軟件開發(fā)人員沒有工程觀念嗎?國際軟件工程理論和技術引入我國也差不多二十年了,特別是在二十世紀九十年代,我國計算機軟件產業(yè)得到了長足的發(fā)展,涌現了大量成功的軟件開發(fā)成果,培養(yǎng)了相當規(guī)模的軟件開發(fā)隊伍。作為軟件開發(fā)生力軍的年輕的軟件工程師大多數是剛剛從學校畢業(yè)的大學生,學校教育中軟件工程是一門非常重要的課程,可以說現在的絕大部分程序員在這方面經過了嚴格的教育和訓練,而為什么在實際工作中出現了很大的偏差?

根據我在實際工作中的經驗,問題主要來自以下方面:

1.需求分析本身的難度。需求的任務是了解和描述軟件用戶對軟件的需求,即明確做什么。但在實際的軟件開發(fā)中,用戶了解他們的專業(yè)領域,但計算機知識,特別是軟件知識往往比較薄弱,而開發(fā)人員與此恰好相反,而在需求分析的過程中,雙方面對的往往不是一個可見的產品,而只是頭腦中的構思和想象,由于專業(yè)的差異和溝通的有限,用戶的許多需求對開發(fā)人員來說往往是難于理解的和準確把握。

2.傳統(tǒng)軟件工程規(guī)范沒有量化需求分析工作。傳統(tǒng)軟件工程理論中對需求分析工作的要求只是對軟件要求整體上的分析,不要求陷入實現上的細節(jié)。但實際工作中,在許多類型的應用系統(tǒng)開發(fā)中,許多技術細節(jié)本身就關系到需求能否實現或正確實現,如有企業(yè)管理信息系統(tǒng)程序開發(fā)經驗的人誰都知道,根本不可能拋開數據類型去定義一個數據實體的屬性。所以在實際的工作中忽略這些至關重要的細節(jié)的需求分析往往是不完整的,造成的混亂往往嚴重影響后續(xù)的開發(fā)。所以需求分析工作到底深入到什么程度,這個并沒有確定的標準。

3. 傳統(tǒng)軟件工程規(guī)范在需求分析的嚴格執(zhí)行有實際管理上的難度。在廣大的應用軟件開發(fā)部門,軟件開發(fā)工作的地位往往只是本單位業(yè)務的輔助,一般沒有專職的而且非常有經驗的系統(tǒng)分析員,需求分析往往由主管經理和開發(fā)程序員簡單進行,而領導往往重成績多于重過程,對于一個沒有顯效的需求分析過程,領導的耐心往往有限,這就造成了對需求分析缺乏嚴格的管理和要求。

4.嚴格按照傳統(tǒng)規(guī)范要求進行需求分析在時間和開發(fā)成本的限制。由于用戶對軟件技術的認識水平,他們對軟件的開發(fā)在時間上往往要求過高,他們狠不得明天就可以使用軟件。如果你在那里分析來分析去不動手,在實際工作中,特別當用戶是單位的上層領導,他們往往覺得這種對他們而言空洞無物的分析是開發(fā)人員的紙上談兵,時間一長不免就會流露出不滿。這令開發(fā)人員非常尷尬,往往非常嚴重地打擊他們的自信心和士氣。

綜上所述,傳統(tǒng)軟件工程規(guī)范中需求分析理論在實踐中的矛盾是成本,效率和規(guī)范要求間的矛盾。而忽略規(guī)范要求的代價也是慘重的,那我們能找到一種方法解決以上矛盾嗎?我覺得提高軟件工程規(guī)范要求中在需求分析階段的可操作性是解決問題的關鍵。當然由于計算機應用的多樣性,我們不可能找到能醫(yī)百病的靈丹妙藥,但在開發(fā)比較常見的企業(yè)管理信息系統(tǒng)中,下文試圖提出一種比較有針對性的需求分析方法。

企業(yè)管理信息系統(tǒng)程序的需求特點

    數據庫技術的核心思想是數據的獨立與共享,所以開發(fā)企業(yè)管理信息系統(tǒng),就是利用計算機數據庫技術來組織,管理和使用企業(yè)經營和管理活動中的各種信息。不同形式的企業(yè)管理信息系統(tǒng)可謂多種多樣,但功能需求的核心是圍繞著數據庫管理的信息來展開的。筆者曾開發(fā)過多個不同應用領域的數據庫的應用,我發(fā)現在企業(yè)管理信息系統(tǒng)中雖然功能很多,許多功能在邏輯上相似,往往只是處理的數據不同,很多時候,信息管理軟件功能基本上是數據的查詢,更新,維護,并不需要復雜的算法。所以,我認為企業(yè)管理信息系統(tǒng)需求分析應該圍繞數據(信息),而不是功能展開。這與傳統(tǒng)的需求分析中以分析功能需求為核心有明顯的不同。從這個意義上,如果傳統(tǒng)需求分析階段是“做什么”,在企業(yè)管理信息系統(tǒng)需求分析階段就是先要解決“有什么”,然后再明確“做什么”。

企業(yè)管理信息系統(tǒng)的需求特征

    需求分析作為軟件工程的第一階段,是整個軟件開發(fā)項目進行設計和實現的基礎,決定了一個項目的成敗。但是需求分析不能只看成是一個獨立的階段,第一個階段了解的需求也只是初步的需求,對需求的了解貫穿整個項目的始終,了解需求的過程是一個逐步細化,逐步深入的過程,整個項目自始而終都需要與用戶交流。

    既然企業(yè)管理信息系統(tǒng)需求以數據為中心,在需求分析階段就強調數據和數據結構的分析一點也不過分。所以,對于企業(yè)管理信息系統(tǒng)系統(tǒng),應該把數據庫的詳細設計向前移,即從傳統(tǒng)軟件工程階段的詳細設計階段提前到需求分析階段進行。

    需求分析大體上分為以下幾個階段:

    1)模型需求分析(總體設計)

    2)概念需求分析(概念設計)

    3)細節(jié)需求分析(詳細設計)

    4)輸入輸出需求分析(界面設計)

    這些需求分析貫穿整個項目的各個環(huán)節(jié)中,與設計是穿插在一起。

需求分析過程活動

1)模型需求分析

    這個階段體現了系統(tǒng)的總體構思與設計,任務是了解系統(tǒng)的組織形式和功能需求概貌,解決“是什么”的問題。我認為模型需求分析主要任務是系統(tǒng)架構的定義,這涉及到硬件,用戶環(huán)境,系統(tǒng)功能等多方面的全局考慮。如系統(tǒng)是C/S模式還是Internet模式,如何進行功能的分層。這些都需要在模型需求分析過程中決定。

    模型需求分析工作是項目的早期,所以對功能的描述應該有高度的抽象性,在理想的情況下,一個系統(tǒng)最好由一句話或一張紙內描述,便于開發(fā)人員對系統(tǒng)目標的整體把握,也保持了與用戶交流的靈活性和一致性。所以在項目初期,我不贊成用功能模塊圖對功能需求做太多層次的金字塔式羅列,特別如果是系統(tǒng)的分布式分層設計,詳細的功能模塊圖在項目早期沒有什么實際意義,反而容易舍本求末。

    我們完全可以把完整的功能模塊圖放在細節(jié)需求分析階段完成。

2)概念需求分析

    概念需求分析的任務是對系統(tǒng)中涉及的概念進行調查和分析,分析有什么信息,如何組織和描述數據,數據由那些數據項組成,各數據項是什么含義,數據的走向是什么樣的?概念需求分析的目的是建立系統(tǒng)的概念模型,主要是建立描述數據的靜態(tài)模型和描述系統(tǒng)運行流程的動態(tài)模型,解決“有什么”問題。

    當完成模型需求分析后,就要進入到概念需求分析。做概念需求分析,首先要收集原始資料,然后請用戶講述手工的工作流程,根據用戶提供的原始資料和對工作流程的了解的基礎上,我們才可以著手進行概念設計。

3)細節(jié)需求分析

   細節(jié)需求分析要在完成概念設計之后進行,這個階段是分析如何具體實現用戶需求,就是解決“怎么做”的問題。這個階段要對用戶的需求完整而清晰地確定下來,所以與用戶的交流比前兩個階段多,交流的內容應該更加具體。

   細節(jié)分析的具體任務是要根據概念設計定義的概念模型制定具體的實現細節(jié)。對于靜態(tài)模型,要給出詳細的數據字典,包括了表,數據項,數據項限制條件等詳細信息。對于動態(tài)模型,要給出具體的狀態(tài)定義,事件定義,狀態(tài)改變的流程,對數據所有操作的定義等等詳細的設計信息。要求根據細節(jié)需求分析的成果應該能成為編碼和建庫的依據。

4)輸入輸出需求分析

   用戶能否用好軟件最終決定項目的成敗,良好的用戶使用界面是不可忽視的。用戶界面的好壞并不是追求界面的花巧(這是程序員經常犯的毛病),而是界面的設計是否能提高用戶使用軟件的效率,這需要了解用戶的使用環(huán)境,操作水平,操作習慣,個人喜好等多方面。輸入輸出需求分析要做到界面設計和概念設計的相互獨立,不能因為界面的表示影響概念設計的穩(wěn)定,同時也要保持能適應用戶各種不同操作要求的靈活性。具體可以先和用戶共同草擬一些界面設計大綱,在開發(fā)過程中邀請用戶試用軟件,根據反饋意見不斷改進和修改。

分析信息內容的工具選擇

    我們分析“有什么”信息,傳統(tǒng)的需求分析理論用數據流圖和數據字典來表達“有什么”信息。數據流圖核心是功能,而在許多企業(yè)管理信息系統(tǒng)特別是信息管理系統(tǒng)開發(fā)初期,在沒有清晰完整的信息構成分析前,功能的需求往往難以穩(wěn)定。在開發(fā)企業(yè)管理信息系統(tǒng)的需求分析初期,我不提倡使用數據流圖,因為在企業(yè)管理信息系統(tǒng)中,數據流圖往往不能令人滿意地說明信息構成問題,而且隨著數據的增加,功能流程的變遷需要經常修改早期的設計,這會造成工作的反復。數據字典可以表達數據的構成,但卻沒有定義數據的類型。在一個企業(yè)管理信息系統(tǒng)中,數據的類型的通過字段類型表達,有開發(fā)經驗的人應該知道,清楚每一個數據字段的含義和類型在開發(fā)企業(yè)管理信息系統(tǒng)中有重要的意義,試想一下,如果一個字段是圖象型,對數據的功能需求不言而喻。而傳統(tǒng)的需求分析過程不要求確定數據的具體類型,而在開發(fā)一個企業(yè)管理信息系統(tǒng)時,需求分析階段忽略了這一步就會毫無疑問地造成對需求理解的模糊,并使得需求分析變成空洞無物的紙上談兵。

小結

    設計過程更要和人工智能,知識庫,程序語義等最新研究成果結合起來,實現用邏輯方法檢驗數據庫設計的完整性,用推理方法使許多設計步驟可以自動進行,并開發(fā)自動編碼功能,把詳細設計的成果直接轉換成SQL代碼,更大地提高開發(fā)效率。進一步我們應該把這些成果產品化,開發(fā)一系列CASE工具,最終發(fā)展成為一個全功能的軟件開發(fā)平臺。

參考文獻:

[1]中山大學軟件所:設計規(guī)范與實例分析

[2]張海藩:軟件工程導論,清華大學出版社,1998年1月

[3]Roger S.Pressman:Software engineering,a practitioner’sapproach,Fourth Edition,McGraw-Hill ,1997

[4]鄭人杰,殷人昆,陶永雷:實用軟件工程第二版,清華大學出版社,1997年4月

 

注:本文的原稿2001年6月2日發(fā)表在核心學術雜志《中國計算機工程與應用》,當時作者是在讀中山大學軟件研究所碩士研究生。

全部評論 (0)

Copyright©2008-2025 版權所有 浙ICP備06026258號-1 浙公網安備 33010802003509號 杭州講師網絡科技有限公司
講師網 www.3969a.com 直接對接10000多名優(yōu)秀講師-省時省力省錢
講師網常年法律顧問:浙江麥迪律師事務所 梁俊景律師 李小平律師