面向对象软件开发过程
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【主要任务】 主要任务】 ☺把分析阶段得到的问题域需求转变成符 把分析阶段得到的问题域需求转变成符 合要求的、抽象的系统实现方案。 合要求的、抽象的系统实现方案。 ☺面向对象设计分为两个阶段: 面向对象设计分为两个阶段: 面向对象设计分为两个阶段
系统设计: 系统设计:确定实现系统的策略和目标系统 的高层结构 对象设计:确定解空间中的类、关联、 对象设计:确定解空间中的类、关联、接口 形式及实现服务的算法
初始事件
状态1 状态 do:行为 :行为1
事件1[条件 事件 条件1] 条件
状态2 状态 do:行为 :行为2
结束事件
挂断电话 拿起听筒
空闲 拨号音 do:响拨号音 : 数字 拨号 超时
挂断电话
超时 do:响蜂鸣音 : 存储的信息 do:播放信息 :
数字
无效号码
忙音 do:响忙音 :
占线
有效号码 接通中 do:试接通 : 已接通 振铃 do:振铃 : 受话人回话 通话 受话人挂断电话 断线
教师 1+
书
教师与属于他的书之间的关联关系
类A
限定词
类B
举例: 举例:
目录
类ABaidu Nhomakorabea
角色
文件名
文件
关联
类B
角色
举例: 举例:
公司 名字) (名字)
雇主
个人 名字) (名字) 工作 职务) (职务)
雇员
员工
姓名 地址 身份证号码 工资 1+ 为之工作
公司
名称 主要产品 地址 雇佣 解雇
职务
部门名 工人
1+ 参加
1、面向对象分析(OOA) 面向对象分析(
面向对象分析包括需求分析和 面向对象分析包括需求分析和需求模型 需求分析 化两个部分。其主要作用是明确用户的 两个部分。其主要作用是明确用户的 明确 需求, 需求,并用标准化的面向对象模型来规 范地表达这一需求,最后形成面向对象 范地表达这一需求,最后形成面向对象 表达这一需求 形成 的分析模型。它是系统设计的依据。 的分析模型。它是系统设计的依据。
职工
工资结算明细表
车间 科室
考 勤 表
填制工资 计算表
工资结算单
出纳
总务
扣款单
汇总 工资
分配 工资
工资费用 分配表
财务 系统
工资汇总表
三种模型的关系
☺ 功能模型指明系统应该“做什么” 功能模型指明系统应该“做什么” ☺ 动态模型明确规定什么时候做 ☺ 对象模型定义做事情的实体
2、面向对象设计(OOD) 、面向对象设计( )
确定类&对象的基本方法
对象种类:可感知的物理实体; 对象种类:可感知的物理实体;人或 组织的角色;应该记忆的事件; 组织的角色;应该记忆的事件;对象 之间的相互作用;需要说明的概念。 之间的相互作用;需要说明的概念。 基本方法:注意名词 基本方法: 筛选:消除冗余、无关、笼统、属性、 筛选:消除冗余、无关、笼统、属性、 操作等
设计阶段的主要内容
设计问题域子系统 设计人-机交互子系统 设计人 机交互子系统 设计任务管理子系统 设计数据管理子系统 设计类中的服务 设计关联
3、面向对象编程(OOP) 面向对象编程(
选择一种支持面向对象的程序设计语 的设计结果。 言实现 OOD 的设计结果。选择语言 应考虑的因素: 应考虑的因素: 可重用性
信 息 播 完
〈功能模型〉
功能模型表示变化的系统“功能” 功能模型表示变化的系统“功能” 性质,它指明系统应“做什么”, 性质,它指明系统应“做什么” 因此更直接地反映了用户对目标系 统的需求。 统的需求。功能模型由一组数据流 图组成。 图组成。
工资卡档案 劳资科 (人事)
工资单
计算 工资
发放 工资
类名 属性 方法 类名 属性 方法
类对象
抽象类
表示“关系” 表示“关系”的图形符号
一般 整体
特殊
部分
“一般 特殊”关系 一般-特殊” 一般 特殊
“整体 部分”关系 整体-部分 整体 部分”
“关联”关系 关联” 关联
“关联”关系反映对象之间相互依赖、 关联”关系反映对象之间相互依赖、 关联 相互作用的关系。 相互作用的关系。
面向对象分析的主要内容
识别出问题域中的对象, 分析它 识别出问题域中的对象,并分析它 出问题域中的对象 们之间的相互关系,最终建立起问 们之间的相互关系,最终建立起问 建立 题域的对象模型、 题域的对象模型、动态模型和功能 模型。其中,对象模型是最基本、 模型。其中,对象模型是最基本、 最重要、最核心的。 最重要、最核心的。
将来能否占主导地位 类库 开发环境
4、面向对象测试(OOT) 面向对象测试(
面向对象测试分为四个层次: 面向对象测试分为四个层次:
算法层 类层
主题层 系统层
面向对象软件开发过程
项目计划 需求分析 系统设计 编码设计 系统测试 系统运行 系统维护
软件生命周期 的瀑布模型
用面向对象的思想开发软件系统 需要经历的几个主要阶段
面向对象分析( 面向对象分析(OOA) 面向对象设计(OOD) 面向对象设计( ) 面向对象编程( 面向对象编程(OOP) ) 面向对象测试(OOT) 面向对象测试( )
经理
主持
管理 0,1
部门
生产 1+
项目 1+
项目名 预 算 优先级 1+
产品
产品名 成 本 重 量
对象模型的五个层次
主题层 主题层: 主题层:将复杂的对象模 类&对象层 对象层 结构层 属性层 服务层 型分解成几个不同的概念 范畴 建立对象模型的顺序: 建立对象模型的顺序:
寻找类&对象 寻找类 对象 识别结构 识别主题 服务 定义属性 定义
确定关联的方法
在需求中使用的描述性动 词或动词词组,通常表示 词或动词词组, 关联关系。 关联关系。
确定主题的方法
按照问题域( 按照问题域(而不是功能分解方 法)确定主题,并且尽量使不同 确定主题, 主题之间的对象相互依赖最少。 主题之间的对象相互依赖最少。
确定属性的方法
在需求陈述中用名词词组表示属性, 在需求陈述中用名词词组表示属性,例 如:汽车的颜色、光标的位置。属性的 汽车的颜色、光标的位置。 确定既与问题域有关, 确定既与问题域有关,也与目标系统的 任务有关。 任务有关。应该仅考虑与具体应用直接 相关的属性, 相关的属性,不要考虑那些超出所要解 决的问题范围的属性。 决的问题范围的属性。
OOA 的基本步骤
确定问题域 识别对象和类 识别对象之间的关系 定义属性 定义服务
〈对象模型〉
对象模型是描述系统静态结构的 工具。它用对象模拟客观世界中 工具。它用对象模拟客观世界中 对象 的实体,并将实体之间的关系映 的实体,并将实体之间的关系映 到对象的关系上。 射到对象的关系上。
描述对象模型的图形符号
〈动态模型〉
动态模型表示瞬时的、 动态模型表示瞬时的、行为化的系统 控制”性质, 的“控制”性质,它规定了对象模型 中对象的合法变化序列。 中对象的合法变化序列。通常用状态 图描述,主要内容有:对象的状态、 图描述,主要内容有:对象的状态、 触发状态转换的事件以及对象的行为。 触发状态转换的事件以及对象的行为。
系统设计: 系统设计:确定实现系统的策略和目标系统 的高层结构 对象设计:确定解空间中的类、关联、 对象设计:确定解空间中的类、关联、接口 形式及实现服务的算法
初始事件
状态1 状态 do:行为 :行为1
事件1[条件 事件 条件1] 条件
状态2 状态 do:行为 :行为2
结束事件
挂断电话 拿起听筒
空闲 拨号音 do:响拨号音 : 数字 拨号 超时
挂断电话
超时 do:响蜂鸣音 : 存储的信息 do:播放信息 :
数字
无效号码
忙音 do:响忙音 :
占线
有效号码 接通中 do:试接通 : 已接通 振铃 do:振铃 : 受话人回话 通话 受话人挂断电话 断线
教师 1+
书
教师与属于他的书之间的关联关系
类A
限定词
类B
举例: 举例:
目录
类ABaidu Nhomakorabea
角色
文件名
文件
关联
类B
角色
举例: 举例:
公司 名字) (名字)
雇主
个人 名字) (名字) 工作 职务) (职务)
雇员
员工
姓名 地址 身份证号码 工资 1+ 为之工作
公司
名称 主要产品 地址 雇佣 解雇
职务
部门名 工人
1+ 参加
1、面向对象分析(OOA) 面向对象分析(
面向对象分析包括需求分析和 面向对象分析包括需求分析和需求模型 需求分析 化两个部分。其主要作用是明确用户的 两个部分。其主要作用是明确用户的 明确 需求, 需求,并用标准化的面向对象模型来规 范地表达这一需求,最后形成面向对象 范地表达这一需求,最后形成面向对象 表达这一需求 形成 的分析模型。它是系统设计的依据。 的分析模型。它是系统设计的依据。
职工
工资结算明细表
车间 科室
考 勤 表
填制工资 计算表
工资结算单
出纳
总务
扣款单
汇总 工资
分配 工资
工资费用 分配表
财务 系统
工资汇总表
三种模型的关系
☺ 功能模型指明系统应该“做什么” 功能模型指明系统应该“做什么” ☺ 动态模型明确规定什么时候做 ☺ 对象模型定义做事情的实体
2、面向对象设计(OOD) 、面向对象设计( )
确定类&对象的基本方法
对象种类:可感知的物理实体; 对象种类:可感知的物理实体;人或 组织的角色;应该记忆的事件; 组织的角色;应该记忆的事件;对象 之间的相互作用;需要说明的概念。 之间的相互作用;需要说明的概念。 基本方法:注意名词 基本方法: 筛选:消除冗余、无关、笼统、属性、 筛选:消除冗余、无关、笼统、属性、 操作等
设计阶段的主要内容
设计问题域子系统 设计人-机交互子系统 设计人 机交互子系统 设计任务管理子系统 设计数据管理子系统 设计类中的服务 设计关联
3、面向对象编程(OOP) 面向对象编程(
选择一种支持面向对象的程序设计语 的设计结果。 言实现 OOD 的设计结果。选择语言 应考虑的因素: 应考虑的因素: 可重用性
信 息 播 完
〈功能模型〉
功能模型表示变化的系统“功能” 功能模型表示变化的系统“功能” 性质,它指明系统应“做什么”, 性质,它指明系统应“做什么” 因此更直接地反映了用户对目标系 统的需求。 统的需求。功能模型由一组数据流 图组成。 图组成。
工资卡档案 劳资科 (人事)
工资单
计算 工资
发放 工资
类名 属性 方法 类名 属性 方法
类对象
抽象类
表示“关系” 表示“关系”的图形符号
一般 整体
特殊
部分
“一般 特殊”关系 一般-特殊” 一般 特殊
“整体 部分”关系 整体-部分 整体 部分”
“关联”关系 关联” 关联
“关联”关系反映对象之间相互依赖、 关联”关系反映对象之间相互依赖、 关联 相互作用的关系。 相互作用的关系。
面向对象分析的主要内容
识别出问题域中的对象, 分析它 识别出问题域中的对象,并分析它 出问题域中的对象 们之间的相互关系,最终建立起问 们之间的相互关系,最终建立起问 建立 题域的对象模型、 题域的对象模型、动态模型和功能 模型。其中,对象模型是最基本、 模型。其中,对象模型是最基本、 最重要、最核心的。 最重要、最核心的。
将来能否占主导地位 类库 开发环境
4、面向对象测试(OOT) 面向对象测试(
面向对象测试分为四个层次: 面向对象测试分为四个层次:
算法层 类层
主题层 系统层
面向对象软件开发过程
项目计划 需求分析 系统设计 编码设计 系统测试 系统运行 系统维护
软件生命周期 的瀑布模型
用面向对象的思想开发软件系统 需要经历的几个主要阶段
面向对象分析( 面向对象分析(OOA) 面向对象设计(OOD) 面向对象设计( ) 面向对象编程( 面向对象编程(OOP) ) 面向对象测试(OOT) 面向对象测试( )
经理
主持
管理 0,1
部门
生产 1+
项目 1+
项目名 预 算 优先级 1+
产品
产品名 成 本 重 量
对象模型的五个层次
主题层 主题层: 主题层:将复杂的对象模 类&对象层 对象层 结构层 属性层 服务层 型分解成几个不同的概念 范畴 建立对象模型的顺序: 建立对象模型的顺序:
寻找类&对象 寻找类 对象 识别结构 识别主题 服务 定义属性 定义
确定关联的方法
在需求中使用的描述性动 词或动词词组,通常表示 词或动词词组, 关联关系。 关联关系。
确定主题的方法
按照问题域( 按照问题域(而不是功能分解方 法)确定主题,并且尽量使不同 确定主题, 主题之间的对象相互依赖最少。 主题之间的对象相互依赖最少。
确定属性的方法
在需求陈述中用名词词组表示属性, 在需求陈述中用名词词组表示属性,例 如:汽车的颜色、光标的位置。属性的 汽车的颜色、光标的位置。 确定既与问题域有关, 确定既与问题域有关,也与目标系统的 任务有关。 任务有关。应该仅考虑与具体应用直接 相关的属性, 相关的属性,不要考虑那些超出所要解 决的问题范围的属性。 决的问题范围的属性。
OOA 的基本步骤
确定问题域 识别对象和类 识别对象之间的关系 定义属性 定义服务
〈对象模型〉
对象模型是描述系统静态结构的 工具。它用对象模拟客观世界中 工具。它用对象模拟客观世界中 对象 的实体,并将实体之间的关系映 的实体,并将实体之间的关系映 到对象的关系上。 射到对象的关系上。
描述对象模型的图形符号
〈动态模型〉
动态模型表示瞬时的、 动态模型表示瞬时的、行为化的系统 控制”性质, 的“控制”性质,它规定了对象模型 中对象的合法变化序列。 中对象的合法变化序列。通常用状态 图描述,主要内容有:对象的状态、 图描述,主要内容有:对象的状态、 触发状态转换的事件以及对象的行为。 触发状态转换的事件以及对象的行为。