1、软件工程(第2版) 陆惠恩主编,1,第9章 面向对象技术及UML应用,本章主要内容: 面向对象分析 建立对象模型 建立动态模型 建立功能模型面向对象设计 面向对象系统的实现 面向对象的测试 UML的应用 统一过程 Rational Rose 简介 本章重点: 面向对象分析 面向对象设计 UML使用准则,软件工程(第2版) 陆惠恩主编,2,9.1 面向对象分析,9.1.1 面向对象分析过程 分析用户需求1. 分析对象的属性、服务及消息的传递。2. 分析对象在系统中的不同状态及状态的转换。 陈述需求建立三种模型: 描述系统数据结构的对象模型。 描述系统控制结构的动态模型。 描述系统功能的功能模型。
2、9.1.2 面向对象分析原则.包含原则.排斥原则,软件工程(第2版) 陆惠恩主编,3,9.2 建立对象模型,9.2.1 确定对象和类 1. 对象 2. 类 类是具有相同属性和服务的一组对象的集合。 对象有三种表示方式: 对象名:类名 对象名 :类名,软件工程(第2版) 陆惠恩主编,4,9.2.2 确定类的相互关系,1. 类的一般-特珠关系,软件工程(第2版) 陆惠恩主编,5,2. 聚集关系,“整体部分”关系,软件工程(第2版) 陆惠恩主编,6,3. 关联关系,阶 链属性限定,软件工程(第2版) 陆惠恩主编,7,【例9.1】教师指导学生毕业设计,多对多关联的分解。,软件工程(第2版) 陆惠恩主编
3、,8,4. 主动对象 一组属性和一组服务的封装体,其中至少有一个服务不需要接收消息就能主动执行(称为主动服务)。,软件工程(第2版) 陆惠恩主编,9,9.2.3 划分主题 【例9.2】商品销售管理系统主题图,软件工程(第2版) 陆惠恩主编,10,9.3 建立动态模型 9.3.1 编写脚本,【例9.3】打电话、通话过程的脚本 打电话、通话过程的一系列事件列出如下: 打电话者拿起电话受话器 电话拨号音开始 打电话者拨数字(8) 电话拨号音结束 打电话者拨数字(2) . 打电话者拨数字(3) 如果电话号码拨错,交换机提示出错信息; 如果号码正确,且对方空闲,则 接电话者的电话开始振铃 铃声在打电话者
4、的电话上传出 如果在30秒钟内,接电话者拿起话筒 接电话者的电话停止振铃 打电话者的电话停止振铃 通电话. 接电话者挂断电话 电话切断 打电话者挂断电话 如果拨号正确,对方忙,打电话者的电话上传出忙音 如果接电话者在30秒钟内,不接听电话,双方电话停止振铃,软件工程(第2版) 陆惠恩主编,11,9.3.2 设计用户界面 9.3.3 画UML顺序图或活动图,【例9.4】画出招聘考试管理系统的顺序图 某市人事局举行统一招聘考试。首先,各招聘单位向人事局登记本单位各专业的招聘人数,由人事局向社会公布招聘情况;考生报名、填志愿;人事局组织安排考试;录入考试成绩;向考生和招聘单位公布成绩;招聘单位进行录
5、用;发录用通知书。这里,共有三个对象类:人事局、考生和招聘单位。,软件工程(第2版) 陆惠恩主编,12,【例9.4】画出招聘考试管理系统的顺序图,软件工程(第2版) 陆惠恩主编,13,9.3.4 画状态转换图 【例9.5】分别画出旅馆管理系统中旅客和床位的状态转换图。,软件工程(第2版) 陆惠恩主编,14,9.4 建立功能模型,确定输入、输出值:数据流图中的输入、输出值是系统与外部之间进行交互的事件的参数。 画数据流图 定义服务,软件工程(第2版) 陆惠恩主编,15,9.5 面向对象设计,9.5.1 系统设计 1. 将系统分解为子系统 2. 设计问题域子系统 3. 设计人-机交互子系统 4.
6、设计任务管理子系统 5. 设计数据管理子系统 9.5.2 对象设计 1.对象描述 2.设计类中的服务 3.设计类的关联 4. 链属性的实现 5. 设计的优化,软件工程(第2版) 陆惠恩主编,16,9.5.3 面向对象设计的准则和启发式规则 1、面向对象设计的准则,模块化 抽象信息隐藏低耦合(弱耦合) 高内聚 (强内聚) 重用性2、 面向对象设计的启发规则 设计结果应该清晰易懂 一般特殊结构的深度应适当 设计简单的类 使用简单的协议 使用简单的服务把设计变动减到最小,软件工程(第2版) 陆惠恩主编,17,9.6 面向对象系统的实现,9.6.1 选择程序设计语言 1. 选择编程语言的关键因素 2.
7、 面向对象语言的技术特点 3选择面向对象语言的实际因素 9.6.2 面向对象程序设计 1.提高软件的可重用性 2. 提高可扩充性 3. 提高健壮性,软件工程(第2版) 陆惠恩主编,18,9.7 面向对象的测试 9.7.1 面向对象的测试策略 9.7.2 面向对象的测试步骤,1、制订测试计划2、设计测试用例3、实现测试构件4、集成测试5、系统测试6、测试评估。,软件工程(第2版) 陆惠恩主编,19,9.8 UML的应用,9.8.1 UML模型 1. 用例模型 2. 静态模型 3动态模型 4实现模型 9.8.2 UML视图 结构分类:用例、静态、实现视图 动态行为:部署、状态、活动、交互视图 模型
8、管理 可扩展性,软件工程(第2版) 陆惠恩主编,20,9.8.3 UML使用准则 1. 选择合适的UML图 2. 只对关键事物建立模型 3分层次画模型图 4模型应具有协调性 模型及其元素要大小适中 9.8.4 UML应用领域 UML可用在软件开发过程中对系统的各个方面建模,还可用在许多工程领域。,软件工程(第2版) 陆惠恩主编,21,9.9 统一过程RUP,RUP(Rational Unified Process)9.9.1 RUP的开发模式,软件工程(第2版) 陆惠恩主编,22,9.9.2 统一过程的特点,1. 基于构件 2. 使用UML 统一建模语言 3. Rational统一过程是用例驱
9、动的 4. RUP采用迭代增量方式 5. Rational统一过程采用构架优先方法 9.9.3 统一过程的要素 项目 产品 人员 过程 工具 建议访问中文网站http:/ 和http:/www. 。,软件工程(第2版) 陆惠恩主编,23,9.10 Rational Rose 简介9.10.1 Rational Rose 界面 9.10.2 Rational Rose 模型的视图 9.10.3 Rational Rose 的使用,软件工程(第2版) 陆惠恩主编,24,第9章 小结,面向对象方法是一种将数据和处理相结合的方法。 面向对象方法不强调分析与设计之间的严格区分。 面向对象的分析由对象模型、动态模型、处理模型及其相互关系构成的。对象模型用类符号、类实例符号、类的关联关系、继承关系、组合关系等表示。 动态模型 功能模型 面向对象设计 选择面向对象编程语言 面向对象的程序设计和测试时准则 UML可用在软件开发过程中对系统的各个方面建模,还可用在许多工程领域。 RUP统一过程的主要特点是用例驱动和架构优先。 RUP的特点基于构件、使用UML、采用用例驱动和架构优先的策略。,