周 瓊,徐 斌
(大連海事大學(xué) 管理科學(xué)與工程系,遼寧 大連116026)
結(jié)構(gòu)化方法基本要點(diǎn)是:自頂向下,逐步求精,模塊化設(shè)計(jì)。自頂向下的核心本質(zhì)是 “分解”,它將相對(duì)復(fù)雜的大問(wèn)題分解為簡(jiǎn)單的小問(wèn)題,對(duì)每一個(gè)小問(wèn)題進(jìn)行精確、定量的描述。
結(jié)構(gòu)化分析法將任何信息處理過(guò)程看作是將要輸入數(shù)據(jù)變換成所要求的輸出信息的裝置,因此數(shù)據(jù)流分析是需求分析的出發(fā)點(diǎn)。結(jié)構(gòu)化分析使用數(shù)據(jù)流圖、加工說(shuō)明和數(shù)據(jù)字典等來(lái)構(gòu)造系統(tǒng)的需求分析模型[1]。面向?qū)ο蠓椒▌t是用自然貼切的思維考慮問(wèn)題,以對(duì)象為中心,運(yùn)用類(lèi)、繼承、聚合、關(guān)聯(lián)、消息和封裝等概念來(lái)構(gòu)造軟件系統(tǒng)。結(jié)構(gòu)化分析設(shè)計(jì)主要是針對(duì)系統(tǒng)需求明確的軟件開(kāi)發(fā),一旦中間需求改變了,則需要重新對(duì)其進(jìn)行分析和設(shè)計(jì);而面向?qū)ο髣t不同,當(dāng)需求發(fā)生變化時(shí),只須修改相應(yīng)的部分和連接接口[2]。
計(jì)算機(jī)軟硬件發(fā)展迅速不斷地更新?lián)Q代,各種復(fù)雜的軟件系統(tǒng)相繼被開(kāi)發(fā),軟件系統(tǒng)規(guī)模不斷擴(kuò)大,復(fù)雜性相應(yīng)增加,這就相應(yīng)產(chǎn)生了對(duì)業(yè)務(wù)模型進(jìn)行合理抽取的需求以及面向接口來(lái)編程的需求,本文研究接口為基礎(chǔ)的業(yè)務(wù)模型的結(jié)構(gòu)設(shè)計(jì)方法,通過(guò)選擇合理的設(shè)計(jì)模式來(lái)對(duì)業(yè)務(wù)模型進(jìn)行抽取,利用該思想可以順利實(shí)現(xiàn)結(jié)構(gòu)式分析向面向?qū)ο笤O(shè)計(jì)的演化和過(guò)渡,打破兩者不可兼容的傳統(tǒng)思維。比如,各大系統(tǒng)的計(jì)費(fèi)問(wèn)題,由于各種系統(tǒng)計(jì)費(fèi)規(guī)則的多樣性和繁復(fù)性,目前也沒(méi)有能夠具體參考的計(jì)費(fèi)模板,各種計(jì)費(fèi)的實(shí)現(xiàn)非常簡(jiǎn)陋而且維護(hù)起來(lái)極其復(fù)雜,相互之間也不可復(fù)用,漏洞百出,面向接口來(lái)進(jìn)行實(shí)現(xiàn)則克服了傳統(tǒng)開(kāi)發(fā)存在的諸多弊端。以接口為導(dǎo)向結(jié)合設(shè)計(jì)模式的思想使得系統(tǒng)具有良好的可擴(kuò)展、可復(fù)用以及易維護(hù)的特性。如何應(yīng)用設(shè)計(jì)模式的思想面向接口來(lái)對(duì)業(yè)務(wù)模型進(jìn)行抽象和提取是本文的研究重點(diǎn)。這也對(duì)以后的各種類(lèi)型信息系統(tǒng)的實(shí)現(xiàn)具有十分重要的理論與實(shí)踐意義。
本文采用MVC 模式的思想,MVC 模式由模型 (model)、視圖 (view)及控制器 (controller)3 個(gè)部分組成,模型指的是業(yè)務(wù)模型,主要負(fù)責(zé)數(shù)據(jù)庫(kù)數(shù)據(jù)的處理,視圖指的是用戶(hù)界面,主要負(fù)責(zé)前臺(tái)界面的顯示內(nèi)容,控制器則是主要負(fù)責(zé)界面與數(shù)據(jù)的交互[3,4]。使用MVC 的目的是將數(shù)據(jù)層和表現(xiàn)層的實(shí)現(xiàn)代碼分離開(kāi)來(lái),從而可以使同一個(gè)程序有不同的表現(xiàn)形式,進(jìn)而提高程序的可讀性和代碼的復(fù)用性,控制器存在的目的是確保模型和視圖的同步,一旦模型改變,視圖應(yīng)該同步更新,使用MVC 模式可以降低程序開(kāi)發(fā)的風(fēng)險(xiǎn),從而構(gòu)造良好的松耦合的構(gòu)件[5-7]。
以某省漁業(yè)船舶檢驗(yàn)系統(tǒng)的計(jì)費(fèi)問(wèn)題為例來(lái)進(jìn)行說(shuō)明,該項(xiàng)目目前包含22種計(jì)費(fèi)小項(xiàng) (將來(lái)很可能會(huì)擴(kuò)充),總體計(jì)費(fèi)思想是:各項(xiàng)費(fèi)用=基數(shù)×系數(shù);總費(fèi)用=各項(xiàng)費(fèi)用之和。一般最常見(jiàn)的對(duì)業(yè)務(wù)問(wèn)題的處理過(guò)程如圖1所示。即傳統(tǒng)的MVC模式的思想,操作頁(yè)面窗體是程序的界面,業(yè)務(wù)流程控制負(fù)責(zé)所有的處理流程,實(shí)例類(lèi)庫(kù)模型則負(fù)責(zé)一些存庫(kù)查庫(kù)的操作。
圖1 傳統(tǒng)的對(duì)計(jì)費(fèi)業(yè)務(wù)的處理過(guò)程
由此想到利用判斷表來(lái)對(duì)計(jì)費(fèi)進(jìn)行簡(jiǎn)化,初始的判斷表如表1所示。由于數(shù)據(jù)量繁多,圖中只是截取了前后兩端來(lái)進(jìn)行展示。
表1 初始判斷
船舶構(gòu)造費(fèi)簡(jiǎn)化判斷見(jiàn)表2。
表2 船舶構(gòu)造費(fèi)簡(jiǎn)化判斷
輪機(jī)費(fèi)簡(jiǎn)化判斷見(jiàn)表3。
表3 輪機(jī)費(fèi)簡(jiǎn)化判斷
由判斷表可知,船舶構(gòu)造費(fèi)用只與總噸位和船舶系數(shù)以及冰區(qū)加強(qiáng)相關(guān),輪機(jī)費(fèi)用只與功率、變速齒輪和推進(jìn)器數(shù)以及側(cè)推進(jìn)裝置相關(guān),由此每一小項(xiàng)各自維護(hù)自己的計(jì)費(fèi),所有的功能運(yùn)算類(lèi)都寫(xiě)在計(jì)費(fèi)業(yè)務(wù)里,如圖2所示。具體的計(jì)費(fèi)功能的實(shí)現(xiàn)方法是比如船舶構(gòu)造,基數(shù)和系數(shù)都寫(xiě)在自己的類(lèi)中,一個(gè)小項(xiàng)目一個(gè)計(jì)費(fèi)類(lèi),又比如其它項(xiàng)目如輪機(jī)這一小項(xiàng)的計(jì)費(fèi),就是在整個(gè)計(jì)費(fèi)功能的流程控制中增加了一個(gè)輪機(jī)類(lèi)來(lái)實(shí)現(xiàn),但是這種方法維護(hù)起來(lái)特別麻煩,基數(shù)和系數(shù)的些許變動(dòng)都需要大量的去修改代碼,而且將基數(shù)和系數(shù)都寫(xiě)在程序里的缺點(diǎn)就是其它系統(tǒng)也沒(méi)法復(fù)用,遇到別的系統(tǒng)的相關(guān)的計(jì)費(fèi)問(wèn)題就必須重新寫(xiě)代碼。
圖2 利用判斷表分析后對(duì)船舶計(jì)費(fèi)的處理過(guò)程
設(shè)計(jì)模式描述了軟件設(shè)計(jì)過(guò)程中某一類(lèi)常見(jiàn)問(wèn)題的一般性解決方案,它可以使開(kāi)發(fā)人員更加簡(jiǎn)單方便地復(fù)用成功的設(shè)計(jì)和結(jié)構(gòu)體系[8]。設(shè)計(jì)模式的概念和思想非常重要的,它并不只是一種具體 “技術(shù)”,它講述的是解決問(wèn)題的思想,展示的是接口或抽象類(lèi)在實(shí)際案例中的靈活應(yīng)用與智慧,使用設(shè)計(jì)模式能使代碼真正的工程化,讓代碼更容易被理解、保證代碼的可重用性和可靠性,使新系統(tǒng)開(kāi)發(fā)者更容易理解其設(shè)計(jì)思路,保證系統(tǒng)的靈活性和可擴(kuò)充性[9]。
對(duì)業(yè)務(wù)模型進(jìn)行抽取主要會(huì)用到以下一些常見(jiàn)的設(shè)計(jì)模式:
(1)工廠模式:工廠模式有助于代碼的設(shè)計(jì),可以將代碼模塊化,是創(chuàng)建型模式中一類(lèi)非常重要的模式,工廠模式提供創(chuàng)建對(duì)象的接口,負(fù)責(zé)將大量有共同接口的類(lèi)實(shí)例化,主要有簡(jiǎn)單工廠模式,工廠方法模式,抽象工廠模式3種形態(tài)[10]。
(2)單例模式:保證一個(gè)類(lèi)僅有一個(gè)實(shí)例,并提供一個(gè)訪問(wèn)它的全局訪問(wèn)點(diǎn)。單例可以節(jié)省不必要的內(nèi)存開(kāi)銷(xiāo),屏蔽對(duì)象創(chuàng)建的復(fù)雜性。
(3)適配器模式:適配器模式是一種非常廣泛的結(jié)構(gòu)型設(shè)計(jì)模式,其主要意圖是將一種類(lèi)的接口轉(zhuǎn)換成另一種客戶(hù)所希望的接口。適配器模式的目的是要改變已有的接口,使得原本因接口不兼容而無(wú)法一起工作的類(lèi)可以在一起工作[11]。
(4)觀察者模式:又稱(chēng)發(fā)布-訂閱模式。觀察者模式定義對(duì)象間的一種一對(duì)多的依賴(lài)關(guān)系,將觀察者和被觀察者對(duì)象分離開(kāi)來(lái),以便當(dāng)一個(gè)對(duì)象的狀態(tài)發(fā)生改變時(shí),所有依賴(lài)它的對(duì)象都會(huì)得到通知并自動(dòng)更新自身狀態(tài),通常被用來(lái)實(shí)現(xiàn)事件處理系統(tǒng)[12]。
傳統(tǒng)的對(duì)業(yè)務(wù)的設(shè)計(jì)方法存在著不足之處,例如一旦業(yè)務(wù)需求變更,修改起來(lái)的工作量較大,并且復(fù)用性不強(qiáng),最重要的是各種職能類(lèi)并行存在,結(jié)構(gòu)很亂?;诖吮疚奶岢隽嘶诮涌诘臉I(yè)務(wù)模型的結(jié)構(gòu)設(shè)計(jì)方法,如圖3所示。就是將業(yè)務(wù)流程控制抽象成一個(gè)接口,然后基于此接口進(jìn)行擴(kuò)展,將業(yè)務(wù)流程進(jìn)行拆解,分為業(yè)務(wù)控制擴(kuò)展1,2,3等等,同時(shí)也將實(shí)體類(lèi)庫(kù)模型進(jìn)行抽象,抽象為一個(gè)接口,查表存庫(kù)的操作則是基于此接口進(jìn)行,這種設(shè)計(jì)方案最大的優(yōu)點(diǎn)在于將業(yè)務(wù)流程的處理和訪問(wèn)數(shù)據(jù)庫(kù)的操作提煉為一個(gè)接口,所有的擴(kuò)展都是在此基礎(chǔ)之上的,相對(duì)于操作界面來(lái)說(shuō)后面所有的處理都是基于接口的,這樣操作者只需要控制好所需數(shù)據(jù)的流入流出即可,而無(wú)需知曉具體的實(shí)現(xiàn)方式。在設(shè)計(jì)過(guò)程中以接口為導(dǎo)向,對(duì)業(yè)務(wù)問(wèn)題進(jìn)行分析,采用合理的設(shè)計(jì)模式或者是幾種經(jīng)典的設(shè)計(jì)模式的組合來(lái)提出一套完整的解決方案,以接口為基礎(chǔ)來(lái)研究系統(tǒng)或者是業(yè)務(wù)模型的結(jié)構(gòu)設(shè)計(jì)方法,從而實(shí)現(xiàn)一種用于解決在特定環(huán)境下重復(fù)出現(xiàn)的特定問(wèn)題的解決方案,展示接口或抽象類(lèi)在實(shí)際案例中的靈活應(yīng)用,同時(shí)具有良好的可移植性和可復(fù)用性,方便應(yīng)用到其它領(lǐng)域。
具體到某省漁業(yè)船舶檢驗(yàn)計(jì)費(fèi)系統(tǒng),本文結(jié)合設(shè)計(jì)模式和面向接口編程的相關(guān)概念,為計(jì)費(fèi)這個(gè)小系統(tǒng)做一套混合設(shè)計(jì)模式,來(lái)減輕編寫(xiě)代碼的工作量,如圖4 所示。將上述計(jì)費(fèi)功能控制部分抽象為一個(gè)接口,計(jì)費(fèi)功能的實(shí)現(xiàn)以及計(jì)費(fèi)規(guī)則是對(duì)這一接口的擴(kuò)展,同樣的關(guān)于數(shù)據(jù)庫(kù)的操作也抽象出來(lái)一個(gè)接口,具體的對(duì)各個(gè)庫(kù)表的操作則是實(shí)現(xiàn)了這一接口。這樣把整個(gè)計(jì)費(fèi)流程的控制和對(duì)數(shù)據(jù)庫(kù)的操作抽象為了一個(gè)接口,業(yè)務(wù)需求變動(dòng)時(shí)只需基于接口進(jìn)行擴(kuò)展而無(wú)需變動(dòng)接口,站在操作頁(yè)面的角度就是說(shuō)只需知曉所需數(shù)據(jù)的流入流出,這種基于接口的解決方案能被其它系統(tǒng)方便復(fù)用。
圖3 基于接口的業(yè)務(wù)模型的結(jié)構(gòu)設(shè)計(jì)方法
圖4 基于接口的對(duì)船舶計(jì)費(fèi)業(yè)務(wù)的結(jié)構(gòu)設(shè)計(jì)方法
其中如圖5所示是計(jì)費(fèi)功能實(shí)現(xiàn)部分的結(jié)構(gòu),抽取一個(gè)父類(lèi)FeeBase,父類(lèi)中的GetFee()專(zhuān)用來(lái)實(shí)現(xiàn)各項(xiàng)費(fèi)用的計(jì)算,這樣有多少個(gè)計(jì)費(fèi)小項(xiàng)繼承父類(lèi)擴(kuò)充就可以了,比如此時(shí)若再增加其它項(xiàng)目的計(jì)費(fèi)只需繼承FeeBase類(lèi)并實(shí)現(xiàn)即可。
圖5 計(jì)費(fèi)功能實(shí)現(xiàn)部分的結(jié)構(gòu)
關(guān)于計(jì)費(fèi)規(guī)則部分的結(jié)構(gòu)在漁船系統(tǒng)中主要指的是關(guān)于計(jì)費(fèi)基數(shù)部分的維護(hù),如圖6所示是一個(gè)通用的數(shù)據(jù)結(jié)構(gòu)CRCostData來(lái)表示計(jì)費(fèi)所用的基數(shù)的類(lèi)型,使用最通用的object類(lèi)型,根據(jù)具體項(xiàng)目的計(jì)費(fèi)需求可擴(kuò)展為最常見(jiàn)的int型和double型的收費(fèi),有的系統(tǒng)可能需要一些加班費(fèi)這時(shí)也可擴(kuò)展為按時(shí)間的datetime型進(jìn)行收費(fèi),漁業(yè)船舶檢驗(yàn)系統(tǒng)用到的是double型的收費(fèi)。如圖7所示是為基數(shù)的維護(hù)工作設(shè)計(jì)的模式結(jié)構(gòu),該結(jié)構(gòu)中包含一個(gè)通用的數(shù)據(jù)結(jié)構(gòu)CRCostData,這項(xiàng)對(duì)基數(shù)數(shù)據(jù)的維護(hù)同樣用到了設(shè)計(jì)模式中最常見(jiàn)的工廠模式,這樣前端代碼只需返回一個(gè)父類(lèi)類(lèi)型而無(wú)需具體知曉調(diào)用的具體算法。
圖6 計(jì)費(fèi)規(guī)則部分的數(shù)據(jù)類(lèi)型
圖7 計(jì)費(fèi)規(guī)則部分
其中,計(jì)費(fèi)規(guī)則部分的實(shí)現(xiàn)方法用到了設(shè)計(jì)模式中的工廠模式,工廠模式有助于代碼的設(shè)計(jì),可以將代碼模塊化,提供創(chuàng)建對(duì)象的接口,工廠模式的應(yīng)用讓系統(tǒng)具有非常大的靈活性且方便擴(kuò)展。同樣的應(yīng)用于其它領(lǐng)域可以根據(jù)具體需要用單例模式、適配器模式或者觀察者模式等等,也可能是多種經(jīng)典的設(shè)計(jì)模式的組合。
這樣,前端代碼實(shí)現(xiàn)起來(lái)將會(huì)非常簡(jiǎn)單,以一小項(xiàng)如船舶構(gòu)造為例,如圖8 所示是前端使用到的數(shù)據(jù)結(jié)構(gòu),item 指計(jì)費(fèi)項(xiàng)目名稱(chēng),baseValue指該項(xiàng)目的基數(shù),factor指該項(xiàng)目的系數(shù),fee則是單項(xiàng)的費(fèi)用,具體實(shí)現(xiàn)代碼為:
圖8 前端用到的數(shù)據(jù)結(jié)構(gòu)
此時(shí)若是增加另一小項(xiàng)如輪機(jī)的計(jì)費(fèi),則代碼修改起來(lái)非常靈活,只需增加如下幾行即可。
這種用于計(jì)費(fèi)的設(shè)計(jì)模式的設(shè)計(jì)有非常重要的實(shí)踐意義,使用這種混合方式的設(shè)計(jì)模式進(jìn)行計(jì)費(fèi)的方式大大簡(jiǎn)化了信息系統(tǒng)的計(jì)費(fèi)實(shí)現(xiàn),它將計(jì)費(fèi)規(guī)則進(jìn)行抽象,將計(jì)費(fèi)規(guī)則模塊化使得程序?qū)崿F(xiàn)起來(lái)?xiàng)l理清晰且便于維護(hù),而且由于對(duì)基數(shù)和系數(shù)維護(hù)的分離以及對(duì)具體總費(fèi)用的抽取,可移植性、可復(fù)用性很高,可以方便應(yīng)用到其它系統(tǒng)不僅僅是漁船行業(yè)的計(jì)費(fèi),而且由于其設(shè)計(jì)的合理性,代碼的修改量極少,重構(gòu)起來(lái)的工作量也不大。
同樣的,面對(duì)其它業(yè)務(wù)問(wèn)題時(shí)也是如此,應(yīng)用設(shè)計(jì)模式的思想面向接口來(lái)對(duì)業(yè)務(wù)模型進(jìn)行抽象和提取,在設(shè)計(jì)過(guò)程中以接口為導(dǎo)向,對(duì)業(yè)務(wù)問(wèn)題進(jìn)行分析,采用合理的設(shè)計(jì)模式或者是幾種經(jīng)典的設(shè)計(jì)模式的組合來(lái)提出一套完整的解決方案,從而實(shí)現(xiàn)一種用于解決在特定環(huán)境下重復(fù)出現(xiàn)的特定問(wèn)題的解決方案。利用接口來(lái)對(duì)業(yè)務(wù)邏輯進(jìn)行分隔使整個(gè)業(yè)務(wù)邏輯依賴(lài)于嚴(yán)格定義的接口而非具體實(shí)現(xiàn),可以順利實(shí)現(xiàn)結(jié)構(gòu)式分析向面向?qū)ο笤O(shè)計(jì)的演化和過(guò)渡,通過(guò)接口將結(jié)構(gòu)式思維和面向?qū)ο蠹夹g(shù)結(jié)合在一起,充分發(fā)揮兩者的優(yōu)勢(shì),從而減少耦合,提高系統(tǒng)的靈活性。
[1]ZHANG Yaomin.Method of structured design in software engineering [J]. Modern Electronics Technique,2012,35(16):39-42 (in Chinese).[張耀民.軟件工程中的結(jié)構(gòu)化設(shè)計(jì)方法 [J].現(xiàn)代電子技術(shù),2012,35 (16):39-42.]
[2]TAN Linping.Depth analysis of process-oriented and objectoriented [J].The Science Education Article Collects,2013(237):89-90 (in Chinese).[譚林平.深入解析面向過(guò)程和面向?qū)ο?[J].科教文匯,2013 (237):89-90.]
[3]LI Zhi,JIA Kebin,LI Zhenzhen,et al.Design and implementation of jewelry sell system based on.NET MVC framework[J].Computer Applications and Software,2013,30 (3):186-189 (in Chinese). [李志,賈克斌,李真真,等.基于.NET MVC 架構(gòu)的網(wǎng)上珠寶銷(xiāo)售系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) [J].計(jì)算機(jī)應(yīng)用與軟件,2013,30 (3):186-189.]
[4]SUN Jin.Design and implementation of bank credit management system based on MVC pattern [D].Dalian:Dalian University of Technology,2013 (in Chinese).[孫瑨.基于MVC模式的銀行信貸管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) [D].大連:大連理工大學(xué),2013.]
[5]ZHOU Hui,REN Haijun,MA Liang,et al.MVC design pattern and it’s application in development of information systems[J].Software Guide,2012,11 (10):120-122(in Chinese). [周輝,任海軍,馬亮,等.MVC設(shè)計(jì)模式及其在信息系統(tǒng)開(kāi)發(fā)中的應(yīng)用[J].軟件導(dǎo)刊,2012,11 (10):120-122.]
[6]LU Junwei,CHANG Lin,CHEN Yunkun.MVC Design pattern and ASP.NET MVC framework research [J].Computer Knowledge and Technology,2010,6 (19):5160-5162 (in Chinese).[盧俊瑋,常琳,陳昀錕.MVC模式與ASP.NET MVC框架的技術(shù)研究[J].電腦知識(shí)與技術(shù),2010,6 (19):5160-5162.]
[7]LAI Yingxu,LIU Zenghui,LI Maomao.Application study of B/S based on MVC design pattern [J].Microcomputer Information (Management and Control Integration),2006,22(10):34-36 (in Chinese).[賴(lài)英旭,劉增輝,李毛毛.MVC模式在B/S系統(tǒng)開(kāi)發(fā)中的應(yīng)用研究 [J].微計(jì)算機(jī)信息 (管控一體化),2006,22 (10):34-36.]
[8]WU Guangming.Application of design patterns in globalised software development [J].Computer Applications and Software,2014,31 (1):9-10 (in Chinese).[武光明.設(shè)計(jì)模式在全球化軟件開(kāi)發(fā)中的應(yīng)用 [J].計(jì)算機(jī)應(yīng)用與軟件,2014,31 (1):9-10.]
[9]CUI Le.Several classical design patterns combination frame of reference [J].Computer Knowledge and Technology,2004(14):79-82 (in Chinese).[崔仂.幾種經(jīng)典設(shè)計(jì)模式組合的參考框架 [J].電腦知識(shí)與技術(shù),2004 (14):79-82.]
[10]CHEN Hua’en.Study on abstract factory pattern of the JAVA design pattern [J].Computer Knowledge and Technology,2010,6 (9):2245-2246 (in Chinese). [陳 華恩.JAVA 設(shè)計(jì)模式研究之抽象工廠模式 [J].電腦知識(shí)與技術(shù),2010,6(9):2245-2246.]
[11]PENG Yang,PENG Junfeng.Application and research of the adapter pattern on system interfaces [J].Computer Knowledge and Technology,2008,3 (24):1346-1348 (in Chinese).[彭陽(yáng),彭軍鋒.適配器模式在系統(tǒng)接口中的應(yīng)用與研究 [J].電腦知識(shí)與技術(shù),2008,3 (24):1346-1348.]
[12]CHEN Qing.The research and application on design patternoriented MDA [D].Shanghai:Shanghai Normal University,2013 (in Chinese).[陳清.面向設(shè)計(jì)模式的模型驅(qū)動(dòng)框架的研究與應(yīng)用 [D].上海:上海師范大學(xué),2013.]