摘要:通過停車管理系統的機構化分析和設計,可以展現其主要方法、系統特征、開發思路和流程,從而提升學習者軟件工程分析和設計的能力。
關鍵詞:軟件工程;傳統方法學;結構化分析和設計;停車場管理系統
0 引言
軟件工程課程中有兩種常用的方法學,即傳統方法學和面向對象方法學。傳統方法學采用結構化的思想進行分析、設計和實現;面向對象方法學采用對象、類、繼承、通信這幾個主要概念對目標系統進行分析設計和實現。目前面向對象方法學在軟件開發中占有更重要的地位。現實中有多種UML語言開發的工具軟件,這些工具軟件也體現了企業本身的軟件開發工程特征,如IBM Rational Suite(包含有Rational Rose UML建模工具)。Sparx Systems的Enterprise Architect(EA)、Sybase的PowerDesigner、楚凡科技的Trufun Plato等等。
傳統方法學現在雖然沒有得到全面和廣泛的應用,但是結構化設計思想卻無處不在,面向對象方法學中的行為構造仍然需要結構化的思想,某些更接近硬件的底層開發需要使用c語言甚至匯編語言,這也更適合采用傳統方法學。所以結構化的分析設計仍然是軟件工程課程教學的一個主要內容。
為了更形象地表達結構化分析設計的方法,在此我們選擇了常見的且工作流程較為典型的停車場管理系統作為案例。
1 停車場管理系統的系統流程
停車場管理的入口和出口如圖1所示。

1.1系統運行流程的描述
圖1的上邊為出口,下邊為入口。系統流程為:在入口處設在車道下的地感感應系統能檢測到過往車輛,入口處主機集成的發卡機提示司機按鍵取卡,司機取臨時卡,同時完成讀卡過程,系統自動記錄該卡信息。如果司機是預付費卡用戶,則系統直接在入口主機完成讀卡操作。同時啟動入口攝像機的截圖功能,截取一幅該車輛圖像,并依據相應卡號,存入收費管理處的計算機中。用戶取卡/讀卡后,道閘機起欄放行車輛,當道閘機下面的地感感應到車輛通過后道閘機自動放下欄桿。
當臨時卡用戶出停車場時,在出口主機的讀卡器上讀卡,攝像機對該用戶車輛截圖,同時軟件系統彈出臨時卡收費窗口,上面顯示出該用戶進出該車場時間、收費金額、出入車場時的操作員以及進出車場的照片對比。操作員應依據以上信息對該用戶進行收費,記錄將自動存入收費管理處的計算機中。收費員收費后,按確認鍵,出口道閘機欄桿升起放該車輛通行。當道閘機下面的地感感應到車輛通過后道閘機自動放下欄桿。
當預付費卡車輛出停車場時,用戶把預付費卡在出口處的讀卡器上讀卡,讀卡器將讀出的信息送到計算機進行數據處理,并將處理結果告訴操作員,由操作員判斷該卡是否有效。若有效則點擊確定,由出口道閘機升起欄桿放行;若無效則點擊取消不允許放行。放行后,記錄自動被保存到計算機中。
1.2系統流程圖的表達
入口處的系統流程如圖2所示。出口處的系統流程圖如圖3所示。
2 停車場管理系統的功能模型
在結構化需求分析中,功能模型的主要內容是數據流圖,數據流圖不僅表達了數據處理的流程,而且表達了系統的功能需求。數據流圖的依據是上面工作的結果,也就是系統流程圖。
圖4是頂層數據流圖。
圖5是停車場入口的數據流圖。
圖6是停車場出口的數據流圖。
在數據流圖中的單箭頭實線或者雙箭頭實線代表數據流,中空三角的線代表控制信號,圓形代表系統中需要完成的功能(力工/處理)。在圖5和圖6中,主要包括的功能有:入口主機/出口主機接收線圈感應信號;讀取IC卡并傳輸卡信息到計算機;彈出IC卡并傳輸卡信息到計算機;啟動拍照和保存照片;記錄車輛信息;查詢車輛信息;對比入場和出場的時間和照片;查詢收費標準;修改收費記錄;傳輸備份記錄數據;生成收費單;打印收費票據;計算機驅動開啟道閘;感應線圈驅動道閘關閉。
其他系統功能,如操作人員的帳戶管理和權限管理,因為教學中不是作為主要業務流程,因此忽略。數據流、數據存儲需要用數據字典做單獨定義,圖中的處理需要用IPO圖做單獨定義,實體之間的關系需要用實體關系圖表達,以方便進一步細化數據存儲的結構并評估數據庫的規模。但為了不干擾整體分析的思路,本案例省略。
3 結構化概要設計
對上述數據流圖確定變換中心或者事務中心,并劃分邊界,系統中的入口主機和出口主機是重要的事務中心,計算機的處理是另一個重要的變換中心,從而導出系統的模塊結構圖。
圖7是頂層和一層的管理控制模塊結構。
圖8是入口處理部分模塊結構。
圖9是出口處理部分模塊結構。
在數據流圖中劃分邊界并轉換模塊結構圖的方式見仁見智,沒有絕對的標準,看哪種方式更優化,控制結構更清晰。一般的方法是按輸入、處理、輸出分為三大控制結構,再進行細化。本案例按入口處理和出口處理分為二大控制結構,并進行細化。在此的模塊結構圖中含有控制流和數據流的表達,但是數據存儲的操作在此并沒有被表達出來,因為這應該屬于計算機處理下級的模塊功能,應該在模塊IPO定義中表達。
4 結束語
通過對停車場管理系統的工作流程的分析,可以得到系統的數據流圖,這是系統主要的邏輯模型,也是系統的功能模型。在數據流圖中進行變換分析和事務分析,把數據流圖映射成系統結構,就得到了系統的模塊結構。系統結構在這里既包括軟件的構成也包括硬件構成。按照常用的軟件生命周期理論,概要設計完成后,就可以劃分模塊的實現任務并進行詳細設計,然后是編碼和單元測試、集成測試、確認測試、使用和維護等各階段的任務。
結構化分析和設計的軟件工程方法仍然是教學中的重要內容。停車場管理系統是常見的、具有典型操作流程的軟硬件管理系統,通過對停車場管理系統的結構化分析和設計,能身臨其境地體驗到結構化分析和設計的主要方法、特征、思路和流程,可以進一步提升軟件工程分析和設計的能力和素質。
參考文獻:
[1]張海藩,倪寧軟件工程(第3版)[M].人民郵電出版社,2010.
[2]狄國強,楊小平,杜賓.件工程實驗[M].清華大學出版社,2008.
[3]方俊,谷冰冰.基于無線射頻識別技術的停車場管理系統設計[J].計算技術與自動化,2010.29(3):92~95.
[4]深圳市捷順科技實業有限公司.捷順智能卡停車場管理系統設計方案[J].數字社區智能家居,2008.5:110~11.
[5]董加敏.停車場管理系統的設計與優化[J].河南師范大學學報:自然科學版,2007.35(1):190~193.
[6]李海,沈丹.停車場管理系統[J].建筑設計管理,2008.1:55-59.
[7]馬可,苗志會,張波.智能停車場管理系統的實現[J].華北科技學院學報,2006.3(3):72~74.