第四節 係統實施與維護
一、係統實施
係統實施階段在管理信息係統的開發時間和人力投入上都占有相當大的比重,是係統的最後實現的關鍵步驟。該階段包括程序設計與調試、係統測試、項目管理、人員培訓、係統轉換和係統評價等方麵內容。
(一)程序設計要求
係統設計之後,將整個係統劃分成一個個具體的功能模塊,通常把各個模塊和子係統分配給多個程序員同時進行設計,為了便於係統項目管理,縮短開發時間和費用,避免因人員變動,引起程序設計和係統的脫節,應當按照程序設計的標準化原則,製定程序設計實施細則,有如下要求:
所有程序員使用統一的語言編寫程序,例如:VB、VC++、Delphi、PowerBuilder、VFP等高級語言和麵向數據庫的編程語言。
按照程序設計單的要求編寫程序,在程序中應有較大篇幅和內容用於注釋說明,說明程序的設計意圖,定義的變量的用途、意義和作用。對於公共變量的使用,指出原始數據和最終數據的變化情況。
對采用的算法要給出流程圖,並有詳細的說明,驗證其正確性。
全局變量、公共程序、過程及函數發生變化,要及時通知到每一個程序員。
程序設計應將正確性、可運行性放在首位,界麵設計是第二位的,在保證正確運行的基礎上做界麵修飾。程序要求簡潔,避免留有“計算機垃圾”,簡潔的程序有利於提高運行效率。
程序的整體設計風格應當是一致的,操作方式和界麵相似。
(二)工作模式
工作模式取決於采用的數據庫和軟件運行方式。飯店管理信息係統絕大多數運行於網絡和UNIX環境下。早期係統,如FoxBase和FoxPro將程序和數據庫存放在服務器上,工作時將程序和數據庫從服務器上調入本地機內存中運行,網絡傳輸流量很大。當管理信息係統的操作係統采用Windows時,傳輸的數據更多,因為流量過大,形成網絡“瓶頸”。
為了減少網絡的壓力,大型數據庫管理係統采用客戶機/服務器工作模式,前台本地機運行應用程序,數據庫操作由位於網絡服務器上的數據庫管理係統完成,甚至由服務器端的“存儲過程”執行批量的操作,大大提高了運行效率。由於應用程序不直接管理和操縱數據庫,當訪問數據庫時,發送需要服務器執行的命令,服務器執行命令之後,將結果返回給前台的應用程序,這樣可以大大減輕網絡的負荷。
隨著Internet的發展,越來越多的飯店開展網上預訂的工作,客人使用瀏覽器就可以閱讀飯店的網站,在網頁上選擇客房類型,填寫客人信息,輸入預訂到達的日期等預訂信息。實際上這也是一種管理信息係統,隻不過軟件形式和網絡環境不同。利用網頁編寫的應用程序就是動態網頁+數據庫。這種Web工作方式,又稱為瀏覽器/服務器(B/S)模式。今後,會有更多的管理信息係統采用這種模式。
(三)結構化設計
1.模塊設計的結構化設計
模塊設計的結構化設計是管理信息係統開發中最重要的方法,根據係統模型將係統功能劃分成若幹個子係統,將子係統細分成若幹個功能模塊,每個模塊完成特定的功能。
模塊還可以帶有下級子模塊。模塊的組織結構便於建立應用程序的菜單與下級菜單和子菜單的關係。模塊和模塊之間的結構可用下述標準評價:
耦合度。它是描述模塊之間依賴和影響的指標。模塊之間,同級模塊和上下級模塊之間不會存在絕對的獨立,都是相互影響和依存的。我們用耦合度考核模塊對其他模塊傳遞的參數和公共數據時產生的影響。如全局變量的影響,依賴程度越大,耦合度越大。結構化設計要求耦合度保持比較小的範圍,盡可能少使用全局變量和公共數據。
聚合度。它是用以表示模塊內部完成的功能的專一性。要求在一個模塊中完成的功能比較專一,這樣各個處理步驟之間聯係密切。具有高聚合度的程序,使用人員對模塊比較容易理解,也便於維護人員進行維護。
模塊的深度和寬度。
深度指從上向下具有幾層模塊,寬度指同級模塊的個數。好的應用程序的深度一般不應當超過3層。當同級模塊過多時,可以將部分模塊從這一級中分離出去,移到另一個上級模塊中去,呈現一種扁平化的模塊結構。
2.結構化程序設計
在程序設計時更要注重結構化,所慶幸的是,目前我們采用的高級語言和麵向數據庫編程語言都是結構化的。程序中的功能都由一係列過程和函數實現,程序中采用的分支語句、循環語句都是結構化的。即使這樣,在程序設計時,仍然要以“一個入口一個出口”為原則,尤其是程序的結束部分。現在結構化語言做到了一個入口,即程序的起始部分和進入部分。出口是指程序的結束,或返回部分,在一大段的程序中,有多種條件選擇,可在不同位置根據不同的條件結束程序,往往會出現多個出口,這對於程序理解和維護都帶來一定的困難,因此要求在統一的位置結束程序或返回處理的結果,這就是一個出口的含義。
在某些高級語言中還保留無條件跳轉的命令,即goto語句。該語句將破壞程序的結構化,建議盡可能不使用該命令。
二、係統測試
任何一個管理信息係統和應用程序,都要經過程序調試和係統測試。測試是係統開發的一個重要環節,目的是檢驗軟件的正確性,發現問題並加以排除。測試工作繁重而複雜,一般將整個測試過程分為程序調試、模塊結構測試、係統測試和交驗測試等步驟。
(一)程序調試
每個程序員在編寫程序之後都會針對程序要求的功能,進行一係列測試。在編寫程序時會出現語法錯誤和邏輯錯誤。一般來說,語法錯誤比較容易發現,在編譯和運行時,係統會自動檢查並指出錯誤的位置和類型。難以發現的是邏輯上的錯誤,語法上不存在問題,但是,程序運行結果不是預期設想的。對於複雜程序應仔細核對程序流程,檢查數據流向是否正確,在程序中用設置斷點方式檢查中間結果,以檢查問題出現的位置。
程序調試工作主要通過數據進行,可使用正常數據和異常數據(錯誤)兩種:正常數據用於檢驗係統處理、計算、輸出等功能是否正確,應達到預期目的;異常數據主要用於考核係統抗錯誤的能力,係統對錯誤的數據應給出相應的判別,並指示如何糾正。係統抗錯誤的能力弱,運行時將出現不穩定現象,容易產生錯誤的結果,甚至造成係統癱瘓。