《将对象映射为代码.ppt》由会员分享,可在线阅读,更多相关《将对象映射为代码.ppt(20页珍藏版)》请在三一办公上搜索。
1、第20章 将对象映射为代码,暨南大学计算机系黄战,目标,使用面向对象语言将设计制品映射为代码,overview,简介,在设计工作中创建的UML制品(交互图和DCD)可以作为代码生成过程的输入在UP中具有实现模型。源代码、数据库定义、JSP/XML/HTML页面等都是实现制品,编程和迭代、进化式开发,现代开发工具为快速探索和重构替代方案提供了优秀的环境,一些(通常是大量的)编程期设计是很有价值的。用OO语言(例如Java或C#)创建代码并不是OOA/D的一部分,它是最终目标在设计模型中创建的制品为生成代码提供了必要的信息然而,一般来说,编程工作并非微不足道的代码生成步骤,事实恰恰相反!实际上,在
2、设计建模中产生的结果只是不完整的第一步。在编程和测试过程中,会做出很多的变更并且要发现和解决无数细节问题,将设计映射为代码,面向对象语言中的实现需要以下元素编写源代码:类和接口的定义 方法的定义,由DCD创建类的定义,至少,DCD描述了类和接口的名称、超类、操作的特征标记以及类的属性等。这已经足以在OO语言中创建基本类的定义了。如果是使用UML工具绘制的,那么还可以从图形中生成基本的类定义,从交互图中创建方法,交互图的一系列消息可以转换为方法定义中的一系列语句交互图中展示的方法中的每一系列消息都映射为Java方法中的语句,代码中的集合类,一对多的关系非常常见例如Sale必须维护对一组众多Sal
3、eLineItem实例的可见性在OO编程语言中,这些关系通常使用集合对象(例如List或Map)或简单的数组来实现选择使用哪种集合类当然要由需求来决定,基于键的查询需要使用Map,可增长的有序序列表需要使用List等如果对象实现的是接口,那么使用接口而不是具体类来声明变量,例如:private List lineItems=new ArrayList();,异常和错误处理,对于应用开发,在设计建模过程中考虑大规模的异常处理策略是明智的(因为这对大规模的架构具有影响),当然在实现过程中也是如此就UML而言,可以在消息和操作声明的特性字符串中指出异常,实现的顺序,类的实现要按照从耦合度最低到耦合度最高的顺序来完成例如:,测试驱动或测试优先的开发,测试驱动开发或测试优先开发是极限编程(XP)方法提倡的优秀实践这些实践同样也适用于UP和其他迭代方法在这种实践中,要在测试代码之前完成单元测试代码的编写,同时开发者要为所有产品代码编写单元测试代码其基本规律,编写一小段测试代码,然后再编写一小段产品代码,保证产品代码能够通过测试,然后编写更多的测试代码,依此类推,程序简介,请参考书中第20.11节,查看从先前UML制品中产生的代码,Fig.20.1,Fig.20.2,Fig.20.3,Fig.20.4,Fig.20.5,Fig.20.6,Fig.20.7,