教学目的:了解面向对象设计的概念和方法教学重点:理解面...

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软 件 工 程
10.1.4 构造交互图
定义:协作图显示的信息与顺序图相同。它们之间的区别 主要表现在协作图集中在活动着的对象上,它表现的是相 互协作的对象之间的消息传递,不参照时间;而顺序图侧 重于在某种特定的情形下对象之间消息传递的时序性。
下面的协作图对应于上面的顺序图。协作图通过在消息上 加序号表示消息传递的次序。
精化类之间的关系
在分析阶段形成 的类图的基础上进行精化类间关系。 (1) 根据这些连接的语义强度,将它们精确判定为 UML 的依赖、 关联、聚合或构成关系 (2) 确定连接的方向及参与连接的类的对象之间的数量对应关系
(3) 根据软件重用的要求及软件结构简洁化、清晰化的要求,优 化类之间的关系
对象间消息传递机制:
软 件 工 程
10.1.5 精化类图
考生成绩类图
软 件 工 程
10.2
设计技术支撑方案
技术支撑方案应该为多个用例的软件实现提 供技术服务,所以,它应该成为整个目标软件系 统中全局性的公共技术平台。 • 数据持久存储服务 • 并行与同步控制服务 • 技术支撑方案与用例实现方案的融合
软 件 工 程
软 件 工 程
第10章 面向对象的设计方法
教学目的:了解面向对象设计的概念和方法 教学重点:理解面向对象的设计的基本原理,掌 握面向对象的设计方法。 教学难点:对用例图的理解 教 具:多媒体教室、电子教案 作 业:
软 件 工 程
第10章 面向对象的设计方法
本章采用基于 UML 的面向对象设计方法将分析模型转换为设 计模型。如第六章所述,面向对象的分析模型主要由顶层架构 图、用例与用例图、领域概念模型构成;设计模型则包含以包 图表示的软件体系结构图、以交互图表示的用例实现图、完整 精确的类图、针对复杂对象的状态图和用以描述流程化处理过 程的活动图等。为了完成这些转换设计人员必须处理好下列问 题: ( 1 ) 针对分析模型中的用例,设计实现方案,实现方案 用UML交互 图表示 (2)设计技术支撑设施 (3)设计用户界面 (4)针对分析模型中的领域概念模型以及第(2)、(3) 两步引用的的新类,完整、精确地确定每个类的属性和操作, 并完整地标示类之间的关系
(1) 引用全局对象
(3) 引用局部对象
(2) 通过参数传递
(4)通过类的成员变量
精化类之间的关系时,往往需要考虑到软件重用的需要而对类进行 调整
软 件 工 程
10.4.3
精化类之间的关系
类图描述系统的静态结构,类图的节点表示系统中的类及其属性 和操作,类图的边表示类之间的联系,包括继承、关联、依赖、 聚合等。类图中每个类用方框表示,分成三部分,第一部分为类 名,第二部分为类包含的属性,第三部分为类的操作,即类提供 的功能。 分析人员可以用类图显示系统的细节,开发人员可以用类图来开 发类。类图可以显示用例图中类的相互关系,也可显示整个系统 或子系统。
(3)do活动。当对象位于该状态时,执行相应活动,对象的状态 不变
(4)on-event。当对象位于该状态并且接收到某一事件后,执行 相应的事件响应活动
软 件 工 程
10.4.1
状态图
在状态图的状态转移边上可以附加以下信息:事件名 (事件参数表) [ 条件表达式 ]/ 动作 ^ 事件目标 . 事件 名(事件参数表)。第一个事件是引发对象状态迁移的 触发事件;条件表达式表示此转移边所代表的状态迁移 的发生条件;动作表示对象在进行状态迁移时同时还将 执行的处理功能;最后一个事件表示对象在进行状态迁 移时还可以向其它对象发送的事件。所有上述语法成分 都是可选项,并不是必须的。如果状态转移边上没有触 发事件,则表明对象在到达该边的源节点时,内部活动 执行完毕后自动触发状态迁移,但是否真正发生迁移还 取决于条件表达式的真假。如果条件表达式不存在,则 认为迁移条件恒成立。
10.4.6
设计活动图
活动图适合表示用例中的事件流和过程,也可以用来表示复 杂的酸法以及并发处理过程。
返回目录
在考试系统中,考生类和成绩类之间的关联关系如下图所示:
软 件 工 程
10.4.3
精化类之间的关系
1、提取关联类
2、提取公共父类
3、将多重继承化为单重继承
人员
软 人员 件 工 程
店主
店员
角色
店主兼店员
图11-2-4 多重继承
店主
店员
图11-2-5 用部分-整体的关系 表示多重继承
软 件 工 程
人员
软 件 工 程
10.1.4 构造交互图
在标识了边界类、实体类和控制类之后,接着把分析模型中的用 例描述转化成UML的交互图。
定义:顺序图描述交互的对象在特定的时间周期内的消息传递情 况,同时还描述了对象之间相互作用,并详细地说明了类、接口, 以及它们可能使用的操作行为。 作用:顺序图一般用来描述用例的实现过程。 布局规则:框图顶部显示了涉及的角色和对象,并表明对象所属类的对象一
(2) 在层次结构中,位于较低层次的通用包不应当依赖于 较高层次中的专用包
(3) 在层次结构中,较高层次的包依赖于较低层次的包, 但此种以来应尽量在相邻的层次间发生 (4) 如果针对某些子系统专门划分了接口包和实现包,那 么其他与该系统相关的包只能依赖于接口包,不能依赖于实 现包。
软 件 工 程
10.4.3
软 件 工 程
10.4.1
状态图
状态图用来描述一个特定类的对象的所有可能状态以及因事件而 引起的状态转移。状态图的节点包含状态名和活动两部分内容。 活动是可选的,可分为如下四种: (1)entry活动。一旦对象进入该状态,相应的活动即被触发
(2)exit活动。一旦对象离开该状态,相应的活动被触发执行
软 件 工 程
10.4.1
状态图
状态图描述类的对象的状态迁移与响应动作。 下图显示了考生对象的各种状态方式及其转换。该图 表明考生启动程序后进入“登录”状态,当输入学号 后,系统校验学号是否有效和开考指令是否下达,若 学号有效且开考指令已下达,进入“答题”状态,否 则保持登录状态。考生在进入“答题”状态后系统启 动计时器,开始计时;考生答题完毕,进入“答题完 毕”状态,交卷后考试结束。若考试时间用完,系统 自动结束考试。
10.3 设计用户界面
需求分析和软件设计阶段都必须考虑人机交互问题。在需求分 析阶段要确定人机交互的属性和外部服务,而在设计阶段要给 出有关人机交互的所有系统成份,包括用户如何操作系统、系 统如何响应命令和系统显示信息的报表格式等。 用户界面设计策略与步骤如下: (1) 熟悉用户并对用户分类 (2)按用户类别分析用户的工作流程和习惯
(3)设计命令系统并进行优化
(4)设计用户界面的各种细节 (5)增加用户界面专用的类与对象 (6)利用快速原型法改进界面设计
软 件 工 程
10.4
精化设计模型
对设计模型精化需要考虑以下任务:
(1)以顶层架构图为基础,精化目标软件系统的体系结构 (2)精化类之间的关系
(3)精化类的属性和操作
(4)针对具有明显状态转换特征的类,设计状态图 (5)针对比较复杂的类图方法,设计活动图
软 件 工 程
10.4.1
状态图
登录
do / Input invigilator‘ password
[学号有效且开考指令已下达]
答题
entry / StartExam
[学号无效或开考指令未下达]
[timeout]
[Success]
[Success]
答题完毕
do / Submit exam Paper
软 件 工 程
10.1.5 精化类图
类图描述系统的静态结构,类图的节点表示系统中的类及 其属性和操作,类图的边表示类之间的联系,包括继承、 关联、依赖、聚合等。在考试系统中,考生类和成绩类之 间的关联关系。 图元表示:类图中每个类用方框表示,分成三部分,第一 部分为类名,第二部分为类包含的属性,第三部分为类的 操作,即类提供的功能。 分析人员可以用类图显示系统的细节,开发人员可以用类 图来开发类。类图可以显示用例图中类的相互关系,也可 显示整个系统或子系统。
软 件 工 程
10.1
设计用例实现方案
10.1.2 协作图
协作图用于描述相互合作的对象间的交互关系和连接关系。
在协作图中,对象可以在二维平面中自由占位。 区别:顺序图强调消息交互的时间序,而协作图强调交互对 象间的静态链接关系。
软 件 工 程
10.1.3
提取边界类、实体类和控制类
边界类 --- 用于描述目标系统与外部环境之间的交互,并负责 实现如下功能: (1)界面控制 (2)外部接口 (3)环境隔离 <<boundary>>作为特殊标识 实体类----表示目标软件系统中具有持久意义的信息项及其操 作。<<entity>>作为特殊标识 控制类 --- 作为完成用例任务的责任承当者,协调、控制其他 类共同完成用例规定的功能或行为。 <<control>> 作为特殊 标识
考生类的状态图
软 件 工 程
10.4.2 精化体系结构
精化体系结构的主要目的是寻找一种理想的包划分方案,使得 每个包中直接包含的类的数量规模适中,包的边界清晰、自然, 并且包间的偶合度较低。在包图中耦合度主要取决于依赖关系, 而包间的依赖关系又取决于分属两个包的类之间的关系。下面 是类之间耦合程度从高到低的判断方法:
软 件 工 程
10.1.4 构造交互图
下图显示了考场管理的实现过程。监考人员在登录窗口 w_login 中输入用户口令,登录窗口校验口令,如果口令正 确,系统打开监考主控窗口 w_server_main ,否则报错;登 录成功后,监考人员首先发放试卷,然后发开考指令,此时 系统进入考场监控状态,考试结束监考人员发结束考试指令, 最后发评分指令,完成监考任务。
(1)继承关系
(2)构成关系 (3)聚合关系 (4)关联关系 (5) 依赖关系
(6)两个类的对象受同一执行者变化的影响
软 件 工 程
10.4.2 精化体系结构
弱化包间耦合的方法: (1)分拆 (2)调整类的摆放位置
当一个系统有几十个或上百个类时,理解和修改这 个系统就变得很困难了,总是希望将复杂系统进行 分解。解决这个问题的办法就是将许多类组合成一 个更高层次的单位,这些高内聚、低耦合的类的集 合称为包。将这些包关联起来就形成了包图
软 件 工 程
10.4.2 精化体系结构
考场管理 考务管理 数据库接口
组卷
试题
SQL Server
考试管理
考试系统包图
源自文库
软 件 工 程
10.4.2 精化体系结构
弱化包间依赖关系既无必要,也不合理,但应尽量遵循以下 原则: ( 1 ) 避免包间的循环依赖关系,即排除包 P1 依赖 P2 , P2 又依赖于P1的情形
店主
店主兼店员
店员
图11-2-6 多重继承平板化
软 件 工 程
10.4.4 精化类的属性和操作
属性和操作范围有以下三种 (1) PUBLIC。对软件系统中的所有类都可见 (2) PROTECT。仅对本类及其子类可见
(3) PRIVATE。仅对本类可见
软 件 工 程
10.4.5 设计状态图
状态图适合于表示跨越多个用例的单个对象的行为。
软 件 工 程
10.1
设计用例实现方案
UML的交互图(顺序图、协作图)适于用例实现方案的表示。 设计方法包含三步: (1)提取边界类、实体类和控制类
(2)构造交互图
(3)根据交互图精化类图
软 件 工 程
10.1.1 顺序图
顺序图用来描述对象之间动态的交互关系,着重表现 对象间消息传递的时间顺序。 在顺序图中,参与交互的对象位于顶端的水平轴上, 垂直轴表示时间,时间推移的方向是自上而下。对象下方 的垂直虚线表示对象的生命线。对象生命的终结用叉号表 示;附在对象生命线上的矩形框表示对象在此期间内活跃; 对象之间的通信表现为对象生命线之间的消息传递。 UML的消息有四种类型: (1)简单消息 (2)同步消息 (3)异步消息 (4)返回消息
般以“对象名:类名”的方式标识。对象的下方用垂直虚线表示对象的生命线, 即对象在某段时间内存在。附着在生命线上的矩形框表示对象在此段时间内活 跃。对象间的通信表现为对象的生命线之间的消息传递。在消息边上需附加消 息名和消息参数。有时也以序号强调消息的时序。消息的源对象和目标对象可 以相同。可以在消息名前面的方括号中书写条件表达式,表明仅当条件成立时 该消息才发送。
相关文档
最新文档