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

(二)報表分配和生成的調查

每個企業都有各種不同的報表要求,如會計的資產負債表、損益表、飯店客房使用情況彙總表、來店旅客日報表、離店旅客日報表、訂房預報表等等,這些報表通過管理信息係統統計之後而生成的。對於這種報表,需要分析清楚由哪些數據構成,出自何方、生成方式和方法。

原始單據,如飯店客房和餐廳物資部門的材料采購發票、入庫單和出庫單,個人和團體客房登記表、各種服務性、交通收費單據,這種報表是管理所需要的原始數據。對於這些報表,要分析每種報表可以構成哪些數據,這些數據與哪些部門產生聯係,數據的最終流向何處、如何處理等。

報表是係統調查的第一手資料,通過對報表的分析,可以確定係統所需要的數據的形式、數據類型、值的大小及範圍,進而幫助係統分析員確定數據庫的結構,建立係統的輸入/輸出的模式。

(三)係統運行環境的調查

運行環境包括在企業內部的組織結構、人員配備及分工;現有計算機網絡狀況、操作係統和軟件配置情況以及操作人員的基本素質;企業管理狀況和信息化程度等方麵的調查。

另外,還需要調查係統與外部的聯係,哪些數據是輸出到企業外部的。

(四)編製係統調查報告

根據調查結果彙總成調查報告,它是調查工作的總結,又是下一步分析工作的基礎。

二、 係統調查中采用的方法

在調查中通常采用如下方法:

(一)調查表

根據係統所要了解的情況,設計調查表,以問答方式,具有很強的針對性,被調查對象選擇或填寫答案。調查表收回後,根據答案進行彙總。調查對象較多時,可以比較客觀地反映需要了解的情況。

(二)跟蹤調查

跟蹤調查是最常用的調查方法,即實際體驗各個環節的業務處理活動,實地了解業務流程情況,對每項業務的處理方式、業務走向跟蹤調查,這種調查最為真實和可靠。

(三)開座談會

針對具體的信息需求召開不同規模的座談會,召集有關人員參加,聽取用戶的意見,這對於了解一些比較關鍵的技術問題和涉及到多個部門的數據流程非常有效。

(四)直接訪問有關人員

對於調查工作的疑點和不清晰的問題,可以直接訪問有關人員,了解他們對問題的看法和處理方式,從中得到詳細資料,此種方法針對性強、目的明確,效果很好。

第三節 係統的分析與設計

係統分析是開發過程中使係統設計合理、優化的重要步驟。這個階段的工作深入與否,直接影響到將來係統的設計質量和經濟性,因此,必須給予高度重視。實踐表明,許多管理信息係統的失敗原因往往與忽視或沒有做好係統分析有直接關係。

係統分析工作就是在係統調查的基礎上,將收集到的資料進行整理、提煉,用數據和信息流的方式描述係統的結構,以及達到係統目標所采用的技術手段。

一、係統分析的任務

在調查工作中是掌握管理業務流程,是客觀事物的一種描述,分析工作的首要任務就是將其進行從客觀事物實體到信息的轉換,即用信息流描述研究的內容,以便進行管理信息係統的實現。

在實際工作中,係統調查和係統分析沒有非常明顯的界限,將它們完全獨立開來對待,是非常機械的和不切實際的。

(一)業務流程的分析

為了實現管理信息係統的係統化分析,還要對當前管理業務流程進一步調查研究和分析,從現有的業務流程中將信息流提取出來,有效的方法是繪製業務流程圖,用圖形方式描述業務信息的流程,並按信息化管理要求優化當前的業務流程,在此基礎上對各種數據的屬性和各項處理功能進行詳細的分析。

(二)數據分析

數據分析的任務是徹底了解數據流程圖中出現的各種數據的屬性,數據的存貯情況和對數據查詢的要求,予以定量的描述和分析。數據流程圖通過業務流程圖分析後得出。

1.數據屬性的分析

數據是用屬性的名和屬性的值描述事物某方麵的特征。一個事物的特征可能是多方麵的,需要用多個屬性的名和其相應的值來描述。例如,某客房,其屬性名/屬性值有:客房類型/普通客房丙,床位數/2,房價/100元等。

為了反映所有客房的特征,將各種客房的屬性名和屬性值彙總起來,形成一個二維表格。表中每一行代表一個實體,每一列代表一個屬性,表中每一項為屬性值。

對數據還應分析:

數據項的類型:如是字母,還是數字,或其他的類型。

數據項值的範圍:如房價50~500元人民幣,100~300美元等。

數據屬性值的意義:如普通客房甲為一等雙人單間客房,普通客房丁為四人雙間套房。

數據項的字長:如房價最大長度為3位。

關於數據還需了解,該數據與其他數據之間的邏輯關係,數據的業務發生量,數據的重要程度和保密要求等等。

2.數據查詢要求的分析

在調查中,需了解用戶經常通過何種方式查詢數據,以及可能提出的各種查詢要求。為了有的放矢地組織數據的存儲,采取高效率的檢索技術,係統分析員應將用戶經常提出的問題列出查詢清單,例如:“今天來了多少客人?”,“今天會議有哪些?”,“某某客人來自哪個國家?”等等。用戶的查詢需求,是設計管理信息係統查詢功能的依據。

數據分析的結果是數據庫設計的依據。

二、係統分析的方法

在分析工作中通常采用的方法如下:

(一)結構化方法

所謂結構化就是將係統逐漸分解,首先分解成多個子係統,每個子係統繼續分解,最後分解到具體的功能模塊。每個模塊的功能相對獨立,可以單獨設計和調試,模塊與模塊之間近似獨立,幹擾較少。所以,結構化設計又稱為模塊化設計。

在調查的基礎上,根據業務處理的信息需求分析,將整個係統首先分解成幾個業務處理比較獨立的部分,即子係統。具體分解根據係統規模而定,大型係統可以按業務處理部門分解,小型係統可以按功能劃分。如飯店管理信息係統,可分為接待、預訂、客房、收銀、餐飲、夜審等子係統。一般小型係統分為輸入、打印、處理、查詢和維護等子係統。

通過模塊和模塊之間的數據交換需要,描述係統的信息流動方向和加工處理功能。

(二)數據抽象

所謂數據抽象就是將管理業務的特征用數據方式進行描述。每種業務都用一組數據表示,每個數據賦予名稱,用唯一的一組數據區別每筆業務處理的數據。具體表現形式就是對數據屬性進行分析。

(三)繪製數據流程圖

數據流程圖用圖形符號表示數據的流動和處理的過程,流程圖的特點是簡單明了,顯見易懂,是用戶和開發人員分析交流的常用工具。圖中的符號也比較簡單,僅有處理邏輯框、數據存儲、外部實體和數據流向四種圖符。流程圖也可以繼續細分,每個部分還能繼續分解成若幹個步驟和處理過程。因此,數據流程圖是由上至下、由粗到細、逐步分解的層次結構圖,也是係統詳細設計中模塊結構設計的依據。

(四)合並和分解

1.數據合並

對某些具有相似意義的同類數據進行合並,將複雜的數據進行分解,目的是使數據規範化,便於計算機信息處理。

在賬務係統中憑證種類很多,如:銀行收、付款憑證;現金收、付款憑證;轉賬憑證等。如果每種憑證都使用一組數據定義,係統將十分煩瑣,因此我們統一用“記賬憑證”描述,簡化了數據結構。如果需要,可以在屏幕上設計出各種憑證格式,但是在計算機內部采用統一的數據格式處理。這種方式就是合並。

2.處理過程合並

在手工賬務處理中,憑證記賬要寫入日記賬、明細賬和總賬。采用管理信息係統中的賬務處理,在內部可以隻記入明細賬,所需要的日記賬和總賬都可以從明細賬中導出,這樣減少了數據重複存放的冗餘現象,這體現了處理過程的合並。實際上,處理過程合並是以數據合並為基礎的。

3.數據分解

在數據加工過程中需要很多數據,在數據組織時,為了簡化組織形式,便於數據存取和檢索,往往將一部分數據分離出去,通過代碼保持數據和數據之間的關係。如客人入住登記單上保留“登記單號”和“姓名”,在實際的消費賬單上隻記載客人的“登記單號”而不是姓名,通過登記單號保持兩組數據的一致性。這種分解方法,對於後麵的數據庫設計是非常必要的。

(五)編製數據字典

對於每項業務處理需要的數據,必須編製完整的數據描述,即數據字典。它說明該組數據用途、組織形式、數據項的組成,以及數據項的數據類型、長度、取值範圍等。數據字典可以直接轉換成數據庫的數據表,並使程序設計員了解整個係統中數據組織的規則,按照數據字典意義設計應用程序。

三、係統設計步驟

係統設計的任務是為進一步實現係統分析階段提出的初步模型,詳細地確定係統的結構,製定係統實現的方案藍圖,為下一階段的係統實施做好充分的準備。

係統設計可以分為以下兩個階段:

(一)初步設計。初步設計包括:代碼設計、確定子係統和模塊、編製程序流程圖、輸出文件格式設計、輸入文件格式設計等,同時包括係統的網絡結構設計和網絡通信方式設計等。

(二)詳細設計。內容包括模塊控製結構圖設計、輸入/輸出格式和界麵設計、數據庫結構和文件的詳細設計、模塊設計和處理流程圖設計、代碼文件設計以及製訂程序設計規範和編寫程序設計說明書。

上述兩個階段是相互交錯反複進行的過程,後者是前者的進一步具體化。

四、設計內容

(一)代碼設計

代碼是指代表事物名稱、屬性、狀態等的符號和記號。計算機通過事物的代碼來識別事物。所以為了記錄、通訊、處理和檢索數據,計算機處理必須代碼化,也用代碼來為數據分類提供一種縮寫的結構,作為數據的唯一標識。代碼可以用數字、字母和特殊符號等表示。

1.代碼的功能

代碼為數據項、記錄或文件提供一個概要而不含糊的認定,便於數據的貯存和檢索。字符縮短之後,無論是記錄、記憶,還是存儲、檢索,都可以節省時間和空間。

使用代碼可以提高處理的效率和精度。編碼之後,排序、累計或按某一規定的算法進行統計分析,都十分方便。

2.編碼的基本原則

標準化:采用國家和行業頒布的標準編碼體係。

唯一性:每一代碼所代表的數據項目必須是唯一的,否則,將產生模棱兩可的多義性現象,影響數據處理的準確性。

係統化:在整個係統內,代表同一數據項的代碼應當統一,前後協調一致。

代碼應等長:對於每一類的代碼,或同一級代碼應是等長的。

(二)子係統設計

一個大型的管理信息係統,由若幹個具體的功能組成,每個功能都有一定的服務對象,管理一定的事物,某些功能具有一定的共性,將這些具有共性的功能從邏輯上集中起來,就是一個子係統。這是“從下到上”的設計方法。這樣每增加一個功能,就向該子係統增加一項。

在係統的初步設計階段,根據“從上到下”的設計原則,將係統按用戶的業務處理功能分類,每一類為一個子係統。每個子係統包含若幹個具體的模塊功能。

對於複雜的係統,子係統可以嵌套子係統,即:某個子係統下麵還可以按該子係統的不同功能向下細分為若幹子係統。

如:某飯店管理係統可劃分為:查詢子係統;接待子係統;預訂子係統;結賬子係統;客房管理子係統;賬務管理子係統;員工管理子係統;係統維護子係統。

係統劃分成子係統之後,無論是程序設計,還是功能調試,都可以在子係統的範圍內進行,基本上互不幹擾地各自相對獨立進行,不必在整個全部設計之後統一進行調試。這樣,在調試中出現問題,可以在比較小的範圍內解決,加快設計和調試速度,修改和擴充也比較容易,不至於牽一發動全身,影響全局。每個子係統由多個功能組成,通常稱為“模塊”,係統與子係統的關係很容易轉換成軟件的功能菜單。

(三)輸入/輸出設計

係統設計的過程與實施(程序)設計過程剛好相反,它並不是從輸入設計到輸出設計,而是從輸出設計到輸入設計。這是因為輸出表格直接與用戶相聯係,設計的出發點應當是保證輸出表格方便地為用戶服務,正確地反映和組織用戶使用部門所需的有用信息。

1.輸出設計內容

輸出是將管理信息係統中數據庫的內容,以各種不同的形式,反映給用戶,換言之,用戶是通過各個不同的側麵獲得該係統所提供的和所需要的有用信息,輸出是數據庫內容的一種映射。輸出格式是用戶獲得數據的麵板,而輸入格式是用戶向係統輸入數據的麵板。

輸出設計的內容包括:

有關輸出信息使用方麵的內容,即使用者、使用目的、報告量等等;

輸出信息的內容,即輸出數據項目、位數、數據類型(文字、數字)等等;

輸出設備,如打印機、屏幕顯示器或其他輸出介質。

設計輸出報告時應注意:

報告上應注明報告的名稱、標題、年月日和頁號等;

盡可能按照用戶原表格的形式,需要變動時應征得用戶單位的允許;

表格內容簡單明了,重要內容醒目,使用代碼的地方恢複代碼的原有含義。

2.輸入設計內容

輸入數據是係統處理數據來源的主要渠道,因此它的正確性對於整個係統的質量的好壞是決定性的。輸入設計不當有可能使輸入數據發生錯誤,這時,即使計算和處理十分正確,也不可能得到可靠的輸出信息。所以,輸入設計必須十分仔細,要千方百計堵塞一切可能出現錯誤的漏洞,當用戶輸入了錯誤的數據,係統應拒絕接受,並友好地給出提示信息。對於某些必須輸入內容的選擇項,應強製用戶輸入數據,以防止空的數據項引發係統產生致命性錯誤。

輸入設備:通常使用計算機鍵盤,現在越來越多使用鼠標器選擇性輸入,具有遠程通訊的企業使用遠程方式自動地獲得異地部門或單位的數據。

原始單據的格式設計:輸入設計的重要內容之一是設計好原始單據的格式,即使企業的原有單據很齊全,但不一定符合計算機處理的要求,因而需要重新設計和審查,使之與計算機處理的格式相一致。

簡化和減輕輸入操作:一般來講,輸入工作是最繁重的,簡化輸入工作是非常必要的。在Windows下的應用程序盡可能采用“單選按鈕”、“複選框”、“列表框”和數據窗口形式組織輸入數據。

對重要的數據要進行校驗,數據輸入後要在計算機內部核對後,再通過操作員檢驗,認可之後方能寫入數據庫中,邏輯上錯誤的數據係統會自動拒絕接受。如:會計憑證輸入時,貸方與借方數額不平的憑證,拒絕接受。

在管理信息係統中,輸入/輸出的格式的設計都是十分重要的,工作非常繁瑣,需要進行大量的設計和調試工作。

3.輸入/輸出界麵設計

界麵是用戶與計算機或係統交流的主要部分。用戶通過屏幕輸入界麵向係統輸入數據,界麵的質量對於用戶操作有很大影響,通常不是讓用戶原封不動地按照數據庫的要求和格式輸入所有的內容,界麵是數據庫的一種映射,輸入的數據經過一定的格式轉換後寫入數據庫。方便用戶輸入是界麵設計的原則,字段意義指示清楚、輸入內容簡要,排列整齊。對於重要的字段進行嚴格的控製輸入,保證內容正確性和合理性,不接受非法的輸入內容,並給出相應的提示。輸入後再做進一步校驗,確認正確後寫入數據庫。因此,輸入界麵要求友好、容錯性強、符合用戶習慣。

輸出界麵是將數據庫的內容呈現給用戶的麵板,當數據庫的內容是某種精簡或壓縮的數據時,首先要經過變換,轉成用戶容易接受的形式。

一個係統的各個模塊中的界麵盡可能保持一致,操作方式一致。好的界麵設計需要美工人員配合,屏幕布局合理,清楚整潔、具有藝術性,但不花哨,操作符合人體工程學的原理,減輕操作人員工作強度。

(四)數據庫設計

數據庫是管理信息係統的核心,係統的一切工作都是圍繞著如何組織、處理數據庫而進行的。數據庫的設計對係統的經濟性、功能和效率都有很大的影響,因此設計時應認真考慮數據庫的功能和可靠性、安全性、經濟性。

1.數據庫模型

目前都使用關係模型數據庫,這種模型數據庫是將數據組織看成為一個二維的關係表格,目前企業單位的各種報表都可以用這種關係數據庫表示,例如,客人登記表。

關係數據庫更容易描述客觀事物,廣為人們接受。

關係模型應滿足以下條件:

表中不允許有重複的字段名。

表中每一列數據的類型必須相同。

表中行的次序和列的次序可以分別任意排列,且行或列排列的先後次序不影響表中的關係。

關係模型具有簡單明了、理論嚴謹等優點,是一種有實用價值的數據庫模型,在飯店管理係統中可采用Oracle、MS SQL Server、Sybase、Informix等大型數據庫,有的采用DBase、FoxPro和Access等小型桌麵數據庫。大型數據庫具有獨立的數據庫管理係統,安全可靠,小型數據庫隻是在早些係統中使用。

2.設計內容

數據表的設計主要根據用戶的輸出要求和數據采集的現狀,考慮數據表的結構,根據數據的分類組織係統的數據表,通常將一些具有共性的數據組織在一個可以共享的數據表中,如代碼與名稱的對照數據表,其他數據表中僅使用其代碼,這樣可以減少數據的冗餘。

數據表的結構設計是建立數據各個屬性的邏輯關係,以及屬性值的類型、取值範圍、長度和精度,即數據表字段的設計。表中每一行代表一組數據,稱為記錄。數據表是字段和記錄的集合。

第一行的內容,對應於數據表的結構,根據內容的含義,可以定義數據表各個字段的名稱、數據類型、字段寬度和精度(如果有數值型字段時,須指定小數的精度),在MSSQL 2000數據庫中,表中填寫的客人信息,以一行為一個記錄。

數據表設計的同時,還應當根據用戶查詢要求、係統處理、檢索與計算需要,考慮索引的設計。數據表的索引是以一個或多個字段建立的關鍵字,即Key,作為記錄唯一可以識別的標誌。按照關鍵字排序,可以顯著提高記錄的查找速度。

當係統存在多個有相互聯係的數據表時,要考慮到數據表之間的關係,即關聯設計。如學生登記數據表XS,存放學生檔案數據;學生成績數據表存放各科成績數據CJ。XS與CJ是一對多關係。兩個數據表都通過學號索引,按照學號建立關聯。在選取記錄時,通過表之間的關聯,可同時獲得兩個表中的記錄,這樣可以減少數據冗餘。係統的整體設計時應考慮到在多個數據表存在相同意義和作用的字段,應當使之協調一致,不同數據表中同一數據的名稱、類型、值的範圍應當一致,否則造成程序設計的混亂,前後不能正常運行。