第一節 係統開發的方法和過程
飯店管理信息係統是一個十分龐大的信息係統,開發工作又是細致而複雜的工作,必須遵循係統工程的理論和方法,認真對待開發過程中的每一環節,認真分析它的階段特點、掌握它的規律。係統開發方法有多種形式,目前主要采用的形式有生命周期法、原型法、麵向對象法和計算機輔助開發方法等。運用合適的係統開發方法,是開發人員必須考慮的因素。在選定了開發方法以後,還必須在開發過程中能控製工程的進度和質量,在不同的環節上運用不同的控製手段,保證係統開發的順利完成。本節僅介紹在管理信息係統開發中經常采用的最基本方法,即生命周期法和原型法。
一、 生命周期法
按照係統工程的觀點,把管理信息係統作為一種軟件產品,任何一種產品都存在一個使用的生命周期。管理信息係統的生命周期,始於建立管理信息係統項目任務的提出,經曆可行性分析、係統調查與分析、係統設計、係統實施、測試和交付用戶運行及維護等一係列過程。
經過較長時間的使用,隨著科學技術和生產經營及管理的發展,人們對信息的需求也在不斷地變化,原有的管理信息係統已不再適應新時代的管理要求,無法滿足企業管理的信息需求,應及時采用新的係統,原有係統消亡,從而被新的管理係統軟件所取代。整個過程體現了軟件的誕生、成熟到最後消亡的曆史過程,故稱為生命周期。
生命周期法被認為是目前最經典的管理信息係統的開發方法,強調項目的管理,它的基本思想方法是:
具有明顯區別的階段性,嚴格區分工作階段,上一個階段結束,應準備詳盡的文檔,作為下一階段的工作的基礎,階段之間按文檔驗收交接。
采用從上向下的分析方法,將任務逐層分解成具體的功能模塊,注重係統的結構性。
具有嚴格的係統驗收檢驗手續。
特別強調係統的調查研究和係統分析。
組織嚴密,工作任務清晰。
(一)生命周期法的三個階段
通常,在描述生命周期法時,多數分為三個階段,即係統分析、係統設計和係統實施(有的劃分更為細致,分為5~6個階段)。
每個階段都有不同的任務要求。第一階段是係統的基礎,在綜合調查研究的基礎上進行全麵的係統性分析,決定係統的邏輯模型,明確係統能做些什麼。係統分析報告通過之後,就開始對係統進行邏輯設計和物理設計,即進入係統開發的第二個階段。
第二階段是工作的重點,在係統分析的基礎上建立物理模型,即要知道係統是如何實現既定功能的,明確如何幹的問題。對係統進行整體設計(係統設計),製定係統及子係統的結構,並進行詳細設計。按照係統的設計規程,編製係統設計文檔和工作手冊。
第三階段是係統實現的問題,對係統進行程序設計的編程並提交給用戶試用。程序員按照設計要求編寫和調試程序,並做一係列測試工作,交付給用戶運行測試。整個係統在移交給用戶之前要準備完整的技術檔案,以便用戶和研製人員對係統進一步完善,也為係統最後評審做準備。
係統經過大量細致的調試和模擬運行之後,所出現的問題均已基本解決,雙方可以確認正式使用新係統,取代原係統。為了使係統能夠正常地運行,在運行和維護的初期階段,開發人員需要親臨現場,對使用人員進行指導和培訓,幫助解決操作上不規範的問題。最後需要由專家小組對新係統進行評價,對係統中不完善之處應積極妥善地解決,至此一個係統開發過程就完成了。
(二)階段性任務要求
1.係統分析階段
係統分析是係統開發的最初階段,這個階段的工作深入與否,直接影響到將來係統的設計質量、經濟性和運行效率,因此,必須給予高度重視。實踐表明,許多管理信息係統的失敗的原因往往與忽視或沒有做好係統分析有直接關係。
係統分析主要是對研究對象進行詳細調查,在調查的基礎上給出係統模型。上一章已講述過初步調查,其主要任務是進行可行性研究,在調查的基礎上編寫可行性研究報告。而係統分析中的詳細調查其主要任務是給出係統的初步模型。調查時可采取多種方法,如:對單位的業務處理進行跟蹤調查、開座談會、跟班作業,考察業務具體流程、發放調查表、整理數據流向和規模、收集單位使用的報表和賬冊等。
在詳細調查的基礎上進行係統業務流程的分析,轉換成信息流程;分析各個部門和環節的信息需求;報表和報表分析;對數據分析,給出數據名稱、類型、長度和精度等內容。通過詳細調查,最終得出係統的初步模型。詳細調查將在下一節內容中介紹。
2.係統設計階段
結構化的係統設計采用“從上到下”法。該方法強調由全麵到局部、由長遠到近期、由上到下、由粗到細的研製一種合理的信息流的模型出發,設計出適合於業務處理信息流的信息係統。子係統通過業務處理的過程/數據分析確定,而且盡可能地要求每個局部優化在全局優化的指導下進行。
“從上到下”法的優點是:對整個計劃來說,它是一種邏輯性很強的方法,因為這種方法從整體上考慮,並仔細地協調和計劃。缺點是:對於大型的管理信息係統,開發周期較長,而且往往難以確定這樣大規模的詳細設計方案,因為它需要從企業的目標開始,一直分解到具體的子係統和各個模塊,並受係統分析員素質的製約。
係統設計的主要任務如下:
(1)係統總體結構設計。
(2)子係統設計。
(3)模塊功能設計。
(4)代碼體係設計。
(5)數據庫設計。
(6)提出初步模型。
(7)係統開發規程設計。
3.係統實施階段
實施階段主要分為三個子階段:
(1)程序設計。
(2)係統測試。
(3)係統試運行。
程序設計采用模塊化設計方式。所謂模塊,是將任務分解成一個個基本的功能單元,並具有輸入/輸出、內部數據、處理邏輯和調用和被調用等屬性。模塊,也可以獨立運行,這樣便於編程和調試,一旦出現問題,可限製在模塊的內部,對於其他模塊和係統運行影響不大。目前,這種設計方法在管理信息係統中得到廣泛的應用。
程序設計是根據係統分析員提出的程序設計任務書完成的,該任務書明確指明程序的任務要求、輸入/輸出、接口參數等具體事項。
係統測試或調試的主要任務是檢查係統內存在的問題,首先經過程序員的自檢,然後經過係統的聯機測試。測試有多種方法,如係統的連接測試,考察係統內部通道是否暢通;係統的功能測試,通過“黑箱法”檢驗係統從輸入到輸出的功能是否達到目標要求。交付測試,將係統交付用戶,進行現場測試,通過大量的實際數據考核係統的運行指標。在內部測試時由於采用少量的模擬數據,有的問題不容易暴露出來;有些問題,例如數據的完整性和數據輸入順序,程序員在自檢時不會發現,交付給用戶時,則會明顯暴露。測試的過程也是係統不斷改進、不斷完善的過程,同時要根據用戶的意見對係統做局部性調整、補充。
經過測試之後,係統可以正式交付用戶試運行。試運行時,如果存在舊係統,則兩套係統並行運行一段時間,以考察係統的穩定性和可靠性。
係統轉換是當係統正式投入使用,需要將舊係統的數據移植到新係統,以保持數據處理的連續性。
在係統實施期間要準備交付給用戶的文檔,如各種技術文件、使用說明書、安裝說明書、操作指南、維護指南和用戶使用意見等。
有的係統要通過專家進行評審,需要準備參加評審的資料,並通過專家評估。至此,一個管理信息係統的開發就完成了,可以投入正式使用。
(三)生命周期法的優缺點
1.優點
生命周期法強調項目管理,注重管理策略和開發策略兩個部分。在管理策略部分強調係統開發的規劃、進度安排、評估、監控和反饋;在係統開發策略中強調係統結構、分階段進行、充分利用開發者的實際經驗、係統的標準化管理。
生命周期法有嚴密的組織機構和形式,人員分工明確,有係統分析員、設計員、程序員和測試員及用戶參與人員。各種人員工作職責不同、任務明確、服從統一的領導,即由項目負責人統一協調開發。
采用由上向下的設計方法,係統性強,總體結構和層次都十分清晰。各種文檔資料齊全,編寫規範,便於標準化管理。
由於生命周期法從總體上、全局上展開開發工作,根據總體目標製定方法和步驟,特別適合於開發大型的、複雜的管理信息係統。
2.缺點
生命周期法把係統分析報告作為係統設計和實施的依據,也作為係統驗收的唯一依據,以一種一成不變的模式開發,不能適應計算機技術和管理模式的變化的需要,尤其是現在管理因素變化較大,這種方法應變性較差的缺點就暴露無遺了。
在係統開發的初期,用戶對計算機管理的知識和信息需求概念十分缺乏,很難配合係統分析人員的規劃開發工作;而係統分析員對管理業務流程知之甚少,在係統模型和功能需求方麵帶有個人的主觀性,很難對係統分析作出準確的描述。
開發周期過長也是該方法的主要缺點,而用戶要求能夠在最短時間內可以投入使用,而且用戶隻是在開發的後期參與係統的測試工作,對係統的改進意見不容易被接受和采納,雙方在溝通協調方麵極易出現分歧和矛盾。
二、原型法
針對生命周期法存在的問題,尤其是出現麵向對象、可視化編程軟件等開發工具以後,人們又提出了原型法。這種方法基本思想是:對係統功能需求做簡單快速分析後,利用先進的開發工具,盡快地建立一個原始模型係統,並提交給用戶評價、試用、征求用戶的意見,在使用過程中不斷進行修改和完善,直至用戶滿意為止。如果開始建立的原型與實際相差甚遠,則拋棄之,重新建立一個模型。
(一)原型法的提出
原型法的提出具有一定的曆史背景。在早期計算機的應用範圍比較狹小,運用生命周期法可以比較清楚地描述用戶的功能需求。管理信息係統的應用範圍就比較廣闊,主要應用在工作流程比較清晰的地方,如財務、倉庫、設備管理上,用戶對其工作比較了解,可以描述清楚其功能的需求,而其他的管理流程其功能需求就不一定能描述清楚。管理信息係統的應用是用計算機處理過程代替手工操作,開始時用戶和開發人員對其功能需求可以很簡單、明確地了解,利用原型法向用戶提供一個設計比較簡單的係統方案。但是,隨著計算機應用的普及,管理的深度和廣度不斷擴大,甚至涉及到用戶都比較陌生的領域,采用生命周期法,則遇到很大的困難,另外還有如下製約因素:
計算機硬件價格不斷下降,性能不斷提高,軟件費用超過了硬件的費用。由於采用生命周期法開發周期長、涉及麵很寬、投入的人力很多、手續複雜,造成設計成本居高不下,而用戶要求降低軟件開發費用。
隨著市場競爭的日益加劇,要求企業的經營模式靈活多變,管理模式經常發生相應的調整,經營的產品向著批量小、多品種的方向發展。這就要求管理信息係統的開發縮短設計周期,以適應這種管理模式的變化,並要有足夠的靈活性適應經營管理的變化。采用生命周期法,從一開始就製定一個框架,以後所有工作都圍繞其進行和展開的,若在開發期間發生變化,很難實現有效的調整。
按照生命周期法,必須做到所有的用戶需求都是事先可知的,但是事實上恰恰相反,由於用戶人員的計算機知識和業務素質的限製,用戶在初始階段,對於計算機管理什麼,如何管理並不十分理解,不可能要求用戶有非常詳盡的功能需求清單,隻是注重最後能得出什麼結果,許多要求和功能是係統分析人員幫助加上去的,所以並非所有的功能需求都可以事先定義。當係統提交給用戶使用時,用戶逐漸對其性能有所了解,這時,往往要求提出很多改進意見,有些則是結構上的改變,這也是係統分析人員始料不及的,如果采用生命周期法,這種結構性的改變是不能容忍的,勢必造成開發人員和用戶的分歧、對立。
采用生命周期法時,在設計階段和主要的測試階段,開發人員基本上沒有與用戶溝通,用戶隻是在開始分析階段,介紹係統的功能需求和工作流程,最後再在試運行期間參與進來,這時用戶的意見,隻能作為參考,不可能做結構性變動,即用戶的意見不能得到有效貫徹,會造成用戶對係統的抵觸情緒。
(二)原型法的理論依據
原型法是針對生命周期法的種種問題而提出來的,其基本理由如下:
1.功能需求定義的要求
並非所有功能需求都是事先定義的,用戶的計算機知識缺乏和開發人員的專業管理知識較少是事先定義所有功能需求的主要障礙。用戶隻有在接觸一個具體的係統之後,才能了解自己的要求,指出係統存在的問題和缺點。開發人員也隻有不斷地了解用戶,才能徹底地清楚用戶要求什麼,才能準確地了解業務的流程,有許多業務處理過程不是一次、兩次調查就能了解全麵的。2.用戶和開發人員溝通的要求
用戶和開發人員需要溝通,讓用戶盡早看到一個模型,針對這個模型提出意見,不管這個模型是否有效,通過這個模型逐步了解用戶的功能需求。原型法為用戶提供一個生動的實際模型,讓用戶品頭論足,在不斷修改中得到完善。與用戶的溝通過程,是雙方提高的過程,開發人員應促使用戶提高係統的管理功能和層次,真正達到滿足管理和輔助決策支持的要求。
3.先進的係統開發工具
計算機軟件技術發展很快,目前許多高級語言都可以充當建造工具,如VB、VC、Delphi、PowerBuilder等計算機語言和麵向數據庫編程語言,這些語言具有麵向對象、可視化的特點,使開發人員能夠快速、便捷地建立係統模型和程序界麵,針對用戶的意見也能夠非常方便地修改。
4.係統存在反複修改的要求
反複修改是不可避免的。即使采用生命周期法,也需要不斷進行修改。任何軟件都不可能十全十美,都要進行修改,但是采用生命周期法,做大的修改,比較困難,甚至難以接受。采用原型法,可以不斷根據用戶意見修改,不僅可以做局部的修改,還可以做結構性的修改。
5.由下向上係統設計的要求
原型法是一種由下向上的設計方法,在製定大體框架的基礎上,先實現部分功能,然後根據需要逐步擴展,添加和完善係統功能。由於采用模塊化設計方式,可以保證這些模塊的功能準確性,從而避免功能不能達到要求的危險。
(三)原型法的優缺點
1.優點
原型法的優點是大大縮短了係統開發周期、降低了軟件的開發成本; 用戶與開發人員始終處於良好合作的狀態,用戶意見得到及時的貫徹和實施;用戶最後得到的產品就是其最滿意的係統;在開發期間,因管理模式的變化,可以很靈活地予以調整。
2.缺點
原型法比較適合於中小型係統的開發,對於大型係統的開發,做普遍的、大麵積的反複修改不太現實;反複修改,工作比較繁重;在係統分析上,因為對係統總體把握不夠,造成結構性變化,會影響許多方麵,容易出現隱患。
三、生命周期法和原型法的結合
在開發管理信息係統時,采用生命周期法,還是原型法,一直是管理信息係統理論界爭論的焦點,堅持生命周期法的人們認為原型法沒有從係統的角度考慮,是一種倒退;而堅持原型法的人們認為,生命周期法過於理想化,是完美主義。
實際上,這兩種方法都有一定優點,也有局限性,適用的範圍也有所不同。生命周期法側重於項目管理和控製,對於大型的、專業的軟件公司,是必須的。對於大型軟件沒有相應的管理辦法和措施,將造成項目的失控、人力和資源的浪費。原型法側重於項目實現的過程,對於一些小型的、簡單的項目,無需投入較多的人力,憑借開發人員對項目的理解和經驗,也能夠很好地完成。我們大多數軟件開發人員實際上更樂於采用原型法,在很多情況下,在僅僅拿到用戶提供的一些報表和用戶基本要求的情況下,往往憑借本人經驗,先進行程序設計,再逐步完善。在這裏開發人員的素質和經驗是決定因素,要求對係統的總體結構和數據庫結構有比較好的把握程度,可以用一句話形容:什麼都可以改,數據庫結構不能動。
將生命周期法和原型法結合起來是很好的方法,可以相互取長補短,起到互補的作用和功效。這樣,既可以使項目得到良好控製和監督,又可以加快項目的開發進度,縮短開發周期。
具體結合的方法很多,關鍵是選擇一個合適的“切入”點。筆者認為係統分析可以采用生命周期法,運用生命周期法許多成功的分析方法和工具,進行係統的調查研究,在將係統設計和係統實施的程序設計結合起來,利用原型法分步實施,係統實施中測試工作和係統試運行仍然采用生命周期法。這樣,既綜合了兩方麵的優點,又彌補兩者的不足。
這種結合不是兩種方法簡單的合並使用,而是係統開發設計上觀念的改變,首先它強調了以客戶為中心,以人為本的一種開發原則,依然以總體目標為係統的出發點,當研究的對象需求尚處於一種不明朗、模糊的情況下,運用原型法進行係統概述設計,製定一個用戶可以接觸到的實際模型,讓用戶根據這個模型加深對係統了解和認識,逐步提出需求,再根據用戶要求進行設計,逐漸完善。
這裏係統分析的作用仍然是非常重要的,尤其當用戶管理比較混亂時,必須通過分析製定一個框架,不僅為項目確定設計的目標,也為企業製定管理規範,幫助它提高管理水平,這樣才能使企業順利地實現計算機的信息化管理。
由於係統設計和程序編碼設計的結合,實際上就是盡早地進入實施階段,並要求用戶參與係統開發的全過程,與用戶良好的溝通,容易彌合雙方的分歧,在一些關鍵問題上達到共識。
這裏,總體結構設計和數據庫設計是程序編碼的前提,盡可能做到數據庫結構設計合理,在以後的工作中少變動。
係統的測試和試運行的過程隨之簡化和縮短,係統提交給用戶使用的過程實質上就是一種實際檢驗,再通過專業人員的測試,便於檢驗係統的隱患和缺陷,即Bug。
對於各種文檔的編寫工作也可以適當簡化,尤其是係統設計的文檔,沒有必要準備非常齊全,必要的技術文檔如數據庫結構文檔、模塊結構文檔和係統測試數據文檔等保存完備就可以了。
第二節 係統詳細調查
飯店管理信息係統的調查工作是開發工作的第一步,為後麵開展的係統分析工作奠定一個切實可行的基礎,幫助建立一個係統模型。實際的調查工作分為初步調查和詳細調查兩個步驟。初步調查前麵已介紹過了,這裏主要介紹詳細調查的內容。
一、係統調查的任務
初步調查的任務是對係統的可行性進行論證,從技術、資金、設備和時間等諸方麵探討,以可行性報告形式提交給企業主管領導決策。
詳細調查是項目正式啟動之後所要完成的任務,即了解用戶的數據流程和信息要求,對選定的對象進行詳細調查和分析、明確係統目標、提出初步模型和完成係統調查報告。主要有如下任務:
(一)管理業務流程的調查
管理信息係統需要遵循現有的管理業務程序和規範,因此在調查時需要按照原有的管理信息的流動過程(當然,當前管理模式如果不合理,係統分析員可以有義務幫助企業設計一個合理的管理模式,提高管理水平),逐個地調查所有環節的處理任務、處理內容、處理順序和對處理時間的要求,弄清各個環節需要的信息、信息來源、經由去向、處理方法、計算方法,提供信息的時間和信息形態(報表、屏幕顯示)等等。