




已阅读5页,还剩50页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
模型驱动软件开发 IBM软件部 内容 软件建模的层次部分建模完全建模MDDMDD的实现机制 MDDFramework ProfilePatternTransformation管理MDD的项目组织 角色MDD流程工具平台 2 部分软件建模项目特点 特征 模型作为系统的草图 系统开发以代码为核心用轻量级的建模工具 Visio rose等没有严格的建模规范和流程要求 建模只作为可选的设计形式没有专门的组织来支持和培训 项目组自发进行建模适合的场景 小型项目 敏捷开发项目团队小而稳定系统对后续维护没有严格要求 3 完全软件建模项目特点 特征 模型作为系统必须的核心的工件之一 系统开发以代码为核心公司有建模的规范和流程要求 建模成为必需的开发活动有单向的模型到代码的转换有虚拟的专家团队定期组织的支持和培训有企业级的建模工具 Visio Rose RSM RSA等没有专门的组织机构为建模负责没有企业级的模型资产的积累适合的场景 大 中型项目 系统对后续维护有严格要求系统开发进度要求非常紧开发团队没有掌握核心模型技能 或模型为核心的开发模式正在形成中 4 MDD的软件项目特征 特征 模型作为系统必须的核心的工件之一 系统开发以模型为核心公司有建模的规范和流程要求 建模成为必需的开发活动广泛的使用模型到模型 模型到代码的转换有企业级的建模工具平台 RSM RSA together等有专门的组织机构定制 扩展建模工具平台 开发企业级的模型转换基础组件 深入项目组进行培训 并为企业级模型应用负责建立有企业级的模型资产的重用库 建立基于模型的资产重用流程和机制适合的场景 大 中型项目系统对后续维护有严格要求开发过程要求严格规范企业成熟度高企业长期积累 形成了以模型为核心的开发模式 5 内容 软件建模的层次部分建模完全建模MDDMDD的实现机制 MDDFramework ProfilePatternTransformation管理MDD的项目组织上的准备流程上的准备工具平台的准备 6 MDD必须的技术实现MDDFramework UML概要文件 UMLProfile 将标准的UML语言扩展成适用于特定应用领域的DSL模式 Pattern 针对一类常见问题而总结的一些最佳解决方案转换 Transformation 将一种模型转换成为另外一种模型的自动化手段最常见的转换是从模型到最终实现 代码 之间的转换工作指南如何使用模型驱动开发框架构建应用示例模型演示使用该方法进行模型驱动开发的实例 7 MDDFramework的类型 商品化的MDDFramework由商业工具厂商针对一些公共应用领域而提供的框架如RSA中内置的框架 包括RUPDesignProfile UMLtoJavaTransformation等等企业级的MDDFramework针对企业内部的一组特定项目 具有相同的特性 而定制的框架只适用于某个特定项目的MDDFramework仅仅是针对该项目而定制的开发框架 8 内容 软件建模的层次部分建模完全建模MDDMDD的实现机制 MDDFramework ProfilePatternTransformation管理MDD的项目组织 角色MDD流程工具平台 9 UMLProfile UMLProfile是对标准UML语义的一个扩展引入构造型 stereotype 来扩展UML模型元素的语义构造型的语义信息不仅对人有意义 而且也对转换工具有意义例如 我们可以用 构造型来标识出所有需要转换成为WSDL WebServiceDefinitionLanguage 代码的消息类它是一种正交扩展 所以一个模型上可以施加多个UMLProfile 10 什么是概要文件 Profile UML标准的一部分针对特定的应用领域对UML语义的扩展如特定的项目 流程 行业或技术领域Profile中包含了构造型 用于增加UML模型元素的语义 11 什么是构造型 Stereotype 对UML模型元素的语义进行扩展一个模型元素上可以应用多个构造型构造型的展现形式 模型浏览器 文字 图标模型编辑器 图标 图形 文字 构造型可以包含 属性 记录一些额外的信息如 packageowner classQAstatus addressedrequirements约束 必须遵循的规则如 age 18 stereotypedclassmustinheritfromlibraryclass 12 什么是属性 Propertie 在模型元素上记录附加的信息 用于描述模型的更多细节信息 也可以用来表示UML中的 taggedvalue 类型 String Boolean Integer Enum 13 UMLProSoftwareServices ServiceModel ServiceProvider ServiceConsumer ServicePartition ServiceCollaboration Service ServiceGateway ServiceChannel ServiceSpecification Message MessageAttachment 14 ServicePro ItalicsDenoteoptionalstereotype 15 内容 软件建模的层次部分建模完全建模MDDMDD的实现机制 MDDFramework ProfilePatternTransformation管理MDD的项目组织 角色MDD流程工具平台 16 什么是设计模式 DesignPattern 设计模式用于进一步细化子系统和组件设计 以及它们之间的关系 它描述了在一个特定的应用场景下针对某一类问题的通用解决方案 ErichGammaetal 1994 DesignPatterns ElementsofReusableObject OrientedSoftware 17 设计模式 设计模式是对一类重复出现问题的解决方案模板 这种解决方案在一个特定的应用场景下已经被证明是有效的能够用于软件开发的各个阶段每一个设计模式都有以下几部分组成 描述它所解决的问题针对该问题的一个解决方案在不同的场景下应用该模式的策略使用该模式后所引起的后果 好处以及副作用 18 模式所带来的好处 可重用的解决方案模式为设计和开发人员提供了一个可重用的解决方案在项目组内强制设计和编码的标准在设计人员之间交流和学习提供帮助分享设计经验相互学习 19 RepresentingPatternsinSoftwareArchitectandSoftwareModeler 模式定义设计模式在UML中表示为带参数的协作 ParameterizedCollaboration 模式实例模式绑定表示为一个模式实例 模式的UML表述 20 在RAS中应用设计模式 在一个具体的解方案中我们可以应用 重新应用或是删除一个模式 指定模式的参数来应用该模式 从 PatternExplorer 中拖拉一个模式 2 1 21 GoF设计模式 四人帮 GangofFour ErichGammaRichardHelmRalphJohnsonJohnVlissides23个设计模式 22 设计模式应用实例 一个电信计费系统需要在系统中定时调度一些任务检查数据缓冲区中是否有交换机传过来的计费数据启动计费处理过程其他 如超时 Timeout 检查 生成报告等你会如果设计实现这些调度操作 23 传统面向过程的方法 publicstaticvoidmain String args throwsInterruptedException do Thread sleep 1000 等待一秒钟timer1 timer1 1000 timer2 timer2 1000 if timer1 TIMER COUNT1 定时器1计时触发检查timer1 0 定时器1复位call check buffer 检查数据缓冲区 if timer2 TIMER COUNT2 timer2 0 call billing process 启动计费处理 while true 循环 24 Command设计模式 Client创建一个ConcreteCommand并且指定它的receiverInvoker对象拥有指向ConcreteCommand对象的句柄Invoker调用Command的execute ConcreteCommand调用receiver的action 来执行相关的服务请求 25 Command设计模式在本例中的应用 26 用类图 ClassDiagram 来表达系统静态结构 27 内容 软件建模的层次部分建模完全建模MDDMDD的实现机制 MDDFramework ProfilePatternTransformation管理MDD的项目组织 角色MDD流程工具平台 28 模型转换 把一个模型转换成同类型的另一个模型在不同的抽象层次间转换模型把一种类型的模型转换成另一种类型的模型在现有的转换基础上进行扩展 转换工具 Model Model 转换定义 29 Transformations Reconciliation andVisualization UMLVisualization Code 30 设计一个转换 1 开发转换之前 决定以下因素 转换的目标转换的源模型源模型到目标的映射 31 设计一个转换 2 并且决定 变换规则如何来遍历源模型转换的定制 SourceNavigation 32 TransformationFrameworkArchitecture RSA EclipsePlatform EMF UML2 PDE TransformationService UserInterface Authoring Eclipse Engine 33 RSA中关于转换的一些主要概念 转换 Transform 可以被理解为是包含了各种转换元素 rules extractors andtransforms 并且能够遍历这些元素的层次结构执行内嵌的extractors rules transforms每一次转换都会对源模型进行一些扫描负责根据规则来翻译模型元素规则 Rule 负责来转换单个的模型元素提取器 Extractor 负责遍历整个模型层次 从一个元素中提取下一组访问元素 例如 一个包中的所有类 并且将它们传递给转换 Transform 进行处理 34 转换类 SimplifiedViewofTransformationClasses 35 转换结构的一个例子 36 在转换中用到的API Patterns Transformation RSAAPIs EclipseAPIs 37 RSA中构建一个转换的步骤 创建一个基于转换的Plug in项目指定源模型和目标模型的类型指定所关联的profiles在转换中添加规则编码实现转换的具体行为测试完成的转换 38 映射模型 MappingModel 映射模型使你能够在目标模型中重命名元素并且调整转换后元素的包结构 39 使用映射模型 MappingModels 的例子 在目标模型中创建不同的文件名或包结构在这些情况下往往不适合在源模型中改变元素的名字 40 JavaEmitterTemplates JET JET是EMF中的一种代码生成技术和工具类似于JSP脚本语言的模板 会被编译成实现并被调用来生成代码 Printtoscreen JETTemplatefile txtjet packagemypackage publicclassMyClassTemplate protectedfinalStringNL System getProperties getProperty line separator protectedfinalStringTEXT 1 Printtoscreen publicStringgenerate Objectargument StringBufferstringBuffer newStringBuffer stringBuffer append TEXT 1 returnstringBuffer toString JETTemplateImplementation MyClassTemplatemyclass newMyClassTemplate Stringproduct myclass generate null System out println product RuleCode Generates Calls 41 JavaEmitterTemplates cont KeyJETAPIclasses JETNatureJETEmitterJETCompilerJETBuilderCodeGen TemplateImplementationSource java TemplateImplementationClass class GeneratedJavaSource java JETEmitter JavaBuilder JETEmitter 42 内容 软件建模的层次部分建模完全建模MDDMDD的实现机制 MDDFramework ProfilePatternTransformation管理MDD的项目组织 角色MDD流程工具平台 43 MDD中的两项主要工作 MDDFramework的开发主要是对可重复实践的总结和自动化设计一种针对应用领域的DSL 使得主要的应用逻辑能够用该DSL来表述把一些重复性的 copy paste 工作用工具来自动化开发UMLProfile Pattern Transformation来构建MDDFramework应用软件开发应用构建的MDDFramework来构造应用软件组件和系统 44 MDD工具项目和业务应用项目之间的关系 现有的软件系统 MDD工具项目 业务应用项目 建模能力生成工具 业务应用逻辑 软件建模工具平台 可重用软件资产 45 内容 软件建模的层次部分建模完全建模MDDMDD的实现机制 MDDFramework ProfilePatternTransformation管理MDD的项目组织上的准备流程上的准备工具平台的准备 46 角色和职责 模式规约创作者 所有开发人员 模式用户 模式创作者 SubjectMatterExpert 所有业务分析人员 Developsthemicrotoolthatimplementsthepattern 模式实现者 Writesthedocumentthatdescribesthepatternindepth 资产库管理员 Maintainsandarchivesassetsfortheorganization 47 Team举例 Jean PierreSchoch CourbevoieFranceUXModelingtoWebApplicationTransformationJSF HibernateExpert模式用户 SteveHovater Portsmouth NHUSATraceViewsEclipse IBMRationalSoftwareArchitectExtensibilityExpert模式规范创作者 CindyVanEpps Houston TXUSAMasterDetailUMLPattern AnalysistoDesignTransformationUML IBMRationalSoftwareArchitectPatternsExpert模式实现者 KatrinaKolonay Requirements ProjectManagement Logistics模式创作者 资产库管理者 48 MDD项目计划执行流程 创建方案架构 定义运行时环境 确定一个与运行环境无关的组件模型 确定公用的模式和标准 确定现有的MDD资产中那些是可重用的 从工件样本中抽取模板 设计 编码 测试转换 Transform 产生文档培训开发人员 通用关键场景来确认工具集 定义工具集 培训开发人员使用MDD工具集 开发业务应用 49 MDD流程示例 捕获模式需求 架构规程及模式 Frameworkdev applicationdev 创建样例组件 开发模型约定 实现模式 工件模板 UMLprofile 模式 实现转换 转换 应用建模 应用模型 使用转换 实现工件 50 MDD的工具平台 Model工具RSA重用资产共享管理平台RAM 51 52 53 Documentation Inorganizationsthatfollowaformaldevelopmentapproach theproductionofdocumentationtakesasignificantamountofdevelopmenteffort Keepingdocumentationinlinewiththeimplementationisnotoriouslydifficult WhenusingMDD documentsaregeneratedfrommodelsensuringconsistencyandmakinginformationavailablewithinthemodelsthatdevelopersareworkingwithonadailybasis ratherthanindocumentsthataredifficulttonavigate Testartifacts Itispossibletogeneratebasictestharnesses forexample usingJUnit fromtheinformationcontainedinsoftwaremodels Ifadditionaltest specificmodelingiscarriedout forexample usingtheUMLProTesting thencompletetestimplementationsaregenerated Model basedtestingisadisciplinethatisconcernedwithgeneratingtestsfrommodels Buildanddeploymentscripts Usingtheirexpertise buildanddep
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 南昌三模文综数学试卷
- 全国卷三语文数学试卷
- 买机械的合同范本
- 濮阳市实验小学数学试卷
- 轮胎设计题目及答案
- 龙江中考2024数学试卷
- 莲花的题目及答案
- 工业设备出售合同范本
- 激光设备购销合同范本
- 传媒公司商务合同范本
- 2025年跨境电商物流服务佣金结算合作协议
- 2025年公司主要负责人安全培训考试试题有完整答案
- 医院检验科微生物进修汇报
- 主播跟运营合作合同协议
- 化工操作工培训课件
- 血透室设备维护与操作规范
- 2025至2030高校后勤行业发展趋势分析与未来投资战略咨询研究报告
- 2025中国电信安全公司春季校园招聘笔试参考题库附带答案详解(10套)
- 通信技术未来发展趋势
- 整形美容外科进修汇报
- 立达RSBD并条机培训资料讲课文档
评论
0/150
提交评论