UML系统建模及系统分析与设计-电子教案-王欣 第4章 面向对象系统分析与对象类建模

上传人:E**** 文档编号:89391356 上传时间:2019-05-24 格式:PPT 页数:63 大小:1.61MB
返回 下载 相关 举报
UML系统建模及系统分析与设计-电子教案-王欣 第4章  面向对象系统分析与对象类建模_第1页
第1页 / 共63页
UML系统建模及系统分析与设计-电子教案-王欣 第4章  面向对象系统分析与对象类建模_第2页
第2页 / 共63页
UML系统建模及系统分析与设计-电子教案-王欣 第4章  面向对象系统分析与对象类建模_第3页
第3页 / 共63页
UML系统建模及系统分析与设计-电子教案-王欣 第4章  面向对象系统分析与对象类建模_第4页
第4页 / 共63页
UML系统建模及系统分析与设计-电子教案-王欣 第4章  面向对象系统分析与对象类建模_第5页
第5页 / 共63页
点击查看更多>>
资源描述

《UML系统建模及系统分析与设计-电子教案-王欣 第4章 面向对象系统分析与对象类建模》由会员分享,可在线阅读,更多相关《UML系统建模及系统分析与设计-电子教案-王欣 第4章 面向对象系统分析与对象类建模(63页珍藏版)》请在金锄头文库上搜索。

1、UML系统建模及系统分析与设计,王欣 张毅 编著 中国水利水电出版社,第4章 面向对象系统分析与对象类建模,教学目的, 掌握面向对象系统分析的过程 掌握系统用例模型的设计方法 了解类和对象的概念、类与对象的关系等 重点掌握系统用例模型的设计和对象与类图的设计,4.1 面向对象系统分析,面向对象分析,就是抽取和整理用户需求并建立问题域精确模型的过程。 面向对象分析过程从分析陈述用户需求的文件开始 可能由用户(包括出资开发该软件的业主代表及最终用户)单方面写出需求陈述,也可能由系统分析员配合用户,共同写出需求陈述 当软件项目采用招标方式确定开发单位时,“标书”往往可以作为初步的需求陈述。,面向对象

2、分析的过程,4.2 系统用例建模,4.2.1分析系统用例 1.业务用例与系统用例 业务用例着重于业务操作。表示实现业务目标的业务中的具体工作流。业务过程可能涉及手工和自动过程,并且在一段长期的时间内进行。 系统用例着重于要设计的软件系统。参与者如何与软件系统进行交互?在系统用例说明中书写的事件流应该足够详细,便于用作编写系统测试脚本的出发点。 系统用例的执行者为操作人员所代表的岗位角色,可以是实际与系统交互的操作人员、外部衔接系统、自动服务、定时器等。,银行的业务建模,银行的软件系统建模,业务用例模型与系统用例区别, 设计范围 业务用例的设计范围是业务操作,组织外部的业务参与者实现与业务组织相

3、关的业务目标。 系统用例着重于要设计的软件系统,参与者如何与软件系统进行交互 系统测试 业务用例常常是以白盒形式编写 系统用例几乎总是以黑盒形式编写 业务角色。 业务参与者是业务之外的人 在系统用例图中,参与者与用例进行交互,2.系统用例的确定,将每个业务用例都绘制出相应的活动图,再将其中的“活动”进行整合,就得出所有备选系统用例 找出所有的备选系统用例后,要对它们进行合并和筛选。合并就是将相同的用例合并成一个,筛选就是将不符合系统用例条件的备选用例去掉。 如在销售管理系统中,系统用例有采购、供应商管理、客户管理、进货查询、入库管理、出库管理、库存盘点、库存查询、销售、退货处理、价格管理、销售

4、查询等。 一个系统用例应该是实际使用系统的用户所进行的一个操作,例如,“查看新闻列表”就不能算一个系统用例,因为它只是某系统用例的一个序列项。,4.2.2构造系统用例模型,分析出参与者、用例和用例之间关系后,就可以绘制系统的用例模型,4.3类与对象建模概述,面向对象分析产生分析模型。 分析时用例模型作为输入,对用例模型进行分析,把系统分解为相互协作的分析类,通过类图、对象图来描述对象、对象的属性和对象之间的关系。 类图用于对系统的静态结构建模, 在系统分析阶段,类图主要用于显示角色和提供系统行为的实体的职责; 在系统设计阶段,类图主要用于捕捉组成系统体系结构的类结构; 在系统编码阶段,根据类图

5、中的类及它们之间的关系实现系统的功能。,类图与其他的关系,4.3.1 类图及对象图的图符,1.类的表示方法,类是任何面向对象系统中最重要的构造块。类是对一组具有相同属性、操作、关系和语义对象的描述。一个类可以实现一个或多个接口。类可以是作为问题域一部分的抽象,也可以是构成实现的类。 类的定义, 类的属性,在UML中,属性的完整语法形式为: 可见性 属性名称:类型多重性=默认值特性串(类别)性质-字符串 visibility name:type multiplicity = default property-string 类的内容表示可选项。 下列的属性都是合法的: student 只有属性名

6、+student 可见性和属性名 origin : point 属性名和类型 name : string01 属性名、类型和多重性 origin : point=(0,0)属性名、类型而后初始值 id:Integerreadonly 属性名、类型和特性,可见性表示, 类的操作,类的操作,也称为也的方法,它描述了类的动态行为,用于修改、检索类的属性或执行某些动作。在大多数抽象层次上,对类的行为特征建模时,只需简单地写下每个操作的名称。在UML中,操作的完整语法形式为: 可见性 操作名称(参数名称) :返回值类型特性串(类别)性质-字符串 visibility name (parameter-li

7、st) :return-type property-string 操作的可见性与属性相同,命名规则也与属性相同。 参数名称中的参数是用跟属性类似的方式来表示的。, 类的操作,其语法如下: 方向名称:类型 = 默认值 direction name:type = default value 方向可以取下述值之一: in输入参数,不能对它进行修改。 out输出参数,为了向调用者传送信息可以对它进行修改。 inout输入参数,为了向调用者传送信息可以对它进行修改。,下列操作是合法的,display 操作名 +display 可见性和操作名 set(n:Name,s:String) 操作名和参数 res

8、tart()gaurded 操作名和特性 getID():interger 操作名和返回类型 +balanceOn(date:Date):Money, 类的范围,特征的范围指的是类目的每一个实例都有自己独特的特征值,还是类目的所有实例都共同拥有单独一个特征值。 在UML中有两种范围: 实例范围是指对于一个特征,类目的每个实例均有它自己的值。这是默认的,不需要附加符号。 静态范围是指对于类目的所有特征,特征的值是唯一的,也把它称作类范围,通过对特性串加下划线来表示。静态范围的特征大多用于私有属性,它们必须为一个类的所有实例所共有。, 类的分类,类有具体类、抽象类和模板类。具体类可以定义其实例,

9、接口,UML类图元素中接口是一系列操作的集合,它指定了一个类所提供的服务,如所示。接口既可用的那个图标来表示,也可由附加了的一个标准类来表示,它直接对应于Java中的一个接口类型。通常,根据接口在类图上的样子,就能知道与其他类的关系。,接口的表示, 类的版型,UML中有三种主要的类版型:边界类、控制类和实体类。 边界类位于系统与外界的交界处,包括:用户界面类,如窗口、对话框、报表类等。通讯协议类,如TCP/IP的类。直接与外部设备交互的类和直接与外部系统交互的类。,实体类,实体类通过事件流和交互图发现,采用目标领域术语命名。通常实体类对应数据库中的表,其属性对应表的字段,但实体类与数据库中的表

10、不一定是一一对应关系。,控制类是负责管理或控制其他类工作的类。,每个用例通常有一个控制类,控制用例中的事件顺序,控制类也可以在多个用例间共用。控制较少接收消息,发出较多消息。,控制类, 类图的抽象层次,按照Steve Cook和John Dianiels的观点,类图分为概念层、说明层和实现层。,2.对象的表示方法,对象图是类图的实例,几乎使用与类图完全相同的标识。 对象图的两个基本元素是对象和它们之间的关系。展示的是一个对象图中表示对象的图标。 与类图相似,水平线将图标内的文字分成了两部分,上边代表对象的名称,下边代表对象的属性和值。,对象的名称表示,objectName 只有对象名; :Cl

11、assName 只有类名; objectName:ClassName 对象名和类名。 所有的对象名称都加了下划线,目的是区分对象名称和类名称。 如果没有指定一个对象的类,既没有用上面的语法显示地指定,也没有在对象的说明中隐式地指定,那么这个对象的类就被认为是匿名的。 如果只指定了类名称,那么这个没有对象名的图标代表的就是一个明显的匿名对象。,4.3.2 对象/类的关系,1.关联关系 关联(association)是一种结构关系,说明一个事物的对象与另一个事物的对象相联系。 关联关系是对象之间一种引用关系,比如客户类与订单类之间的关系。这种关系通常使用类的属性表达。 给定一个连接两类的关联,可以

12、从一个类的对象导航到另一个类的对象。关联关系是实例之间的结构关系,关联又分为一般关联、聚合关联与组合关联。 UML类关系中关联关系有6种对应的修饰,它们分别是:名称、角色、多重性、聚合、组合和导航性。, 名称(name),关联可以有一个名称,用来描述关联的性质,通常使用一个动词或动词短语来命名关联。 名称以前缀或后缀一个指引阅读的方向指示符以消除名称含义上可能存在的歧义,方向指示符用一个实心的三角形箭头表示。 虽然关联可以有名称,但在明确给出关联的端点名的情况下不需要给出名称。, 角色(role),当一个类参与了一个关联时,它就在这个关系中扮演了一个特定的角色。角色是关联关系中一个类对另一个类

13、所表现出来的职责。 角色名称是名词或名词短语,以解释对象是如何参与关联的。 把关联端点扮演的角色称为端点名,在UML中称为角色名。, 多重性(multiplicity),关联的多重性是指有多少对象可以参与该关联,多重性可以用来表达一个取值范围、特定值、无限定的范围或一组离散值。 将多重性写成一个表示取值范围的表达式,其最大值和最小值可以相同,用两个圆点把它们分开。 多重性说明对于关联另一端的类的每个对象,本端的类可能有多少个对象出现,对象的数目必须是在给定的范围内。可以精确地表示多重性为:一个(1);多个(0*);一个或多个(1*);整数范围,,(4)聚合关系,聚合关系是关联的一种形式,是强的

14、关联关系。代表两个类之间的整体/局部关系,如汽车类与引挚类、轮胎类之间的关系就是整体与个体的关系。 聚合关系描述了“has a”的关系,即整体对象拥有部分对象,是一种不稳定的包含关系。 较强于一般关联,有整体与局部的关系,并且没有了整体,局部也可单独存在。 在UML中使用空心的菱形表示,菱形从局部指向整体,(4)聚合关系,(5)组合关系,组合关系是聚合关系中的一种特殊情况,是更强形式的聚合,又被称为强聚合。 组合表示contains-a的关系,是一种强烈的包含关系。 组合类负责被组合类的生命周期,是一种更强的聚合关系,部分不能脱离整体存在。, 导航性(nevigation),关联可以有方向,即

15、导航。 一般不作说明的时候,导航是双向的,不需要在线上标出箭头。 大部分情况下导航是单向的,可以加一个箭头表示。 导航性描述的是一个对象通过链(关联的实例)进行导航访问另一个对象,即对一个关联端点设置导航属性意味着本端的对象可以被另一端的对象访问。 可以在关联关系上加箭头表示导航方向。 只在一个方向上可以导航的关联称为单向关联,用一条带箭头的实线来表示。 在两个方向上都可以导航的关联称为双向关联,用一条没有箭头的实线来表示。,2.依赖关系,依赖(Dependency)关系是对象之间最弱的一种关联方式,是临时性的关联。代码中一般指由局部变量、函数参数、返回值建立的对于其他对象的调用关系。一个类调

16、用被依赖类中的某些方法而得以完成这个类的一些职责。,关联和依赖的区别:,从类之间关系的强弱程度来分,关联表示类之间的很强的关系; 依赖表示类之间的较弱的关系; 从类之间关系的时间角度来分,关联表示类之间的“持久”关系,这种关系一般表示一种重要的业务之间的关系,需要保存的,或者说需要“持久化”的,或者说需要保存到数据库中的。,3.泛化关系,泛化(Generalization)把一般类连接到较为特殊的类,表示is-a的关系,表示一个更泛化的元素和一个更具体的元素之间的关系,也称为继承关系。 是对象之间耦合度最大的一种关系,子类继承父类的所有细节。 直接使用语言中的继承表达。在类图中使用带三角箭头的实线表示,箭头从子类指向父类。 泛化表示的是模型元素之间抽象和具体的关系,也就是模型元素之间的继承关系。 继承者具有被继承者相同的特性,同时还能在被继

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号