胡世港 田櫻
摘要:領(lǐng)域模型是指軟件領(lǐng)域中具有靜態(tài)特征和動態(tài)行為的事物。該文首先講述領(lǐng)域驅(qū)動建模的相關(guān)內(nèi)容,然后具體描述如何使用領(lǐng)域驅(qū)動建模方法完成物業(yè)管理系統(tǒng)的分析與設(shè)計,最后闡述建立系統(tǒng)領(lǐng)域模型的過程。
關(guān)鍵詞:領(lǐng)域驅(qū)動設(shè)計;物業(yè)管理系統(tǒng);面向?qū)ο蠓治?;SSH框架
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2014)31-7354-04
Abstract: The domain model is the static characteristics and dynamic behavior of things in the software field. This paper first describes the domain driven modeling, and then described in detail how to use the domain driven modeling method to complete the property management system analysis and design, and finally elaborated the process of establishing a system domain model.
Key words: domain driven design; property management system; OOA; SSH
對于大多數(shù)軟件項目而言,領(lǐng)域驅(qū)動設(shè)計應(yīng)該是基于模型的,而且其根本點應(yīng)著眼于軟件領(lǐng)域及業(yè)務(wù)邏輯。軟件系統(tǒng)復雜之處的根本原因在于領(lǐng)域本身,在于用戶及其參與的業(yè)務(wù)活動,而不在于技術(shù)。只有在設(shè)計時深刻理解了軟件領(lǐng)域,并以模型概念和元素的形式清晰地描述出復雜的領(lǐng)域邏輯,才能保證軟件項目的真正成功。
軟件項目開發(fā)速度的有效提升依賴于領(lǐng)域驅(qū)動設(shè)計。領(lǐng)域驅(qū)動設(shè)計可以大大提高我們所能解決的問題的復雜度,引導我們從混亂和復雜的軟件領(lǐng)域中找出業(yè)務(wù)規(guī)則,提取出一套描述語言,并運用相應(yīng)的模式和策略來發(fā)揮這種描述語言的強大作用。這是一個相當需要技巧和經(jīng)驗的過程。能夠真正深入地理解、掌握和運用這些技巧和經(jīng)驗就已經(jīng)非常不易,而將這么技巧和經(jīng)驗總結(jié)和整理出來就顯得尤為珍貴。
問題領(lǐng)域本身的復雜性是造成軟件開發(fā)復雜性的核心。任何軟件不可能避開這種復雜企業(yè)中的復雜性問題,它所能做的僅僅是控制好復雜問題。
一個好的領(lǐng)域模型是控制復雜問題的關(guān)鍵,它能夠透過問題域的表象看本質(zhì),為軟件開發(fā)人員提供一個參考模型,便于溝通和理解問題域。一個好的領(lǐng)域模型有非常重要的價值,但建立它卻不是一件容易的事情。很少有人能夠出色地完成,并且建立的方法也很難傳授。
首先,在進行領(lǐng)域建模的時候,不能夠?qū)⒏拍詈蛯崿F(xiàn)分離。一個高效的領(lǐng)域建模人員不應(yīng)該只會使用記事本和計算器,還要能夠編寫Java程序。一部分原因是離開對于實現(xiàn)問題的考慮,便無法建立一個有用的概念模型。然而概念與實現(xiàn)不可分割的主要原因是:領(lǐng)域模型最重要的價值在于提供一種通用的語言,將領(lǐng)域?qū)<遗c技術(shù)人員聯(lián)系在一起。
真正有效的領(lǐng)域模型是隨著時間慢慢發(fā)展得來的,即使最有經(jīng)驗的建模人員也會發(fā)現(xiàn)總是在系統(tǒng)的初始版本實現(xiàn)后才會找到他們的最佳想法。領(lǐng)域模型會對管理軟件開發(fā)起到重大的影響——不管軟件開發(fā)使用何種語言或環(huán)境實現(xiàn)。
1 建模過程
1.1需求描述
康正物業(yè)公司是我市一家專業(yè)的物業(yè)管理公司,其下轄六個物業(yè)服務(wù)處,每個物業(yè)服務(wù)處管理多個小區(qū),公司的主要業(yè)務(wù)即對各小區(qū)進行日常物業(yè)管理工作。
公司物業(yè)管理軟件的建設(shè),是為了更好的跟進小區(qū)物業(yè)的管理工作,實現(xiàn)物業(yè)服務(wù)處工作網(wǎng)絡(luò)化,提高工作效率,及時掌握公司的經(jīng)營狀況,提高管理水平。
物業(yè)管理系統(tǒng)的建設(shè)將圍繞對業(yè)主各項收費進行管理,根據(jù)各項報表與查詢信息,公司管理層可以實時了解公司業(yè)務(wù)運營情況,監(jiān)督各物業(yè)服務(wù)處的日常工作。
本文最終確定的系統(tǒng)功能目標如下:
1) 業(yè)務(wù)辦理。包括房產(chǎn)登記、水電報表上傳、系統(tǒng)自動計費、物業(yè)收費、臨時收費、減免收費、預收費用和退還押金等功能。
2) 參數(shù)設(shè)置。包括樓棟類型、房產(chǎn)類型、房產(chǎn)來源、車位類型等參數(shù)的設(shè)置,以及部門信息、物業(yè)服務(wù)處信息、小區(qū)信息、樓棟信息、房產(chǎn)信息和業(yè)主信息的管理功能。
3) 系統(tǒng)設(shè)置。包括用戶信息、角色信息、收費方式、收費單位、收費項目、收費標準、單獨收費標準以及歷史欠費錄入等功能。
4) 信息查詢。包括小區(qū)收費月匯總、小區(qū)收繳率月匯總、小區(qū)收費年匯總、公司收費月匯總、公司收費年匯總、物業(yè)服務(wù)處收費月匯總、物業(yè)服務(wù)處年匯總、單項收費明細、業(yè)主繳費明細、業(yè)主繳費匯總、業(yè)主欠費匯總、業(yè)主欠費明細以及公司臨時收費月匯總等報表查詢功能。
1.2 需求分析
整個系統(tǒng)是一個基于互聯(lián)網(wǎng)的工作平臺,允許公司各部門擁有權(quán)限的用戶進行使用,用戶必須通過登錄驗證才有權(quán)限使用本系統(tǒng)。用戶登錄后,根據(jù)所在部門分配相應(yīng)權(quán)限,只能按其擁有的權(quán)限進行操作。如物業(yè)服務(wù)處的用戶不能查詢及操作其他服務(wù)處的信息,公司財務(wù)處可以查詢到所有服務(wù)處的業(yè)主信息。公司員工的操作都通過日志進行記錄,管理者可以通過查詢?nèi)罩緛聿榭床僮鲉T某一時間段的收費、減免收費的情況。
1.2.1制定房產(chǎn)收費標準
對于每個小區(qū)都有一個基本的收費標準,這個收費標準根據(jù)收費項及住宅類型劃分為若干個不同的子標準。物業(yè)管理費的收費可能根據(jù)單層普通業(yè)主、單層還建業(yè)主、多層普通業(yè)主、多層還建業(yè)主、普通商鋪、還建商鋪、多層普通商鋪、門面不同而不同。停車服務(wù)費的收費根據(jù)路面、地下室,位置的不同而收費。水費、電費的收費根據(jù)商鋪、住宅、門面的不同而不同。對于按月收費的收費項目,因某些特殊原因,需要降低收費標準的,可以通過特殊權(quán)限,修改制定的某一房產(chǎn)的收費標準。對于需要一次性收費的項目,需要減免的,可以通過物業(yè)管理區(qū)申請,公司財務(wù)審核的方式進行減免。
1.2.2初始化
物業(yè)公司計算按月收費的起始日期,并非是開發(fā)商將房產(chǎn)管理權(quán)移交給物業(yè)公司的日期,而是通過執(zhí)行“房產(chǎn)初始化”功能時指定的初始化日期開始計算,未進行初始化操作的房產(chǎn)不計算按月收費的項目??梢灾付ㄒ唤M房產(chǎn)或單個房產(chǎn)進行初始化。
1.2.3收費
收費操作是指收取業(yè)主的各項費用的操作。收費有以下幾種情況:業(yè)主交費的金額與待繳金額相等時,可以直接辦理收費。待繳金額有零錢的情況(如102元),而業(yè)主只想交100元時,系統(tǒng)自動判斷操作員是否有繳費金額優(yōu)惠的權(quán)限,并且優(yōu)惠的范圍在允許的權(quán)限之內(nèi)時,操作員可以辦理優(yōu)惠收費(100元)。
業(yè)主需要對待繳金額進行減免收費, 并減免額度超過操作員允許的額度的情況下,由操作員向公司財務(wù)進行“減免申請”,財務(wù)審核通過后,操作員按減免后的金額收費。提供一次性繳費優(yōu)惠套餐,如一次性繳納全年的物業(yè)管理費,按照XXX元收費。
1.2.4減免收費審核
減免收費審核由公司財務(wù)管理審核同意后,物業(yè)管理區(qū)操作員可以按減免后的金額收費。
1.2.5樓棟管理
樓棟管理的功能主要實現(xiàn)新增、修改、刪除樓棟的功能。樓棟需保存的信息包括物業(yè)服務(wù)處、小區(qū)、樓棟號、單元、樓層、類型、多層、電梯房、收費方式、坐收、走收等。
1.2.6房產(chǎn)管理
房產(chǎn)管理的功能主要實現(xiàn)新增、修改、刪除房產(chǎn)的功能。房產(chǎn)需要保存的信息包括物業(yè)服務(wù)處、小區(qū)、樓棟號、單元數(shù)、樓層、房號、戶主、是否已初始化、樓棟類型、房屋類型。
1.2.7業(yè)主管理
管理員可以新增、修改、刪除業(yè)主信息。業(yè)主管理需要保存的信息包括業(yè)主工作單位、電話、姓名、身份證,業(yè)主家庭成員信息,可以包含一個或多人(工作單位、電話、姓名、身份證),業(yè)主的房產(chǎn)信息。
1.2.8部門管理
部門的組織結(jié)果以樹狀方式進行表述,一級部門為公司,二級部門為公司科室及物業(yè)服務(wù)處。用戶可以新增、修改和刪除部門信息。
1.2.9用戶管理
由系統(tǒng)管理員負責維護整個系統(tǒng)的用戶信息,包括用戶的增加、刪除、所屬部門的變更、用戶授權(quán)。用戶使用信息系統(tǒng)的權(quán)限由系統(tǒng)管理員負責設(shè)置,用戶權(quán)限授予的原則根據(jù)用戶實際負責的工作來決定。
1.2.10小區(qū)管理
可以增加、刪除、修改小區(qū),并指定小區(qū)所屬物業(yè)服務(wù)處。小區(qū)屬性有:小區(qū)名稱,地址、收費方式、所屬物業(yè)服務(wù)處。
1.2.11收費項目
收費項目按收取方式可分為:按月收費、一次性收費。按月收費的項目有:物業(yè)服務(wù)費、停車服務(wù)費、水費、電費、垃圾清運費。一次性收費的項目有:裝修垃圾清運費、裝修保證金、裝修服務(wù)費、其他。
1.2.12收費標準
收費標準的劃分,對于每一個小區(qū)都有一個基本的收費標準,這個收費標準根據(jù)收費項目及住宅類型劃分為若干個不同的子標準。房產(chǎn)只有經(jīng)過初始化,并指定初始化日期后,系統(tǒng)才能按月計算物業(yè)服務(wù)費和垃圾清運費,沒有經(jīng)過初始化的房產(chǎn),不計算物業(yè)服務(wù)費和垃圾清運費。其中水費、電費需要記錄起止碼及歷史欠費信息。停車服務(wù)費指業(yè)主每月需要繳納的停車服務(wù)費,停車服務(wù)費的收費標準根據(jù)標準、路面、地下室而不同。對于臨時收取的停車服務(wù)費,在當日交班時作為一次性收費進行錄入收費金額即可。
1.2.13信息查詢
包括收費年匯總表、公司收費月匯總表、管理區(qū)收費年匯總表、管理區(qū)收費月匯總表、小區(qū)收費年匯總表、小區(qū)收費月匯總表、單項收費明細表、業(yè)主繳費匯總表、業(yè)主繳費明細表、業(yè)主欠費匯總表、業(yè)主欠費明細表、暫定以上統(tǒng)計報表。
需求分析的任務(wù)就是根據(jù)前期與用戶的溝通記錄,找出用戶心中真正想要的全部功能需求并加以描述,然后利用OOA(面向?qū)ο蠓治觯┧枷胩崛〕龊诵念I(lǐng)域模型類。
1.3 系統(tǒng)用例
軟件系統(tǒng)的功能需求可以使用系統(tǒng)用例來加以描述。以下系統(tǒng)用例指出,操作本系統(tǒng)的用戶角色包含ADMIN(系統(tǒng)管理員)、CHARGEMAN (物業(yè)收費員)、OWNER(業(yè)主)、USER(普通用戶)。每個用戶角色操作系統(tǒng)的功能不同,由此確認出系統(tǒng)用例。系統(tǒng)管理員可以設(shè)置系統(tǒng)參數(shù)樓棟類型、房產(chǎn)類型、房產(chǎn)來源、車位類型、收費方式、收費單位,并對用戶、角色、部門、物業(yè)服務(wù)處、小區(qū)、樓棟、房產(chǎn)、業(yè)主、收費項目和收費標準進行管理,同時也可以對小區(qū)物業(yè)收費進行統(tǒng)計查詢。物業(yè)收費員首先對小區(qū)進行房產(chǎn)登記工作,指定各房產(chǎn)應(yīng)繳納的收費項目,之后上傳各房產(chǎn)的水電報表,以便讓系統(tǒng)自動計算各房產(chǎn)所屬業(yè)主應(yīng)繳納的物業(yè)費用并生成每月賬單,提醒業(yè)主每月按時繳納賬單,完成物業(yè)收費工作,同時也可預收費用并存到業(yè)主賬戶中。圖1即為本系統(tǒng)用例圖(Use Cases)。
2 總結(jié)
本文基于物業(yè)管理系統(tǒng)的完整需求分析及系統(tǒng)設(shè)計階段,再現(xiàn)了基于領(lǐng)域驅(qū)動設(shè)計進行軟件系統(tǒng)領(lǐng)域建模的完整過程。通過與湖北康正物業(yè)有限公司以及小區(qū)業(yè)主的詳細交流,以物業(yè)收費業(yè)務(wù)領(lǐng)域為入口,該文定義出了本系統(tǒng)中的全部領(lǐng)域模型類,及其屬性和方法,并重點分析它們之間的相互依賴關(guān)系,從而對系統(tǒng)需求有了更深刻的理解,在繪制UML用例圖和類圖的基礎(chǔ)上,完成了物業(yè)管理系統(tǒng)的領(lǐng)域建模工作。
參考文獻:
[1] 黃光芳,金義富.基于領(lǐng)域驅(qū)動設(shè)計構(gòu)建企業(yè)級Web平臺的應(yīng)用[J].實驗室研究與探索,2013(8).
[2] 申新鵬,張利軍,楊波.基于動態(tài)領(lǐng)域模型的業(yè)務(wù)流程管理[J].信息技術(shù),2012(6).
[3] 王海林.模型驅(qū)動下的Web應(yīng)用系統(tǒng)自動生成[J].計算機技術(shù)與發(fā)展,2012,22(1):83-86.
[4] 吳映波,王旭,林云.面向服務(wù)的領(lǐng)域分析與建??蚣躘J].計算機工程與設(shè)計,2011,32(8):2704-2707.