- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第10章 从模型到代码 From Model to Code -*- 设计模型与代码实现 编写代码形成软件 软件最终需要代码来实现 模型只是为代码实现提供支持 目前尚未产生成熟的可执行模型 正向工程(Forward engineering) 由设计类图导出框架代码 由交互图创建方法实现 逆向工程(Reverse engineering) 由源代码导出设计模型 -*- 内容安排 正向工程 逆向工程 模型驱动的架构 课程总结 正向工程 正向工程是指按照软件开发的基本过程,将抽象层次较高的模型转换为相对具体的模型的过程。主要包括: 从类图生成框架代码 从交互图(主要指顺序图)生成方法中操作的调用代码 从状态机图生成状态转换控制代码 -*- -*- 正向工程-生成框架代码 什么是框架代码? 代码在设计上的初步实现 类的框架代码包括那些? 属性值定义:名称、类型、缺省值等 操作的定义:名称、参数、返回类型等 引用属性的表示 …… 根据设计类图产生框架代码 用操作和简单属性定义一个类 加入引用属性:角色名定义引用属性 -*- 从设计类图产生框架代码-1 1. 用操作和简单属性定义一个类(属性、操作) -*- 从设计类图产生框架代码-2 2. 加入引用属性(关联和导航;角色名) -*- EA支持框架代码的导出 多数UML CASE工具都支持框架代码导出 利用Rose由设计类图生成框架代码(Java)的基本过程 利用EA由设计类图生成框架代码 可以课堂演示 主要问题: 设计模型开发不够完善,无法导出代码 -*- 正向工程-创建方法实现 一个交互图显示出了响应操作调用而产生的消息传递;这些消息序列可以被翻译成该操作所对应的方法实现中的一系列语句 由顺序图产生方法实现 由通信图产生方法实现 -*- 确定预订房间操作实现(顺序图) //1.3.1创建Payment实例 payment = new Payment(pay_type); //1.3.2 进行支付操作 payment.makePayment(reservation); //1.3.3 创建需预订的房间对象 room=new Room(room_no); //1.3.4 预订的房间 room.reserve(); //1.3.5 保存预订信息 reservation.save(); public void affirmReserve(){ Payment payment=new Payment(pay_type); payment.makePayment(reservation); Room room=new Room(room_no); room.reserve(); reservation.save(); } -*- 逆向工程-由代码导出模型 逆向工程 根据源代码导出设计模型 设计类图、设计交互图 主要作用 开始编码后,很多地方势必会和设计模型不一致,此时可以通过逆向工程更新设计模型,从而需要保持设计模型的有效性 已有的系统缺少相关文档,通过逆向工程获得系统的设计模型,以便理解和完善文档 示例:利用EA导入源代码,生成UML模型 -*- 从模型到代码的思考 设计模型和代码之间存在映射关系 目前很多工具都支持模型和代码之间的正向/逆向工程,但尚没有一种成熟的自动化工具能够支持代码的完全自动生成.主要问题如下: 设计模型不够完善,设计者难以通过UML表达系统所有的细节 UML模型和实现语言、平台之间存在差异性 UML模型自身存在各种内部机制和约束,这种细节缺少精确的定义 OMG组织致力于对UML做进一步的规范化,以实现模型对代码的完全表示 -*- 模型驱动的开发 模型驱动的开发(MDD, Model-Driven Development) 系统开发过程就是建模的过程,从需求、分析、设计、实现到测试,所有阶段的交付物都是模型 各类模型之间通过模型转换技术进行演化 实现也是一种模型(实现/代码模型),通过模型转换技术可以从设计模型中直接获得 支持MDD的核心技术 模型驱动架构(MDA, Model Driven Architecture) 模型转换(MT, Model Transformation) -*- 课程回顾 学到了什么? 基本的UML建模语法 面向对象的软件开发思想 利用UML分析和设计面向对象系统 没学到什么? 完整软件开发的过程和管理策略 编写分析设计文档的方法 编程实现一个软件的知识 UML+OO -*- 总结:各阶段使用到的UML图 业务建模 1. 业务用例模型 2. 业务对象模型 需求 3. 用例模型 分析 4. 备选构架 5. 用例分析 设计 6. 构架 7. 用例实现 1. 类图 2. 包图 3. 构件图 4. 部署图 5
文档评论(0)