文档详情

面向对象的设计方法.ppt

发布:2025-03-16约7.56千字共61页下载文档
文本预览下载声明

10.3设计用户界面*安徽工程科技学院计算机系*需求分析和软件设计阶段都必须考虑人机交互问题。需求分析阶段要确定人机交互的属性和外部服务设计阶段要给出有关人机交互的所有系统成份,包括:用户如何操作系统、系统如何响应命令、系统显示信息的报表格式等。第十章面向对象的设计方法10.4精化设计模型*安徽工程科技学院计算机系*经过前面的分析和设计步骤,设计模型已相当丰富,包含了较完整的静态结构模型(顶层架构图、类图)和动态行为模型(交互图)。现在有必要对这些模型再进行分析、优化,以生成高质量的设计模型,为后续的实现阶段奠定坚实基础。第十章面向对象的设计方法精化设计模型*安徽工程科技学院计算机系*设计模型精化的任务(1)以顶层架构图为基础,精化目标软件系统的体系结构。(2)精化类之间的关系。(3)精化类的属性和操作。(4)针对具有明显状态转换特征的类,设计状态图。(5)针对比较复杂的类方法,设计活动图。本节首先介绍UML状态图,然后依次介绍完成上述任务的方法。10.4精化设计模型10.4.1状态图*安徽工程科技学院计算机系*状态图用来描述一个特定类的对象的所有可能状态以及因事件而引起的状态转移。状态图的结点包含状态名和活动(activity)两部分内容。活动是可选的,它们又分为四种:(1)entry活动:一旦对象进入该状态,相应的活动被触发执行。(2)exit活动:一旦对象离开该状态,相应的活动被触发执行。(3)do活动:当对象位于该状态时,执行相应的活动,对象的状态不变。(4)on-event活动:当对象位于该状态并且接收到某一事件后,执行相应的事件响应活动。10.4精化设计模型状态图*安徽工程科技学院计算机系*在状态图的状态转移边上可以附加以下信息:事件名(事件参数表)[条件表达式]/动作^事件目标.事件名(事件参数表)。第一个事件是引发对象状态变迁的触发事件;条件表达式表示此转移边所代表的状态迁移的发生条件;动作表示对象在进行状态迁移的同时还将执行的处理功能;最后一个事件表示对象在进行状态迁移时还可以向其他对象发送事件。所有上述语法成分都是可选项。10.4精化设计模型状态图*安徽工程科技学院计算机系*一张状态图可以包含一个初态,一到多个终态。基本的UML状态图见图6.5。UML的状态图是一种结构化的状态图,即,其状态可以进一步细分为多个子状态,子状态之间可以拥有“and”、“or”两种关系。对象处于复合状态s1ands2当且仅当对象既处于子状态s1,又处于子状态s2;对象处于复合状态s1ors2当且仅当对象既处于子状态s1或者处于子状态s2。4精化设计模型状态图*安徽工程科技学院计算机系*带有复合状态的UML状态图见图10.9。图中,“active”状态是由“process”和“auth”两个子状态经过and合成构成的复合状态在“active”的任一子状态上,如果发生了“cancel”事件,对象将进入“Cancelled”状态。在“Authorizing”状态下,如果权限验证失败,则立即进入“Rejected”状态。在对象到达“active”状态的两个and子状态的终态“Dispatching”和“Authorized”并执行完这些状态中的活动(图10.9中未标出)之后,对象进入“Delivered”状态。10.4精化设计模型图10.9带复合状态的UML状态图*安徽工程科技学院计算机系*4精化设计模型10.4.2精化体系结构*安徽工程科技学院计算机系*精化体系结构的目的是,寻找一种包的划分方案,使得每个包直接包含的类的数量适中,包的边界清晰、自然,并且包间的耦合度较低。在包图中,包间耦合度取决于包间依赖关系,而依赖关系又取决于分属于两个包的类之间的关系。类之间的耦合程度(从高到低)排列:(1)继承关系。(2)构成关系。(3)聚合关系。(4)关联关系。(5)依赖关系。(6)两个类的对象受同一执行者变化的影响。10.4精化设计模型精化体系结构*安徽工程科技学院计算机系*在分析过程中,用包图表示了目标软件系统的顶层架构。随着分析和设计不断深入,原有包图中的包可能包含了过多的类,此时需要对其进行分拆。按照软件工程“强内聚、松耦合”的原则,这种分拆应该具有某种自然划分的性质,并且尽可能降低划分以后的子包之间的耦合度。如果拟将包P拆分成子包P1和P2,但包P中的类C与包P1和包P2中的类都存在相当密切的联

显示全部
相似文档