模型驅(qū)動的軟件開發(fā)技術課程介紹課件_第1頁
模型驅(qū)動的軟件開發(fā)技術課程介紹課件_第2頁
模型驅(qū)動的軟件開發(fā)技術課程介紹課件_第3頁
模型驅(qū)動的軟件開發(fā)技術課程介紹課件_第4頁
模型驅(qū)動的軟件開發(fā)技術課程介紹課件_第5頁
已閱讀5頁,還剩177頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

提綱課程主要目標引例課程特色在模型驅(qū)動領域的研究背景與成果授課方式與課程要求課程內(nèi)容與計劃課程的準備知識、學習方法本課程所用到的工具集課程分數(shù)評定參考資料研究項目與原型展示提綱課程主要目標課程主要目標了解軟件開發(fā)方法學在面向?qū)ο筌浖_發(fā)方法之后的最新發(fā)展趨勢與關鍵技術,如基于構件,面向特征,面向特征等技術。掌握模型驅(qū)動軟件開發(fā)方法的基本概念與主要思想。掌握模型驅(qū)動軟件開發(fā)方法中的關鍵技術,如元建模技術、模型轉(zhuǎn)換和代碼生成的規(guī)范與方法。初步掌握將模型驅(qū)動軟件開發(fā)方法運用到特定領域的方法,技術與工具。改變對軟件開發(fā)的傳統(tǒng)思路,更深理解軟件工程。掌握前沿軟件開發(fā)方法,增強職業(yè)競爭力。提高研究能力,開闊學術視野,培養(yǎng)把握前沿軟件開發(fā)方法的研究與應用能力。課程主要目標了解軟件開發(fā)方法學在面向?qū)ο筌浖_發(fā)方法之后的最引例—軟件企業(yè)面臨的問題攸關系統(tǒng)汽車領域航天領域恒潤科技SaaS企業(yè)某軟件開發(fā)公司的主營業(yè)務是為中小型企業(yè)開發(fā)Web信息管理系統(tǒng),而每個企業(yè)都有自身的需求,公司人員已達8000人,但仍忙不過來。中企動力創(chuàng)新公司某公司計劃在短期內(nèi)開發(fā)一種非常有創(chuàng)意的軟件產(chǎn)品,以便快速占領市場,但不精通開發(fā)技術,人手不夠。大型IT企業(yè)異構性的問題代碼重構如何充分利用多年來積累的開發(fā)經(jīng)驗、制品與代碼。某大型軟件公司的軟件開發(fā)人員每天苦于建立千篇一律的設計模型、編寫千篇一律的程序,耗時而乏味。某軟件設計人員建立了一個設計模型,但無法驗證。IBM華為上海證券涉及軟件外包的企業(yè)軟件外包過程中,甲乙雙方溝通問題。軟件外包過程中,甲乙雙方知識產(chǎn)權問題。金融公司銀行引例—軟件企業(yè)面臨的問題攸關系統(tǒng)課程特色深入、系統(tǒng)、完整地講解模型驅(qū)動軟件開發(fā)方法的產(chǎn)生背景及其中的關鍵技術與規(guī)范。深入講解UML/MOF/QVT語言的高級技術細節(jié),講解完整的模型驅(qū)動軟件開發(fā)方法。展示模型驅(qū)動方法中的工具集。綜合最新研究文獻與多年研究成果,集理論性、實用性、研究性、前沿性一體。提供豐富的案例,便于快速掌握關鍵技術通過完整案例,展示模型驅(qū)動軟件開發(fā)的過程。課程特色深入、系統(tǒng)、完整地講解模型驅(qū)動軟件開發(fā)方法的產(chǎn)生背景在模型驅(qū)動領域的研究背景博士論文《UML擴展機制及其支持技術研究》2003針對UML擴展機制及其在使用中出現(xiàn)的問題,對UML的衍型擴展機制進行了精確的定義與分析,研究了元模型擴展機制的分級定義以及元模型語法擴展的支持技術。特別是對UML擴展機制和元模型方面的理論研究方面,已有兩篇論文發(fā)表在UML領域最重要的國際會議UML2004論文中關于元建模工具原理與原型的論述與近期EclipseGMF中的工作原理非常相似,卻比后者早了6年博士后科學基金項目《擴展UML的過程策略研究及其在web領域建模與模擬中的應用》2004~2005博士后出站報告《MDA在特定領域的應用與基礎理論研究》2006模型驅(qū)動的體系結(jié)構研究綜述基于MDA的Web領域用況模型研究基于MDA與SOA的系統(tǒng)集成技術研究擴展MDA的建模語言的過程策略研究指導MDA相關的綜合實踐四項、碩士論文三篇主持國家自然科學基金項目《軟件外包領域模型驅(qū)動開發(fā)方法中模型偽裝與轉(zhuǎn)換理論研究》2012主持華為合作研究項目《下一代網(wǎng)絡架構和協(xié)議的廣義模型和轉(zhuǎn)換》2013在模型驅(qū)動領域的研究背景博士論文《UML擴展機制及其支持技術在模型驅(qū)動領域的研究背景1.OntheFormalizedSemanticsofStaticModelingElementsinUML,JiangYan-bingShaoWei-zhongMaZhi-yiandFengYao-dong,FormalMethodsAndSoftwareEngineering2002,ProcedingsLectureNotesInComputerScience,Springer-VerlagBerlin.(SCI收錄)獲得北京大學2004年優(yōu)秀論文獎2.OntheClassificationofUML’sMetaModelExtensionMechanism,YanbingJiang,WeizhongShao,LuZhang,ZhiyiMa,XiangwenMengandHaohaiMa,UML2004,ProcedingsLectureNotesInComputerScience,Springer-VerlagBerlin.(SCI收錄引用1次)這是在有關UML最權威的國際會議上發(fā)表的論文,并對UML的發(fā)展提出建設性建議。3.ApplyingOOMetricstoAssessUMLMeta-Models,HaohaiMa,WeizhongShaoLuZhang,ZhiyiMaandYanbingJiang,UML2004,ProcedingsLectureNotesInComputerScience,Springer-VerlagBerlin.(SCI收錄)4.OnProcedureStrategyofConstructingSOA’sModelingLanguage,YanbingJiang,ChunxiaoXing,WeiheandJijiangYang,ProcedingsofIEEEInternationalWorkshoponservice-orientedsystemEngineering2005,IEEEComputerSocietyPress5.模型驅(qū)動的體系結(jié)構研究綜述,蔣嚴冰邢春曉南京大學學報(自然科學版),計算機科學專輯2005.106.UML中衍型的精確定義與分析,蔣嚴冰邵維忠張路麻志毅電子學報2003.12a(EI收錄)7.UML現(xiàn)存問題與發(fā)展道路,邵維忠蔣嚴冰麻志毅,計算機研究與發(fā)展,2003.4(EI收錄)8.面向?qū)ο蟮慕9ぞ摺狫BOO3.0的研究與開發(fā),麻志毅蔣嚴冰戴耀飛李勁宇電子學報2002.12a(EI索引源)9.基于規(guī)則的UML元模型語法擴展的支持技術研究,蔣嚴冰麻志毅朱志高張能斌,中國計算機大會論文集,清華大學出版社,2003年11月在模型驅(qū)動領域的研究背景1.OntheFormalize課程內(nèi)容與計劃課次內(nèi)容學時時間1課程介紹緒論:模型驅(qū)動軟件開發(fā)技術綜述與后面向?qū)ο蠓椒ㄅc模型驅(qū)動

3學時2013.2.26星期二晚18:00~21:002元建模技術——概述元建模技術——UML的元模型體系結(jié)構與擴展機制3學時2013.3.5星期二晚18:00~21:003元建模技術——元建模過程與支撐工具元建模技術——實戰(zhàn)案例3學時2013.3.12星期二晚18:00~21:004元建模技術——實戰(zhàn)案例3學時2013.3.19星期二晚18:00~21:005元建模技術——展示與輔導3學時2013.3.26星期二晚18:00~21:00課程內(nèi)容與計劃課次內(nèi)容學時時間1課程介紹3學時2013.2.7課程內(nèi)容與計劃課次內(nèi)容學時時間6模型轉(zhuǎn)換技術——概述模型轉(zhuǎn)換技術——基于QVTrelation的轉(zhuǎn)換語言與工具3學時2013.4.2星期二晚18:00~21:007模型轉(zhuǎn)換技術——基于QVTrelation的案例3學時2013.4.9星期二晚18:00~21:008模型轉(zhuǎn)換技術——基于QVToperational的轉(zhuǎn)換轉(zhuǎn)換語言與工具3學時2013.4.16星期二晚18:00~21:009模型轉(zhuǎn)換技術——基于QVToperational的案例3學時2013.4.23星期二晚18:00~21:0010模型轉(zhuǎn)換技術——基于QVToperational的案例3學時2013.5.7星期二晚18:00~21:00課程內(nèi)容與計劃課次內(nèi)容學時時間6模型轉(zhuǎn)換技術——概述3學時28課程內(nèi)容與計劃課次內(nèi)容學時時間11模型轉(zhuǎn)換技術——展示與輔導3學時2013.5.14星期二晚18:00~21:0012模型驅(qū)動的代碼生成技術——基于Jet的代碼生成語言與工具3學時2013.5.21星期二晚18:00~21:0013模型驅(qū)動的代碼生成技術——基于QVT

M2T的代碼生成語言與工具Acceleo3學時2013.5.28星期二晚18:00~21:0014模型驅(qū)動的代碼生成技術——展示與輔導3學時2013.6.4星期二晚18:00~21:0015MDA綜合案例3學時擇機16分組項目答辯3學時擇機課程內(nèi)容與計劃課次內(nèi)容學時時間11模型轉(zhuǎn)換技術——展示與輔9授課方式與課程要求課堂講授與討論相結(jié)合鼓勵相關論文規(guī)范閱讀分組項目與展示理論學習與項目實踐相結(jié)合注重相關工具集的使用授課方式與課程要求課堂講授與討論相結(jié)合課程的準備知識、學習方法準備知識一種面向?qū)ο蟮木幊陶Z言面向?qū)ο蠹夹gUML學習方法理論與實踐相結(jié)合學習與研究相結(jié)合課程的準備知識、學習方法準備知識Web領域代碼自動生成工具PetStoreEARHotelWBM業(yè)務流程模型0的研究與開發(fā),麻志毅蔣嚴冰戴耀飛李勁宇電子學報2002.邏輯模型綁定到物理模型基于MDA的Web領域模型研究每層分別進行元建模、模型轉(zhuǎn)換和代碼生成mappingrectangle::rectangleTorectangle():rectangle{helpersimplediagram::findNodeWithSameEllipse(n:node):Set(node){lines+=mapabstractsubnode(r,k).基于QVTO的缺陷模型自動修復工具18:00~21:00基于ecore的源代碼克隆缺陷建模工具components+=objectellipse{nodename:=x};PetStoreEAR12a(EI索引源)<echomessage=""/>元建模技術——展示與輔導代碼生成技術不僅能夠提高軟件的開發(fā)效率。EclipseCDT本課程所用到的工具集EclipsemodelingMediniQVTWeb領域代碼自動生成工具本課程所用到的工具集Eclipse本課程所用到的工具集工具作用基于工具配置與修改方案元建模工具可視化地建立各種模型的ecore元模型EclipsemodelingEcoretools直接可視化的使用EclipsemodelingEcoretools中Ecorediagram可視化的建立各種模型的ecore元模型,并存儲為.ecore文件??蓴U展的建模工具以ecore元模型為輸入,將其可視化的綁定建模元素的表示法與行為,形成支持各種ecore元模型的建模工具。用以生成各種模型,并以.xmi的方式存儲.EclipsemodelingGMF利用GMF的提供的配置向?qū)Э僧a(chǎn)生簡單的建模工具的插件,如對表示法和行為有特殊的要求,可通過修改所生成的建模工具的插件的源代碼?;赒VT的模型轉(zhuǎn)換根據(jù)既定的QVT元模型轉(zhuǎn)化規(guī)則,以一種web領域模型為輸入,通過轉(zhuǎn)換輸出另外一種模型Eclipsemodeling

operationalQVT;mediniQVT大部分轉(zhuǎn)換可通過在這些模型轉(zhuǎn)換工具中輸入以QVT規(guī)范編寫的轉(zhuǎn)換語言后,即可自動實現(xiàn)。其中Eclipsemodeling

operationalQVT支持過程化的轉(zhuǎn)換描述,mediniQVT支持關系聲明型的轉(zhuǎn)換描述。代碼生成可通過QVT及EMF工具分別以模型轉(zhuǎn)換的方法或模板的方法實現(xiàn)。Eclipsemodeling

JETAcceleo代碼生成可通過EMF中的JET工具,以模板的方式實現(xiàn).本課程所用到的工具集工具作用基于工具配置與修改方案元建模工具13課程分數(shù)評定考核方式無筆試無編碼項目平時成績30%項目成績70%項目要求基于Eclipsemodeling等模型驅(qū)動支撐工具,建立特定領域的模型驅(qū)動工具,包括元建模、模型轉(zhuǎn)換及代碼生成等部分。要求:①明確描述需求②重點描述元模型與基于QVT的轉(zhuǎn)換方案及實驗案例③代碼生成方案課程分數(shù)評定考核方式課程項目選取領域Web領域代碼自動生成工具手機領域代碼自動生成工具基于設計模式的模型自動轉(zhuǎn)換其他課程項目選取領域Web領域代碼自動生成工具課程參考資料Stahl,T.,Volter,M.等著,楊華,高猛譯,模型驅(qū)動軟件開發(fā):技術、工程與管理,清華大學出版社,2009年1月第一版科學出版社影印,2003年5月第一版QVT-Partners,RevisedsubmissionforMOF2.0Query/Views/TransformationsRFP,Version1.1(2003/08/18),UML2.0SuperstructureSpecificationUML2.0InfrastructureSpecificationMOF?Query/Views/Transformations課程參考資料Stahl,T.,Volter,M.等著,楊華,模型驅(qū)動的研究項目與原型模型驅(qū)動的Web領域軟件模型體系、模型轉(zhuǎn)換及代碼生成技術與原型模型驅(qū)動的J2EE部署模型工具WBM到SOMA的模型轉(zhuǎn)化系統(tǒng)軟件外包領域模型驅(qū)動開發(fā)方法中模型偽裝與轉(zhuǎn)換下一代網(wǎng)絡架構和協(xié)議的廣義模型和轉(zhuǎn)換模型驅(qū)動的研究項目與原型模型驅(qū)動的Web領域軟件模型體系、模模型驅(qū)動的Web領域軟件模型體系、模型轉(zhuǎn)換及代碼生成技術與原型模型驅(qū)動的Web領域軟件模型體系、模型轉(zhuǎn)換及代碼生成技術與原Web領域代碼自動生成工具UML及其擴展機制/QVTWeb領域模型轉(zhuǎn)換及代碼生成研究Web領域建模工具原型研發(fā)(基于eclipse-modelingEcoretools,GMF的Web領域元建模及建模工具)Web模型轉(zhuǎn)化與代碼生成工具原型研發(fā)(基于mediniQVT及

eclipse-modeling

operationalQVTEMF的模型轉(zhuǎn)化與代碼生成工具)在具體Web系統(tǒng)開發(fā)中的應用、驗證與比較Web應用實踐基于MDA的Web領域模型研究Web領域的CIM模型(基于Ecore的web領域需求的元模型)Web領域的PIM模型(基于Ecore的web領域獨立平臺的元模型)Web領域的PSM模型Web領域CIM到PIM轉(zhuǎn)換(基于QVT的CIM到PIM轉(zhuǎn)換)Web領域PIM到PSM轉(zhuǎn)換(基于QVT的CIM到PIM轉(zhuǎn)換)Web領域PSM到源代碼轉(zhuǎn)換模型到元模型歸納轉(zhuǎn)換技術Web領域代碼自動生成工具UML及其擴展機制/QVTWeb領模型體系與模型轉(zhuǎn)換概要模型體系與模型轉(zhuǎn)換概要模型驅(qū)動的軟件開發(fā)技術課程介紹課件實例:博客領域模型驅(qū)動的開發(fā)基于web三層模型進行分層分工,每層分別進行元建模、模型轉(zhuǎn)換和代碼生成表現(xiàn)層陳定勝耿耘劉洋駱云數(shù)據(jù)持久化層朱曉文趙越月業(yè)務邏輯層元建模模型轉(zhuǎn)換代碼生成90%100%100%實例:博客領域模型驅(qū)動的開發(fā)基于web三層模型進行分層分工,22EclipsemodelingEcoretools主持華為合作研究項目《下一代網(wǎng)絡架構和協(xié)議的廣義模型和轉(zhuǎn)換》2013(基于Ecore的web領域result.nodenamethen{findNodeWithSameEllipse(r)->isEmpty()orself.在具體Web系統(tǒng)開發(fā)中的應用、驗證與比較name:=self.HotelWBM業(yè)務流程模型緒論:模型驅(qū)動軟件開發(fā)技術綜述與后面向?qū)ο蠓椒ㄅc模型驅(qū)動將相同的子結(jié)構提取出來4.OnProcedureStrategyofConstructingSOA’sModelingLanguage,YanbingJiang,ChunxiaoXing,WeiheandJijiangYang,ProcedingsofIEEEInternationalWorkshoponservice-orientedsystemEngineering2005,IEEEComputerSocietyPresscomponents+=(n2.1:取消目標模型元素的自關聯(lián)18:00~21:00模型驅(qū)動的代碼生成技術——基于QVTM2T的代碼生成語言與工具Acceleo基于MDA的Web領域模型研究EclipsemodelingJET在模型驅(qū)動領域的研究背景Eclipsemodeling分析模型元模型EclipsemodelingEcoretools分析23數(shù)據(jù)訪問層元模型數(shù)據(jù)訪問層元模型24業(yè)務邏輯層元模型業(yè)務邏輯層元模型25展現(xiàn)層元模型展現(xiàn)層元模型26分析模型分析模型27數(shù)據(jù)訪問層設計模型數(shù)據(jù)訪問層設計模型28業(yè)務邏輯層設計模型業(yè)務邏輯層設計模型29展現(xiàn)層設計模型LOGO展現(xiàn)層設計模型LOGO30數(shù)據(jù)訪問層的代碼生成數(shù)據(jù)訪問層的代碼生成31業(yè)務邏輯層代碼生成業(yè)務邏輯層代碼生成32展現(xiàn)層代碼生成展現(xiàn)層代碼生成33展現(xiàn)層展現(xiàn)層34基于android的手機代碼框架生成系統(tǒng)基于android的手機代碼框架生成系統(tǒng)JSPServelet代碼框架生成系統(tǒng)JSPServelet代碼框架生成系統(tǒng)產(chǎn)生內(nèi)部結(jié)構:內(nèi)部結(jié)構的連線規(guī)則自動驗證與到代碼的自動轉(zhuǎn)化工具0InfrastructureSpecificationMOF?Query/Views/Transformations交換機PIM結(jié)構模型到PSM結(jié)構模型的轉(zhuǎn)換工具基于模型驅(qū)動的J2EE部署模型工具component[ellipse]->mapcTc(result);component[rectangle]->mapcTc(result);(SCI收錄)獲得北京大學2004年優(yōu)秀論文獎_from:=self.可視化地建立各種模型的ecore元模型18:00~21:0018:00~21:00其中EclipsemodelingoperationalQVT支持過程化的轉(zhuǎn)換描述,mediniQVT支持關系聲明型的轉(zhuǎn)換描述。to->maplineToline();4.OnProcedureStrategyofConstructingSOA’sModelingLanguage,YanbingJiang,ChunxiaoXing,WeiheandJijiangYang,ProcedingsofIEEEInternationalWorkshoponservice-orientedsystemEngineering2005,IEEEComputerSocietyPress<echomessage=""/>source->resolveoneIn(ellipse::eTc)=self.掌握模型驅(qū)動軟件開發(fā)方法的基本概念與主要思想。某公司計劃在短期內(nèi)開發(fā)一種非常有創(chuàng)意的軟件產(chǎn)品,以便快速占領市場,但不精通開發(fā)技術,人手不夠。son.分析模型元模型產(chǎn)生內(nèi)部結(jié)構:內(nèi)部結(jié)構的連線分析模型元模型37數(shù)據(jù)訪問層元模型數(shù)據(jù)訪問層元模型38業(yè)務邏輯層元模型業(yè)務邏輯層元模型39展現(xiàn)層元模型展現(xiàn)層元模型40分析模型分析模型41數(shù)據(jù)訪問層設計模型數(shù)據(jù)訪問層設計模型42業(yè)務邏輯層設計模型業(yè)務邏輯層設計模型43展現(xiàn)層設計模型LOGO展現(xiàn)層設計模型LOGO44數(shù)據(jù)訪問層的代碼生成數(shù)據(jù)訪問層的代碼生成45業(yè)務邏輯層代碼生成業(yè)務邏輯層代碼生成46findNodeWithSameEllipse(r);7.UML現(xiàn)存問題與發(fā)展道路,邵維忠蔣嚴冰麻志毅,計算機研究與發(fā)展,2003.將相同的子結(jié)構提取出來改變對軟件開發(fā)的傳統(tǒng)思路,更深理解軟件工程。mappingline::lineToline():line{某軟件開發(fā)公司的主營業(yè)務是為中小型企業(yè)開發(fā)Web信息管理系統(tǒng),而每個企業(yè)都有自身的需求,公司人員已達8000人,但仍忙不過來。邏輯模型綁定到物理模型ponent[rectangle]->mapcTc(result);提高研究能力,開闊學術視野,培養(yǎng)把握前沿軟件開發(fā)方法的研究與應用能力。lines+=self.邏輯模型綁定到物理模型基于MDA的Web領域用況模型研究component+=c.基于android的手機代碼框架生成系統(tǒng)WBM到SOMA的模型轉(zhuǎn)化系統(tǒng)基于ecore的源代碼克隆缺陷元模型_from:=self.在具體Web系統(tǒng)開發(fā)中的應用、驗證與比較基于MDA的Web領域模型研究WBM到SOMA的模型轉(zhuǎn)化系統(tǒng)objectl1:line{展現(xiàn)層代碼生成findNodeWithSameEllipse(r);展現(xiàn)層47模型驅(qū)動的軟件開發(fā)技術課程介紹課件48模型驅(qū)動的軟件開發(fā)技術課程介紹課件49模型驅(qū)動的軟件開發(fā)技術課程介紹課件50模型驅(qū)動的軟件開發(fā)技術課程介紹課件51模型驅(qū)動的軟件開發(fā)技術課程介紹課件52模型驅(qū)動的軟件開發(fā)技術課程介紹課件53例6.1:取消目標模型元素的自關聯(lián)mappingLine::lineToline():Linewhen{not(notself.source->resolveoneIn(ellipse::eTc)->isEmpty()andnotself.tareget->resolveoneIn(ellipse::eTc)->isEmpty()andself.source->resolveoneIn(ellipse::eTc)=self.tareget->resolveoneIn(ellipse::eTc))

}{……}在lineToline中加入when子句例6.1:取消目標模型元素的自關聯(lián)mappingLine:取消目標模型元素的自關聯(lián)取消目標模型元素的自關聯(lián)抽象工廠模式轉(zhuǎn)化為一般工廠模式抽象工廠模式轉(zhuǎn)化為一般工廠模式nodename=e.nodenamethen{基于AST的程序分析與缺陷模型生成器從而在很大程度上提高軟件的開發(fā)效率.son.可通過QVT及EMF工具分別以模型轉(zhuǎn)換的方法或模板的方法實現(xiàn)。findNodeWithSameEllipse(r);0Query/Views/TransformationsRFP,Version1.mappingmyfirstDiagram::SDToSD():myfirstDiagram{//son.0SuperstructureSpecification18:00~21:00<echomessage=""/>(基于Ecore的web領域模型轉(zhuǎn)換技術——基于QVTrelation的轉(zhuǎn)換語言與工具展示模型驅(qū)動方法中的工具集。取消目標模型元素的自關聯(lián)6.UML中衍型的精確定義與分析,蔣嚴冰邵維忠張路麻志毅電子學報2003.lines+=self.result.一種面向?qū)ο蟮木幊陶Z言tareget->resolveoneIn(ellipse::eTc)->isEmpty()將相同的子結(jié)構提取出來

nodename=e.將相同的子結(jié)構提取出來

將相同的子結(jié)構提取出來

modeltypesimplegraphuses'';transformationNewTransformation(insource:simplegraph,outtarget:simplegraph);main(){source.objectsOfType(simplediagram)->mapSDToSD();}mappingsimplediagram::SDToSD():simplediagram{self.nodes->forEach(r){//result.nodes+=self.findNodeWithSameEllipse(r);ifself.findNodeWithSameEllipse(r)->isEmpty()orself.findNodeWithSameEllipse(r)=nullthenresult.nodes+=r.mapNodeTNode()else{varf:=resolveIn(abstractsubnode,node)->select(e|e.nodename='father'andponents[ellipse]->first().nodename=ponents[ellipse]->first().nodename);iff->notEmpty()then{continue}endif;self.findNodeWithSameEllipse(r)->forEach(k){result.nodes+=mapabstractsubnode(r,k).father;result.lines+=mapabstractsubnode(r,k).l1;result.nodes+=mapabstractsubnode(r,k).son;}}endif};result.lines+=self.lines->maplineToline();}將相同的子結(jié)構提取出來

modeltypesimplegr將相同的子結(jié)構提取出來

mappingnode::NodeTNode():node{result.nodename:=self.nodename;result.to:=self.to->maplineToline();result._from:=self._from->maplineToline();ponents:=ponents[ellipse]->mapellipseToellipse();ponents+=(ponents[rectangle]->maprectangleTorectangle());}helpersimplediagram::findNodeWithSameEllipse(n:node):Set(node){varrenodes:Set(node);//ifponents[ellipse]=nullthenreturnnullendif;vare:ellipse=ponents[ellipse]->first();self.nodes->forEach(m){ponents[ellipse]->forEach(f){iff.nodename=e.nodenamethen{renodes+=m;}endif;}};returnrenodes;}mappingline::lineToline():line{}mappingellipse::ellipseToellipse():ellipse{result.nodename:=self.nodename;}mappingrectangle::rectangleTorectangle():rectangle{result.nodename:=self.nodename;}將相同的子結(jié)構提取出來

mappingnode::Node將相同的子結(jié)構提取出來

mappingabstractsubnode(inn1:node,inn2:node):father:node,son:node,l1:line{init{varx:String=ponents[ellipse]->first().nodename;varf:=resolveIn(abstractsubnode,node)->select(e|e.nodename='father'andponents[ellipse]->first().nodename=x);iff->notEmpty()thenfather:=f->first()else{objectfather:node{nodename:='father';components+=objectellipse{nodename:=x};};}endif;

objectson:node{son.nodename:=n2.nodename;son.to:=n2.to->maplineToline();son._from:=n2._from->maplineToline();//ponents:=ponents[ellipse]->mapellipseToellipse();ponents+=(ponents[rectangle]->maprectangleTorectangle());};objectl1:line{l1.source:=son;l1.target:=father};}}將相同的子結(jié)構提取出來

mappingabstractsu產(chǎn)生內(nèi)部結(jié)構:內(nèi)部結(jié)構的連線

產(chǎn)生內(nèi)部結(jié)構:內(nèi)部結(jié)構的連線

產(chǎn)生內(nèi)部結(jié)構:內(nèi)部結(jié)構的連線modeltypemyfirstGMFuses'';transformationNewTransformation(insource:myfirstGMF,outtarget:myfirstGMF);main(){source.objectsOfType(myfirstDiagram)->mapSDToSD();}mappingmyfirstDiagram::SDToSD():myfirstDiagram{//ponent:=ponent[certainernode]->mapcTc();

ponent[certainernode]->forEach(c){

ponent+=c.mapcTc(result);};ponent+=ponent[rectangle]->mapcTc(result);

ponent+=ponent[ellipse]->mapcTc(result);

result.lines+=self.lines->maplineToline();}產(chǎn)生內(nèi)部結(jié)構:內(nèi)部結(jié)構的連線modeltypemyfirs產(chǎn)生內(nèi)部結(jié)構:內(nèi)部結(jié)構的連線mappingNode::nTn(inoutm:myfirstDiagram):Node{:=;result.to:=self.to->maplineToline();result._from:=self._from->maplineToline();

}mappingcertainernode::cTc(inoutm:myfirstDiagram):certainernodeinheritsNode::nTn{sname:=self.sname;result.sons+=self.sons[certainernode]->mapcTc(m);result.sons+=self.sons[rectangle]->mapcTc(m);result.sons+=self.sons[ellipse]->mapcTc(m);m.lines+=mapaddinterStruct(result).sl;}增加參數(shù)inoutm:myfirstDiagram的目的是為了在產(chǎn)生line時,將其加入到myfirstDiagram容器,inout目的是需要修改傳入的參數(shù).產(chǎn)生內(nèi)部結(jié)構:內(nèi)部結(jié)構的連線mappingNode::nT產(chǎn)生內(nèi)部結(jié)構:內(nèi)部結(jié)構的連線mappingaddinterStruct(inoutc:certainernode):e:ellipse,r:rectangle,sl:Line{init{e:=newellipse('ee');r:=objectrectangle{name:='rr'};sl:=objectLine{Lname:='ll'};

}c.sons+=e;c.sons+=r;sl.source:=e;sl.tareget:=r;}addinterStruct用于將certainernode中增加新的子結(jié)構,注意init{}此處不能省略產(chǎn)生內(nèi)部結(jié)構:內(nèi)部結(jié)構的連線mappingaddinter特點1.自動化程度高.通過實驗原型的研發(fā),我們已經(jīng)完全掌握并熟練運用了完整的從元建模到模型轉(zhuǎn)換再到代碼生成的全部關鍵技術,實現(xiàn)特定領域的從需求模型到設計模型的轉(zhuǎn)化,從設計模型到代碼的轉(zhuǎn)換,實現(xiàn)整個軟件開發(fā)流程的模型自動轉(zhuǎn)換(基于QVT)和代碼的自動生成(基于QVTM2T).而IBM相應的研發(fā)團隊只是在模型轉(zhuǎn)換代碼生成方面,并且用到的代碼生成技術(基于JET)不如我們的先進,模型轉(zhuǎn)換完全采用編程方式實現(xiàn)。2.軟件開發(fā)效率高。我們的研發(fā)團隊可以在很短的時間內(nèi)針對特定領域搭建特定領域的圖形化建模工具、模型轉(zhuǎn)換工具和代碼生成工具。從而在很大程度上提高軟件的開發(fā)效率.3.100%的代碼生成。代碼生成技術不僅能夠提高軟件的開發(fā)效率。而且也能夠保證代碼的質(zhì)量。并且模型驅(qū)動的方法不同于以往的代碼生成技術,可以通過不同階段的模型的方式,對代碼進行維護。并不存在傳統(tǒng)觀念中認為的生成的代碼可維護性差的問題。特點1.自動化程度高.基于模型驅(qū)動的J2EE部署模型工具基于模型驅(qū)動的J2EE部署模型工具大型項目的部署的問題為大型項目的部署提供一個宏觀的部署視圖:很多部署協(xié)助工具能夠完成編譯、打包、拷貝的功能,但是這些一般都是針對結(jié)構相對簡單的項目,而且沒有一個圖形化的界面提供給用戶,不能讓用戶對整個部署的拓撲結(jié)構一目了然。如何自動生成正確的編譯、部署腳本,并與項目保持一致:大多數(shù)人可能不會部署腳本的編寫;保持部署腳本和項目的一致性問題,一旦項目的結(jié)構發(fā)生了變化,很可能需要重新對腳本進行修改。遠程服務器的項目的部署Eclipse或者RSA都提供了相應的插件能夠很好的滿足與本地服務器的集成,比如返回本地服務器的狀態(tài),將項目編譯、打包并拷貝到本地服務器的相應目錄完成部署,但是針對與遠程的服務器,一般還是得部署人員或者編寫部署腳本,或者直接登錄到相應的機器,進行遠程的操作。大型項目的部署的問題為大型項目的部署提供一個宏觀的部署視圖:部署元模型部署元模型部署模型部署模型生成的SOMA服務模型元素構成提高研究能力,開闊學術視野,培養(yǎng)把握前沿軟件開發(fā)方法的研究與應用能力。規(guī)則自動驗證與到代碼的自動轉(zhuǎn)化工具90%基于模型驅(qū)動的J2EE部署模型工具可通過QVT及EMF工具分別以模型轉(zhuǎn)換的方法或模板的方法實現(xiàn)。son.元建模技術——展示與輔導name:=self.sname:=self.某軟件設計人員建立了一個設計模型,但無法驗證。深入講解UML/MOF/QVT語言的高級技術細節(jié),講解完整的模型驅(qū)動軟件開發(fā)方法。展示模型驅(qū)動方法中的工具集。(SCI收錄引用1次)這是在有關UML最權威的國際會議上發(fā)表的論文,并對UML的發(fā)展提出建設性建議。lines+=mapabstractsubnode(r,k).元建模技術——實戰(zhàn)案例(SCI收錄)獲得北京大學2004年優(yōu)秀論文獎9.基于規(guī)則的UML元模型語法擴展的支持技術研究,蔣嚴冰麻志毅朱志高張能斌,中國計算機大會論文集,清華大學出版社,2003年11月主持華為合作研究項目《下一代網(wǎng)絡架構和協(xié)議的廣義模型和轉(zhuǎn)換》20136.UML中衍型的精確定義與分析,蔣嚴冰邵維忠張路麻志毅電子學報2003.部署結(jié)構建模工具生成的SOMA服務模型元素構成部署結(jié)構建模工具一個典型的J2EE項目作為實例演示序號項目名稱項目作用1PetStoreBusiness提供一些必要常用的API供其它項目引用2PetStoreEAR用于部署打包的EAR項目3PetStoreEJB包含多個SessionBean和EntityBean,完成整體項目的業(yè)務邏輯4PetStoreEJBClient客戶端利引用此接口對服務端的服務進行調(diào)用,從而完成業(yè)務調(diào)用5PetStoreWeb負責顯示和交互的邏輯一個典型的J2EE項目作為實例演示序號項目名稱項目作用1Pe當將Workbench集成到Eclipse中去后,運行Eclipse插件后,用戶可以選擇根據(jù)項目產(chǎn)生部署模型,下圖展示了啟動之前的效果:當將Workbench集成到Eclipse中去后,運行Ecl產(chǎn)生部署模型產(chǎn)生部署模型產(chǎn)生邏輯部署模型產(chǎn)生邏輯部署模型邏輯模型綁定到物理模型邏輯模型綁定到物理模型生成部署模型<!--PetStoreEARproperties--> <propertyname="PetStoreEAR.name"value="PetStoreEAR"/><pathid="PetStoreEAR.classpath">

</path> <!--PetStoreEARInit--><targetname="PetStoreEAR_init"depends="global_init"><tstamp/> <echomessage="----DeploymentUnit[${PetStoreEAR.name}]-----"/> <echomessage=""/><echomessage="Deploymentunittype=${PetStoreEAR.type}"/></target>生成部署模型<!--PetStoreEARpropert成功運行項目后的效果圖成功運行項目后的效果圖WBM到SOMA的模型轉(zhuǎn)化系統(tǒng)WBM到SOMA的模型轉(zhuǎn)化系統(tǒng)首先對要進行轉(zhuǎn)換的三個模型進行分析并設計出它們之間模型元素的映射規(guī)則,利用RSA框架里的模型轉(zhuǎn)換引擎根據(jù)映射規(guī)則將業(yè)務流程模型轉(zhuǎn)換為服務模型,并最后轉(zhuǎn)換為代碼生成模型。實現(xiàn)該設計方案的具體做法是先建立業(yè)務流程的領域模型,然后建立模型轉(zhuǎn)換的UML類圖,并通過SWT/JFace為該模型轉(zhuǎn)換工具提供了圖形化用戶界面的實現(xiàn),最后利用Eclipse的擴展機制以及GMF插件對模型進行轉(zhuǎn)換。首先對要進行轉(zhuǎn)換的三個模型進行分析并設計出它們之間模型元素的SOMA解決方案工作流WBM模型SOMA解決方案工作流WBM模型HotelWBM業(yè)務流程模型HotelWBM業(yè)務流程模型生成的SOMA服務模型元素構成生成的SOMA服務模型元素構成業(yè)務規(guī)則管理框架解決方案業(yè)務規(guī)則管理框架解決方案規(guī)則自動驗證與到代碼的自動轉(zhuǎn)化工具使用GMF技術建立規(guī)則適用的領域元模型與RCP建模工具,用于建立適用規(guī)則的可視化模型.通過在元模型上編寫OCL語言描述的約束,可以在模型層面驗證OCL規(guī)則語義上的正確性。針對復雜的規(guī)則,單純OCL規(guī)則并不能完全滿足要求。針對這種情況,使用GMF技術建立可視化的規(guī)則編輯器用于編輯規(guī)則,并通過與領域模型編輯器編輯的模型一起作為輸入,進行驗證和代碼生成。規(guī)則自動驗證與到代碼的自動轉(zhuǎn)化工具使用GMF技術建立規(guī)則適用業(yè)務規(guī)則執(zhí)行引擎綜合運用程序框架技術、程序動態(tài)加載與執(zhí)行技術(Java/dll)、數(shù)據(jù)庫管理技術,對第一部分中生成的可執(zhí)行的規(guī)則代碼進行全生命周期管理同時對規(guī)則中引用的對象也進行生命周期管理,并提供一種程序自動加載與調(diào)用框架,根據(jù)其監(jiān)控的各個對象的狀態(tài)自動加載相應的規(guī)則代碼,根據(jù)規(guī)則調(diào)用相應的執(zhí)行動作。業(yè)務規(guī)則執(zhí)行引擎綜合運用程序框架技術、程序動態(tài)加載與執(zhí)行技術C/C++源代碼Simian

Eclipse插件相似的代碼片斷集EclipseCDT抽象語法樹AST基于AST的程序分析與缺陷模型生成器代碼克隆缺陷模型.ecore基于AST的缺陷分析代碼片斷完全克隆查詢函數(shù)的完全克隆查詢類完全克隆查詢變化函數(shù)參數(shù)查詢變化函數(shù)的返回值查詢變化函數(shù)的行為查詢……基于DOM的.ecore

XML文檔生成器基于GMF的可視化的源代碼克隆缺陷建模工具可視化的代碼克隆缺陷模型.ecore基于ecore的源代碼克隆缺陷元模型源代碼克隆缺陷建模GUI基于ecore的源代碼克隆缺陷建模工具基于QVT

O的缺陷模型自動修復工具代碼片斷完全克隆缺陷模式轉(zhuǎn)化函數(shù)的完全克隆缺陷模式轉(zhuǎn)化類完全克隆缺陷模式轉(zhuǎn)化變化函數(shù)參數(shù)缺陷模式轉(zhuǎn)化變化函數(shù)的返回值缺陷模式轉(zhuǎn)化變化函數(shù)的行為缺陷模式轉(zhuǎn)化……代碼克隆缺陷優(yōu)化模型.ecore基于GMF/QVT

O的缺陷模型手動修復工具基于QVTO的克隆缺陷模型模型標注器基于GMF的源代碼克隆缺陷模型調(diào)整GUI基于M2T/JET的缺陷優(yōu)化模型到代碼的生成與拼接工具優(yōu)化的代碼片斷集優(yōu)化C/C++源代碼C/C++源代碼SimianEclipse插件相似的代碼軟件外包領域模型驅(qū)動開發(fā)方法中模型偽裝與轉(zhuǎn)換軟件外包領域模型驅(qū)動開發(fā)方法中模型偽裝與轉(zhuǎn)換模型偽裝與轉(zhuǎn)換示意圖模型偽裝與轉(zhuǎn)換示意圖基于QVT的轉(zhuǎn)換機制基于QVT的轉(zhuǎn)換機制成功運行項目后的效果圖<echomessage="Deploymentunittype=${PetStoreEAR.Web領域的CIM模型基于ecore的源代碼克隆缺陷元模型模型驅(qū)動的代碼生成技術——基于QVTM2T的代碼生成語言與工具AcceleoEclipsemodeling(基于mediniQVT及eclipse-modeling基于AST的程序分析與缺陷模型生成器nodename=r.findNodeWithSameEllipse(r);component:=self.<pathid="PetStoreEAR.基于ecore的源代碼克隆缺陷建模工具lines+=mapabstractsubnode(r,k).PetStoreWeb18:00~21:00components+=(ponent[ellipse]->mapcTc(result);EclipseCDT基于GMF的開放協(xié)議建模工具開發(fā)PIM建模工具結(jié)構OCL規(guī)則行為OCL規(guī)則結(jié)構Ecore元模型行為Ecore元模型PSM建模工具PSM結(jié)構OCL規(guī)則PSM行為OCL規(guī)則PSM結(jié)構Ecore元模型PSM行為Ecore元模型基于QVT的開放協(xié)議模型轉(zhuǎn)換工具開發(fā)交換機PIM結(jié)構模型到PSM結(jié)構模型的轉(zhuǎn)換工具交換機行為模型到PSM行為模型的轉(zhuǎn)換工具基于Acceleo的下一代交換機軟件代碼生成工具開發(fā)控制器端代碼生成工具交換機端代碼生成工具人機界面控制數(shù)據(jù)管理通訊通訊控制交換下一代網(wǎng)絡架構和協(xié)議的廣義模型和轉(zhuǎn)換成功運行項目后的效果圖基于GMF的開放協(xié)議建模工具開發(fā)PIM謝謝!歡迎選修模型驅(qū)動的軟件開發(fā)技術!謝謝!提綱課程主要目標引例課程特色在模型驅(qū)動領域的研究背景與成果授課方式與課程要求課程內(nèi)容與計劃課程的準備知識、學習方法本課程所用到的工具集課程分數(shù)評定參考資料研究項目與原型展示提綱課程主要目標課程主要目標了解軟件開發(fā)方法學在面向?qū)ο筌浖_發(fā)方法之后的最新發(fā)展趨勢與關鍵技術,如基于構件,面向特征,面向特征等技術。掌握模型驅(qū)動軟件開發(fā)方法的基本概念與主要思想。掌握模型驅(qū)動軟件開發(fā)方法中的關鍵技術,如元建模技術、模型轉(zhuǎn)換和代碼生成的規(guī)范與方法。初步掌握將模型驅(qū)動軟件開發(fā)方法運用到特定領域的方法,技術與工具。改變對軟件開發(fā)的傳統(tǒng)思路,更深理解軟件工程。掌握前沿軟件開發(fā)方法,增強職業(yè)競爭力。提高研究能力,開闊學術視野,培養(yǎng)把握前沿軟件開發(fā)方法的研究與應用能力。課程主要目標了解軟件開發(fā)方法學在面向?qū)ο筌浖_發(fā)方法之后的最引例—軟件企業(yè)面臨的問題攸關系統(tǒng)汽車領域航天領域恒潤科技SaaS企業(yè)某軟件開發(fā)公司的主營業(yè)務是為中小型企業(yè)開發(fā)Web信息管理系統(tǒng),而每個企業(yè)都有自身的需求,公司人員已達8000人,但仍忙不過來。中企動力創(chuàng)新公司某公司計劃在短期內(nèi)開發(fā)一種非常有創(chuàng)意的軟件產(chǎn)品,以便快速占領市場,但不精通開發(fā)技術,人手不夠。大型IT企業(yè)異構性的問題代碼重構如何充分利用多年來積累的開發(fā)經(jīng)驗、制品與代碼。某大型軟件公司的軟件開發(fā)人員每天苦于建立千篇一律的設計模型、編寫千篇一律的程序,耗時而乏味。某軟件設計人員建立了一個設計模型,但無法驗證。IBM華為上海證券涉及軟件外包的企業(yè)軟件外包過程中,甲乙雙方溝通問題。軟件外包過程中,甲乙雙方知識產(chǎn)權問題。金融公司銀行引例—軟件企業(yè)面臨的問題攸關系統(tǒng)課程特色深入、系統(tǒng)、完整地講解模型驅(qū)動軟件開發(fā)方法的產(chǎn)生背景及其中的關鍵技術與規(guī)范。深入講解UML/MOF/QVT語言的高級技術細節(jié),講解完整的模型驅(qū)動軟件開發(fā)方法。展示模型驅(qū)動方法中的工具集。綜合最新研究文獻與多年研究成果,集理論性、實用性、研究性、前沿性一體。提供豐富的案例,便于快速掌握關鍵技術通過完整案例,展示模型驅(qū)動軟件開發(fā)的過程。課程特色深入、系統(tǒng)、完整地講解模型驅(qū)動軟件開發(fā)方法的產(chǎn)生背景在模型驅(qū)動領域的研究背景博士論文《UML擴展機制及其支持技術研究》2003針對UML擴展機制及其在使用中出現(xiàn)的問題,對UML的衍型擴展機制進行了精確的定義與分析,研究了元模型擴展機制的分級定義以及元模型語法擴展的支持技術。特別是對UML擴展機制和元模型方面的理論研究方面,已有兩篇論文發(fā)表在UML領域最重要的國際會議UML2004論文中關于元建模工具原理與原型的論述與近期EclipseGMF中的工作原理非常相似,卻比后者早了6年博士后科學基金項目《擴展UML的過程策略研究及其在web領域建模與模擬中的應用》2004~2005博士后出站報告《MDA在特定領域的應用與基礎理論研究》2006模型驅(qū)動的體系結(jié)構研究綜述基于MDA的Web領域用況模型研究基于MDA與SOA的系統(tǒng)集成技術研究擴展MDA的建模語言的過程策略研究指導MDA相關的綜合實踐四項、碩士論文三篇主持國家自然科學基金項目《軟件外包領域模型驅(qū)動開發(fā)方法中模型偽裝與轉(zhuǎn)換理論研究》2012主持華為合作研究項目《下一代網(wǎng)絡架構和協(xié)議的廣義模型和轉(zhuǎn)換》2013在模型驅(qū)動領域的研究背景博士論文《UML擴展機制及其支持技術在模型驅(qū)動領域的研究背景1.OntheFormalizedSemanticsofStaticModelingElementsinUML,JiangYan-bingShaoWei-zhongMaZhi-yiandFengYao-dong,FormalMethodsAndSoftwareEngineering2002,ProcedingsLectureNotesInComputerScience,Springer-VerlagBerlin.(SCI收錄)獲得北京大學2004年優(yōu)秀論文獎2.OntheClassificationofUML’sMetaModelExtensionMechanism,YanbingJiang,WeizhongShao,LuZhang,ZhiyiMa,XiangwenMengandHaohaiMa,UML2004,ProcedingsLectureNotesInComputerScience,Springer-VerlagBerlin.(SCI收錄引用1次)這是在有關UML最權威的國際會議上發(fā)表的論文,并對UML的發(fā)展提出建設性建議。3.ApplyingOOMetricstoAssessUMLMeta-Models,HaohaiMa,WeizhongShaoLuZhang,ZhiyiMaandYanbingJiang,UML2004,ProcedingsLectureNotesInComputerScience,Springer-VerlagBerlin.(SCI收錄)4.OnProcedureStrategyofConstructingSOA’sModelingLanguage,YanbingJiang,ChunxiaoXing,WeiheandJijiangYang,ProcedingsofIEEEInternationalWorkshoponservice-orientedsystemEngineering2005,IEEEComputerSocietyPress5.模型驅(qū)動的體系結(jié)構研究綜述,蔣嚴冰邢春曉南京大學學報(自然科學版),計算機科學專輯2005.106.UML中衍型的精確定義與分析,蔣嚴冰邵維忠張路麻志毅電子學報2003.12a(EI收錄)7.UML現(xiàn)存問題與發(fā)展道路,邵維忠蔣嚴冰麻志毅,計算機研究與發(fā)展,2003.4(EI收錄)8.面向?qū)ο蟮慕9ぞ摺狫BOO3.0的研究與開發(fā),麻志毅蔣嚴冰戴耀飛李勁宇電子學報2002.12a(EI索引源)9.基于規(guī)則的UML元模型語法擴展的支持技術研究,蔣嚴冰麻志毅朱志高張能斌,中國計算機大會論文集,清華大學出版社,2003年11月在模型驅(qū)動領域的研究背景1.OntheFormalize課程內(nèi)容與計劃課次內(nèi)容學時時間1課程介紹緒論:模型驅(qū)動軟件開發(fā)技術綜述與后面向?qū)ο蠓椒ㄅc模型驅(qū)動

3學時2013.2.26星期二晚18:00~21:002元建模技術——概述元建模技術——UML的元模型體系結(jié)構與擴展機制3學時2013.3.5星期二晚18:00~21:003元建模技術——元建模過程與支撐工具元建模技術——實戰(zhàn)案例3學時2013.3.12星期二晚18:00~21:004元建模技術——實戰(zhàn)案例3學時2013.3.19星期二晚18:00~21:005元建模技術——展示與輔導3學時2013.3.26星期二晚18:00~21:00課程內(nèi)容與計劃課次內(nèi)容學時時間1課程介紹3學時2013.2.98課程內(nèi)容與計劃課次內(nèi)容學時時間6模型轉(zhuǎn)換技術——概述模型轉(zhuǎn)換技術——基于QVTrelation的轉(zhuǎn)換語言與工具3學時2013.4.2星期二晚18:00~21:007模型轉(zhuǎn)換技術——基于QVTrelation的案例3學時2013.4.9星期二晚18:00~21:008模型轉(zhuǎn)換技術——基于QVToperational的轉(zhuǎn)換轉(zhuǎn)換語言與工具3學時2013.4.16星期二晚18:00~21:009模型轉(zhuǎn)換技術——基于QVToperational的案例3學時2013.4.23星期二晚18:00~21:0010模型轉(zhuǎn)換技術——基于QVToperational的案例3學時2013.5.7星期二晚18:00~21:00課程內(nèi)容與計劃課次內(nèi)容學時時間6模型轉(zhuǎn)換技術——概述3學時299課程內(nèi)容與計劃課次內(nèi)容學時時間11模型轉(zhuǎn)換技術——展示與輔導3學時2013.5.14星期二晚18:00~21:0012模型驅(qū)動的代碼生成技術——基于Jet的代碼生成語言與工具3學時2013.5.21星期二晚18:00~21:0013模型驅(qū)動的代碼生成技術——基于QVT

M2T的代碼生成語言與工具Acceleo3學時2013.5.28星期二晚18:00~21:0014模型驅(qū)動的代碼生成技術——展示與輔導3學時2013.6.4星期二晚18:00~21:0015MDA綜合案例3學時擇機16分組項目答辯3學時擇機課程內(nèi)容與計劃課次內(nèi)容學時時間11模型轉(zhuǎn)換技術——展示與輔100授課方式與課程要求課堂講授與討論相結(jié)合鼓勵相關論文規(guī)范閱讀分組項目與展示理論學習與項目實踐相結(jié)合注重相關工具集的使用授課方式與課程要求課堂講授與討論相結(jié)合課程的準備知識、學習方法準備知識一種面向?qū)ο蟮木幊陶Z言面向?qū)ο蠹夹gUML學習方法理論與實踐相結(jié)合學習與研究相結(jié)合課程的準備知識、學習方法準備知識Web領域代碼自動生成工具PetStoreEARHotelWBM業(yè)務流程模型0的研究與開發(fā),麻志毅蔣嚴冰戴耀飛李勁宇電子學報2002.邏輯模型綁定到物理模型基于MDA的Web領域模型研究每層分別進行元建模、模型轉(zhuǎn)換和代碼生成mappingrectangle::rectangleTorectangle():rectangle{helpersimplediagram::findNodeWithSameEllipse(n:node):Set(node){lines+=mapabstractsubnode(r,k).基于QVTO的缺陷模型自動修復工具18:00~21:00基于ecore的源代碼克隆缺陷建模工具components+=objectellipse{nodename:=x};PetStoreEAR12a(EI索引源)<echomessage=""/>元建模技術——展示與輔導代碼生成技術不僅能夠提高軟件的開發(fā)效率。EclipseCDT本課程所用到的工具集EclipsemodelingMediniQVTWeb領域代碼自動生成工具本課程所用到的工具集Eclipse本課程所用到的工具集工具作用基于工具配置與修改方案元建模工具可視化地建立各種模型的ecore元模型EclipsemodelingEcoretools直接可視化的使用EclipsemodelingEcoretools中Ecorediagram可視化的建立各種模型的ecore元模型,并存儲為.ecore文件??蓴U展的建模工具以ecore元模型為輸入,將其可視化的綁定建模元素的表示法與行為,形成支持各種ecore元模型的建模工具。用以生成各種模型,并以.xmi的方式存儲.EclipsemodelingGMF利用GMF的提供的配置向?qū)Э僧a(chǎn)生簡單的建模工具的插件,如對表示法和行為有特殊的要求,可通過修改所生成的建模工具的插件的源代碼。基于QVT的模型轉(zhuǎn)換根據(jù)既定的QVT元模型轉(zhuǎn)化規(guī)則,以一種web領域模型為輸入,通過轉(zhuǎn)換輸出另外一種模型Eclipsemodeling

operationalQVT;mediniQVT大部分轉(zhuǎn)換可通過在這些模型轉(zhuǎn)換工具中輸入以QVT規(guī)范編寫的轉(zhuǎn)換語言后,即可自動實現(xiàn)。其中Eclipsemodeling

operationalQVT支持過程化的轉(zhuǎn)換描述,mediniQVT支持關系聲明型的轉(zhuǎn)換描述。代碼生成可通過QVT及EMF工具分別以模型轉(zhuǎn)換的方法或模板的方法實現(xiàn)。Eclipsemodeling

JETAcceleo代碼生成可通過EMF中的JET工具,以模板的方式實現(xiàn).本課程所用到的工具集工具作用基于工具配置與修改方案元建模工具104課程分數(shù)評定考核方式無筆試無編碼項目平時成績30%項目成績70%項目要求基于Eclipsemodeling等模型驅(qū)動支撐工具,建立特定領域的模型驅(qū)動工具,包括元建模、模型轉(zhuǎn)換及代碼生成等部分。要求:①明確描述需求②重點描述元模型與基于QVT的轉(zhuǎn)換方案及實驗案例③代碼生成方案課程分數(shù)評定考核方式課程項目選取領域Web領域代碼自動生成工具手機領域代碼自動生成工具基于設計模式的模型自動轉(zhuǎn)換其他課程項目選取領域Web領域代碼自動生成工具課程參考資料Stahl,T.,Volter,M.等著,楊華,高猛譯,模型驅(qū)動軟件開發(fā):技術、工程與管理,清華大學出版社,2009年1月第一版科學出版社影印,2003年5月第一版QVT-Partners,RevisedsubmissionforMOF2.0Query/Views/TransformationsRFP,Version1.1(2003/08/18),UML2.0SuperstructureSpecificationUML2.0InfrastructureSpecificationMOF?Query/Views/Transformations課程參考資料Stahl,T.,Volter,M.等著,楊華,模型驅(qū)動的研究項目與原型模型驅(qū)動的Web領域軟件模型體系、模型轉(zhuǎn)換及代碼生成技術與原型模型驅(qū)動的J2EE部署模型工具WBM到SOMA的模型轉(zhuǎn)化系統(tǒng)軟件外包領域模型驅(qū)動開發(fā)方法中模型偽裝與轉(zhuǎn)換下一代網(wǎng)絡架構和協(xié)議的廣義模型和轉(zhuǎn)換模型驅(qū)動的研究項目與原型模型驅(qū)動的Web領域軟件模型體系、模模型驅(qū)動的Web領域軟件模型體系、模型轉(zhuǎn)換及代碼生成技術與原型模型驅(qū)動的Web領域軟件模型體系、模型轉(zhuǎn)換及代碼生成技術與原Web領域代碼自動生成工具UML及其擴展機制/QVTWeb領域模型轉(zhuǎn)換及代碼生成研究Web領域建模工具原型研發(fā)(基于eclipse-modelingEcoretools,GMF的Web領域元建模及建模工具)Web模型轉(zhuǎn)化與代碼生成工具原型研發(fā)(基于mediniQVT及

eclipse-modeling

operationalQVTEMF的模型轉(zhuǎn)化與代碼生成工具)在具體Web系統(tǒng)開發(fā)中的應用、驗證與比較Web應用實踐基于MDA的Web領域模型研究Web領域的CIM模型(基于Ecore的web領域需求的元模型)Web領域的PIM模型(基于Ecore的web領域獨立平臺的元模型)Web領域的PSM模型Web領域CIM到PIM轉(zhuǎn)換(基于QVT的CIM到PIM轉(zhuǎn)換)Web領域PIM到PSM轉(zhuǎn)換(基于QVT的CIM到PIM轉(zhuǎn)換)Web領域PSM到源代碼轉(zhuǎn)換模型到元模型歸納轉(zhuǎn)換技術Web領域代碼自動生成工具UML及其擴展機制/QVTWeb領模型體系與模型轉(zhuǎn)換概要模型體系與模型轉(zhuǎn)換概要模型驅(qū)動的軟件開發(fā)技術課程介紹課件實例:博客領域模型驅(qū)動的開發(fā)基于web三層模型進行分層分工,每層分別進行元建模、模型轉(zhuǎn)換和代碼生成表現(xiàn)層陳定勝耿耘劉洋駱云數(shù)據(jù)持久化層朱曉文趙越月業(yè)務邏輯層元建模模型轉(zhuǎn)換代碼生成90%100%100%實例:博客領域模型驅(qū)動的開發(fā)基于web三層模型進行分層分工,113EclipsemodelingEcoretools主持華為合作研究項目《下一代網(wǎng)絡架構和協(xié)議的廣義模型和轉(zhuǎn)換》2013(基于Ecore的web領域result.nodenamethen{findNodeWithSameEllipse(r)->isEmpty()orself.在具體Web系統(tǒng)開發(fā)中的應用、驗證與比較name:=self.HotelWBM業(yè)務流程模型緒論:模型驅(qū)動軟件開發(fā)技術綜述與后面向?qū)ο蠓椒ㄅc模型驅(qū)動將相同的子結(jié)構提取出來4.OnProcedureStrategyofConstructingSOA’sModelingLanguage,YanbingJiang,ChunxiaoXing,WeiheandJijiangYang,ProcedingsofIEEEInternationalWorkshoponservice-orientedsystemEngineering2005,IEEEComputerSocietyPresscomponent

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論