欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    L19.2 将设计映射为代码ppt课件.ppt

    • 资源ID:1376608       资源大小:261.50KB        全文页数:25页
    • 资源格式: PPT        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    L19.2 将设计映射为代码ppt课件.ppt

    系统分析与设计,第20章 将设计映射为代码,目标使用面向对象语言将设计映射为代码 我们已经为当前迭代完成了交互图和DCD,接下去便可以为这些设计编写代码了。 UP包括实现模型,根据设计所编写的代码就是UP中的实现模型,包括源代码、 JSP/HTML页面、数据库定义等。,20.1 编程和迭代、进化式开发 1. 编程期设计 创建代码既是最终目标,也是设计的继续。因为在设计建模中产生的结果并不是完美的,在编程和测试中会发现许多设计中不曾考虑的细节问题,因而会做出许多变更。 如果做得好,设计师会以设计建模中产生的结果为基础,在编程期进一步产生更具优雅性和健壮性的系统。 这就是编程期设计。,2. 过程路线图 USE CASE OOA OOD CODING 提供了从需求到代码开发过程的端到端路线图 。 各阶段中所形成的制品能够被可追溯地和有效地输入到其后续制品中,并最终形成可运行的运用。 尽管这个过程不会一帆风顺,但过程路线图可以为实现和问题解决提供一个可遵循的方法和研究环境。,20.2 将设计映射为代码 面向对象语言中的实现需要为以下元素编写源代码:类和接口的定义方法的定义 下面的实现讨论以Java语言为工具.,20.3 由DCD创建类的定义 DCD描述了类或接口的名称、属性、关联以及操作的特征标记等,这已足以在OO语言中创建基本类的定义了。DCD若是使用UML工具绘制的,还可以从图形中生成基本的类定义。 如对于SalesLineItem在Java中的定义,可以直接由DCD映射为属性定义和方法特征标记,看下图:,SalesLineItem类定义中的: 第一个语句定义了一个整形变量quantity,因为类图中有个属性为quantity,是整形变量; 第二个语句定义了一个对象实例,名为description,其类型ProductDescription,因为设计类图中有一个description的关联角色标记,说明SalesLineItem对象具有对ProductDescription属性可见性;,第三个语句是SalesLineItem的构造器,因为enterItem的交互图中有发送给SalesLineItem的create(desc,qty)消息,因此SalesLineItem 必须定义相应的方法。注意类图中不包含create方法是因为这是不言而喻的,是为了保持类图的简洁性。另外,UML使用create表示创建实例,不同的语言使用不同的语句;,类定义中的第四个语句定义了一个方法 getSubtotal(),其返回类型是Money,因为类图的方法栏中有一个操作标记: getSubtotal():Money 可见,由DCD到类定义是一种直接的翻译过程。只要对照设计类图,这个过程不是很难。,20.4 从交互图创建方法 1. 交互图中的一系列消息可以转化为方法定义中的一系列语句。 例子:从enterItem交互图定义Register中的enterItem()方法。 enterItem()消息是发给Register的,这说明Register中有相应的enterItem()方法: Public void enterItem(ItemID,itemID,int qty)该方法实现enterItem操作契约的要求。,2. 如何根据交互图定义实现方法呢?首先要知道已确定的类定义,如图:,图中: Register分别拥有一个ProductCatalog的属性可见性catalog和一个Sale的属性可见性currentSale,因此在Register的类定义中有下面两条语句: private ProductCatalog catalog; private Sale currntSale; Register类定义中的操作标记包括四个系统操作和一个构造器。,3. 现在我们看看其中的enterItem()方法如何实现?这时要根据交互图:,交互图显示, Register先后发送两条消息: 消息1: Register向ProductCatalog发送getProductDescription消息以便提取匹配的ProductDescription实例并返回在desc中。因此方法定义中应该有如下语句: ProductDescription desc= catalog. getProductDescription(itemID) ; 消息2:以得到的desc和系统消息发来的qty为参数向Sale发送makeLineItem消息。因此方法定义中应该有如下语句: currentSale.makeLineItem(desc,qty);,enterItem方法,20.5 代码中的集合类 一对多的关系非常常见。例如Sale必须维护对一组众多SalesLineItem实例的可见性。如:,在OO编程语言中,这种一对多的关系通常使用集合(collection)对象,例如List或Map,或简单的数组来实现。 通常OO编程语言中包括对集合类的定义。例如Java库中包括ArrayList和HashMap这样的集合类,它们分别实现List和Map接口。通过使用ArrayList,Sale类可以定义一个引用SalesLineItem实例的有序列表的属性。 基于键的查询要使用Map,可增长的有序列表要使用List等。 对lineItem属性的声明,其类型是接口。,20.6 定义Sale.makeLineItem方法 基于enterItem交互图还可以写出Sale类的makeLineItem方法。如图:,20.7 异常和错误处理 在目前的开发中还未涉及异常处理,这是有意的。因为我们要关注职责分配和对象设计的基本问题。 但是对于应用开发,在设计建模和实现过程中考虑大规模的异常处理策略是明智的,因为它们会影响到架构。,20.8 实现的顺序 类的实现(理想情况下还包括完整的单元测试)顺序:一要按照从耦合度最低到耦合度最高的顺序来完成;二要根据依赖关系,先实现被依赖的类,再实现依赖于的类。例如,我们的案例中首先要实现的类是Payment和ProductDescription,因为Payment的耦合度最低,而对象ProductCatalog和对象SalesLineItem依赖于ProductDescription。如图:,20.9 POS学习案例的基本代码 下面给出本次迭代中用Java实现的领域层类的样例。所生成的代码都是根据之前讨论的将设计映射为代码的原则,从设计工作中生成的设计类图和交互图中产生的。 这些代码所定义的只是简单的情形,其中并不包括同步、异常处理等健壮、完整的部分。主要意图是展示从设计制品到程序代码之间的转换。(见P271),本次课小结,代码即实现模型,是软件设计的目标;从设计模型到代码,一般先实现独立的没有耦合的类(层),然后从关联低的类到高的类实现也是以架构为中心的。从架构的观点,可以从底向上实现,需要用驱动模块来测试;也可以从顶向下实现,需要使用桩模块来测试。实现可以使用代码生成工具。今后自动生成的代码比重会越来越大。,课后作业,阅读教材第20章,理解预习第21章.,

    注意事项

    本文(L19.2 将设计映射为代码ppt课件.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开