收藏 分享(赏)

UML与Rose建模第四章 静态视图.ppt

上传人:scg750829 文档编号:9125886 上传时间:2019-07-24 格式:PPT 页数:75 大小:1.52MB
下载 相关 举报
UML与Rose建模第四章 静态视图.ppt_第1页
第1页 / 共75页
UML与Rose建模第四章 静态视图.ppt_第2页
第2页 / 共75页
UML与Rose建模第四章 静态视图.ppt_第3页
第3页 / 共75页
UML与Rose建模第四章 静态视图.ppt_第4页
第4页 / 共75页
UML与Rose建模第四章 静态视图.ppt_第5页
第5页 / 共75页
点击查看更多>>
资源描述

1、UML统一建模语言,第四章 静态视图,4.1 概述 4.2 类与关系 4.3 类图 4.4 对象图 4.5 包图 4.6 实例,静态视图是UML的基础 ,静态视图中的元素是应用中的有实际意义的概念,即系统中的各种概念。 静态视图包括:类图、对象图和包图。 类图描述类中的静态结构,在系统的整个生命周期都是有效的 对象图是类图的实例。显示了类图的多个对象实例,而不是实际的类。 包图是由包和类组成,描述系统的分层结构 通过分析用例和问题域,就可以得到相关的类,然后再把逻辑上相关的类封成包,这样就可以很好的体现出系统的分层结构。,4.1 概述,4.2.1 类 类是任何面向对象系统中最重要的构造块,一种

2、重要的分类器(Classifier),用来描述结构和行为特性的机制,它包括类、接口、数据类型、信号、组件、节点、用例和子系统。 类是对一组具有相同属性、操作、关系和语义的对象的描述。类是面向对象模型的最基本的模型元素,用类图来描述。 对象包括现实世界中的软件事物和硬件事物,也可包括纯粹概念性的事物,是类的实例。 一个类可以实现一个或多个接口。结构良好的类 具有清晰的边界,是系统职责均衡分布的一部分。 类图,是一个分成3个分隔区的矩形。其中顶 端的分隔区为类的名字,中间的分隔区放类的 属性、属性的类型和值(初始值)第3个分隔区 放操作、操作的参数表和返回类型。,4.2 类与关系,类图的地位和作用

3、,类,类图由系统中使用的类以及它们之间的关系组成,是构建其它图的基础。分为长式和短式。 类的名称:均用英文大写字母开头,属性及 操作名为小写字母开头。分为简单名称和路 径名称。 常见类型有:Char, Boolean, Double, Float, Integer, Object, Short, String等。 对象是对象类的实例, 用对象图来描述。 属性(attribute):用来描述类的特征,表示需要处理的数据,可以任意多个,也可没有,属性名优短名词或名词短语构成。 属性定义:可见性 属性名:类型=缺省值约束特性 可见性(visibility)表示该属性对类外的元素是否可见。分为: pu

4、blic(+)private(-) protected(#)package()不确定 约束特性:可变(changeable):对修改属性的值没有约束。 只增(addOnly):对于多重性大于1的属性,可以增加附加值,但一旦被创建,就不可对值进行消除或改变。 冻结(frozen):在初始化对象后,就不允许改变属性值。,类图与对象图,操作:对数据的具体处理方法的描述则放在操作部分,操作说明了该类能做些什么工作。操作通常称为函数,它是类的一个组成部分,只能作用于该类的对象上。操作定义格式: 可见性 操作名(参数表):返回类型约束特性 操作的约束特性: 查询(isQuery)、 顺序(sequenti

5、al) 监护(guarded)、并发(concurrent) 职责:是类或其他元素的契约或义务。 1、类的属性和操作就是类要完成的职责 2、类的职责是自由形式的文本,或一个短语或一个句子或一段短文。 3、在图形上载类图底部的分隔栏中。,类的识别,面向对象方法的一个难点,又是建模的关键。常用的方法有: 1、名词识别法 2、系统实体识别法 3、从用例中识别类 4、利用分解与抽象技术,类的类型,1实体类(entity) 实体类是对系统中需要存储的信息和其信息的行为建立模型。实体类具有永久的特性,类似于数据库中的表一样用于保存系统的业务信息。 在UML中,实体类的构造类型(stereotype)被设定

6、为Entity。 从图书馆管理系统中的读者管理模块中找出所有的实体类。,类的类型,2边界类(boundary) 边界类(boundary)位于系统与外界的交接处,它在一个或多个角色和系统之间建立相互作用的模型。 边界类可以是窗口、打印机接口、传感器和终端。要寻找和定义边界类,可以检查用例图。每个参与者(Actor)和用例交互至少要有一个边界类。 在UML中,边界类的构造类型(stereotype)被设定为Boundary。 从图书馆管理系统中的读者管理模块中找出所有的边界类。,类的类型,3控制类(control) 控制类是负责协调其他类的工作,它建立了一个或几个用例的行为模型。 例如登录用例就

7、须要有用户验证类就是控制类,他通过协调登录边界类与用户信息实体类来完成登录的工作。 它整理系统的行为并描述一个系统的动态特性,处理主要的任务和控制流。每个用例通常都有一个控制类、控制用例中的事件顺序。也存在多个用例共享同一个控制类。 在UML中,控制类的构造类型(stereotype)被设定为control。,任务解决-分析,图书馆业务功能主要由借书、还书、预约和取消预约四个主要功能,这四种功能是由三层组成,即:界面、控制和相应的书籍信息表。因此,本功能模块可以抽象出如下类: 书实体类(Book):描述书籍信息,书名、作者、出版社、ISBN号等 读者实体类(Reader):描述读者信息,读者姓

8、名、年龄、性别和编号 借书操作界面类(LendFrame ):描述操作借书的操作界面,边界类 还书操作界面类(ReturnFrame) :描述还书的操作界面,边界类 预约图书操作界面类(ReserveFrame) :描述预约和取消预约图书操作界面,边界类 书籍管理类(BookManager):实现借、还书、预约以及查询功能的控制类,任务解决-绘制状态图,步骤1打开前面初步构建的UML模型文件; 步骤2打开Rose中的逻辑视图(Logical View),选择分析模型(analysis model)目录。并在其下创建一个子目录并命名为:“图书馆业务功能” ,如图所示。,任务解决-绘制状态图,步骤

9、3用鼠标右击“图书馆业务功能”在弹出来的菜单中选择“NewClass diagram”项,创建类图。,任务解决-绘制状态图,步骤4双击新建的类图,并点右边控件集中选中的类并用鼠标在图中分别拖出上述类图。,任务解决-绘制状态图,步骤5设定上述各类的属性和操作(以读者信息类为例)。 5.1 先用鼠标右击Reader类在弹出的下拉菜单中选择“Open Specification”项弹出类属性窗体如图3.2.14所示。,任务解决-绘制状态图,5.2 再点击“Attributes”选项,在弹出的窗体中分别插入属性。,任务解决-绘制状态图,5.3 同理在打开的类属性窗口中选择“Operations”项,并

10、按上面步骤插入类的操作。 步骤6设各类的构造类型(以读者信息类为例)。,精练,请您根据本节所学的知识解决项目中的任务2。 分析:由前面章节对图书馆管理系统中的书籍管理功能可知,该模块是由书籍信息类、书目类、新增书籍界面类、修改书籍界面类、删除书籍界面类和书籍管理类6个类组成。 请您根据分析使用Rose图绘制类信息。,4.2.2 关系 关系(Relationship)是事物间的联系。在类的关系中,最常用的4种分别为: 依赖(Dependency),它表示类之间的使用关系; 泛化(Generalization),它表示类之间的一般和特殊是关系; 关联(Association),它表示对象之间的结构

11、关系; 实现(Realization),它是规格说明和其实现之间的关系。 在图形上,把关系画成一条线,并用不同的线区别关系的种类.,1. 依赖(Dependency) 依赖是两个(两组)元素之间的语义联系,对一个元素(提供者)的改变可能会影响或提供消息给其他元素(客户)。客户从某种方面依赖于提供者,是一种使用关系,它说明了一个事物的变化可能影响到使用它的另一个事物,但反之未必。 例如在windows系统中的窗体事件 (类Event)的变化将会影响到使 用它的窗体(类Window)。 在图形上,UML把依赖描述成一条有向的虚线,指向被依赖的对象。,依赖(dependency),在UML中定义了4

12、类基本依赖类型: 1使用依赖:使用依赖是一种非直接的,它通常表示使用者使用服务提供者所提供的服务来实现它的行为,4种使用依赖 : (1) 使用(use): (2) 调用依赖(call) (3) 参数依赖(parameter) (4)发送(send) (5)实例化(instantiate) 2抽象依赖:抽象依赖建模表示使用者和提供者之间的关系,它依赖于在不同抽象层次上的事物。下面给出了3种类型的抽象依赖。 (1) 跟踪依赖(trace) (2) 精化依赖(refine) (3) 派生依赖(derive),依赖(dependency),3授权依赖:表达了一个事物访问另一个事物的能力。提供者可以规定

13、使用者的权限,这是提供者控制和限制对其内容访问的方法。下面给出了3种类型的授权依赖。 (1) 访问依赖(access) (2) 导入依赖(import) (3) 友元依赖(friend) 4绑定依赖:它表明对目标模板使用给定的实际参数进行实例化。当对模板类的细节建模时,要使用绑定(bind)。例如,模板容器类和这个类的实例之间的关系被模型化为绑定依赖。绑定包括一个映射到模板的形式参数的实际参数列表。,2. 泛化(Generalization),泛化是一般事物(称为超类或父类)和该事物的较为特殊的种类(称为子类)之间的关系. 子类继承父类的属性和操作,除此之外通常子类还添加新的属性和操作,或者修

14、改了父类的某些操作。泛化意味着子类的对象可以用在父类的对象可能出现的地方,但反过来则不成立。 例如,你可能遇到一般类 Client(用户类)和它的较 特殊类Librarian(管理员类)。,泛化的用途,一种用途是用来定义下列情况:当一个变量(如参数或过程变量)被声明承载某个给定类的值时,可使用类的实例,这被称作可替换性原则。该原则表明后代的一个实例可以用于任何祖先被声明的地方。描述一种多态关系。 例如,如果一个变量被声明为图书管理员,那么他就可代替用户实例。 又如父类是电视机,则液晶电视机可以替换它。 另一个用途是在共享父类所定义的成员的前提下允许它增加自身定义的描述,这被称作继承。 继承允许

15、描述的共享部分只被声明一次而可以被许多子类所共享,而不是在每个类中重复声明并使用它,这种共享机制减小了模型的规模。更重要的是,它减少了为了模型的更新而必须做的改变和意外的前后定义不一致。,泛化示例,例如水陆两用汽车他即是汽车又是船,那么在对交通工具进行抽象时,就可认为水陆汽车类即继承了汽车类又继承了船类,这就是多重继承。,3. 关联(Association),关联是一种结构关系,它指明一个事物的对象与另一个事物的对象间的联系。即,如果两事物间存在链接,这些事物的类间必定存在着关联关系,因为链接是关联的实例,就如同对象是类的实例一样。 例:书与书目之间的关系建模,3 关联(association

16、),在UML中,有4种可应用到关联的基本修饰: 关联名 关联可以通过命名的方式来描述关系的性质。此关联名称应该取为动词短语,因为它表明源对象正在目标对象上执行的动作。为了消除名称含义的歧义,UML中提供了一个指引读者名称方向的三角形,并给名称一个方向。 在图书馆管理系统中的书与书目记录之间是存在着一种关联关系。这种关联关系可以称为“拥有”而名称的方向是指向书目类。如图,3 关联(association),关联端的角色 当一个类处于关联的某一端时,该类就在这个关系中扮演了一个特定的角色。它呈现的是对另一端的职责。可以显式地命名类在关联中所扮演的角色。 关联端的多重性(书P40表) 关联表示了对象

17、间的结构关系。有时在建模时需要说明一个关联的实例中有多少个相互连接的对象。,3 关联(association),聚合 在实际建模中,往往需要对“整体/部分”的关系进行描述。在这种关系中,其中一个类所描述的是一个较大的事物(即“整体”),它由较小的事物(“部分”)组成。这种关系称为聚合,它描述了“has-a”的关系,即整体对象拥有部分对象。 符号为在整体的一端用一个空心菱形修饰的简单关联。 例如:学校的组织结构,3 关联(association),组合:组合是聚合的一种形式,它具有强的拥有关系,而且整体与部分的生命周期是一致的。 带有非确定多重性的部分可以在组合物自身之后创建,但创建后,就同生共

18、死,即整体释放部分也跟着被释放。 例如,视窗系统中,一个Frame只属于一个Window。如图 在UML中,组合是一种特殊的关联,用整体端有实心菱形箭头的简单关联修饰它。,3 关联(association),导航: 给定两个类(如Book类和Library类)之间的一个简单的、未加修饰的关联,从一个类的对象能够导航到另一个类的对象。除非另有指定,否则关联的导航是双向的。 例如图书馆管理系统中,对象Librarian(管理员)和Password之间有一个关联。给定一个管理员,就需要找到对应的对象Password,反之不需要成立 .,4 实现(realization),实现(realization

19、)是类元(类)之间的语义关系,关系中的一个类元(类)描述了另一个类元(接口)实现的契约。也就是说,实现关系中的一个类只具有行为的定义,而具体的结构和行为,则是由另一个类来给出。 例如,4. 实现(Realization) 实现是规格说明和其实现间的关系。它表示不继承结构而只继承行为。大多少情况下,实现关系用来规定接口和实现接口的类或组件之间的关系。 接口是能够让用户重用系统一组操作集的UML组件。一个接口可以被多个类或组件实现,一个类或组件也可以有多个接口。 可以在两种情况下使用实现关系:第一,在接口与实现该接口的类间;第二,在用例以及实现该用例的协作间。,任务解决-分析,该模块中的类存在如下

20、关系: 1关联关系 所有的操作界面类与管理类之间就是一种普通的关联关系。2泛化关系 我们可将管理员类和读者类相同的特性和操作抽象出来形成一个父类(Client),那么管理员类、读者类与用户类之间就是一种泛化关系,任务解决-绘制类图,精练,请您根据本节所学的知识解决项目中的任务2 分析:图书馆的主要静态模型类图是由书籍管理类、书类、书目类、管理员类、用户类和各种界面操作类组成。其中用户类与管理员类是泛化的关系,而其它类之间均是关联关系。 请根据演示部分绘制类图的方法为书籍管理业务绘制类图。,类图的抽象层次和实现关系,虽然在软件开发的不同阶段都使用类图,但这些类图表示了不同层次的抽象。类图分为三个

21、层次:概念层、说明层、实现层。 在需求分析阶段,类图是研究领域的概念; 在设计阶段,类图描述类与类之间的接口; 在实现阶段,类图描述软件系统中类的实现。 概念层(Conceptual)类图描述应用领域中的概念。实现它们的类可以从这些概念中得出,但两者并没有直接的映射关系。事实上,一个概念模型应独立于实现它的软件和程序设计语言 说明层(Specification)类图描述软件的接口部分,而不是软件的实现部分。 只有在实现层(Implementation)才真正有类的概念,并且揭示软件的实现部分。,4.3 类图,4.3.1 类图的概念和内容 类图(class diagram)是描述类、接口、协作、

22、以及它们之间关系的图。它是系统中静态视图的一部分,静态视图可以包括许多的类图。静态视图用于为软件系统进行结构建模,它构造系统的词汇和关系,而结构模型的视化就是通过类图来实现的。类图所包括的内容如下: (1)类 (2)接口 (3)协作 (4)依赖、泛化、实现和关联关系,类图(Rose中详细类图),4.3.2 类图的用途类图是系统静态视图的一部分,它主要是用来描述软件系统的静态结构。该视图主要支持系统的功能需求,即系统要提供给最终用户的服务。当系统分析师以支持软件系统的功能需求为目的设计静态视图时,通常以下述3种方法之一使用类图。 (1)对系统的词汇建模 从构造系统的基本词汇开始,用于描述系统的边

23、界。 (2)对简单协作建模 类很少孤立存在,总是协同工作的。 (3)对逻辑数据库模式建模 可以使用类图对数据库模式进行建模,4.3.3 类图建模技术1. 对简单协作建模 协同是软件系统的动态交互在软件系统的静态视图上的映射。协同的静态结构是类图表达出来的。在对类图的简单协同建模时,不仅描述类的职责、结构和服务,还强调类间的关系。 在协同建模时,要遵循的策略包括: (1)识别要模拟的机制。一个机制描述了被建模的部分系统的一些功能和行为,这些功能和行为是由类、接口等元素交互作用产生的。 (2)对每种机制,识别参与协作的类、接口和其他协作,并识别它们间的关系。 (3)通过协作的脚本,发现建模的模型是

24、否有被遗漏和语义错误的地方,并更正错误。 (4)得出相应类的对象,并确定具体的属性和操作。,1. 对简单协作建模 举例:订票系统的类图。包含7个类,它们之间的关系如图:,4.3.3 类图建模技术,2. 对数据库模式建模 在对软件系统进行建模时,不仅要定义系统的动态行为,还需要为动态行为所操作的数据指定相应的格式。 传统的逻辑数据库建模工具“实体关系(E-R)”图只针对数据,而UML的类图还允许对行为建模。 在为数据库建模时,要遵循的策略包括: 在系统中确定的类,它的状态必须超过其应用系统生命周期。 创建包含这些类的类图,并把它们标记成永久的(persistent)。 展开这些类的结构信息,即详

25、细的描述属性的细节,并注重关联和构造这些类的基数。 观察系统中的公共模式(如循环关联、一对一关联等),它们往往使物理数据库设计复杂化。如果必要,系统分析师需要创建简化逻辑结构的中间抽象。 考虑这些类的行为,扩充那些对于数据存储和数据完整性很重要的操作。 如果可能,用工具来把逻辑设计换成物理设计。,2. 数据库模式建模 举例:图书馆信息系统,包含7个类,它们之间的关系如图:,4.4 对象图,4.4.1 对象图的概念和内容 在UML中,对象图(Object Diagram)是表示在某一时刻一组对象以及它们之间的关系的图。 对象图可以被看作是类图在系统某一时刻的实例。 在图形上,对象图由节点以及连接

26、这些节点的连线组成,节点可以是对象也可以是类,连线表示对象间的关系。 除了描述对象及关系外,还描述标注和约束,当交互情况复杂时,还可以包括模型包和子系统。 对象图只有两个分栏:名称和属性 Rose没有专门的对象图,可以通过创建用例的协作图和时序图创建。,4.4.2 对象图建模对象图主要用来描述类的实例在特定时刻的状态。它可以是类的实例也可以是交互图的静态部分。 对于组件图和部署图来说,UML可以直接对它们建模,组件图和部署图上分别可以包含部件或结点的实例。 对象图的建模过程: (1)确定参与交互的各对象的类,可以参照相应的类图和交互图; (2)确定类间的关系,如依赖、泛化、关联和实现; (3)

27、针对交互在某特定时刻各对象的状态,使用对象图为这些对象建模; (4)建模时,系统分析师要根据建模的目标,绘制对象的关键状态和关键对象之间的连接关系。,应用举例医院病房监护系统,一、问题描述为了对危重病人进行实时监护,随时了解病人病情,及时,建立病房监护系统。 病症监视器安置在每个病床,通过网络将病人的病症信号(组合)实时传送到中央监护系统进行分析处理。在中心值班室里,值班护士使用中央监护系统对病员的情况进行监控,监护系统实时地将病人的病症信号与标准的病诊信号进行比较分析,当病症出现异常时,系统会立即自动报警,并打印病情报告和更新病历。系统根据医生的要求随时打印病人的病情报告,系统定期自动更新病

28、历。,请对系统需求进行分析!,经过初步的需求分析,得到系统功能要求: 1. 监视病员的病症(血压、体温、脉搏等) 2. 定时更新病历 3. 病员出现异常情况时报警。 4. 随机地产生某一病员的病情报告。,例2 医院病房监护系统,监视病情,更新病历,二、简单的需求分析说明对“医院病房监护系统”进行分析,确定系统的主要功能如下:1. 病症监视器可以将采集到的病症信号(组合),格式化后实时的传送到中央监护系统。2. 中央监护系统将病人的病症信号开解后与标准的病症信号库里的病症信号的正常值进行比较,当病症出现异常时系统自动报警。3. 当病症信号异常时,系统自动更新病历并打印病情报告。4. 值班护士可以

29、查看病情报告并进行打印。5. 医生可以查看病情报告,要求打印病情报告,也可以查看或要求打印病历。6. 系统定期自动更新病历。,需求分析,对象图的建模过程:1. 识别类通过名词识别法和系统实体识别法等方法可以识别出系统的十二个类:值班护士 医生 病人 病症监视 中央监护系统 报警信号 标准病症信号库 病历库 病人病症信号 病情报告 病历 标准病症信号用类图这种简单明了的方法分别表示出类的名称,属性操作,建立类的关系在类图中标明类之间的关系:,系统类图,4.5 包图一个最古老的软件方法问题是:怎样将大系统拆分成小系统。UML中解决该问题的思路之一是将许多类集合成一个更高层次的单位,形成一个高内聚、

30、低耦合的类的集合。UML中这种分组机制叫包(Package)。又将包称为子系统(subsystem),引入包是为了降低系统的复杂性。 包图由包和包之间的联系构成,它是维护和控制系统总体结构的重要建模工具。 当对大型系统进行建模时,经常需要处理大量的类、接口、构件、节点和图,这时就有必要将这些元素进行分组,即把那些语义相近并倾向于一起变化的元素组织起来加入同一包,这样方便理解和处理整个模型。 同时也便于轻松地控制这些元素的可见性,使一些元素在包外可见,一些元素是隐藏在包内的。 设计良好的包是高内聚、低耦合的,并且对其内容的访问具有严密的控制。,4.5.1 包的名字 模型包是名字是一个字符串,分为

31、简单名(simple name)和路径名(path name)。简单名是指包仅含一个简单的名称,路径名是指以包所位于的外围包的名字作为前缀的包名。图形上,包是带有标签的文件夹。 包的内容:可以是类的列表,也可以是另一个包图,还可以是一个类图。包之间的关系有依赖和泛化(继承)。 依赖关系:两包中的任两个类存在依赖关系,则包之间存在依赖关系。 泛化关系:使用继承中通用和特例的概念来说明通用包和专用包之间的关系。例如,专用包必须符合通用包的界面,与类继承关系类似。,包图,和类一样包也有可见性,利用可见性控制外部包对包的内容的存取方式,UML中定义了四种可见性:私有,公有,保护和实现。缺省值为公有。

32、包也可以有接口,接口与包之间用实线相连,接口通常由包的一个或多个类实现。,包的关系图,4.5.2 包拥有的元素包是对模型元素进行分组的机制,它把模型元素划分成若干个子集。包可以拥有UML中的其他元素,包括类、接口、组件、节点、协作、用例和图,包甚至还可以包含其他包。 包的作用不仅仅是为模型元素分组。它还为所拥有的模型元素构成一个命名空间,这就意味着一个模型包的各个同类建模元素不能具有相同的名字,不同模型包的各个建模元素能具有相同的名字,因为它们代表不用的建模元素。在同一包内,不同种类的模型元素能够具有相同的名字,但可能会带来不必要的麻烦,不推荐这么做。,4.5.3 包的可见性包的可见性用来控制

33、包外界的元素对包内元素的可访问权限,这一点和类的可见性类似。可见性可以分成3种。 (1)公有访问(public):包内的模型元素可以被任何引入了此包的其他包的内含元素访问。公有访问用前缀于内含元素名字的加号(+)表示。 (2)保护访问(protected):表示此元素能被该模型包在继承关系上后继模式包的内含元素访问。保护访问用前缀于内含元素名字的号()表示。 (3)私有访问(private):表示此元素可以被属于用一包的内含元素访问。私有访问用前缀于内含元素名字的减号()表示。,4.5.4 引入与输出在UML里,引入一个包中的元素可以单向的访问另一个包中的元素。引入(import)关系用构造型

34、的import来修饰。包中具有公有访问权限的内含元素称为输出(export)。,4.5.5 泛化关系和类间的泛化关系类似,包间也存在着泛化关系。包间的泛化关系也像类那样遵循替代原则,特殊包可以应用到一般包被使用的任何地方。包间还存在另一种关系:引入和访问依赖,用于在一个包引入另一个包输出的元素。,4.5.6 标准元素UML的扩充机制同样适用于包。可以使用标记值来增加包的新特性,用构造型来描述包的新种类。UML定义了5种构造型来为其标准扩充。它们分别是:虚包(facade)、框架(framework)、桩(stub)、子系统(subsystem)、系统(system)。,4.5.7 包建模技术包

35、在很多方面与类相似,类是对问题领域或解决方案的事物的抽象,包是把这些事物组织成模型的一种机制。 包可以没有标识因为它没有实例,在运行系统中不可见;类必须有标识,它有实例,类的实例(对象)是运行系统的组成元素。 建立包图的具体的做法如下。 (1)分析系统模型元素(通常是对象类),把概念上或语义上相近的模型元素纳入一个包。 (2)对于每一个包,标出其模型元素的可视性(公共、保护或私用)。 (3)确定包与包之间的依赖联系,特别是输入依赖。 (4)确定包与包之间的泛化联系,确定包元素的多态性与重载。 (5)绘制包图。 (6)包图精化。,例:用包图描述医院监护系统的体系结构,包图,4.6 实例图书管理系

36、统中的静态视图,4.6.1 建立对象图步骤 研究分析问题领域,确定系统的需求; 发现对象和对象类,明确类的属性和操作; 发现类之间的静态关系,一般与特殊,部分与整体,研究类之间的继承性和多重性; 设计类与关系; 绘制对象类图并编制相应的说明。,4.6.2 对象的生成,整个图书管理系统的类数目繁多,以图书管理系统的读者与书籍信息、借阅信息和预留信息为例来说明对象的建立过程。 读者与书籍信息是图书管理系统的基本信息,是系统必须的部分 读者的基本属性 名字、邮编 地址、城市、省份 借书、预留书籍 书籍类的基本属性 书名 作者 序列号 类型,4.6.3 使用Rose绘制对象图,在Rose中浏览器的逻辑

37、视图文件夹(包)图标单击右键,打开属性说明(Specification),和New选择Class Diagram(类图)。 修改类图的名字:Class Diagram 双击打开类图,编辑工具栏可以自行设置。 单击工具栏中类图标,单击编辑窗口空白处,修改类名称为:BrowserInformation 在类上单击右键,弹出菜单选择New Attribute,加入类的属性,单击New Operation,加入类方法。双击属性或者操作名可进行直接修改。 Open Specification可以修改类的基本信息。其他类的信息类似。最终图如:,类规范与类的应用,类规范窗口 8个标签 General标签 D

38、etail标签 Operation标签 Attributes标签 Relations标签 Components标签 Nested标签 Files标签,类规范与类的应用,1)General标签 名称(Name) 构造型(Stereotype) 输出控制(Export Control),类规范与类的应用,2)Detail标签 多重性(Multiplicity) 存储需求(Space) 并发性(Concurrency),6)Nested标签:创建嵌套类 右单击标签中任一空白处,从快捷菜单中选择Insert,输入嵌套类名称; 按一般方法创建父类和嵌套类:在浏览器中,将嵌套类拖放到父类。,属性规范 :3

39、个标签: General标签 Detail标签 DDL标签,属性规范与应用,属性规范与应用,1)General标签 属性数据类型(Type) 属性构造型(Stereotype) 属性的初值(Initial) 输出控制(Export Control),2) Detail标签 属性控制(Containment) By value:按数值 By reference:按引用 Unspecified:未指定 静态属性(Static) 派生属性(Derived),属性规范与应用,属性操作 增加一个属性 右单击浏览器或类图中的类,选择New Attribute,用Name:DataType = Initia

40、l Value格式,输入属性名。或者, 打开类的规范窗口,选择“Attributes”标签,右单击属性区的任何位置,在快捷菜单中选择Insert。 删除一个属性 右单击浏览器某个属性,从快捷菜单选择Delete。或者, 选择类图中的某个属性,用退格键删除模型图中的属性名、数据类型和初始值,单击模型图中任一位置,确认删除。 或者, 打开属性类的类规范窗口,选择“Attributes”标签,右单击要输出的属性,从快捷菜单中选择Delete,确认删除 。,属性操作,图书管理系统类图,作业:,试论述类与用例的区别 试比较边界类与实体类的异同。 什么是依赖?他与关联有什么区别? 什么是泛化?泛化是否就是类的继承,如果不是请说明理由 试论述聚合和组合的异同。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报