资源描述
单击此处编辑母版标题样式,项目十 静态建模,项目十 静态建模,任务一 认识静态建模,任务二 认识类图,任务三 使用Rational Rose绘制类图,任务四 认识对象图,任务一 认识静态建模,自然界中存在的事物大都具有类与对象的关系,于是我们可以借用自然界中的类与对象的表示方法,在计算机的软件系统中描述与实现类和对象。所谓对象,就是可以控制和操作的实体,它可以是一个设备、一个组织或一个商务,它包括属性的描述和行为的描述两方面。属性描述类的基本特征(汽车的长度、颜色等);行为描述类具有的功能(汽车启动、行驶、转弯和刹车等功能),也就是对指定类的对象可以进行哪些操作。就像程序设计语言中整型变量是整数类型的具体变化,用户可以对整型变量进行操作一样,对象是类的实例化,所有的操作都是针对对象进行的。以面向对象方式建,造的模型,由于建造在真实世界的基本概念上,与真实世界非常接近,使得该模型易于交流,易于验证,易于维护。,操作一 静态建模概述,在计算机系统中,我们用类表示系统,并把现实世界中我们能够识别的对象分类表示,这种处理方式称做面向对象。由于面向对象的思想与现实世界中的事物的表示方式相似,所以采用面向对象的思想建造模型会为建模者带来很多好处。UML的静态建模就需要借助于类图和对象图。使用UML进行静态建模,就是通过类图和对象图从一个相对静止的状态分析系统中包含的类和对象,以及它们之间的关系等。,任务二 认 识 类 图,操作一 类图的概述,类图显示了系统静态的结构,标识了不同的实体(人、事物和数据)是如何彼此关联的。在类图中不仅包含了系统定义的各种类(其中包含了类的属性和操作),也包含了它们之间的关系。由于类图是用来描述软件系统中的类以及类之间的关系的一种图示,是从静态角度表示系统的,所以这种描述在系统整个生命周期中都是有效的。类图是构建其它图的基础,如果没有类图,就没有状态图、顺序图和协作图等,也就无法表示软件系统的其它各个侧面。,在面向对象软件工程中,将类划分为以下几种:(1)实体类:它表示的是系统领域内的实体。实体类对应着现实中的客观实物,是系统领域内的实体,用来保存信息,一般对应着数据表、文件等。实体类可以从现实中存在的客观事物,以及需要持久存放的信息两方面来发现。实体类的表示方法如图10-2所示。,图10-2 实体类,(2)边界类:是系统的用户界面,直接跟系统外部参与者交互,与系统进行信息交流。它位于系统与外界的交界处,例如窗体、对话框、报表、与外部设备或系统交互的类等。边界类处在用例图中参与者与用例的关联处,可以根据用例图发现边界类。每个参与者和用例交互至少要有一个边界类。边界类的表示方法如图10-3所示。,图10-3 边界类,(3)控制类:是控制系统中对象之间的交互。它负责协调其它类的工作,实现对其他对象的控制。一个用例中最少会有一个控制类,用来控制用例中的事件顺序,也可以在多个用例之间协调用例之间的联系。控制类的表示方法如图10-4所示。,图10-4 控制类,图10-5 订货管理用例图,图10-6 订货管理的控制类、边界类、实体类,图10-7 具体类与抽象类,1类的名称,类的名称是一个字符串,是每个类中所必有的构成元素,用于区别于其他类。类的名称应该来自系统的问题域,尽可能用明确简短的业务领域中事物的名称,避免使用抽象、无意义的名词。通常情况下,类的名称为一个名词,例如人、桌子、图形、汇总。譬如,“事物”就是个抽象的名词。如果用英文,第1个字母大写,如Shape、Person、Item。类的名称可以分为简单名称和路径名称。单独的名称(即不包含冒号的字符串)叫作简单名称,如Item。,2类的属性,类的属性是类的一个组成部分,描述了类在软件系统中所代表的一个事物的特性。在绘制类图时,类的属性放在类名字的下方,用来描述该类的对象所具有的特征。类的名称与属性如图10-8所示。,图10-8 类的名称与属性,图10-9 属性的可见性,2)属性名类的属性名用于描述类的特性,一个类可能有多个属性。如果用英文表达,第1个英文单词首字母小写,其他单词首字母大写,例如:name;contactName;creditLimit;isPrepaid。,3)类型属性的类型用来说明该属性是什么数据类型。属性的数据类型有:字符串:String;日期:Date;布尔:Boolean;整型:int。,4)初始值初始值是指属性最初获得的赋值。设定初始值有两个作用:一是保护系统的完整性,防止属性未赋值破坏系统的完整性;二是为用户提供易用性,一旦指定了属性的初始值,当创建该类的对象时,该对象的属性值便自动被赋为设定的初始值,简化了用户操作。例如:#visibility:Boolean=false,表示属性“visibility”初始值取“false”。5)属性字符串属性字符串用来指定关于属性的其他信息,通常情况下列出该属性所有可能的取值。,3类的操作,类的操作用于描述类所表示事物的动态性质。类的操作格式为可见性操作名(参数列表):返回类型其中,可见性:该操作对外部实体的显现程度。可见性分为:可见public :+;受限protected:#;私有private :。操作名:第1个英文单词首字母小写,其它单词首字母大写。例如:close();creditRecording()。,1关联关系,1)关联(association)关联是模型元素之间的一种语义联系,它是对具有共同的结构特性、行为特性、关系和语义的链接的描述。关联分为普通关联(见图10-10)、递归关联、限定关联、有序关联、三元关联、单向关联和双向关联(见图10-11)等。这里只介绍普通关联。其他关联类型请读者参阅相关资料进行了解。,图10-10 普通关联,图10-11 单向与双向关联,3)关联的角色角色是关联关系中一个类对另一个类所表现出来的职责。角色的名称是名词或名词短语,用来解释对象是如何参与关联的。任何关联关系中的角色通常用字符串命名。在类图中,把角色的名字放置在与此角色有关的关联关系的末端,并紧挨着使用该角色的类,如图10-12所示。如果关联名与角色名相同,则不标出角色名。,图10-12 关联的角色,(2)关联的约束。有时,两个类之间的一个关联有一个规则。可以通过关联线附近加注一个约束来说明这个规则。例如,一个BankTeller(银行出纳员)为一个Customer(顾客)服务(Serves),但是服务的顺序要按照顾客排队的次序进行。在模型中可以通过在Customer类附近加上一个花括号括起来的“ordered(有序)”来说明这个规则(也就是指明约束),如图10-13所示。,图10-13 关联约束,另一种类型的约束是“or(或)”关系,通过在两条关联线之间连一条虚线,虚线之上标注“or”来表示这种约束。,2泛化关系,泛化关系表示一个泛化的元素和一个具体的元素之间的关系。泛化又称继承。UML中的泛化是通用元素和具体元素之间的一种分类关系。具体元素完全拥有通用元素的信息,并且还可附加一些其它信息。泛化可用于类、用例等各种模型元素。父类与子类的泛化关系图示为一个带空心三角形的直线,空心三角形紧挨着父类,如图10-14所示。,图10-14 类之间的泛化关系,类的继承关系可以是多层的。也就是说,一个子类本身还可以作另一个类的父类,层层继承下去。在泛化关系中如果附加一个约束条件(多重、不相交、完全和不完全),则会对继承进行限制。根据这些约束条件的不同,继承的类型可以分为多重继承、不相交继承、完全继承和不完全继承。,3依赖关系,依赖关系描述的是两个或多个模型元素之间的语义上的连接关系。其中一个模型元素是独立的,另一个模型元素是非独立的(依赖的),它依赖于独立的模型元素。如果独立的模型元素发生改变,将会影响依赖该模型元素的模型元素。简单地说,两个元素X、Y,如果X的变化必然导致Y的变化,则称Y依赖X。依赖关系不仅限于类,用例、包、构件之间都可以存在依赖关系。在UML中,具有依赖关系的两个模型元素用带箭头的虚线连接,箭头指向独立的类,如图10-15所示。,图10-15 类之间的依赖关系,4实现关系,实现关系指定两个实体之间的一个合同。实现是规格说明和其实现之间的关系,它将一种模型元素与另一种元素连接起来。实现关系通常在两种情况下被使用:在接口与实现该接口的类之间,在用例以及实现该用例的协作之间。在UML中,实现关系的符号与泛化关系的符号类似,用一条带指向接口的空心三角箭头的虚线表示,如图10-16所示。,图10-16 类之间的实现关系,5类的聚合与组合关系,聚合关系(Aggression)是关联的特例,表示是什么的一部分(is the part of)或者拥有一个(owns a)的关系,是一个装配件类与某个部件类相关联的一种关系,带有多种部件的装配件应包含多个聚合。在UML中聚合的图示方式为:在表示关联关系的直线末端加一个空心的小菱形,空心菱形紧挨着具有整体性质的类。,组合关系(Composition):是一种比聚合形式更强的组合。组合意味着整体与组成部件之间是互不可分的关系,作为整体的类会因为拥有某个部分的类而存在,否则也会消失。比如Windows系统中窗口包括标题(title)、工具栏(toolbar)、内容区(content)等。其中标题和内容区对窗口来说是必需的,它们与窗体之间的关系被建模为组合,而工具栏不是必需的,它与窗口之间的关系建模为聚合。组合关系图示为一个带实心菱形的直线,实心菱形紧挨着表示整体方的类,如图10-17所示。,图10-17 类的组合与聚合关系,任务三 使用Rational Rose绘制类图,操作一 创建类,在Rational Rose中可以通过几种途径来创建类。最简单的方法是利用模型的Logic视图中的类图标和绘图工具,在图中创建一个类。或者,在浏览器中选择一个包并使用快捷菜单的“New”“Class”,如图10-18所示。一旦创建了一个类,就可以通过双击打开它的对话框并在“Documentation”字段中添加文本来对这个类进行说明。,图10-18 创建类,操作二 创建方法,(1)选择浏览器中或类图上的类。(2)使用快捷菜单的“New”“Operation”,如图10-19所示。(3)输入方法的名字,可在“Documentation”字段中为该方法输入描述其目的的简要说明。,图10-19 创建方法和属性,操作三 创建属性,(1)选择浏览器中或类图上的类。(2)使用快捷菜单的“New”“Attribute”。(3)输入属性的名字,可在“Documentation”字段中为该属性输入描述其目的的简要说明。,操作四 创建类图,右击浏览器内的Logical视图,选择“new”“class diagram”。把浏览器内的类拉到类图中即可,如图10-20所示。,图10-20 创建类图,操作五 创建类之间的关系,类之间的关系在工具栏中显示。对于关联关系来说,双击关联关系,就可以在弹出的对话框中对关联的名称和角色进行编辑(见图10-21)。,图10-21 创建类之间关联的名称和角色,编辑关联关系的多重性的操作为:右键单击所要编辑的关联的一端,从弹出的菜单中选择“Multiplicity”,然后选择所要的基数(见图10-22)。,图10-22 关联的多重性编辑,任务四 认识对象图,操作一 对象图概述1对象图的概念,对象图是类图的实例,表示一组对象及它们之间的联系。对象是系统的详细状态在某一时刻的快照,可以被看做是类图在某一时刻的实例。类图表示类或类与类之间的关系,对象图则表示在某一时刻这些类的具体实例和这些实例之间的具体连接关系。对象图显示了类所对应的一组对象和它们之间的关系。对象图和类图一样反映系统的静态过程,但它是从实际的或原型化的情景来表达的。,2说明,对象图有时并非必需的;Rose 2003不支持对象图。,3在UML建模过程中使用对象图的目的,在UML建模过程中使用对象图的目的主要包括:捕获实例和连接;在分析和设计阶段创建;捕获交互的静态部分;举例说明数据/对象结构;详细描述瞬态图;由分析人员、设计人员和代码实现人员开发。,操作二 对象图组成,对象图的表示方式与类的表示方式几乎是一样的,主要差别在于对象的名字下面要加下划线。对象名有下列三种表达格式。(1)第一种格式形如:对象名:类名即对象名在前,类名在后,中间用冒号连接。(2)第二种格式形如:类名这种格式用于尚未给对象命名的情况。注意,类名前的冒号不能省略。,(3)第三种格式形如:对象名对象图如图10-23所示。,图10-23 对象图,操作三 类图VS对象图,类图表示类与类之间的关系,对象图则表示在某一时刻这些类的具体实例和这些实例之间的具体连接关系。对象图显示了类所对应的一组对象和他们之间的关系,对象图和类图一样反映系统的静态过程,但它是从实际的或原型化的情景来表达的。类图与对象图既有区别又有联系,如图10-24所示。,图10-24 对象图与类图的比较,
展开阅读全文