书签 分享 收藏 举报 版权申诉 / 91
上传文档赚钱

类型模型驱动的软件开发技术课程介绍课件.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:5174657
  • 上传时间:2023-02-16
  • 格式:PPT
  • 页数:91
  • 大小:2.85MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《模型驱动的软件开发技术课程介绍课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    模型 驱动 软件 开发 技术 课程 介绍 课件
    资源描述:

    1、提提 纲纲课程主要目标课程主要目标引例引例课程特色课程特色在模型驱动领域的研究背景与成果在模型驱动领域的研究背景与成果授课方式与课程要求授课方式与课程要求课程内容与计划课程内容与计划课程的准备知识、学习方法课程的准备知识、学习方法本课程所用到的工具集本课程所用到的工具集课程分数评定课程分数评定参考资料参考资料研究项目与原型展示研究项目与原型展示课程主要目标了解软件开发方法学在面向对象软件开发方法之后的最新发展趋了解软件开发方法学在面向对象软件开发方法之后的最新发展趋势与关键技术,如基于构件,面向特征,面向特征等技术。势与关键技术,如基于构件,面向特征,面向特征等技术。掌握模型驱动软件开发方法的

    2、基本概念与主要思想。掌握模型驱动软件开发方法的基本概念与主要思想。掌握模型驱动软件开发方法中的关键技术,如元建模技术、模型掌握模型驱动软件开发方法中的关键技术,如元建模技术、模型转换和代码生成的规范与方法。转换和代码生成的规范与方法。初步掌握将模型驱动软件开发方法运用到特定领域的方法,技术初步掌握将模型驱动软件开发方法运用到特定领域的方法,技术与工具。与工具。改变对软件开发的传统思路,更深理解软件工程。改变对软件开发的传统思路,更深理解软件工程。掌握前沿软件开发方法,增强职业竞争力。掌握前沿软件开发方法,增强职业竞争力。提高研究能力,开阔学术视野,培养把握前沿软件开发方法的研提高研究能力,开阔

    3、学术视野,培养把握前沿软件开发方法的研究与应用能力。究与应用能力。引例引例软件企业面临的问题软件企业面临的问题攸关系统攸关系统汽车领域汽车领域 航天领域航天领域恒润科技恒润科技 SaaS企业企业某软件开发公司的主营业务是为中小型企业开发某软件开发公司的主营业务是为中小型企业开发Web信息管理系统,而每个企业都有自信息管理系统,而每个企业都有自身的需求,公司人员已达身的需求,公司人员已达8000人,但仍忙不过来。人,但仍忙不过来。中企动力中企动力 创新公司创新公司某公司计划在短期内开发一种非常有创意的软件产品,以便快速占领市场,但不精通开某公司计划在短期内开发一种非常有创意的软件产品,以便快速占

    4、领市场,但不精通开发技术,人手不够。发技术,人手不够。大型大型IT企业企业异构性的问题异构性的问题代码重构代码重构如何充分利用多年来积累的开发经验、制品与代码。如何充分利用多年来积累的开发经验、制品与代码。某大型软件公司的软件开发人员每天苦于建立千篇一律的设计模型、编写千篇一律的程某大型软件公司的软件开发人员每天苦于建立千篇一律的设计模型、编写千篇一律的程序,耗时而乏味。序,耗时而乏味。某软件设计人员建立了一个设计模型,但无法验证。某软件设计人员建立了一个设计模型,但无法验证。IBM 华为华为 上海证券上海证券 涉及软件外包的企业涉及软件外包的企业软件外包过程中,甲乙双方沟通问题。软件外包过程

    5、中,甲乙双方沟通问题。软件外包过程中,甲乙双方知识产权问题。软件外包过程中,甲乙双方知识产权问题。金融公司金融公司 银行银行 课程特色课程特色 深入、系统、完整地讲解模型驱动软件开发方法的产生背深入、系统、完整地讲解模型驱动软件开发方法的产生背景及其中的关键技术与规范。景及其中的关键技术与规范。深入讲解深入讲解UML/MOF/QVT语言的高级技术细节,讲解完整语言的高级技术细节,讲解完整的模型驱动软件开发方法。的模型驱动软件开发方法。展示模型驱动方法中的工具集。展示模型驱动方法中的工具集。综合最新研究文献与多年研究成果,集理论性、实用性、综合最新研究文献与多年研究成果,集理论性、实用性、研究性

    6、、前沿性一体。研究性、前沿性一体。提供丰富的案例提供丰富的案例,便于快速掌握关键技术便于快速掌握关键技术 通过完整案例,展示模型驱动软件开发的过程。通过完整案例,展示模型驱动软件开发的过程。在模型驱动领域的研究背景在模型驱动领域的研究背景博士论文博士论文UML扩展机制及其支持技术研究扩展机制及其支持技术研究2003 针对针对UML扩展机制及其在使用中出现的问题,对扩展机制及其在使用中出现的问题,对UML的衍型扩展机制进行了精确的衍型扩展机制进行了精确的定义与分析,研究了元模型扩展机制的分级定义以及元模型语法扩展的支持技术。的定义与分析,研究了元模型扩展机制的分级定义以及元模型语法扩展的支持技术

    7、。特别是对特别是对UML扩展机制和元模型方面的理论研究方面,已有两篇论文发表在扩展机制和元模型方面的理论研究方面,已有两篇论文发表在UML领域最重要的国际会议领域最重要的国际会议UML2004 论文中关于元建模工具原理与原型的论述与近期论文中关于元建模工具原理与原型的论述与近期Eclipse GMF中的工作原理非常相中的工作原理非常相似,却比后者早了似,却比后者早了6年年博士后科学基金项目博士后科学基金项目扩展扩展UML的过程策略研究及其在的过程策略研究及其在web领域建模与模拟中的应用领域建模与模拟中的应用20042005博士后出站报告博士后出站报告MDA在特定领域的应用与基础理论研究在特定

    8、领域的应用与基础理论研究 2006 模型驱动的体系结构研究综述模型驱动的体系结构研究综述 基于基于MDA的的Web领域用况模型研究领域用况模型研究 基于基于MDA与与SOA的系统集成技术研究的系统集成技术研究 扩展扩展MDA的建模语言的过程策略研究的建模语言的过程策略研究指导指导MDA相关的综合实践四项、硕士论文三篇相关的综合实践四项、硕士论文三篇主持国家自然科学基金项目主持国家自然科学基金项目软件外包领域模型驱动开发方法中模型伪装与转换理论软件外包领域模型驱动开发方法中模型伪装与转换理论研究研究2012主持华为合作研究项目主持华为合作研究项目下一代网络架构和协议的广义模型和转换下一代网络架构

    9、和协议的广义模型和转换2013在模型驱动领域的研究背景在模型驱动领域的研究背景1On the Formalized Semantics of Static Modeling Elements in UML,Jiang Yan-bing Shao Wei-zhong Ma Zhi-yi and Feng Yao-dong,Formal Methods And Software Engineering 2002,Procedings Lecture Notes In Computer Science,Springer-Verlag Berlin.(SCI收录)获得北收录)获得北京大学京大学2004

    10、年优秀论文奖年优秀论文奖2On the Classification of UMLs Meta Model Extension Mechanism,Yanbing Jiang,Weizhong Shao,Lu Zhang,Zhiyi Ma,Xiangwen Meng and Haohai Ma,UML2004,Procedings Lecture Notes In Computer Science,Springer-Verlag Berlin.(SCI收录收录 引用引用1次次)这是在有关这是在有关UML最权威的国际会议上发表的论文,并对最权威的国际会议上发表的论文,并对UML的发展提出建设性建

    11、议。的发展提出建设性建议。3Applying OO Metrics to Assess UML Meta-Models,Haohai Ma,Weizhong Shao Lu Zhang,Zhiyi Ma and Yanbing Jiang,UML2004,Procedings Lecture Notes In Computer Science,Springer-Verlag Berlin.(SCI收录收录)4On Procedure Strategy of Constructing SOAs Modeling Language,Yanbing Jiang,Chunxiao Xing,Wei h

    12、e and Jijiang Yang,Procedings of IEEE International Workshop on service-oriented system Engineering 2005,IEEE Computer Society Press5 模型驱动的体系结构研究综述,蒋严冰模型驱动的体系结构研究综述,蒋严冰 邢春晓邢春晓 南京大学学报(自然科学版),计算机科学专南京大学学报(自然科学版),计算机科学专辑辑 2005.106UML中衍型的精确定义与分析,蒋严冰中衍型的精确定义与分析,蒋严冰 邵维忠邵维忠 张路张路 麻志毅麻志毅 电子学报电子学报 2003.12a(EI

    13、收录)收录)7UML现存问题与发展道路,邵维忠现存问题与发展道路,邵维忠 蒋严冰蒋严冰 麻志毅,计算机研究与发展,麻志毅,计算机研究与发展,2003.4(EI收录)收录)8面向对象的建模工具面向对象的建模工具JBOO3.0的研究与开发,麻志毅的研究与开发,麻志毅 蒋严冰蒋严冰 戴耀飞戴耀飞 李劲宇李劲宇 电子学报电子学报 2002.12a(EI索引源)索引源)9基于规则的基于规则的UML元模型语法扩展的支持技术研究,蒋严冰元模型语法扩展的支持技术研究,蒋严冰 麻志毅麻志毅 朱志高朱志高 张能斌,中国计算机张能斌,中国计算机大会论文集,清华大学出版社,大会论文集,清华大学出版社,2003年年11

    14、月月课程内容与计划课程内容与计划课次课次内容内容学时学时时间时间1课程介绍课程介绍绪论绪论:模型驱动软件开发技术综述与后面向对象模型驱动软件开发技术综述与后面向对象方法与模型驱动方法与模型驱动 3学时学时2013.2.26 星期二星期二 晚晚18:0021:002元建模技术元建模技术概述概述 元建模技术元建模技术UML的元模型体系结构与扩展的元模型体系结构与扩展机制机制3学时学时2013.3.5 星期二星期二 晚晚18:0021:003元建模技术元建模技术元建模过程与支撑工具元建模过程与支撑工具元建模技术元建模技术 实战案例实战案例3学时学时2013.3.12 星期二星期二 晚晚18:0021

    15、:004元建模技术元建模技术 实战案例实战案例3学时学时2013.3.19 星期二星期二 晚晚18:0021:005元建模技术元建模技术 展示与辅导展示与辅导3学时学时2013.3.26 星期二星期二 晚晚18:0021:00课程内容与计划课程内容与计划课次课次内容内容学时学时时间时间6模型转换技术模型转换技术概述概述模型转换技术模型转换技术基于基于QVT relation的转换语言的转换语言与工具与工具3学时学时2013.4.2 星期二星期二 晚晚18:0021:007模型转换技术模型转换技术基于基于QVT relation的案例的案例3学时学时2013.4.9星期二星期二 晚晚18:002

    16、1:008模型转换技术模型转换技术基于基于QVT operational的转换的转换转换语言与工具转换语言与工具3学时学时2013.4.16星期二星期二 晚晚18:0021:009模型转换技术模型转换技术基于基于QVT operational的案例的案例3学时学时2013.4.23 星期二星期二 晚晚18:0021:0010模型转换技术模型转换技术基于基于QVT operational的案例的案例3学时学时2013.5.7星期二星期二 晚晚18:0021:00课程内容与计划课程内容与计划课次课次内容内容学时学时时间时间11模型转换技术模型转换技术 展示与辅导展示与辅导3学时学时2013.5.1

    17、4 星期二星期二 晚晚18:0021:0012模型驱动的代码生成技术模型驱动的代码生成技术基于基于Jet的代码生的代码生成语言与工具成语言与工具3学时学时2013.5.21 星期二星期二 晚晚18:0021:0013模型驱动的代码生成技术模型驱动的代码生成技术基于基于QVT M2T的的代码生成语言与工具代码生成语言与工具Acceleo3学时学时2013.5.28 星期二星期二 晚晚18:0021:0014模型驱动的代码生成技术模型驱动的代码生成技术 展示与辅导展示与辅导3学时学时2013.6.4 星期二星期二 晚晚18:0021:0015MDA综合案例综合案例3学时学时择机择机16分组项目答辩

    18、分组项目答辩3学时学时择机择机授课方式与课程要求授课方式与课程要求课堂讲授与讨论相结合课堂讲授与讨论相结合鼓励相关论文规范阅读鼓励相关论文规范阅读分组项目与展示分组项目与展示理论学习与项目实践相结合理论学习与项目实践相结合注重相关工具集的使用注重相关工具集的使用课程的准备知识、学习方法课程的准备知识、学习方法准备知识准备知识 一种面向对象的编程语言一种面向对象的编程语言 面向对象技术面向对象技术 UML学习方法学习方法 理论与实践相结合理论与实践相结合 学习与研究相结合学习与研究相结合Web领域代码自动生成工具PetStoreEARHotel WBM业务流程模型0的研究与开发,麻志毅 蒋严冰

    19、戴耀飞 李劲宇 电子学报 2002.逻辑模型绑定到物理模型基于MDA的Web领域模型研究每层分别进行元建模、模型转换和代码生成mapping rectangle:rectangleTorectangle():rectanglehelper simplediagram:findNodeWithSameEllipse(n:node):Set(node)lines+=map abstractsubnode(r,k).基于QVT O的缺陷模型自动修复工具18:0021:00基于ecore的源代码克隆缺陷建模工具components+=object ellipsenodename:=x;PetStore

    20、EAR12a(EI索引源)元建模技术 展示与辅导代码生成技术不仅能够提高软件的开发效率。Eclipse CDT本课程所用到的工具集本课程所用到的工具集Eclipse modelingMedini QVT本课程所用到的工具集本课程所用到的工具集工具工具作用作用基于工具基于工具配置与修改方案配置与修改方案元建模工具元建模工具可视化地建立各种模型的可视化地建立各种模型的ecore元模型元模型Eclipse modeling Ecore tools直接可视化的使用直接可视化的使用Eclipse modeling Ecore tools 中中Ecore diagram可视化的建立各种模型的可视化的建立各

    21、种模型的ecore元模型,并存储为元模型,并存储为.ecore文件。文件。可扩展的建可扩展的建模工具模工具以以ecore元模型为输入,将其元模型为输入,将其可视化的绑定建模元素可视化的绑定建模元素的表示法与行为,形成的表示法与行为,形成支持各种支持各种ecore元模型的元模型的建模工具。用以生成各建模工具。用以生成各种模型种模型,并以并以.xmi的方式的方式存储存储.Eclipse modeling GMF利用利用GMF的提供的配置向导可产生简单的建模的提供的配置向导可产生简单的建模工具的插件,如对表示法和行为有特殊的工具的插件,如对表示法和行为有特殊的要求,可通过修改所生成的建模工具的插要求

    22、,可通过修改所生成的建模工具的插件的源代码。件的源代码。基于基于QVT的的模型转模型转换换根据既定的根据既定的QVT元模型转化元模型转化规则,以一种规则,以一种web领域领域模型为输入,通过转换模型为输入,通过转换输出另外一种模型输出另外一种模型Eclipse modeling operational QVT;mediniQVT大部分转换可通过在这些模型转换工具中输入大部分转换可通过在这些模型转换工具中输入以以QVT规范编写的转换语言后,即可自动规范编写的转换语言后,即可自动实现。其中实现。其中Eclipse modeling operational QVT支持过程化的转换描述,支持过程化的转

    23、换描述,mediniQVT支持关系声明型的转换描述。支持关系声明型的转换描述。代码生成代码生成可通过可通过QVT及及EMF工具分别工具分别以模型转换的方法或模以模型转换的方法或模板的方法实现。板的方法实现。Eclipse modeling JETAcceleo代码生成可通过代码生成可通过EMF中的中的JET工具,以模板的工具,以模板的方式实现方式实现.课程分数评定课程分数评定 考核方式考核方式 无笔试无笔试 无编码项目无编码项目 平时成绩平时成绩 30%项目成绩项目成绩 70%项目要求项目要求 基于基于Eclipse modeling等模型驱动支撑工具,建立特定领等模型驱动支撑工具,建立特定领

    24、域的模型驱动工具,包括元建模、模型转换及代码生成等域的模型驱动工具,包括元建模、模型转换及代码生成等部分。部分。要求:要求:明确描述需求明确描述需求 重点描述元模型与基于重点描述元模型与基于QVT的转换方案及实验的转换方案及实验案例案例 代码生成方案代码生成方案课程项目选取领域课程项目选取领域Web领域代码自动生成工具领域代码自动生成工具手机领域代码自动生成工具手机领域代码自动生成工具基于设计模式的模型自动转换基于设计模式的模型自动转换其他其他课程参考资料课程参考资料 Stahl,T.,Volter,M.等著,杨华,高猛译等著,杨华,高猛译,模型驱动软件开发:技术、模型驱动软件开发:技术、工程

    25、与管理工程与管理,清华大学出版社清华大学出版社,2009年年1月第一版月第一版 科学出版社科学出版社 影印,影印,2003年年5月月第一版第一版 QVT-Partners,Revised submission for MOF 2.0 Query/Views/Transformations RFP,Version 1.1(2003/08/18),UML 2.0 Superstructure Specification UML 2.0 Infrastructure Specification MOF Query/Views/Transformations 模型驱动的研究项目与原型模型驱动的研究项目

    26、与原型 模型驱动的模型驱动的Web领域软件模型体系、模型转换及代领域软件模型体系、模型转换及代码生成技术与原型码生成技术与原型 模型驱动模型驱动的的J2EE部署模型工具部署模型工具 WBM到到SOMA的模型转化系统的模型转化系统 软件外包领域模型驱动开发方法中模型伪装与转换软件外包领域模型驱动开发方法中模型伪装与转换 下一代网络架构和协议的广义模型和转换下一代网络架构和协议的广义模型和转换模型驱动的模型驱动的Web领域软件领域软件模型体系、模型转换及代模型体系、模型转换及代码生成技术与原型码生成技术与原型Web领域代码自动生成工具领域代码自动生成工具UML及其扩展机制及其扩展机制/QVTWeb

    27、领域模型转换及代码生成研究领域模型转换及代码生成研究Web领域建模工具原型研发领域建模工具原型研发(基于基于eclipse-modeling Ecore tools,GMF的的Web领域元建模及建模工具领域元建模及建模工具)Web模型转化与代码生成工具模型转化与代码生成工具原型研发原型研发(基于基于mediniQVT及及 eclipse-modeling operational QVT EMF的模型转化与代码生成工具的模型转化与代码生成工具)在具体在具体Web系统开发中的应用、验证与比较系统开发中的应用、验证与比较Web应用实践应用实践基于基于MDA的的Web领域模型研究领域模型研究Web领域

    28、的领域的CIM模型模型(基于(基于Ecore的的web领域领域需求的元模型需求的元模型)Web领域的领域的PIM模型模型(基于(基于Ecore的的web领域领域独立平台的元模型)独立平台的元模型)Web领域的领域的PSM模型模型Web领域领域CIM到到PIM转换转换(基于(基于QVT的的CIM到到PIM转换)转换)Web领域领域PIM到到PSM转换转换(基于(基于QVT的的CIM到到PIM转换)转换)Web领域领域PSM到源代码转换到源代码转换模型到元模型归纳转换技术模型到元模型归纳转换技术模型体系与模型转换概要模型体系与模型转换概要实例:博客领域模型驱动的开发实例:博客领域模型驱动的开发基于

    29、基于web三层模型进行分层分工,三层模型进行分层分工,每层分别进行元建模、模型转换和代码生成每层分别进行元建模、模型转换和代码生成表现层表现层陈定胜陈定胜耿耘耿耘刘洋刘洋骆云骆云数据持久化层数据持久化层朱晓文朱晓文赵越月赵越月业务逻辑层业务逻辑层 90%100%100%Eclipse modeling Ecore tools主持华为合作研究项目下一代网络架构和协议的广义模型和转换2013(基于Ecore的web领域result.nodename then findNodeWithSameEllipse(r)-isEmpty()or self.在具体Web系统开发中的应用、验证与比较name:=

    30、self.Hotel WBM业务流程模型绪论:模型驱动软件开发技术综述与后面向对象方法与模型驱动将相同的子结构提取出来4On Procedure Strategy of Constructing SOAs Modeling Language,Yanbing Jiang,Chunxiao Xing,Wei he and Jijiang Yang,Procedings of IEEE International Workshop on service-oriented system Engineering 2005,IEEE Computer Society Presscomponents+=(n

    31、2.1:取消目标模型元素的自关联18:0021:00模型驱动的代码生成技术基于QVT M2T的代码生成语言与工具Acceleo基于MDA的Web领域模型研究Eclipse modeling JET在模型驱动领域的研究背景Eclipse modeling分析模型元模型分析模型元模型数据访问层元模型数据访问层元模型业务逻辑层元模型业务逻辑层元模型展现层元模型展现层元模型分析模型分析模型数据访问层设计模型数据访问层设计模型业务逻辑层设计模型业务逻辑层设计模型展现层设计模型展现层设计模型LOGO数据访问层的代码生成数据访问层的代码生成业务逻辑层代码生成业务逻辑层代码生成展现层代码生成展现层代码生成展现

    32、层展现层基于基于android的手机代码框架生成的手机代码框架生成系统系统JSP Servelet代码框架生成系统代码框架生成系统产生内部结构:内部结构的连线规则自动验证与到代码的自动转化工具0 Infrastructure Specification MOF Query/Views/Transformations交换机PIM结构模型到PSM结构模型的转换工具基于模型驱动的J2EE部署模型工具componentellipse-map cTc(result);componentrectangle-map cTc(result);(SCI收录)获得北京大学2004年优秀论文奖_from:=self

    33、.可视化地建立各种模型的ecore元模型18:0021:0018:0021:00其中Eclipse modeling operational QVT支持过程化的转换描述,mediniQVT支持关系声明型的转换描述。to-map lineToline();4On Procedure Strategy of Constructing SOAs Modeling Language,Yanbing Jiang,Chunxiao Xing,Wei he and Jijiang Yang,Procedings of IEEE International Workshop on service-orient

    34、ed system Engineering 2005,IEEE Computer Society Presssource-resolveoneIn(ellipse:eTc)=self.掌握模型驱动软件开发方法的基本概念与主要思想。某公司计划在短期内开发一种非常有创意的软件产品,以便快速占领市场,但不精通开发技术,人手不够。son.分析模型元模型分析模型元模型数据访问层元模型数据访问层元模型业务逻辑层元模型业务逻辑层元模型展现层元模型展现层元模型分析模型分析模型数据访问层设计模型数据访问层设计模型业务逻辑层设计模型业务逻辑层设计模型展现层设计模型展现层设计模型LOGO数据访问层的代码生成数据访问

    35、层的代码生成业务逻辑层代码生成业务逻辑层代码生成findNodeWithSameEllipse(r);7UML现存问题与发展道路,邵维忠 蒋严冰 麻志毅,计算机研究与发展,2003.将相同的子结构提取出来改变对软件开发的传统思路,更深理解软件工程。mapping line:lineToline():line某软件开发公司的主营业务是为中小型企业开发Web信息管理系统,而每个企业都有自身的需求,公司人员已达8000人,但仍忙不过来。逻辑模型绑定到物理模型ponentrectangle-map cTc(result);提高研究能力,开阔学术视野,培养把握前沿软件开发方法的研究与应用能力。lines

    36、+=self.逻辑模型绑定到物理模型基于MDA的Web领域用况模型研究component+=c.基于android的手机代码框架生成系统WBM到SOMA的模型转化系统基于ecore的源代码克隆缺陷元模型_from:=self.在具体Web系统开发中的应用、验证与比较基于MDA的Web领域模型研究WBM到SOMA的模型转化系统object l1:line展现层代码生成展现层代码生成例例6.1:取消目标模型元素的自关联取消目标模型元素的自关联 mapping Line:lineToline():Line when not(not self.source-resolveoneIn(ellipse:e

    37、Tc)-isEmpty()and not self.tareget-resolveoneIn(ellipse:eTc)-isEmpty()and self.source-resolveoneIn(ellipse:eTc)=self.tareget-resolveoneIn(ellipse:eTc)在在lineToline中加入中加入when 子句子句取消目标模型元素的自关联取消目标模型元素的自关联抽象工厂模式转化为一般工厂模抽象工厂模式转化为一般工厂模式式nodename=e.nodename then 基于AST的程序分析与缺陷模型生成器从而在很大程度上提高软件的开发效率.son.可通过QV

    38、T及EMF工具分别以模型转换的方法或模板的方法实现。findNodeWithSameEllipse(r);0 Query/Views/Transformations RFP,Version 1.mapping myfirstDiagram:SDToSD():myfirstDiagram/son.0 Superstructure Specification18:0021:00(基于Ecore的web领域模型转换技术基于QVT relation的转换语言与工具展示模型驱动方法中的工具集。取消目标模型元素的自关联6UML中衍型的精确定义与分析,蒋严冰 邵维忠 张路 麻志毅 电子学报 2003.lin

    39、es+=self.result.一种面向对象的编程语言tareget-resolveoneIn(ellipse:eTc)-isEmpty()将相同的子结构提取出来将相同的子结构提取出来将相同的子结构提取出来将相同的子结构提取出来modeltype simplegraph uses;transformation NewTransformation(in source:simplegraph,out target:simplegraph);main()source.objectsOfType(simplediagram)-map SDToSD();mapping simplediagram:SDT

    40、oSD():simplediagram self.nodes-forEach(r)/result.nodes+=self.findNodeWithSameEllipse(r);if self.findNodeWithSameEllipse(r)-isEmpty()or self.findNodeWithSameEllipse(r)=null then result.nodes+=r.map NodeTNode()else var f:=resolveIn(abstractsubnode,node)-select(e|e.nodename=father and ponentsellipse-fi

    41、rst().nodename=ponentsellipse-first().nodename);if f-notEmpty()then continue endif;self.findNodeWithSameEllipse(r)-forEach(k)result.nodes+=map abstractsubnode(r,k).father;result.lines+=map abstractsubnode(r,k).l1;result.nodes+=map abstractsubnode(r,k).son;endif;result.lines+=self.lines-map lineTolin

    42、e();将相同的子结构提取出来将相同的子结构提取出来mapping node:NodeTNode():node result.nodename:=self.nodename;result.to:=self.to-map lineToline();result._from:=self._from-map lineToline();ponents:=ponentsellipse-map ellipseToellipse();ponents+=(ponentsrectangle-map rectangleTorectangle();helper simplediagram:findNodeWithS

    43、ameEllipse(n:node):Set(node)var renodes:Set(node);/if ponentsellipse=null then return null endif;var e:ellipse=ponentsellipse-first();self.nodes-forEach(m)ponentsellipse-forEach(f)if f.nodename=e.nodename then renodes+=m;endif;return renodes;mapping line:lineToline():linemapping ellipse:ellipseToell

    44、ipse():ellipse result.nodename:=self.nodename;mapping rectangle:rectangleTorectangle():rectangle result.nodename:=self.nodename;将相同的子结构提取出来将相同的子结构提取出来mapping abstractsubnode(in n1:node,in n2:node):father:node,son:node,l1:lineinitvar x:String=ponentsellipse-first().nodename;var f:=resolveIn(abstracts

    45、ubnode,node)-select(e|e.nodename=father and ponentsellipse-first().nodename=x);if f-notEmpty()then father:=f-first()else object father:node nodename:=father;components+=object ellipsenodename:=x;endif;objectson:node son.nodename:=n2.nodename;son.to:=n2.to-map lineToline();son._from:=n2._from-map lin

    46、eToline();/ponents:=ponentsellipse-map ellipseToellipse();ponents+=(ponentsrectangle-map rectangleTorectangle();object l1:line l1.source:=son;l1.target:=father ;产生内部结构产生内部结构:内部结构的连线内部结构的连线产生内部结构产生内部结构:内部结构的连线内部结构的连线modeltype myfirstGMF uses;transformation NewTransformation(in source:myfirstGMF,out t

    47、arget:myfirstGMF);main()source.objectsOfType(myfirstDiagram)-map SDToSD();mapping myfirstDiagram:SDToSD():myfirstDiagram/ponent:=ponentcertainernode-map cTc();ponentcertainernode-forEach(c)ponent+=c.map cTc(result);ponent+=ponentrectangle-map cTc(result);ponent+=ponentellipse-map cTc(result);result.

    48、lines+=self.lines-map lineToline();产生内部结构产生内部结构:内部结构的连线内部结构的连线mapping Node:nTn(inout m:myfirstDiagram):Node result.name:=self.name;result.to:=self.to-map lineToline();result._from:=self._from-map lineToline();mapping certainernode:cTc(inout m:myfirstDiagram):certainernode inherits Node:nTn sname:=se

    49、lf.sname;result.sons+=self.sonscertainernode-map cTc(m);result.sons+=self.sonsrectangle-map cTc(m);result.sons+=self.sonsellipse-map cTc(m);m.lines+=map addinterStruct(result).sl;增加参数增加参数inout m:myfirstDiagram的目的是为了在产生的目的是为了在产生line时时,将其加入到将其加入到myfirstDiagram容器容器,inout 目的是需要修改传入的参数目的是需要修改传入的参数.产生内部结构

    50、产生内部结构:内部结构的连线内部结构的连线mapping addinterStruct(inout c:certainernode):e:ellipse,r:rectangle,sl:Lineinit e:=new ellipse(ee);r:=object rectangle name:=rr;sl:=object Line Lname:=ll;c.sons+=e;c.sons+=r;sl.source:=e;sl.tareget:=r;addinterStruct用于将用于将certainernode 中增加新的子结构中增加新的子结构,注意注意init此处不能省略此处不能省略特点特点 1.

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:模型驱动的软件开发技术课程介绍课件.ppt
    链接地址:https://www.163wenku.com/p-5174657.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库