第8章O0设计 (1) ●静态:类图,用例图,包图 ●动态:顺序图,协作图,状态图,活动图 ●实现与部署:组件图,配置图(静态)
第8章 OO设计(1) ⚫ 静态:类图,用例图,包图 ⚫ 动态:顺序图,协作图,状态图,活动图 ⚫ 实现与部署:组件图,配置图(静态)
分析面临的主要问题 ●OOA与OOD的界限 ●对问题域和系统责任的理解 ●人与人之间的交流 ●需求的不断变化 ●软件复用的要求
分析面临的主要问题 ⚫ OOA与OOD的界限 ⚫ 对问题域和系统责任的理解 ⚫ 人与人之间的交流 ⚫ 需求的不断变化 ⚫ 软件复用的要求
OOA与OOD的界限 ●OOA:运用面向对象方法,对问题域和系统责任进行分 析和理解,找出所需的对象,定义对象的属性和操作以及 对象之间的关系,建立一个符合问题域,满足用户需求的 OOA模型。 ●OOA不考虑与系统具体实现有关的因素,而将其留给 OOD去处理。 OOD包括两方面的工作: 1)根据实现条件对OOA模型作某些必要的修改和调整。 2)针对具体实现条件,建立人机界面、数据存储和控制驱 动等模型
OOA与OOD的界限 ⚫ OOA:运用面向对象方法,对问题域和系统责任进行分 析和理解,找出所需的对象,定义对象的属性和操作以及 对象之间的关系,建立一个符合问题域,满足用户需求的 OOA模型。 ⚫ OOA不考虑与系统具体实现有关的因素,而将其留给 OOD去处理。 ⚫ OOD包括两方面的工作: 1)根据实现条件对OOA模型作某些必要的修改和调整。 2)针对具体实现条件,建立人机界面、数据存储和控制驱 动等模型
问题域和系统责任 ·软件分析人员必须尽快了解和明确: 1)问题域:被开发系统的应用领域,现实世界中,要求 系统处理的业务范围。 2)系统责任:所开发的系统应该具备的功能。 ●问题域不等于系统责任,它们有很多重合部分。 系统责任 金融业务 【办公管理 个人储蓄代发工资 1数据备份1 、收费业务贷款业务一 -2
⚫ 软件分析人员必须尽快了解和明确: 1)问题域:被开发系统的应用领域,现实世界中, 要求 系统处理的业务范围。 2)系统责任:所开发的系统应该具备的功能。 ⚫ 问题域不等于系统责任,它们有很多重合部分。 金融业务 个人储蓄 代发工资 收费业务 贷款业务 办公管理 数据备份 系统责任 问题域 问题域和系统责任
需求的不断变化 ●“需求变化是绝对的”。 ·最容易变化的是系统功能。 ·在面向对象方法中,最容易变化的成分是 对象中的操作,其次是对象间的交互与协 作,第三是对象的属性。 ●隐蔽内部操作,抽取高层类,可以使系统 稳定且易于应对需求变化
需求的不断变化 ⚫“需求变化是绝对的” 。 ⚫最容易变化的是系统功能。 ⚫在面向对象方法中,最容易变化的成分是 对象中的操作,其次是对象间的交互与协 作,第三是对象的属性。 ⚫隐蔽内部操作,抽取高层类,可以使系统 稳定且易于应对需求变化
用传统的观点和OO的观点看待活动 ·传统方法和O0方法的区别: 一当一个事件发生时所发生的事情不同 一系统建模和实现方法不同
用传统的观点和OO的观点看待活动 ⚫传统方法和OO方法的区别: –当一个事件发生时所发生的事情不同 –系统建模和实现方法不同
传统方法和OO的方法 传统方法 00方法 系统是处理的集合 系统是交互对象的集合 处理数据与实体的交互 处理对象之间的交互 接受输入产生输出 对象发送消息和响应
传统方法和OO的方法 传统方法 OO方法 系统是处理的集合 系统是交互对象的集合 处理数据与实体的交互 处理对象之间的交互 接受输入产生输出 对象发送消息和响应
传统方法和OO方法的模型 事件 和事件表 事物 实体联系图 类图 传统方法 面向对象方法 关联图 DFD片段 用例和 用例描述 场景图 数据流定义 处理描述 系统序列图 状态图 其他 传统模型 状态表图
传统方法和OO方法的模型
面向对象的分析模型 ·目标:用规范的面向对象图表和文字来描述所要建 造的软件系统,以便在用户与系统分析人员之间达成 共识,同时使后续工作得以继续。 ●内容: 需求描述 基本模型 辅助模型 C1ass类图 Sequence 对象层 顺序图 Collaboration Use Case 关系层 协作图 用例图 State Transition 特征层 状态转换图 Component 包图 详细说明
面向对象的分析模型 ⚫目标:用规范的面向对象图表和文字来描述所要建 造的软件系统,以便在用户与系统分析人员之间达成 共识,同时使后续工作得以继续。 ⚫内容: 需求描述 Use Case 用例图 辅助模型 Sequence 顺序图 Collaboration 协作图 State Transition 状态转换图 Component 包图 基本模型 Class类图 详细说明 对象层 关系层 特征层