资源预览内容
第1页 / 共50页
第2页 / 共50页
第3页 / 共50页
第4页 / 共50页
第5页 / 共50页
第6页 / 共50页
第7页 / 共50页
第8页 / 共50页
第9页 / 共50页
第10页 / 共50页
亲,该文档总共50页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第十一章 面向对象的分析,面向对象的系统分析与设计首先要从建模开始。建立模型帮助人们思考问题、定义术语,从全局上把握系统的全貌及系统各组成部分的关系,防止过早地陷入某些问题的细节。 本章根据循序渐进的原则介绍两种面向对象建模方法:OMT(Object Modeling Technique)方法与统一建模语言UML(Unified Modeling Language)。,11.1 面向对象建模,所谓模型,就是为了理解事物而做出的一种抽象,是对事物无歧义的书面描述。通常模型由两个方面组成:一组图形符号和组成这些图形符号的规则,利用它们对每个类的规格说明和操作细化,还必须对形成应用结构的类之间的相互作用加以表示。,(2)对象之间的消息传递构成静态结构视点。,11.1 面向对象建模,建立模型的目的是为了帮助我们思考问题、定义术语。通常把分析时收集的信息构造在三类模型中,即对象模型、功能模型和动态模型。,一个典型的软件系统组合了上述三方面的内容: 它使用数据结构(对象模型), 执行操作(动态模型), 并且完成数据值的变化(功能模型)。,(2)对象之间的消息传递构成静态结构视点。,11.2 面向对象建模三模型法求分析(对象模型),对象模型是三个模型中关键的模型,它的作用是描述系统的静态结构,包括构成系统的类和 对象,它们的属性和操作,以及它们之间的关系。,面向对象的方法不是围绕功能 来构造系统。对象模型为建立动态 模型和功能模型,提供了实质性的 框架。事实上,这个模型可以看作 扩充的实体关系模型(E-R)。,11.2 面向对象建模三模型法求分析(对象模型),对象模型是三个模型中关键的模型,它的作用是描述系统的静态结构,包括构成系统的类和 对象,它们的属性和操作,以及它们之间的关系。,面向对象的方法不是围绕功能 来构造系统。对象模型为建立动态 模型和功能模型,提供了实质性的 框架。事实上,这个模型可以看作 扩充的实体关系模型(E-R)。,11.2 面向对象建模三模型法求分析(对象模型),11.2.1 表示类&对象的图形符号,类&对象”是一个专用术语,它的含义是“一个类及属于该类的对象”。图11.1给出了在对象模型中表示类和对象的图形符号。图11.1中左图表示类&对象的图形符号,图11.1中右图表示类的符号。类符号是类&对象符号的变种,通常代表没有实例的抽象类。,11.1 表示符号,11.2 面向对象建模三模型法求分析(对象模型),11.2.1 表示类&对象的图形符号,类符号是一个矩形框,由两条横线将矩形框分为三部分,最上面是类的名字,中间部分列出该类提供的服务(又称为方法)。类&对象符号外面再加一个虚线框组成,虚线框代表属于该类的对象。,11.1 表示符号,11.2 面向对象建模三模型法求分析(对象模型),11.2.2 表示结构的图形符号,1归纳关系 一般化关系的形成,可以通过检查一组概念和识别这组概念中的共同元素来实现。小汽车、卡车和公共汽车可以蕴含在更一般的汽车概念中。这个较一般化的抽象还可以帮助定义其他比较特殊的抽象,如赛车、面包车和牵引车。,11.2 面向对象建模三模型法求分析(对象模型),图11.2(a) 表示归纳关系的图形符号 (b) 表示人类与具体员工、学生类关系的图形,11.2 面向对象建模三模型法求分析(对象模型),2组合关系 就是整体与部分的关系。这个关系支持从几个较小的和较简单的元素来开发一个对象。它大略相应于一个记录中成分的声明。例如,一个航班可以被认为有6个属性:飞机编号、机组编号、离开和到达地点、起飞和降落时间。因此,航班类有一个组合关系,它使用了表示飞机、人员、空间的类,并增加了时间窗口。,11.2 面向对象建模三模型法求分析(对象模型),图11.3(a) 表示组合关系的图形符号 (b) 组合关系的计算机系统实例,11.2 面向对象建模三模型法求分析(对象模型),图11.3(a)是表示组合关系的图形符号。图中上部是一个整体对象,下部是组成该整体对象的若干个部分对象,它们之间用直线及三角形标记连接。 三角形标记表明组合关系的方向:从三角形顶点引出的线指向整体对象。通常,把整体对象画在图的上部,把部分对象放在下部。注意直线端点的位置,这个端点位置表明,这是对象(而不是类之间的关系)。 结构线每端标出的数值(或值的范围),表示在此结构中该端对象的数量(当值为1时无须标出)。,11.2 面向对象建模三模型法求分析(对象模型),当组合关系有多个层次时,可以用一棵简单的聚集树来表示它。图11.4是描绘一本教材结构的聚集树,11.2 面向对象建模三模型法求分析(对象模型),3关联 关联关系指定一个抽象作为其他抽象实例的包容(container)。在规则中,对象与对象之间的关系叫做关联。关联代表一组存在于两个或多个对象之间的、具有相同结构和含义的具体连接。关联反映对象之间相互依赖与相互作用的关系。,关联和组合之间的差别在于组合实体的意图。 组合指定一组对象中的某些元素作为一个对象的组成, 而关联是指群集的相互有关联的对象群。这个群集中每个对象分量都是独立地用在系统的其余地方。,11.2 面向对象建模三模型法求分析(对象模型),关联关系,图1教师与属于他的书之间关联关系 图2 消息连接的表示符号,11.2 面向对象建模三模型法求分析(对象模型),关联关系,(1)符号 关联关系用两个对象之间的连线表示。连线端点所在的位置表明,这是对象(而不是类)之间的映射关系。 (2)阶 阶就是参与关联的对象的个数。与组合表示方法类似(组合关系实际是一种特殊的关联关系),阶数用标在连线端点的单个数字或数值区间表示。例如,“1+”(一个或多个)。 (3)消息连接 消息连接反映了一个对象对另一个对象的处理依赖性。这种关系表明,一个对象为了完成自己的任务,需要借助另一个对象的服务。消息连接的符号,是从消息发送者指向消息接受者的箭头线。,11.2 面向对象建模三模型法求分析(对象模型),实例:一家公司的对象模型,11.2 面向对象建模三模型法求分析(对象模型),实例:一家公司的对象模型,上图是一家公司的对象模型,它表明,该公司有许多部门,部门名唯一地确定一个部门,每个部门有一名经理主管,也有的经理不管理任何一个部门;每个部门生产多种产品,每种产品仅由一个部门生产。该公司有许多名员工为之工作,员工又进一步划分为经理与工人两类。每名工人可参加多个工程项目,每个项目需要多名工人;每位经理可以主持多个项目,每个项目仅有一人主持。这个对象模型还描述了某些类对象所具有的属性,以及公司类对象提供的服务。,11.3 面向对象建模三模型需求分析(动态模型),要对一个系统了解得比较清楚,首先应当考察它的静态结构,即在某一时刻它的对象和这些对象之间相互关系的结构;然后应当考察在任何时刻对象及其关系的改变。 系统的这些涉及时序和改变的状况,用动态模型来描述。动态模型着重于系统的控制逻辑。它包括两个图,一是状态图,另一是事件追踪图。,11.3 面向对象建模三模型需求分析(动态模型),11.3.1 术语 1事件 事件是某个特定时刻所发生的事情,它是对引起对象从一种状态转换到另一种状态的现实世界中的抽象。事件没有持续时间,是瞬间完成的。 简而言之,事件就是引起状态转换的控制信息。,11.3 面向对象建模三模型需求分析(动态模型),11.3.1 术语 2状态 状态就是对象在其生命周期中的某个特定阶段所处的某种情形,它是对影响对象行为的属性值的一个抽象。状态有持续性,它占有一段时间间隔。 3行为 行为是指对象达到某种状态时所做的一系列处理操作。这些操作是需要耗费时间的。,11.3 面向对象建模三模型需求分析(动态模型),11.3.2 表示方法 状态图是一个状态和事件的网络,侧重于描述每一类对象的动态行为。在状态图中,状态是对某一时刻中属性特征的概括。 而状态迁移则表示这一类对象在何时对系统内外发生的哪些事件做出何种响应。 操作是一个伴随状态迁移的瞬时发生的行为,与触发事件一起表示在有关的状态迁移之上。活动则是发生在某个状态中的行为。,11.3 面向对象建模三模型需求分析(动态模型),在图11.8中,图中的椭圆表示状态,状态可以标上状态名也可以不给状态起名字,行为用关键字do(后接冒号)标明。 从一个状态到另一个状态的转换用箭头线表示,线上表明事件名。必要时在事件名后面加一个方括号,括号内写上状态转换的条件。,11.3 面向对象建模三模型需求分析(动态模型),下图是人们非常熟悉的电话的状态图。图中表明: 没有人打电话时电话处于闲置状态; 有人拿起听筒则进入拨号音状态,到达这个状态后,电话的行为是响起拨号音; 这时如果拿起听筒的人改变主意不想打了,它把听筒放下(挂断),电话重又回到闲置状态; 如果拿起听筒很长时间不拨号(超时),则进入超时状态; 如果拿起听筒,拨入有效号码,则电话进入试接通状态 ,11.3 面向对象建模三模型需求分析(动态模型),2、标识消息传递,11.4 面向对象建模三模型需求分析(功能模型),功能模型着重于系统内部数据的传送和处理。功能模型定义“做什么”,通常,功能模型由一组数据流图组成。功能模型表明整个的数据流动情况,从外部输入,通过操作和内部存储,直到外部输出。功能模型还包括了对象模型内部数据间的限制。,功能模型中所有的数据流图往往形成一个层次结构。在这个层次结构中,一个数据流图中的过程可以由下一层的数据流图做进一步的说明。般来讲,高层的过程相应于作用在组合对象上的操作,而低层的过程则代表作用于一个简单对象上的操作。,11.5 UML概述,(2)对象之间的消息传递构成静态结构视点。,本章根据循序渐进的原则介绍统一建模语言UML(Unified Modeling Language)。 UML适用于各种软件开发方法、软件生命周期的各个阶段、各种应用领域以及各种开发工具,UML是一种总结了以往建模技术的经验并吸收当今优秀成果的标准建模方法。 UML包括概念的语义、表示法和说明,提供了静态、动态、系统环境及组织结构的模型。它是一个通用的可视化建模语言,用于对软件进行描述、可视化处理、构造和建立软件系统制品的文档。UML记录了对必须构造的系统的决定和理解,可用于对系统的理解、设计、浏览、配置、维护和信息控制。,11.5 UML概述,(2)对象之间的消息传递构成静态结构视点。,11.5.1 UML的主要内容 UML主要元素包括:UML的基本构造块、支配这些构造块如何放在一起的规则和一些运用于整个UML的公共机制。 1 1.UML的主要概念和事物、关系 UML的主要概念由图11.10表示:,11.5 UML概述,(2)对象之间的消息传递构成静态结构视点。,11.5 UML概述,(2)对象之间的消息传递构成静态结构视点。,在UML中可以将建模语言划分为三种构造块,即三类词汇或基本元素:事物、关系和图。其中事物是对模型中最具有代表性的成分的抽象,可分为结构事物、行为事物、分组事物和注释事物;关系能把事物联系在一起,可分为依赖、关联、泛化(归纳)、实现。,掌握了这些基本知识能够理解UML模型,并建立一些基本模型。图11.11 表示UML中各种元素,表11.1 介绍UML中各种元素的功能。表11.2 UML各种元素关系的种类。,11.5 UML概述,(2)对象之间的消息传递构成静态结构视点。,图11.11 UML中各种元素的表示法,11.6 UML的图形,(2)对象之间的消息传递构成静态结构视点。,UML提供了不同的模型图用来表示系统相关角色(如用户、分析员等)对系统的看法。 需求确认、系统分析、系统设计、系统编码、系统测试是软件工程的5个重要阶段。 UML中的用例图、序列图可以用来描述系统需求: 类图、
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号