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

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