正文 第7章 飯店管理信息係統的開發(3 / 3)

數據庫的設計要根據係統運行周期內的數據發生次數,以及備份的份數,估計係統硬件設備的存貯容量,取最大安全的經濟值。

由於管理信息係統大多數運行在網絡環境下,即同一個係統可能有多個用戶同時在使用,共享數據庫資源。因此存在數據庫競用的情況,所以應在係統設計時充分考慮到如何避免競用數據庫時,造成係統“死鎖”現象,規定數據庫調用順序和死鎖處理方式。

第四節 係統實施與維護

一、係統實施

係統實施階段在管理信息係統的開發時間和人力投入上都占有相當大的比重,是係統的最後實現的關鍵步驟。該階段包括程序設計與調試、係統測試、項目管理、人員培訓、係統轉換和係統評價等方麵內容。

(一)程序設計要求

係統設計之後,將整個係統劃分成一個個具體的功能模塊,通常把各個模塊和子係統分配給多個程序員同時進行設計,為了便於係統項目管理,縮短開發時間和費用,避免因人員變動,引起程序設計和係統的脫節,應當按照程序設計的標準化原則,製定程序設計實施細則,有如下要求:

所有程序員使用統一的語言編寫程序,例如:VB、VC++、Delphi、PowerBuilder、VFP等高級語言和麵向數據庫的編程語言。

按照程序設計單的要求編寫程序,在程序中應有較大篇幅和內容用於注釋說明,說明程序的設計意圖,定義的變量的用途、意義和作用。對於公共變量的使用,指出原始數據和最終數據的變化情況。

對采用的算法要給出流程圖,並有詳細的說明,驗證其正確性。

全局變量、公共程序、過程及函數發生變化,要及時通知到每一個程序員。

程序設計應將正確性、可運行性放在首位,界麵設計是第二位的,在保證正確運行的基礎上做界麵修飾。程序要求簡潔,避免留有“計算機垃圾”,簡潔的程序有利於提高運行效率。

程序的整體設計風格應當是一致的,操作方式和界麵相似。

(二)工作模式

工作模式取決於采用的數據庫和軟件運行方式。飯店管理信息係統絕大多數運行於網絡和UNIX環境下。早期係統,如FoxBase和FoxPro將程序和數據庫存放在服務器上,工作時將程序和數據庫從服務器上調入本地機內存中運行,網絡傳輸流量很大。當管理信息係統的操作係統采用Windows時,傳輸的數據更多,因為流量過大,形成網絡“瓶頸”。

為了減少網絡的壓力,大型數據庫管理係統采用客戶機/服務器工作模式,前台本地機運行應用程序,數據庫操作由位於網絡服務器上的數據庫管理係統完成,甚至由服務器端的“存儲過程”執行批量的操作,大大提高了運行效率。由於應用程序不直接管理和操縱數據庫,當訪問數據庫時,發送需要服務器執行的命令,服務器執行命令之後,將結果返回給前台的應用程序,這樣可以大大減輕網絡的負荷。

隨著Internet的發展,越來越多的飯店開展網上預訂的工作,客人使用瀏覽器就可以閱讀飯店的網站,在網頁上選擇客房類型,填寫客人信息,輸入預訂到達的日期等預訂信息。實際上這也是一種管理信息係統,隻不過軟件形式和網絡環境不同。利用網頁編寫的應用程序就是動態網頁+數據庫。這種Web工作方式,又稱為瀏覽器/服務器(B/S)模式。今後,會有更多的管理信息係統采用這種模式。

(三)結構化設計

1.模塊設計的結構化設計

模塊設計的結構化設計是管理信息係統開發中最重要的方法,根據係統模型將係統功能劃分成若幹個子係統,將子係統細分成若幹個功能模塊,每個模塊完成特定的功能。

模塊還可以帶有下級子模塊。模塊的組織結構便於建立應用程序的菜單與下級菜單和子菜單的關係。模塊和模塊之間的結構可用下述標準評價:

耦合度。它是描述模塊之間依賴和影響的指標。模塊之間,同級模塊和上下級模塊之間不會存在絕對的獨立,都是相互影響和依存的。我們用耦合度考核模塊對其他模塊傳遞的參數和公共數據時產生的影響。如全局變量的影響,依賴程度越大,耦合度越大。結構化設計要求耦合度保持比較小的範圍,盡可能少使用全局變量和公共數據。

聚合度。它是用以表示模塊內部完成的功能的專一性。要求在一個模塊中完成的功能比較專一,這樣各個處理步驟之間聯係密切。具有高聚合度的程序,使用人員對模塊比較容易理解,也便於維護人員進行維護。

模塊的深度和寬度。 深度指從上向下具有幾層模塊,寬度指同級模塊的個數。好的應用程序的深度一般不應當超過3層。當同級模塊過多時,可以將部分模塊從這一級中分離出去,移到另一個上級模塊中去,呈現一種扁平化的模塊結構。

2.結構化程序設計

在程序設計時更要注重結構化,所慶幸的是,目前我們采用的高級語言和麵向數據庫編程語言都是結構化的。程序中的功能都由一係列過程和函數實現,程序中采用的分支語句、循環語句都是結構化的。即使這樣,在程序設計時,仍然要以“一個入口一個出口”為原則,尤其是程序的結束部分。現在結構化語言做到了一個入口,即程序的起始部分和進入部分。出口是指程序的結束,或返回部分,在一大段的程序中,有多種條件選擇,可在不同位置根據不同的條件結束程序,往往會出現多個出口,這對於程序理解和維護都帶來一定的困難,因此要求在統一的位置結束程序或返回處理的結果,這就是一個出口的含義。

在某些高級語言中還保留無條件跳轉的命令,即goto語句。該語句將破壞程序的結構化,建議盡可能不使用該命令。

二、係統測試

任何一個管理信息係統和應用程序,都要經過程序調試和係統測試。測試是係統開發的一個重要環節,目的是檢驗軟件的正確性,發現問題並加以排除。測試工作繁重而複雜,一般將整個測試過程分為程序調試、模塊結構測試、係統測試和交驗測試等步驟。

(一)程序調試

每個程序員在編寫程序之後都會針對程序要求的功能,進行一係列測試。在編寫程序時會出現語法錯誤和邏輯錯誤。一般來說,語法錯誤比較容易發現,在編譯和運行時,係統會自動檢查並指出錯誤的位置和類型。難以發現的是邏輯上的錯誤,語法上不存在問題,但是,程序運行結果不是預期設想的。對於複雜程序應仔細核對程序流程,檢查數據流向是否正確,在程序中用設置斷點方式檢查中間結果,以檢查問題出現的位置。

程序調試工作主要通過數據進行,可使用正常數據和異常數據(錯誤)兩種:正常數據用於檢驗係統處理、計算、輸出等功能是否正確,應達到預期目的;異常數據主要用於考核係統抗錯誤的能力,係統對錯誤的數據應給出相應的判別,並指示如何糾正。係統抗錯誤的能力弱,運行時將出現不穩定現象,容易產生錯誤的結果,甚至造成係統癱瘓。

(二)模塊結構測試

模塊結構測試也稱為軟件的“分調”。應用程序是按功能分成模塊的,一個模塊可以有一個以上的程序組成,所以程序調試成功以後,要按功能將其包含的所有程序按其邏輯結構聯係起來調試,對內部的局部數據結構、調用數據庫、主要邏輯路徑、輸入輸出接口參數和界麵進行測試,目的是檢驗模塊之間的調用和控製關係和數據處理功能、性能和質量,以證實其工作是否滿足設計要求。

目前,多數應用程序采用麵向對象的、圖形化的編程語言,每個界麵構成了一個最基本的模塊,這種情況下的測試仍屬於程序級調試。

(三)係統測試

係統測試是由係統設計者和專門的測試小組進行,首先將所有子係統和模塊裝配起來,在軟件集成環境下測試。有如下兩種測試方法:

1.外部結構測試

外部結構測試是主控程序與調用程序間的測試,著眼於模塊外部結構,暫不考慮內部的邏輯結構,針對軟件界麵和功能測試,先將所有控製程序和各功能程序相連的接口(界麵)“短路”,即暫不執行功能程序,使用測試驅動程序生成測試數據,用直接送出的數據代替處理結果。這種測試的目的不是檢驗處理結果的正確性,而是檢驗內部的控製通道和參數傳遞的正確性。

2.全麵測試

全麵測試又稱為“總調”或“係統測試”,全麵了解子係統之間的內部邏輯結構,針對所有功能的路徑進行測試,主要是檢查係統的共享數據和通信數據是否正常。

總調是按照係統實際運行的方式進行測試,在測試過程中發現實際運行中可能會出現的問題,在測試中應安排一定數量的數據,通常稱為“模擬數據”,實現從輸入到輸出的全過程。

在網絡環境下總調,應在多個工作站上同時進行,不僅應模擬同一個模塊為多個用戶同時使用,還要製定詳盡的交叉測試表,同時在不同工作站上使用不同的模塊。這是一項非常艱巨和繁重的工作。

關於係統測試,國外有些專門用於測試的軟件,可以根據程序的流程,自動進行測試,並能夠完成檢查所有的邏輯路徑,可以發現邏輯上錯誤和“死代碼”,即永遠不會被執行的程序。

(四)交驗測試

上述測試過程中基本上是在軟件設計單位的環境下進行的,在正式交付給用戶使用之前,必須在客戶的實際環境下做交驗測試,也是按照用戶的需求對軟件做全麵的最終測試。

通常,交驗測試由用戶單位的人員進行,在測試之前應準備操作手冊、製定操作規程,對操作員進行培訓,熟悉軟件的操作方式和操作習慣,用模擬數據或實際數據進行測試。

係統通過測試並試運行,通常要經過3~6個月的試運行期考核,在此期間對係統中出現的問題進一步解決,完全穩定後可正式移交給用戶使用。有的項目需要組織專家對係統評定,方能正式投入使用。

在測試過程中,應作詳細的工作記錄,測試完成後寫出完整的技術文件。測試時,尤其要注意偶爾出現的問題和差錯,由於不經常發生,往往容易疏忽。經常性錯誤比較容易解決,偶然性錯誤比較隱蔽,很可能是正式投入使用時的關鍵性問題,應認真對待。記錄任何問題發生的條件和當時出現的狀態,對於以後更正工作和維護都是有很大的幫助,同時將測試資料記載下來,作為文檔保存,這對開始新一輪的設計,也是非常有價值的資料。

三、係統收尾工作

項目結束之前,要認真總結,寫出全麵的書麵技術文檔。保留技術文檔,目的是為了交流和以後軟件的升級。有些文檔需提交給用戶,或準備係統評審。書寫技術文件的工作往往被忽視,而在管理信息係統的開發過程中,起到相當重要的作用,在程序設計人員之間可以進行交流,並在較長時間以後,還可起到幫助回憶的作用。對係統維護、功能擴充、新版本設計,都是極為重要的依據。

需要準備的文檔文件包括:

係統文件:協議書、可行性報告、備忘錄、調查報告、原始報表等非技術文件;係統分析、設計、數據庫結構和調用注釋、輸入輸出設計、測試記錄、數學方法、公式、控製點等技術性文件。

運行文件:操作員手冊、係統安裝和運行手冊等。

用戶文件:提交給用戶的工作程序手冊、使用說明、技術手冊等。

管理文件:係統統計和計劃圖表等。

使用新係統取代舊係統,即係統轉換。如果以前沒有應用管理信息係統,則可認為舊係統為手工處理係統。通常采用新舊係統並行一段時間,觀察和比較兩個係統的處理結果,經考核達到設計目的後,即可進行係統的轉換,正式啟用新係統。如果希望新係統中保留舊係統中的曆史信息,轉換之前使用接口程序複製舊係統的數據。如屬於升級係統,通過自動升級更新程序更新數據,必要時進行數據格式的轉換。如果是手工係統,則將手工處理的數據作為係統的初始化數據,輸入到新係統中來,或僅取需要的部分數據作為原始數據。

四、飯店管理信息係統的維護

(一)維護的基本概念

飯店管理信息係統經過係統測試,正式投入運行之後,就進入了一個比較長時間的使用期,為了保證整個係統的運行效率和工作效果,需要進行各種係統維護工作。係統維護是為係統提供安全保障,減少係統的硬件和軟件的故障是維護工作的主要目的,同時也要對係統安全性給予極高的重視,防止失密,避免非法用戶的侵入,造成對係統的破壞和經濟上的損失。

在許多人看來,維護工作是管理信息係統投入使用之後的事情,實際上長期從事計算機信息管理的專業人員的經驗告訴我們,維護始於係統的設計定義。如果在係統建設早期的係統定義和規劃不良,就存在係統運行的不安全因素和故障隱患,這時,即使計算機管理部門的日常工作再努力,也無濟於事和事倍功半。所以在規劃和設計係統以及係統運行時,應當將係統的安全性、可靠性、運行效率都列入計劃,才能從根本上提高維護工作的水平和質量。

(二)維護工作的分類

飯店管理信息的維護工作設計的範圍非常廣泛,有硬件方麵的,也有軟件方麵的,有自然因素的,也存在人為操作方麵的。

1.硬件係統

所有硬件都屬於電子設備,電子設備從原理上講都存在使用壽命,尤其是在飯店這樣24小時工作的情況下,設備的自然老化和環境的影響是造成硬件係統性能下降的主要因素。

係統硬件主要由服務器、計算機和網絡設備組成。其中安全等級最高的是服務器,其次是網絡設備,如交換機、集線器等,最後是計算機。

服務器是硬件係統的核心,一旦服務器癱瘓,則整個網絡係統就不能工作,嚴重後果是所有數據丟失,造成不可挽回的損失。所以服務器的維護工作是重中之重。

網絡設備是服務器和計算機連接的橋梁,一旦網絡設備出現故障,則會使計算機和服務器的通訊中斷,從而影響企業經營業務的處理。

計算機的故障率是最高的。由於處於末端,其故障對係統運行影響不大,僅影響某一部門的業務處理環節,最直接的辦法是更換一台計算機。

為了保證服務器安全可靠的工作,應為之提供較好的工作環境、合適的溫度、濕度,配備不間斷電源(UPS電源)。

2.軟件係統

軟件出現的故障比較多,因素也十分複雜,維護工作涉及到很多方麵。數據庫係統和程序設計的質量是其內在的因素,人為操作的影響和病毒、黑客的破壞是外部因素。

早期的飯店管理信息係統采用FoxBase數據庫係統,它的後續產品是FoxPro,由於小型簡單,常用於一些要求不高的場合。這種數據庫的安全性比較差、運行效率比較低。由於應用程序直接對數據庫讀寫操作,所以數據庫所在網絡目錄中的所有權限都要賦予操作者,特別是當應用程序正在工作時,文件處於打開狀態,如果突然停電和非正常關機,將破壞數據文件鏈表,造成極為嚴重的後果。FoxBase數據庫的數據處理都在前台進行,網絡數據流量很大,在數據庫中記錄非常多的情況下,處理速度明顯降低。

現在,飯店管理信息係統多數采用大型網絡數據庫,如Sybase、MS SQL Server、Oracle、Informix等,應用程序不是直接對數據庫操作,安全性由數據庫管理係統決定,而且采用客戶機/服務器(C/S)工作模式,運行效率很高。因此數據庫故障問題有了很大改善,即使用戶沒有退出應用程序,直接關機,也不會對數據庫造成任何影響。

程序設計出現的最大的問題在於數據輸入,輸入時應保證數據的完整性、唯一性,所以程序的控製點應放在輸入,對於不完整的數據禁止寫入數據庫,並且給出相應的提示信息。有的應用程序沒有足夠的判斷措施,致使不完整的數據或者重複數據寫入數據庫。

有的應用程序的權限不清,有關係統代碼、項目編碼定義、增加、刪除沒有專門管理,一旦一個已經使用的代碼被修改和刪除,將產生很大的影響,造成數據的混亂。

數據庫信息的維護。數據庫經過長期的使用,數據量劇烈增長,影響數據庫的運行效率,對於不用的過時的信息作定期的刪除或調整是必需的。

防止計算機病毒的影響。計算機病毒對飯店管理信息係統和計算機係統危害是很大的,病毒的傳播主要通過軟盤、光盤,最近來自Internet的網絡病毒非常猖獗,應當製定相應的管理製度,不使用未經允許的軟盤、光盤,並且定期檢查和消除病毒。尤其要管理好計算機維護部門的工作人員,他們工作權限很大,可以接觸到整個係統,一旦他們使用的計算機攜帶病毒,將很快在整個網絡中擴散。

防止計算機黑客的入侵。當係統通過內部網連接到Internet上,計算機黑客就將利用網絡種種漏洞入侵或攻擊係統,這時應利用防火牆將內部和外部隔離,安全、合理設置用戶對內和對外訪問,維護信息的保密性。

3.飯店管理信息係統的維護

飯店管理信息係統的維護是係統日常工作,其目的是保證係統正常的運行以及出現硬件、軟件故障時進行緊急處理。係統維護也是管理信息係統的功能之一,通過專門的操作員執行有關的工作。主要維護工作如下:

操作員的管理,在係統中就是操作用戶管理,為每個係統用戶定義操作員的用戶名、密碼、操作權限。有些係統的權限設定極為詳細,給出一個所有功能的清單,規定某個操作員可以執行一些指定的功能,體現了操作員的具體分工。係統對操作員是通過用戶名和密碼識別的,最主要的是密碼,定期修改密碼對於經常使用係統的人員是非常必要的,要製定密碼設定的規則,如長度、字母和數字混合使用,不能使用眾所周知的單詞、生日、電話號碼作為容易試探破解的密碼。尤其管理好超級用戶的密碼。

數據庫備份與恢複。管理信息係統的價值不僅是它的管理功能,更重要的是長時間積累下來的曆史數據和當前數據,一旦數據丟失將造成無可挽回的損失。對於服務器上存放的數據庫數據應每天做一次備份,每周做一次完全備份,其餘幾天采用增量備份。備份數據通常采用磁帶機,或用其他服務器的硬盤備份,一旦服務器硬件和係統發生崩潰現象,更換服務器和重新安裝軟件之後,將備份的數據複製到係統,可以將損失降低到最低程度。

應對措施。為了防止係統突然崩潰,應實現製定應急處理的措施,根據出現的不同問題采取不同而有效的策略,將係統恢複的時間控製在最短的程度之內。計算機的維護人員應具有極強的事故判斷和應對的能力。

適應性維護。係統經過長期使用,隨著管理體製的變化,係統內部信息的設定、代碼的擴充,新的管理模塊的加入,應保證係統能夠適應新的管理體製和模式的變化。

飯店管理信息係統的維護工作涉及許多方麵,應當做到防患於未然、未雨綢繆,將各種隱患消滅於萌芽狀態,否則出現問題就將造成重大損失。

思考與練習

1.試敘述管理信息係統開發的具體步驟。

2.試敘述生命周期法和原型法的開發特點和適用場合。

3.係統分析的主要任務是什麼?目前采用哪幾種係統分析的方法?

4.係統設計的主要任務是什麼?目前采用哪幾種係統設計的方法?

5.什麼是係統實施?係統實施的內容有哪些?

6.什麼是係統測試?係統測試分哪幾種類型?

7.管理信息係統的係統維護主要有哪些內容?飯店在係統維護中應注意些什麼?