1、 软 件 工 程教学目的:了解面向对象设计的概念和方法教学重点:理解面向对象的设计的基本原理,掌握面向对象的设计方法。教学难点:对 用例图 的理解 教 具:多媒体教室、电子教案作 业:第 10章 面向对象的设计方法软 件 工 程第 10章 面向对象的设计方法本章采用基于 UML的面向对象设计方法将分析模型转换为设计模型。如第六章所述, 面向对象的分析模型主要由顶层架构图、用例与用例图、领域概念模型构成;设计模型则包含以包图表示的软件体系结构图、以交互图表示的用例实现图、完整精确的类图、针对复杂对象的状态图和用以描述流程化处理过程的活动图等 。为了完成这些转换设计人员必须处理好下列问题:( 1)
2、 针对分析模型中的用例,设计实现方案,实现方案用 UML交互 图表示( 2)设计技术支撑设施( 3)设计用户界面( 4)针对分析模型中的领域概念模型以及第( 2)、( 3)两步引用的的新类,完整、精确地确定每个类的属性和操作,并完整地标示类之间的关系软 件 工 程10.1 设计用例实现方案UML的交互图(顺序图、协作图)适于用例实现方案的表示。设计方法包含三步:( 1)提取边界类、实体类和控制类( 2)构造交互图( 3)根据交互图精化类图软 件 工 程10.1.1 顺序图顺序图 用来描述对象之间动态的交互关系,着重表现对象间消息传递的时间顺序。在顺序图中,参与交互的对象位于顶端的水平轴上,垂直
3、轴表示时间,时间推移的方向是自上而下。对象下方的垂直虚线表示对象的生命线。对象生命的终结用叉号表示;附在对象生命线上的矩形框表示对象在此期间内活跃;对象之间的通信表现为对象生命线之间的消息传递。UML的消息有四种类型: ( 1)简单消息( 2)同步消息 ( 3)异步消息( 4)返回消息软 件 工 程10.1 设计用例实现方案10.1.2 协作图协作图 用于描述相互合作的对象间的交互关系和连接关系。在协作图中,对象可以在二维平面中自由占位。区别:顺序图强调消息交互的时间序,而协作图强调交互对象间的静态链接关系。软 件 工 程10.1.3 提取边界类、实体类和控制类 边界类 -用于描述目标系统与外
4、部环境之间的交互,并负责实现如下功能:( 1)界面控制( 2)外部接口( 3)环境隔离作为特殊标识实体类 -表示目标软件系统中具有持久意义的信息项及其操作。 作为特殊标识控制类 -作为完成用例任务的责任承当者,协调、控制其他类共同完成用例规定的功能或行为。 作为特殊标识软 件 工 程10.1.4 构造交互图在标识了边界类、实体类和控制类之后,接着把分析模型中的用例描述转化成 UML的交互图。定义: 顺序图描述交互的对象在特定的时间周期内的消息传递情况,同时还描述了对象之间相互作用,并详细地说明了类、接口,以及它们可能使用的操作行为。作用: 顺序图一般用来描述用例的实现过程。布局规则: 框图顶部
5、 显示了涉及的角色和对象,并表明对象所属类的对象一般以 “ 对象名:类名 ” 的方式标识。 对象的下方 用垂直虚线表示对象的生命线,即对象在某段时间内存在。 附着在生命线上的矩形框 表示对象在此段时间内活跃。 对象间的通信表现为对象的生命线之间的消息传递 。在消息边上需附加消息名和消息参数。有时也以序号强调消息的时序。消息的源对象和目标对象可以相同。可以在消息名前面的方括号中书写条件表达式,表明仅当条件成立时该消息才发送。软 件 工 程下图显示了考场管理的实现过程。 监考人员 在登录窗口w_login中输入用户口令,登录窗口校验口令,如果口令正确,系统打开监考主控窗口 w_server_mai
6、n, 否则报错;登录成功后,监考人员首先发放试卷,然后发开考指令,此时系统进入考场监控状态,考试结束监考人员发结束考试指令,最后发评分指令,完成监考任务。10.1.4 构造交互图软 件 工 程10.1.4 构造交互图定义:协作图 显示的信息与顺序图相同。它们之间的区别主要表现在协作图集中在活动着的对象上,它表现的是相互协作的对象之间的消息传递,不参照时间;而顺序图侧重于在某种特定的情形下对象之间消息传递的时序性。下面的协作图对应于上面的顺序图。协作图通过在消息上加序号表示消息传递的次序。软 件 工 程10.1.5 精化类图 类图 描述系统的静态结构, 类图的节点 表示系统中的类及其属性和操作, 类图的边 表示类之间的联系,包括继承、关联、依赖、聚合等。在考试系统中,考生类和成绩类之间的关联关系。图元表示: 类图中每个类用方框表示,分成三部分,第一部分为类名,第二部分为类包含的属性,第三部分为类的操作,即类提供的功能。分析人员可以用类图显示系统的细节,开发人员可以用类图来开发类。类图可以显示用例图中类的相互关系,也可显示整个系统或子系统。