趙悅 杜俏俏
摘要摘要:領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)是一種基于模型驅(qū)動(dòng)開發(fā)思想的嶄新的開發(fā)方式,其核心是領(lǐng)域模型,相較之前基于數(shù)據(jù)庫(kù)驅(qū)動(dòng)的開發(fā)方法,更強(qiáng)調(diào)領(lǐng)域的概念,且架構(gòu)清晰、對(duì)象職責(zé)明確、可復(fù)用性好。基于領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)對(duì)專利申報(bào)系統(tǒng)進(jìn)行架構(gòu)設(shè)計(jì),讓申報(bào)系統(tǒng)在實(shí)現(xiàn)時(shí)對(duì)專利申報(bào)系統(tǒng)業(yè)務(wù)過(guò)程準(zhǔn)確建模并根據(jù)其業(yè)務(wù)過(guò)程而調(diào)整,使得整個(gè)系統(tǒng)層次分明,具有良好的可擴(kuò)展性、可移植性。
關(guān)鍵詞關(guān)鍵詞:領(lǐng)域驅(qū)動(dòng)設(shè)計(jì);領(lǐng)域模型;專利申報(bào)系統(tǒng)
DOIDOI:10.11907/rjdk.162881
中圖分類號(hào):TP319
文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào)文章編號(hào):16727800(2017)005006303
0引言
隨著計(jì)算機(jī)科學(xué)技術(shù)的飛速發(fā)展,軟件開發(fā)質(zhì)量和后期維護(hù)越來(lái)越受到各行各業(yè)的重視,傳統(tǒng)的 Web 平臺(tái)開發(fā)工作趨向于一種以技術(shù)為先導(dǎo)的開發(fā)方式,這些軟件開發(fā)的指導(dǎo)原則依然是基于數(shù)據(jù)庫(kù)設(shè)計(jì),然而傳統(tǒng)以數(shù)據(jù)庫(kù)為核心的開發(fā)方式并不能很好地滿足要求。 目前,很多系統(tǒng)都存在過(guò)分依賴數(shù)據(jù)庫(kù)的現(xiàn)象,無(wú)形中給數(shù)據(jù)庫(kù)造成了相當(dāng)大的壓力,隨著系統(tǒng)負(fù)載的不斷增加,數(shù)據(jù)庫(kù)的壓力將越來(lái)越大,最終數(shù)據(jù)庫(kù)因不堪重負(fù)而宕掉[1]。
領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)方法拋棄了分裂分析模型與設(shè)計(jì)的做法,它強(qiáng)調(diào)以業(yè)務(wù)邏輯為核心,進(jìn)行領(lǐng)域模型的構(gòu)建,并將注意力放在領(lǐng)域的模型構(gòu)建與代碼匹配上。領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)思想旨在通過(guò)使用統(tǒng)一協(xié)作的編程語(yǔ)言,來(lái)消除領(lǐng)域?qū)<遗c開發(fā)人員之間的隔閡,從而使用領(lǐng)域模型來(lái)滿足兩者的要求,完成軟件開發(fā)工作。同時(shí),領(lǐng)域模型的研究又為軟件復(fù)用提供了良好的支持,通過(guò)領(lǐng)域分析,確定需求中的共性與變化性,從而構(gòu)造出可復(fù)用的業(yè)務(wù)語(yǔ)義及構(gòu)件,不僅能夠?qū)崿F(xiàn)代碼的復(fù)用,也能實(shí)現(xiàn)功能模塊和領(lǐng)域模型的復(fù)用[2]。
專利申報(bào)報(bào)系統(tǒng)具有業(yè)務(wù)過(guò)程復(fù)雜,以及開發(fā)過(guò)程的規(guī)范性、集成性等特點(diǎn),若采用傳統(tǒng)數(shù)據(jù)庫(kù)驅(qū)動(dòng)的設(shè)計(jì)方式,很難將需求信息完整地表達(dá),同時(shí)也會(huì)陷入過(guò)程化編程的困境中。為了避免這些問(wèn)題,將領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)這一思想引入到專利申報(bào)系統(tǒng)中,根據(jù)專利申報(bào)系統(tǒng)的業(yè)務(wù)進(jìn)行
領(lǐng)域模型的建立,搭建系統(tǒng)分析與設(shè)計(jì)的良好溝通橋梁,實(shí)現(xiàn)系統(tǒng)開發(fā)目的的同時(shí)實(shí)現(xiàn)軟件復(fù)用?;陬I(lǐng)域驅(qū)動(dòng)設(shè)計(jì)對(duì)專利申報(bào)系統(tǒng)進(jìn)行架構(gòu)設(shè)計(jì),使系統(tǒng)分層架構(gòu)更清晰,提高了軟件開發(fā)的可維護(hù)性和可擴(kuò)展性,促進(jìn)了專利申報(bào)系統(tǒng)平臺(tái)的構(gòu)建。
1系統(tǒng)功能架構(gòu)
1.1功能架構(gòu)設(shè)計(jì)
專利業(yè)務(wù)管理系統(tǒng)功能主要包括:基礎(chǔ)信息、案件管理、專利申請(qǐng)管理、專利托管管理、財(cái)務(wù)管理、個(gè)人工作臺(tái)六大模塊。功能模塊如圖1所示。
1.2系統(tǒng)建設(shè)特點(diǎn)
(1)技術(shù)先進(jìn)。采用業(yè)界先進(jìn)的J2EE架構(gòu)開發(fā),采用主流的框架Spring、Mybatis、Srping MVC,通過(guò)領(lǐng)域建模的方式對(duì)系統(tǒng)進(jìn)行分析和設(shè)計(jì),以實(shí)現(xiàn)最大的適應(yīng)性和單元選擇的自由度,以及在企業(yè)發(fā)展時(shí)具有改變和增加系統(tǒng)的能力,提高系統(tǒng)的可擴(kuò)展性。
(2)易用性。系統(tǒng)為B/S結(jié)構(gòu),客戶端不需要安裝任何軟件。界面通過(guò)Bootstrap前臺(tái)框架能對(duì)各類設(shè)備的屏幕進(jìn)行自適應(yīng)調(diào)整,方便用戶操作。系統(tǒng)將避免代理部通過(guò)國(guó)家專利局申報(bào)系統(tǒng)編輯CPC包時(shí)速度過(guò)慢的問(wèn)題,專利撰寫人員可以像正常使用Word文檔一樣進(jìn)行專利文檔編輯,極大提高了編輯速度。
(3)靈活的權(quán)限控制。通過(guò)角色設(shè)置,用戶可以擁有不同的操作權(quán)限。
(4)高集成度。所有功能模塊在設(shè)計(jì)時(shí)通盤考慮,無(wú)縫聯(lián)接,數(shù)據(jù)交換無(wú)障礙。
(5)柔性化系統(tǒng)設(shè)計(jì)。本系統(tǒng)采用柔性化設(shè)計(jì),對(duì)可能變化的功能和需求部分,比如國(guó)家專利模板管理和CPC壓縮包生成模塊,以后如果需要修改,只需要根據(jù)接口重新開發(fā)特定的類或更新配置文件即可,不影響其它模塊的功能。
(6)信息安全。對(duì)于關(guān)鍵敏感數(shù)據(jù),比如密碼、金額,采用國(guó)際標(biāo)準(zhǔn)加密算法對(duì)數(shù)據(jù)進(jìn)行加密,數(shù)據(jù)庫(kù)中存放密文或檢驗(yàn)碼,防止從數(shù)據(jù)庫(kù)直接查看或修改。
2領(lǐng)域驅(qū)動(dòng)架構(gòu)設(shè)計(jì)
2.1領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)優(yōu)勢(shì)
領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)(DomainDriven Design,DDD)是領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)大師 Eric Evans[3]在2004提出的軟件開發(fā)概念,是一種基于模型驅(qū)動(dòng)開發(fā)(MDD)思想的嶄新的開發(fā)方式,目的是讓軟件系統(tǒng)在實(shí)現(xiàn)時(shí)準(zhǔn)確地基于對(duì)真實(shí)業(yè)務(wù)過(guò)程的建模并根據(jù)真實(shí)業(yè)務(wù)過(guò)程的調(diào)整而調(diào)整。
本文采用業(yè)內(nèi)領(lǐng)先的領(lǐng)域模型驅(qū)動(dòng)設(shè)計(jì)方法,基于領(lǐng)域模型的設(shè)計(jì)思想,業(yè)務(wù)邏輯不再集中在幾個(gè)大型的類上,而是由大量相對(duì)小的領(lǐng)域?qū)ο螅悾┙M成,這些類具備自己的狀態(tài)和行為,每個(gè)類是相對(duì)完整的獨(dú)立體,并與現(xiàn)實(shí)領(lǐng)域的業(yè)務(wù)對(duì)象映射。領(lǐng)域模型就是由許多細(xì)粒度的類組成?;陬I(lǐng)域驅(qū)動(dòng)設(shè)計(jì),保證了系統(tǒng)的可維護(hù)性、擴(kuò)展性和復(fù)用性。
領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的專注點(diǎn)在于領(lǐng)域模型的研究,它是以模型驅(qū)動(dòng)設(shè)計(jì)為根基,以軟件領(lǐng)域?yàn)橹埸c(diǎn),專注于領(lǐng)域模型的構(gòu)建與代碼匹配,并將模型作為領(lǐng)域?qū)<液蛙浖_發(fā)人員交流的一種開發(fā)方式[4]。
領(lǐng)域驅(qū)動(dòng)的核心應(yīng)用場(chǎng)景就是解決復(fù)雜業(yè)務(wù)的設(shè)計(jì)問(wèn)題,其特點(diǎn)與這一核心主題息息相關(guān)。
(1)分層架構(gòu)與職責(zé)劃分。領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)很好地遵循了關(guān)注點(diǎn)分離的原則,提出了成熟、清晰的分層架構(gòu)。同時(shí)對(duì)領(lǐng)域?qū)ο筮M(jìn)行了明確的策略和職責(zé)劃分,讓領(lǐng)域?qū)ο蠛同F(xiàn)實(shí)世界中的業(yè)務(wù)形成良好的映射關(guān)系,為領(lǐng)域?qū)<遗c開發(fā)人員搭建了溝通的橋梁[5]。
(2)復(fù)用。在領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)中,領(lǐng)域?qū)ο笫呛诵?,每個(gè)領(lǐng)域?qū)ο蠖际且粋€(gè)相對(duì)完整的內(nèi)聚的業(yè)務(wù)對(duì)象描述,所以可以形成直接的復(fù)用。同時(shí)設(shè)計(jì)過(guò)程是基于領(lǐng)域?qū)ο蠖皇腔跀?shù)據(jù)庫(kù)的映射,因而整個(gè)設(shè)計(jì)是可以復(fù)用的。
(3)使用場(chǎng)景。適合具備復(fù)雜業(yè)務(wù)邏輯的軟件系統(tǒng),對(duì)軟件的可維護(hù)性和擴(kuò)展性要求比較高。
領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)將系統(tǒng)整個(gè)架構(gòu)分為4層,其核心就是領(lǐng)域?qū)?,所有業(yè)務(wù)邏輯都應(yīng)在領(lǐng)域?qū)訉?shí)現(xiàn),具體描述如下:①用戶界面/展現(xiàn)層。負(fù)責(zé)向用戶展現(xiàn)信息以及解釋用戶命令;
②應(yīng)用層。很薄的一層,用來(lái)協(xié)調(diào)應(yīng)用的活動(dòng)。它不包含業(yè)務(wù)邏輯,不保留業(yè)務(wù)對(duì)象的狀態(tài),但保有應(yīng)用任務(wù)的進(jìn)度狀態(tài);
③領(lǐng)域?qū)印1緦影P(guān)于領(lǐng)域的信息,這是業(yè)務(wù)軟件的核心所在,保留業(yè)務(wù)對(duì)象的狀態(tài),業(yè)務(wù)對(duì)象及其狀態(tài)的持久化被委托給基礎(chǔ)設(shè)施層;
④基礎(chǔ)設(shè)施層。本層作為其它層的支撐庫(kù)存在,提供層間的通信,實(shí)現(xiàn)對(duì)業(yè)務(wù)對(duì)象的持久化,包含對(duì)用戶界面層的支撐庫(kù)等作用。
2.2專利申報(bào)系統(tǒng)領(lǐng)域驅(qū)動(dòng)架構(gòu)設(shè)計(jì)
本系統(tǒng)中對(duì)領(lǐng)域模型驅(qū)動(dòng)進(jìn)行了具體設(shè)計(jì),其框架如圖2所示。
基于專利申報(bào)系統(tǒng)的業(yè)務(wù)需求,對(duì)每層的設(shè)計(jì)進(jìn)行詳細(xì)說(shuō)明如下:①存儲(chǔ)層:采用SQL Server2003以上版本為數(shù)據(jù)庫(kù)管理軟件,數(shù)據(jù)庫(kù)獨(dú)立使用,不與其它系統(tǒng)共享;②數(shù)據(jù)層:按領(lǐng)域模型對(duì)專利申報(bào)業(yè)務(wù)進(jìn)行建模,保證業(yè)務(wù)的獨(dú)立性,當(dāng)某一個(gè)業(yè)務(wù)模塊因?yàn)樾枨蟾淖兌薷臅r(shí),盡量不會(huì)引起其它業(yè)務(wù)模塊的變動(dòng),從而提高軟件的可維護(hù)性;③應(yīng)用層:系統(tǒng)將各模塊統(tǒng)一功能獨(dú)立出來(lái),采用統(tǒng)一的模塊或框架進(jìn)行開發(fā),分為定時(shí)任務(wù)、報(bào)表服務(wù)、郵件服務(wù)、短信服務(wù)、工作流服務(wù)等,各業(yè)務(wù)模塊接口可以在此基礎(chǔ)上按模塊進(jìn)行裝配和升級(jí);④表示層:本次系統(tǒng)只開發(fā)Web客戶端程序,頁(yè)面將采用Bootstrap技術(shù),可根據(jù)不同的瀏覽器和機(jī)器的屏幕,自動(dòng)調(diào)整頁(yè)面的布局和樣式,提高用戶的瀏覽體驗(yàn)。
系統(tǒng)服務(wù)層將采用目前主流的開發(fā)框架(Spring+Spring Mvc+Mybatis)開發(fā),以提高項(xiàng)目的質(zhì)量和可維護(hù)性。為了適應(yīng)管理對(duì)軟件功能的變更,系統(tǒng)服務(wù)層采用柔性設(shè)計(jì),業(yè)務(wù)模塊可通過(guò)組裝的方式搭建,通過(guò)高內(nèi)聚、低耦合的方式進(jìn)行迭代式開發(fā)。
2.3專利申報(bào)系統(tǒng)領(lǐng)域模型設(shè)計(jì)
專利業(yè)務(wù)管理系統(tǒng)功能主要分為六大功能模塊,下面以案件管理模塊為例進(jìn)行領(lǐng)域模型設(shè)計(jì)。
案件管理模塊主要業(yè)務(wù)是先登記新案件,案件類型分為:專利(發(fā)明專利、實(shí)用新型專利、外觀設(shè)計(jì)專利)、軟件著作權(quán)、高新技術(shù)企業(yè)認(rèn)證、知識(shí)產(chǎn)權(quán)貫標(biāo)。案件啟動(dòng)后,案件分配人指定案件代理人,代理人聯(lián)系客戶,登記案件進(jìn)展和客戶聯(lián)系信息。對(duì)于專利類申請(qǐng),代理人直接利用Word對(duì)專利等文檔進(jìn)行編輯,編輯完成后,上傳所有文檔,系統(tǒng)自動(dòng)生成CPC壓縮文件并導(dǎo)出。代理人辦理
3結(jié)語(yǔ)
本文基于領(lǐng)域驅(qū)動(dòng)設(shè)計(jì),針對(duì)專利申報(bào)系統(tǒng)完成了整個(gè)系統(tǒng)的架構(gòu)設(shè)計(jì),并根據(jù)案件管理模塊具體的業(yè)務(wù)邏輯進(jìn)行領(lǐng)域模型設(shè)計(jì)。運(yùn)用領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)可以解決復(fù)雜的業(yè)務(wù)邏輯問(wèn)題,讓領(lǐng)域?qū)ο蠛同F(xiàn)實(shí)世界中的業(yè)務(wù)形成良好的映射關(guān)系,對(duì)領(lǐng)域?qū)ο筮M(jìn)行明確的策略和職責(zé)劃分。后續(xù)會(huì)對(duì)其它模塊進(jìn)行領(lǐng)域模型設(shè)計(jì),以完成整個(gè)系統(tǒng)設(shè)計(jì)。
參考文獻(xiàn)參考文獻(xiàn):
[1]丁濤.基于領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的物流平臺(tái)系統(tǒng)實(shí)現(xiàn)[D].成都:電子科技大學(xué),2010.
[2]張金松.領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)在航務(wù)海事系統(tǒng)中的應(yīng)用研究[D].大連:大連海事大學(xué),2010.
[3]鄭家茂.開放-創(chuàng)新-實(shí)驗(yàn)教學(xué)新模式[M].北京:高等教育出版社,2009.
[4]梁慧軍,張新剛.計(jì)算機(jī)網(wǎng)絡(luò)實(shí)驗(yàn)教學(xué)的改革與創(chuàng)新型人才的培養(yǎng)[J].南陽(yáng)師范學(xué)院學(xué)報(bào),2010(12):107108.
[5]黃光芳,金義富.基于領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)構(gòu)建企業(yè)級(jí)Web平臺(tái)的應(yīng)用[D].湛江:湛江師范學(xué)院,2013.
責(zé)任編輯(責(zé)任編輯:孫娟)