当前位置:文档之家› UML教程

UML教程

UML教程
UML教程

UML模型的基本概念

1 UML的建筑块

组成UML有三种基本的建筑块:

1、事物(Things)

2、关系(Relationships)

3、图(Diagrams)

事物是UML中重要的组成部分。关系把事物紧密联系在一起。图是很多有相互相关的事物的组。

1.1UML的事物

UML中有始终类型的事物:

1、结构事物(Structural things)

2、动作事物(Behavioral things)

3、分组事物(Grouping things)

4、注释事物(Annotational things)

这些事物是UML模型中最基本的面向对象的建筑块。它们在模型中属于最静态的部分,代表概念上等或物理上的元素。

1.1.1结构事物。

总共有七种结构化事物。首先是类(class),类是描述具有相同属性、方法、关系和语义的对象的集合。一个类实现一个或多个接口。在UML中类被画为一个矩型,通常包括它的名字、属性和方法。

第二种是接口(interface),接口是指类或组件提供特定服务的一组操作的集合。因此,一个接口描述了类或组件的对外的可见的动作。一个接口可以实现类或组件的全部动作,也可以只实现一部分。接口在UML中被画成一个圆和它的名字。

ISpelling 图1-2 接口

第三种是协作(collaboration ),协作定义了交互的操作,是一些角色和其它元素一起工作,提供一些合作的动作,这些动作比元素的总和要大。因此,协作具有结构化、动作化、维的特性。一个给定的类可能是几个协作的组成部分。这些协作代表构成系统的模式的实现。协作在UML 中用一个虚线画的椭圆和它的名字来表示。

图1-3 协作

第四种是use case ,use case 是描述一系列的动作,这些动作是系统对一个特定角色执行,产生值得注意的结果的值。在模型中use case 通常用来组织动作事物。Use case 是通过协作来实现的。在UML 中,use case 画为一个实线椭圆,通常还有它的名字。

图 1-4 use case

第五种是活动类(active class ),活动类是这种类,它的对象有一个或多个进程或线程。活动类和类很相象,只是它的对象代表的元素的行为和其他的元素是同时存在的。在UML 中活动类的画法和类相同,只是边框用粗线条。

EventManager

Suspend() Flush()

图1-5活动类

第六种是组件(component ),组件是物理上或可替换的系统部分,它实现了一个接口集合。在一个系统中,你可能会遇到不同种类的组件,例如COM+或JA V A BEANS 。组件在UML 中用如下的图表示:

图1-6 组件

第七种是结点(node ),结点是一个物理元素,它在运行时存在,代表一个可计算的资源,通常占用一些内存和具有处理能力。

一个组件集合一般来说位于一个结点,但有可能从一个结点转到另一个结点。结点通常用如下的图形表示:

Server

图1-7 结点

类、接口、协作、use case、活动类、组件和结点这七个元素是在UML模型中使用的最基本的结构化事物。系统中还有这七种基本元素的变化体,如角色、信号(某种类),进程和线程(某种活动类),应用程序、文档、文件、库、表(组件的一种)。

1.1.2 动作事物

动态事物是UML模型中的动态部分。它们是模型的动词,代表时间和空间上的动作。总共有两种主要的动作事物。

第一种是ineraction,interaction是由一组对象之间在特定上下文中,为达到特定的目的而进行的一系列消息交换而组成的动作。在interaction中组成动作的对象的每个操作都要详细列出,包括消息、动作次序(消息产生的动作),连接(对象之间的连接)。在UML中消息画成带箭头的直线,通常加上操作的名字。

display

图1-8 消息

第二种是状态机(state machine),状态机由一系列对象的状态组成。在UML中状态表示为下图:

图案1-9 状态

interaction和状态机是UML模型中最基本的两个动态事物元素,它们通常和其他的结构元素、主要的类、对象连接在一起。

1.1.3 分组事物

分组事物是UML模型中组织的部分,可以把它们看成是个盒子,模型可以在其中被分解。总共只有一种分组事物,称为包(package)。

包是一种将有组织的元素分组的机制。结构事物、动作事物甚至其他的分组事物都有可能放在一个包中。与组件(存在于运行时)不同的是包纯粹是一种概念上的东西,只存在于开发阶段。在UML中用如下图表示包:

图1-10 包

1.1.4 注释事物

注释事物是UML模型的解释部分。UML中用如下图表示:

Return copy of self

图1-11注释

1.1.5 UML中的关系

UML中有四种关系:

1.依赖(Dependencies)

图1-12 依赖

2.关联(Association)

0..1 *

图1-13 关联

3.一般化(generalization)

图1-14 一般化

4.实现(realuzation)

1.1.6 UML中的图

1、类图(class diagram)

2、对象图(class diagram)

3、Use case diagram

4、Sequence diagram

5、Collaboration diagram

6、Statechart diagram

7、Activity diagram

8、Compomnent diagram

9、Deployment diagram

关于这些图的详细介绍将在今后的章节中讲解。

第二章Hello World

记得在学习C语言的时候,教科书上的第一个程序就是叫Hello world,一个在屏幕上简单地打印出“Hello world!”语句的例子。在系统的学习UML语言之前我们来看一个简单的例子,让大家有一个系统的认识。

在java中一个在浏览器中显示“Hello World!”的Applet代码如下:

import java.awt.Graphics;

class HelloWorld extends java.applet.Applet{

public void paint( Graphics g ){

g.drawString("Hello World!", 10,10 );

}

}

代码的第一行:

import java.awt.Graphics;

使得程序可以使用Graphics类。前缀java.awt指出了类Graphics所在的包。

第二行代码:

class HelloWorld extends java.applet.Applet{

从Applet类派生出新的类HelloWorld,Applet类在java.applet包中。

接下来的三行代码:

public void paint( Graphics g ){

g.drawString("Hello World!", 10,10 );

}

声明了类HelloWorld的方法paint,在他的实现中调用了另一个方法drawString来输出“Hello

World!”。

我们可以很直接地为这个程序用UML建立模型。如图2-1。

图2-1 HelloWorld

图2-1表达了最基本的HelloWorld模型,但它还有很多东西没有表示出来。在我们的程序中Applet类和Graphics类的使用是不相同的。Applet用作HelloWorld类的父类,而Graphics 类用在方法paint的实现中。在UML模型中可以将这些关系表示为图2-2:

图2-2 HelloWorld的类图

在图2-2的类关系图中,我们用简单的矩行图标表示类Applet和Graphics类,没有将它们的属性和方法显露出来是为了简化。图中的空心箭头表示HelloWorld类是Applet类的子类,代表一般化。HelloWorld和Graphics之间的虚线箭头表示依赖关系,表示HelloWorld类使用了Graphics类。

到这里或许你认为已结束了,其实不然,如果认真研究java库中的Applet类和Graphics类会发现他们都是一个庞大的继承关系中的一部分。追踪Applet的实现可以得到另外一个类图,如图2-3所示:

图2-3 HelloWorld 继承图

图2-4 绘图机制

第三章 类

类是具有相同属性、操作、关系的对象集合的总称。通常在UML 中类被画成矩形。

名称

每个类都必须有一个名字,用来区分其它的类。类名是一个字符串,称为简单名字。路径名字是在类名前加包含类的包名为前缀。例如Wall、java::awt::Wall都是合法的类名。

属性

属性是指类的命名的特性,常常代表一类取值。类可以有任意多个属性,也可以没有属性。在类图中属性只要写上名字就可以了。如下图

也可以在属性名后跟上类型甚至缺省取值,如下图:

操作

操作是类的任意一个实例对象都可以调用的,并可能影响该对象行为的实现。操作在类图中如下图描述:

组织属性和方法

在画类图的时候没有必要将全部的属性和操作都画出来。实际上,在大部分情况下你也不可能在一个图中将类的属性和操作都画出来。在画类图时可以只将感兴趣的属性和操作画出来就可以了。可以用”...”表示还有属性或方法没有画出来。为了更好地组织属性或方法,可以

在一组功能相同的属性或方法前加上一个描述的前缀(<<>>中的文字),如下图:

职责

职责指的是类所担任的任务,类的设计要完成什么样的功能,要存担的义务。一个类可以有多种职责,设计得好的类一般至少有一种职责,在定义类的时候,将类的职责分解成为类的属性和方法。

通常在UML中在类图的最下方用单独的部分列出类的职责。

类的职责其实只是一段或多段文本描述。

通用建模技术

1.为系统的词汇建立模型

●标识出用户或解决问题时用来描述问题的东西,使用CRC卡片和基于USE-

CASE的分析来找出这些抽象。

●对每一个抽象,标识出它的职责集合。确定明确地定义了每一个类,在为所有

类确定的职责中取得了很好的平衡。

●为类提供实现类的职责所需要的属性和方法。

2.为系统的职责分配建立模型

●标识出行为相类似的对类

●找出这些类的职责

●把这些类作为整体看待,把职责多的类分为几个小类

●考虑这些类如何协作,重新进行类的职责分配已满足协作中没有类太多职责或

太少职责

3.为非软件的事务建立模型

●为抽象成类的事务建立模型

●如果你建模的是硬件本身包含有软件,建模时考虑为一种NODE,这样可以

对它进一步的分解。

4.为原始类型建模

●为类型或枚举建立模型

●如果要对这种类型取值范围进行说明,使用约束。

第四章关系

依赖关系(Dependency)

依赖关系是一种使用关系,特定事物的改变有可能会影响到使用该事物的事物,反之不成立。在你想显示一个事物使用另一个事物时使用依赖关系。

通常情况下,依赖关系体现在某个类的方法使用另一个类作为参数。在UML中你可以在其它的事物之间使用依赖关系,特别是包和节点之间。

图4-1 依赖关系

一般化(Generalization)

一般化是继承关系,是叫做“is-a-kind-of”的关系。在UML中你可以在包之间建立一般化关系。

图4-2 一般化

关联(Association)

关联是一种结构化的关系,指一种对象和另一种对象有联系。给定有关联的两个类,可以从一个类的对象得到另一个类的对象。关联有两元关系和多元关系。两元关系是指一种一对一的关系,多元关系是一对多或多对一的关系。一般用实线连接有关联的同一个类或不同

的两个类。当你想要表示结构化关系时使用关联。

有一些修饰可以应用于关联。 1. 名字:可以给关系取名字

2. 角色:关系的两端代表不同的两种角色

3. 重数:表示有多少对象通过一个关系的实例相连接

第五章 通用机制

UML 中的四种机制使地它简单和更易于使用,你可以在UML 语言的任何时候用同样的方法来使用,这四种机制是: ● specifications ● adornments

● common divisions ● extensibility

本章讨论adornments 和extensibility 这两种机制。

注释是最重要的一种修饰。一个注释在UML 中是一个图形符号,描述了和它相关联的元素或一组元素的限制或注释语。

上图就是一个使用注释的例子,图中右边的为注释符号。

UML 的扩充性机制允许你在控制的方式下扩充UML 语言。这一类的机制包括:stereotype ,标记值、约束。Stereotype 扩充了UML 的词汇表,允许你创建新的建筑块,这些建筑块从已有的继承而来,但特别针对你的问题。标记值扩充了UML 的建筑块的属性,允许你在元素的规格中创建新的信息。约束扩充了UML 建筑块的语义,允许你添加新的规则或修改已有的。你将使用这些机制来让UML 满足你的领域和开发的特别需要。

上面是一个使用扩充机制的例子。<>是stereotype,{version = 3.2}是标记值

术语和概念

注释是一种图形符号用来限制或给一个元素或一组元素加上注解。注释画成一个带折角的矩形,在矩形中加上文字或图形的注解,

stereotype是UML词汇的扩充,允许你创建新的UML建筑块,这些新的建筑块和原有的类似,但特别针对你自己的问题。通常stereotype画成用<<和>>包围起来的一个名字,通常放在另一个元素的名字之上。作为可选,stereotype可以画成加一个图标。

标记值是UML元素特性的扩充,允许你创建元素规格的新的信息。在UML中标记值画成{}内的字符串,跟在元素名后面。

限制是UML元素语义的扩充,允许你对一个UML元素添加新规则或修改存在的规则。限制通常画成{}内的字符串,放在关系附近。当然,你也可以把限制用注释来表示。

通用建模技术

1.建模注解

使用注释的目的是为了让模型更清晰,下面是使用注释的一些技巧:

●将注释放在你要注解的元素边上,写下注解的文字。用依赖关系的线将注释和被注

释的元素连起来会让人更明白。

●记住,你可以隐藏元素或使隐藏的元素可见。这就意味着你可以将注释不隐藏起来,

而她注释的元素是可见的,这样会使你的模型图简洁,在必要的地方让注释可见。

●如果你的注释很长或不仅仅是普通文本,你可以将你的注解放到一个独立的外部文

件中(如WORD文档)然后链接或嵌入到你的模型中。

下面是一个使用注解的例子:

建立新的建筑块

UML的建筑块如:类、接口、合作、组件、注释、关系等等,都在为具体问题建模的时候基本上是够用了。然而,如果你想扩展你的模型的词汇,如用来表示你的特定的问题领域,你需要stereotypes。

建立新的建筑块有如下的技巧:

●确定没有现成的基本的UML方法可以表达你的需要。如果你碰到一个普通的建模

问题,很有可能已经有某种标准的stereotype是你想要的。

●如果你确信没有现成的东西可以表达这些语义,首先找到一个UML中的最接近你

要建立的模型的元素(例如:类、接口、组件、注释、关系等等)然后为她定义一

个stereotype。值得一提的是你可以定义stereotypes的层次从而得到一般的

stereotypes和为它定义的特别的特性。这种方法尽量少用。

●通过对普通的stereotype定义一组标记值和对stereotype进行限制可以实现普通

stereotype不能实现的功能。

●如果你希望这些stereotype具有不同的视觉效果,为他们定义一个特别的图标。

Competition

上面是一个例子。假如你用活动图来为一个涉及到教练工作流和队员工作流的体育活动

建模。在这里,区别教练和运动员以及与其他的本领域的对象是有意义的。上面的图中有两个事物是很突出的,教练对象和队员对象。这里不仅仅是普通的类,更确切地说,他们现在是两个新的建筑块。因为定义了教练和队员stereotype,并且运用到了UML 的类上。在这个图上,被标记为:Coach和:Team的匿名实例,后者显示了不同的状态。

建模新属性

UML建筑块的基本属性如:类的属性和操作,包的内容等等,都足够描述清楚你要建立的模型。然而,如果你想扩展这些基本建筑块(或者用stereotype建立的新的建筑块)的属性,你就需要使用标记值。

下面是一些技巧:

●首先要确定的是你的需要无法用基本的UML表达。如果你碰到一个普通的建模问

题,很有可能已经有某种标准的标记值是你想要的

●如果你确定没有其他的方法可以表达你需要的语义,添加新的属性到一个单独的元

素或一个stereotype。继承的规则是适用的,也就是说对父亲定义的标记值对儿子

也具有。

建立新的语义

当你用UML建立模型的时候,你总是使用UML定义的规则,这实在是件好事,因为别的懂得如何读UML的人可以毫无偏差地读懂你想要表达的东西。然而,如果你发现你需要表达的语义是UML无法表达的或你想要修改UML的规则,这时你就需要使用限制了。下面是使用限制的一些技巧:

●首先要确定的是你的需要无法用基本的UML表达。如果你碰到一个普通的建模问

题,很有可能已经有某种标准的限制是你想要的。

●如果你确定没有其他的方法可以表达你需要的语义,用文本的形式在限制中写下你

的新语义,并且将他放在他涉及的元素附近。你可以使用依赖关系来明确地表示限

制和他涉及的元素之间的关联。

●如果你需要详细说明你的语义,你可以用使用OCL把它写下来。

下面的图是一个公司人力资源系统的一小部分:

member manager

这副图显示了每个Person可能是0个或多个Department的成员。每个Department至少要有一个Person成员。这副图进一步说明每个Department严格地有一个Person作为管理者,每个Person可以是0个或多个Department的被管理人员。所有的这些语义可以被简单的UML表达。然而,为了指出一个管理者必须也是Department的成员是多员关系所忽略的,也是简单的UML无法表达的。为了表达这种关系,你必须写下一个限制指出管理者是Department成员的一个子集。从子集到超集用依赖关系将两个关系联系起来。

第六章图

前言

建模实际上是对真实世界进行简化,从而可以更好地理解你要开发的系统。使用UML 中基本的建筑块如:类、接口、关系、协作、组件、依赖、继承等,可以建立你想要的模型。还可以利用第五章介绍的机制扩充UML来表达问题领域独特的东西。

图是你组织这些建筑块的方式。图代表着一系列的元素,这些元素常常被画成用点(事物)和弧(关系)相连的图。利用图来从不同的视角来观察系统。由于没有一个复杂的系统可以从一个透视图弄明白,UML定义了一些图使得我们可以独立地从几个不同的视角来了解系统。

好的图使得你要开发的系统是易于理解和可以接近的。选择好的图对系统建模让你找到系统中真正要问的问题,帮助你阐述清楚你的系统。

术语和概念

系统是组织起来完成特定目标的一组子系统。系统可以用一组模型,可能来自不同的视

角,进行描述。子系统是一组元素,其中一些通过包含的另外的元素组成特定的行为。模型是对系统进行语义上的抽象,它是整个真实系统的简化,为了更好地理解系统而创建的。图是一系列的元素,这些元素常常被画成用点(事物)和弧(关系)相连的图。利用图来从不同的视角来观察系统。

系统代表着你要开发的事物,通过不同的模型从不同的透视图来观察系统,这些透视图以图的形式表达。

在对真实世界进行建模的时候,你可以发现不管你的问题处于什么样的领域,你都会创建相同的图,因为他们代表着通用的模型的通用的视。通常,你利用下面的图来观察系统的静态部分:

1.类图(Class Diagram)

2.对象图(Object Diagram)

3.组件图(Compoment Diagram)

4.分布图(Deployment Diagram)

使用下面的五种额外的图来观察系统动态的方面:

https://www.doczj.com/doc/f93799572.html,ecase图

2.序列图(Sequence Diagram)

3.协作图(Collaboration Diagram)

4.状态图(Statechart Diagram)

5.活动图(Activity Diagram)

UML定义了这五种图。

结构化图(Structural Diagrams)

1.类图(Class Diagram) 类、接口和协作

2.对象图(Object Diagram) 对象

3.组件图(Compoment Diagram) 组件

4.分布图(Deployment Diagram) 节点(Notes)

类图类图显示了一组类、接口和协作以及它们之间的关系。类图在面向对象的建模设计中是很常用的。利用类图阐明系统的静态的设计。包含活动类(active classes)的类图通常用来说明看到的系统静态过程。

对象图对象图显示了一组对象和他们之间的关系。使用对象图来说明数据结构,类图中的类或组件等的实例的静态快照。对象图和类图一样反映系统的静态过程,但它是从实际的或原型化的情景来表达的。

组件图组件图显示了一些组件和它们之间的关系。使用组件图来说明系统的静态实现。组件图和类图是有联系的,通常一个组件可以映射成一个或多个类,接口或协作。

分布图分布图显示了一些节点和它们之间的关系。使用分布图来说明系统的静态结构。分布图和组件图是有联系的,通常一个节点封装了一个或多个组件。

动作图(Behavioral Diagrams)

UML中定义的动作图包括:

https://www.doczj.com/doc/f93799572.html,ecase图

2.序列图(Sequence Diagram)

3.协作图(Collaboration Diagram)

4.状态图(Statechart Diagram)

5.活动图(Activity Diagram)

Usecase图Usecase图显示了一些Usecase和角色(特殊的类)和他们的关系。使用usecase图来描述系统静态的功能场景。Usecase图对于组织和模型化系统的动作是很重要的。

序列图序列图是一种交互图(interaction diagram),强调的是时间和消息的次序。一个序列图显示了一系列的对象和在这些对象之间发送和接收的消息。对象通常是命名或匿名的类的实例,也可以代表其他事物的实例,例如协作、组件和节点。使用序列图来说明系统的动态情况。

协作图协作图是一种交互图(interaction diagram),强调的是发送和接收消息的对象之间的组织结构。一个协作图显示了一系列的对象和在这些对象之间的联系以及对象间发送和接收的消息。对象通常是命名或匿名的类的实例,也可以代表其他事物的实例,例如协作、组件和节点。使用协作图来说明系统的动态情况。

注意:序列图和协作图是同构的,它们相互之间可以转化而不损失信息。

状态图状态图显示了一个状态机,由状态、转换、事件和活动组成。使用状态图说明系统动态情况。状态图对于建模接口的动作、类的动作或协作的动作是重要的。状态图强调的是事件驱动的对象的动作,这在对反应式系统的建模是相当重要的。

活动图:活动图显示了系统中从一个活动到另一个活动的流程。活动图显示了一些活动,他们很象传统的流程图有序列或分支。活动图对于给系统的功能建模是很重要的。

活动图强调的是对象之间的流程控制。

通用建模技巧

1.对系统的不同视进行建模

●决定采用哪个视才能最好地表达系统的结构,以及暴露出项目的技术风险。前面讨

论的五种图是很好的开始点。

●对每一种视图决定要画那些图,通常一个视图会对应多个图

●作为你的过程计划的一部分,决定那些图是要作为项目文档保存。

●不要认为一次能够将图画好,最好准备一个装废纸的房间。

如果你是一个反应式的系统或系统的重点在处理流程上,你可能想包括状态图和活动图来建立系统的动作模型。

同样的,如果你是一个Client/Server系统,你可能想用组件图和分布图来为你的系统的物理细节进行建模。

最后,如果你是要对一个复杂的、分布式的系统建模,你需要使用所有的UML的图来

2.不同抽象层次建模

你不仅要从不同的视角观察系统,还要系统进行不同层次的抽象,因为参加项目开发的人可能对同一个系统的视图需要不同的抽象层次。对于程序员来说,他希望看到的是类的属性、方法,而对于一个系统分析员使用usecase场景来说只要看到存在这么个类就可以了,这里程序员要求的抽象层次较底层。可以通过隐藏或显示不同层次的细节来实现不同抽象层次的模型,或者创建不同层次抽象的图。

●考虑你的读者的需要,从一个给定的模型开始

●如果你的读者使用模型是构造一个实现,他需要的是较低层的抽象,也就是说他需

要更多的细节。如果他利用概念模型只是为了和最终用户交流,他需要的是高层次的抽象,不需要细节的东西。

3.复杂视图建模

●首先确信没有更好的方法可以利用高层次的抽象表达要表达的信息,即便是删除一

部分图或保留细节到另外一部分。

●如果你隐藏了你所能隐藏的细节而你的图还是很复杂,考虑将一部分元素分组放到

包里或放到较高层次的协作中,然后在你的图中只画这些包和协作。

●如果你的图还是很复杂,使用注释或颜色来钩出你的重点好引起读者的注意

●如果你的图依然很复杂,哈哈,打印出来,贴到墙上,将读者叫来亲自讲解给他听

吧。希望他能明白……其实你可以自己慢慢研究,最后发现简化还是可以的。

第七章类图

前言

类图是在面向对象的系统模型中使用得最普遍的图。类图包含了一组类、接口和协作以及他们之间的关系。

你使用类图来为系统的静态视图建模。通常这包括模型化系统的词汇(从系统的词汇表中发现类),模型化协作,或则模型化模式。类图还是一些相关的图的基础,包括组件图、分布图。

类图的重要性不仅仅体现在为系统建立可视化的、文档化的结构模型,同样重要的是构建通过正向和反向工程建立执行系统。

术语和概念

类图:类图是一组类、接口和协作以及他们之间的关系构成的。

类图通常包含如下的内容:

●类

●接口

●协作

●依赖关系、继承关系、关联关系

同其他的图一样,类图也可以包含注解和限制。

类图中也可以包含包和子系统,这两者用来将元素分组。有时后你也可以将类的实例放到类图中。

你通常通过下面三种方式使用类图:

1,为系统词汇建模型

为系统的词汇建模实际上是从词汇表中发现类,发现它的责任。

2,模型化简单的协作

协作是指一些类、接口和其他的元素一起工作提供一些合作的行为,这些行为不是简单地将元素加能得到的。例如:当你为一个分布式的系统中的事务处理过程建模型时,你不可能只通过一个类来明白事务是怎样进行的,事实上这个过程的执行涉及到一系列的类的协同工作。使用类图来可视化这些类和他们的关系。

3,模型化一个逻辑数据库模式

想象模式是概念上设计数据库的蓝图。在很多领域,你将想保存持久性数据到关系数据库活面向对象的数据库。你可以用类图为这些数据库模式建立模型。

通用建模技术

没有类是单独存在的,他们通常和别的类协作,创造比单独工作更大的语义。因此,除了捕获系统的词汇以外,还要将注意力集中到这些类是如何在一起工作的。使用类图来表达这种协作。

●确定你建模的机制。机制代表了部分你建模的系统的一些功能和行为,这些功能和

行为是一组类、接口和其他事物相互作用的结果。

●对于每个机制,确定类、接口和其他的参与这个协作的协作。同时确定这些事物之

间的关系。

●用场景来预排这些事物,沿着这条路你将发现模型中忽略的部分和定义错误的部

分。

●确定用这些事物的内容来填充它们。对于类,开始于获得一个责任(类的职责),

然后,将它转化为具体的属性和方法。

图7-1 模型化简单的协作

图7-1是一个自治机器人的类图。这张的图焦点聚集那些让机器人在路上行走的机制对应的类上。你可以发现一个虚类Motor和两个从它派生出来的类:SteeringMotor和MainMotor。这两个类都从它的父亲Motor继承了五个方法。这两个类又是另一个类Driver的一部分。类PathAgent和Driver有一个1对1的关系,和CollisionSensor有1

UML系统建模基础教程答案

第一章面向对象设计与UML 填空题 1 UML 2 类名 属性操作 3 封装继承多态 4 继承 5 对象模型动态模型功能模型 2.选择题 1 C 2 A B C D 3 A B C D 4 A B C 5 A 3.简答题 1.试述对象和类的关系。 类是具有相同或相似结构、操作和约束规则的对象组成的集合 而对象是某一类的具体化实例 每一个类都是具有某些共同特征的对象的抽象。类与对象的关系就如模具和铸件的关系 类的实例化结果就是对象 而对一类对象的抽象就是类.类描述了一组有相同特性和相同行为的对象。 2.请简要叙述面向对象的概念。 面向对象设计是以数据为中心,使用类作为表现数据的工具,类是划分程序的基本单位,而函数在面对对象中成了类的接口。 3.请简述面向对象设计的原则有哪些。 面向对象设计的准则包括模块化、抽象、信息隐藏、低耦合和高内聚等。 4.软件开发的模式有几种?它们的优缺点各是什么? 瀑布模型、喷泉模型、基于组件的开发模型、xp开发模型 (1)优点:有利于软件开发过程中人员的组织和管理。完成前一阶段后,再关注后一阶段,这样有利于开发大型的项目。 缺点:只有在项目生命周期的后期才能看到结果;通过过多的强制完成日期和里程碑来跟踪各个项目阶段;在软件需求分析阶段,要完全地明确系统用户的所有需求是一件比较困难的事情,甚至可以说完全确定是不太可能的。 (2)优点:可以提高软件项目的开发效率,节省开发时间,适用于面向对象的软件开发过程。 缺点:由于喷泉模型在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员,不利于项目的管理。 第二章UML通用知识点综述

.填空题 1 依赖泛化关联实现 2 视图图模型元素 3 实现视图部署视图 4 构造型标记值约束 5 规格说明修饰通用划分 2.选择题 1 D 2 C 3 A 4 A B 5 D 3.简答题 1 在UML中面向对象的事物有哪几种 在UML中 定义了四种基本的面向对象的事物 分别是结构事物、行为事物、分组事物和注释事物等。 2 请说出构件的种类。 构件种类有 源代码构件、二进制构件和可执行构件。 3 请说出试图有哪些种类。 在UML中主要包括的视图为静态视图、用例视图、交互视图、实现视图、状态机视图、活动视图、部署视图和模型管理视图。 4 请说出视图和图的关系。 视图和图是包含和被包含的关系。在每一种视图中都包含一种或多种图。 5 请简述UML的通用机制。 UML提供了一些通用的公共机制 使用这些通用的公共机制 通用机制 能够使UML 在各种图中添加适当的描述信息 从而完善UML的语义表达。通常 使用模型元素的基本功能不能够完善的表达所要描述的实际信息 这些通用机制可以有效地帮助表达 帮助我们进行有效的UML建模。UML提供的这些通用机制 贯穿于整个建模过程的方方面面。前面我们提到 UML的通用机制包括规格说明、修饰和通用划分三个方面。 第三章Rational统一过程 1.填空题 1 角色活动产物工作流 2 逻辑视图过程视图物理视图开发视图用例视图 3 设计开发验证 4 二维 5 周期迭代过程里程碑 2.选择题 1 A B C D 2 A C D 3 A C D 4 A B C 5 A B C D 3.简答题 1 请描述迭代过程有几个阶段。初始阶段、细化阶段、构造阶段和移交阶段。 2 Rational统一过程以一种能够被大多数项目和开发组织都适用的形式建立起来 其所包含的六项最佳时间指的是什么 迭代式软件开发、需求管理、基于构件的架构应用、建立可视化的软件模型、软件质量验证和软件变更控制。 3 在Rational统一过程的开发流程中 分别使用哪几种最主要的建模元素来进行表达 在Rational统一过程的开发流程中 分别使用角色、活动、产物和工作流四种建模元素来进行表达。 4 对于一个以架构为中心的开发组织 需要对架构的那些方面进行关注 对于一个以架构

RationalRose【UML建模】教程+使用详解

Rational Rose 简介 Rose模型(包括所有框图、对象和其他模型元素)都保存在一个扩展名为.mdl的文件中。 1. 环境简介 1.1 Rational Rose可视化环境组成 Rose界面的五大部分是浏览器、文档工具、工具栏、框图窗口和日志。见图1-1。 图1-1:Rose界面 ●浏览器:用于在模型中迅速漫游。 ●文档工具:用于查看或更新模型元素的文档。 ●工具栏:用于迅速访问常用命令。 ●框图窗口:用于显示和编辑一个或几个UML框图。 ●日志:用于查看错误信息和报告各个命令的结果。

1.2浏览器和视图 浏览器是层次结构,用于在Rose模型中迅速漫游。在浏览器中显示了模型中增加的一切,如参与者、用例、类、组件等等。Rose浏览器见图1-2。 浏览器中包含四个视图:Use Case视图、Logical视图、Component视图和Deployment 视图。点击每个视图的右键,选择new就可以看到这个视图所包含的一些模型元素。 图1-2:Rose浏览器 1. 3框图窗口 在图1-3所示的框图窗口中,我们可以浏览模型中的一个或几个UML框图。改变框图中的元素时,Rose自动更新浏览器。同样用浏览器改变元素时,Rose自动更新相应框图。这样,Rose就可以保证模型的一致性。 图1-3:框图窗口

2.UML各类框图的建立 2. 1建立用例图use case diagram 从用例图中我们可以看到系统干什么,与谁交互。用例是系统提供的功能,参与者是系统与谁交互,参与者可以是人、系统或其他实体。一个系统可以创建一个或多个用例图。 ●创建用例图(图2-1-1) 在浏览器的Use Case视图中,双击Main,让新的用例图显示在框图窗口中。也可以新建一个包(右击Use Case视图,选择new→package,并命名),然后右击这个新建包的,选择new→use case diagram。 对系统总的用例一般画在Use Case视图中的Main里,如果一个系统可以创建多个用例图,则可以用包的形式来组织。 图2-1-1:创建用例图 ●创建参与者(图2-1-2) (1)在工具栏中选择“Actor”,光标的形状变成加号。 (2)在用例图中要放置参与者符号的地方单击鼠标左键,键入新参与者的名 称,如“客户”。 若要简要的说明参与者,可以执行以下步骤: (1)在用例图或浏览器中双击参与者符号,打开对话框,而且已将原型(stereotype)设置

UML基础与建模实用教程

UML概述 UML图包括: 用例图:帮助开发团队以一种可视化的方式理解系统的功能需求,包括基于基本流程的“角色”关系以及系统用例之间的关系 类图:显示了系统的静态结构,表示不同的实体(人、事物和数据)是如何彼此相关联的。可表示逻辑类(用户的业务所涉及的事物),实现类(程序员处理的实体) 序列图:显示了一个具体用例或者用例一部分的详细流程 状态图:表示某个类所处的不同状态以及该类在这些状态中的转换过程 活动图:表示两个或者更多的对象之间在处理某个活动时的过程控制流程构件图:提供系统的物理视图,它是根据系统的代码构件显示系统代码的整个物理结构 部署图:显示在系统中的不同的构件在何处物理运行以及如何进行彼此的通信。 类间关系 类之间的关系 1.种类: Generalization(泛化),Dependency(依赖关系)、Association(关联关系)、Aggregation(聚合关系)、Composition(合成关系)。 2.其中Aggregation(聚合关系)、Composition(合成关系)属于Association(关联关系),是特殊的Association关联关系。 3.Generalization(泛化)表现为继承或实现关系(is a)。具体形式为类与类之间的继承关系,接口与接口之间的继承关系,类对接口的实现关系。 4.Association关联关系表现为变量(has a )。类与类之间的联接,它使一个类知道另一个类的属性和方法。例如如果A依赖于B,则B体现为A的全局变量。关联关系有双向关联和单向关联。双向关联:两个类都知道另一个类的公共属性和操作。单向关联:只有一个类知道另外一个类的公共属性和操作。大多数关联应该是单向的,单向关系更容易建立和维护,有助于寻找可服用的类。

UML系统建模基础教程课后习题答案

UML系统建模基础教程课后答案 第一章面向对象设计与UML (1)UML (2)封装继承多态 (3)继承 (4)瀑布模型喷泉模型基于组件的开发模型XP开发模型 2.选择题 (1) C (2) A B C D (3) A B C D (4)ABC 3?简答题1?试述对象和类的关系。 (1)类是具有相同或相似结构、操作和约束规则的对象组成的集合,而对象是某一类的具体化实例,每一个类都是具有某些共同特征的对象的抽象。类与对象的关系就如模具和铸件的关系,类的实例化结果就是对象,而对一类对象的抽象就是类?类描述了一组有相同特性和相同行为的对象。 第二章UML通用知识点综述

1?填空题 (1)依赖泛化关联实现 (2)视图图模型元素 (3)实现视图部署视图 (4)构造型标记值约束 (5)规格说明修饰通用划分 2.选择题 (1)D (2)C (3)A (4) A B (5)D 3?简答题 (1 )在UML中面向对象的事物有哪几种? 在UML中,定义了四种基本的面向对象的事物,分别是结构事物、行为事物、分组事物和注释事物等。 (2 )请说出构件的种类。 构件种类有:源代码构件、二进制构件和可执行构件。 (3)请说出试图有哪些种类。 在UML中主要包括的视图为静态视图、用例视图、交互视图、实现视图、状态机视图、活动视图、部署视图和模型管理视图。 (4 )请说出视图和图的关系。

视图和图是包含和被包含的关系。在每一种视图中都包含一种或多种图 (5)请简述UML的通用机制。 UML提供了一些通用的公共机制,使用这些通用的公共机制(通用机制)能够使UML在各种图中添加适当的描述信息,从而完善UML的语义表达。通常,使用模型元素的基本功能不能够完善的表达所要描述的实际信息,这些通用机制可以有效地帮助表达,帮助我们进行有效的UML建模。UML提供的这些通用机制,贯穿于整个建模过程的方方面面。前面我们提到,UML的通用机制包括规格说明、修饰和通用划分三个方面。 第三章Rational统一过程 1?填空题 (1)角色活动产物工作流 (2)逻辑视图过程视图物理视图开发视图用例视图 (3)设计开发验证 (4)二维 (5)周期迭代过程里程碑 2?选择题 (1) A B C D (2) A C D (3) A C D (4)ABC (5) A B C D

StarUML使用说明-指导手册

StarUML使用说明-指导手册 原著:Stephen Wong 翻译:火猴 1.综述 StarUML是一种生成类图和其他类型的统一建模语言(UML)图表的工具。这是一个用Java语言描述的创建类图的简明手册。 StarUML(简称SU),是一种创建UML类图,并能够自动生成Java的“stub code”的工具。SU也可以做JAVA逆向工程,以产生相应的UML图表。 在本教程中,我们将使用SU设计一个pizza饼。执行下列步骤,可以创建如下面所示的UML图。SU可以生成反映类结构的代码,而不是任何对象的具体行动。因此,在使用SU创建图表后,你会为此stub code添加剩余的功能性代码,填写每种方法本来应该做的事。 2.安装 首先,我们必须先安装将要使用的软件。StarUML ,是一个开放源码软件,遵循GPL协议许可(GNU公共许可证),并免费提供下载。 3.启动 安装以后就可以启动该程序。 4.添加新工程 然后,一个名叫:New Project By Approach的对话框会弹出。选择“Empty Project”并且按下"确定"。这里建议你不要勾选"设置为默认的做法" 复选框。

5.选择模块 在右边的“Model Explorer”框中选定“Untitled”模块。 6.添加模块 通过“Model”主菜单,或右击选定的模型,可以" Add/Design Model "

7.添加类图 通过“Model”主菜单,或右击选定模型,可以“Add Diagram/Class Diagram”:

8.设置profile 通过“Model/Profile...”菜单去设置工程所需的profile。这决定了工程所使用的规则和约定。一定要包含"JAVA Porfile"这一项目。 9.保存工程 立即就保存工程,这样在出现问题的时候,您就不会丢失信息。 从“File ”菜单,选择“Save”,并选择一个地方以保存工程。你的StarUML 项目现在应该看起来的是这样的:

开源UML建模工具Bouml-入门教程

Bouml -教程 本教程主要为了帮助您第一次起用BOUML。在这里仅显露BOUML少数的特点,而BOUML完整描述参见其参考手册。 本教程必须按序阅读,因为我不会每次重复诸如调用菜单等一般性的命令。 启动 当您执行BOUML出现下面消息,按确定(OK)按钮。但你将不得不定义你自己的有效的BOUML标识:(1~127中的整数)。 在BOUML视窗显现(图样取决于使用的Qt版本,这里是在Linux下运行的2.4版本,与Windows版本兼容):

bouml窗口由三个部分组成: 左边的子窗口是一个展示您项目的浏览器,可由鼠标或上下左右键进行导航。 黑体的字体表示该项是可修改的,当您没有文件写权限时则一个项是只读。 右下角的子窗口是用来显示/修改与当前所选项相关联的注释。 右上方的部分是用来显示/修改图表,这些窗口可以的最大化或最小化。 显然地,个别子窗的大小会发生改变,当把鼠标放在它们之间的分拆处时,可以更改窗口大小。注意:如果你有双监视器配置,更好的办法是设置环境变量BOUML_LIMIT_DESKTOP,参见此地。 在此水平下你必须创建一个新的项目,或加载一个已经存在的项目。 创建一个新项目 这儿,我们创建一个新项目:在Project菜单中选择New菜单项,呈现一个文件对话框(它的外观取决于所用的系统和窗口管理器),请求输入项目名称,你必须选择一个目录用以存放项文件,并选择输入项目名字,我输入项目名为foo,放置在/ tmp目录之下: 在这种情况下BOUML 在/tmp下创建目录foo(即\tmp\foo),并将某些文件(包括foo.prj) 放置在/tmp/foo目录之下。当重新加载工程时(foo.prj),这些文件都会加载。 !注意:不要重命名或删除由BOUML产生的文件,以及目录本身!

UML基础与ROSE建模实用教程课后习题及答案

UML基础与Rose建模实用教程课后习题及答案 第1章面向对象概述 1.填空题 (1)软件对象可以这样定义:所谓软件对象,是一种将状态和行为有机结合起来形成的软件构造模型,它可以用来描述现实世界中的一个对象。 (2)类是具有相同属性和操作的一组对象的组合,即抽象模型中的“类”描述了一组相似对象的共同特征,为属于该类的全部对象提供了统一的抽象描述。 (3)面向对象程序的基本特征是抽象、封装、继承和多态。 2.选择题 (1)可以认为对象是ABC。 (A)某种可被人感知的事物 (B)思维、感觉或动作所能作用的物质 (C)思维、感觉或动作所能作用的精神体 (D)不能被思维、感觉或动作作用的精神体 (2)类的定义要包含以下的要素ABD。 (A)类的属性(B)类所要执行的操作 (C)类的编号(D)属性的类型 (3)面向对象程序的基本特征不包括B。 (A)封装(B)多样性 (C)抽象(D)继承 (4)下列关于类与对象的关系的说法不正确的是A。 (A)有些对象是不能被抽象成类的 (B)类给出了属于该类的全部对象的抽象定义 (C)类是对象集合的再抽象 (D)类用来在内存中开辟一个数据区,并存储新对象的属性 3.简答题 (1)什么是对象?试着列举三个现实中的例子。 对象是某种可被人感知的事物,也可是思维、感觉或动作所能作用的物质或精神体,例如桌子.椅子.汽车等。 (2)什么是抽象? 抽象是对现实世界信息的简化。能够通过抽象将需要的事物进行简化、将事物特征进行概括、将抽象模型组织为层次结构、使软件重用得以保证。 (3)什么是封装?它有哪些好处? 封装就是把对象的状态和行为绑在一起的机制,使对象形成一个独立的整体,并且尽可能地隐藏对象的内部细节。封装有两个含义;一是把对象的全部状态和行为结合在一起,形成一个不可分割的整体。对象的私有属性只能够由对象的行为来修改和读取。二是尽可能隐蔽对象的内部细节,与外界的联系只能够通过外部接口来实现。通过公共访问控制器来限制对象的私有属性,使用封装具有以下好处:避免对封装数据的未授权访问、帮助保护数据的完整性、当类的私有方法必须修改时,限制了在整个应用程序内的影响。 (4)什么是继承?它有哪些好处? 继承是指特出类的对象拥有其一般类的属性和行为。继承意味着“自动地拥有”,即在特殊类中不必重新对已经在一般类中定义过的属性和行为进行定义,而是特殊类自动地、隐含地拥有其一般类的属性和行为。通过继承可使派生类能够比不使用继承直接进行描述的类更加简洁、能够重用和扩展现有类库资源、使软件易于维护和修改。 (5)面向对象分析的过程有哪些? 面向对象的分析的过程包括:获取需求内容陈述、建立系统的对象模型结构、建立对象的动态

Staruml使用指南

StarUML使用指南 第一章StarUML概述 本章包含StarUML?概述,StarUML? and UML 的简要介绍和StarUML?新特征及总体组织的纲要。 ?什么是StarUML ?主要特征 ?系统需求 StarUML?是支持UML (Unified Modeling Language(统一模型语言))的建模平台软件。基于UML1.4版本,提供11种不同类型的图,而且采纳了UML2.0的表示法(notation.)。它通过支持UML轮廓(profile)的概念积极地支持UMD(Model DrivenArchitecture(模型驱动结构))方法。StarUML?特点在于,用户环境可定制,功能上的高度可扩充。运用StarUML ?,顶级领先的软件模型工具之一,可以保证您的软件项目高质量、高效率。 StarUML是什么 适合用户的UML工具 StarUML?提供了对用户环境最大化可定制支持,通过定制所提供一些变量,可以适应用户开发方法、项目平台及各种编程语言。 真正的UMD支持 软件结构是可以延续10年甚至更长时间的重大过程。OMG(Object Management Group(对象管理组织))想用MDA技术创建平台独立的模型,允许平台独立的模型的需求自动获取,或者平台独立的模型生成的代码自动化。StarUML?真正实现了UML1.4标准,而且用2.0的表示法,提供UML轮廓的观念。允许创建平台独立的模型。通过简要的摸版文档,用户很容易得到他们的最终产品。 高可扩充及适应性 StarUML?有高度可扩充及适应能力。为扩充功能,该工具采用了插件(Add-In)框架。它提供访问全部的模型/原模型的功能,通过COM自动化,菜单和选项也都是可扩充的。而且用户还可以根据他们自己的方法论来创建自己的方法和框架。该工具还可以集成任何其他的外部工具。 主要特征 StarUML?具有以下新特征

UML系统建模基础教程习题答案(清华大学出版社)

第一章面向对象设计与UML 对象:是面向对象系统基本构造块,是一些相关变量和方法的软件集。 类:是具有相同属性和操作的一组对象的组合,也就是说,抽象模型中的“类”描述了一组相似对象的共同特征,为属于该类的全部对象提供了统一的抽象描述。 消息:是指描述事件发生的信息,是对象间相互联系和相互作用的方式。 事件:是指一种由系统预先定义而由用户或系统发出的动作。事件作用于对象,对象识别事件并作出相应的反应。 面对对象的三大要素: 封装:就是把对象的状态和行为绑到一起的机制,使对象形成一个独立的整体,并且尽可能地隐藏对象的内部细节。 继承:是一种连接类与类之间的层次模型,是指特殊类的对象拥有其一般的属性和行为。多态:是指两个或多个属于不同类的对象中,同一个函数名对应多个具有相似功能的不同函数,可以使用相同的调用方式来调用这些具有不同功能的同名函数。 (1)试述对象和类的关系 答:类是具有相同或相似结构、操作和约束规则的对象组成的集合,而对象是某一类的具体化实例,每一个类都是具有某些共同特征的对象的抽象。类与对象的关系就如模具和铸件的关系,类的实例化结果就是对象,而对一类对象的抽象就是类.类描述了一组有相同特性和相同行为的对象。 (2)请简要叙述面向对象的概念 答:面向对象技术是一种以对象为基础,以事件或信息来驱动对象执行处理的程序设计技术。从程序设计方法上来讲,它是一种自下而上的程序设计方法,它不像面向过程程序设计那样一开始就需要使用一个主函数来概括出整个程序,面向对象程序设计往往从问题的一部分着手,一点一点地构建出整个程序。 (3)软件开发的模式有几种?它们的优缺点各是什么? 答:瀑布模型、喷泉模型、基于组件的开发模型、XP开发模型 瀑布模型—优点:提供了软件开发的基本框架;有利于软件开发过程中人员的组织与管理; 缺点:1、只有在项目生命周期的后期才能看到结果;2、通过过多的强制完成日期和里程碑来跟踪各个项目阶段;3、在软件需求分析阶段,要完全地确定系统用户的所有需求是一件比较困难的事情,甚至可以说完全确定是不太可能的。 瀑布模型—优点:可以提高软件项目的发开效率,节省开发时间,适应于面向对象的软件开发过程。 缺点:在开发过程中需要大量的开发人员,不利于项目的管理;该模型要求严格管理文档,使得审核的难度加大,尤其是面对可能随时加入的各种信息、需求与资料的情况。基于组件的开发模型—优点:构件组装模型导致了软件的复用,提高了软件开发的效率。 缺点:由于采用自定义的组装结果标准,缺乏通用的组装结构标准,因而引入了较大的风险,可重用性和软件高效性不易协调,需要精干的有经验的分析和开发人员,一般开发人员插不上手。 XP开发模型—优点:1、采用简单计划策略,不需要长期计划和复杂模型,开发周期短;2、在全过程中采用迭代增量开发、反馈修正和反复测试的方法,软件质量有保证;3、能够适应用户经常变化的需求,提供用户满意的高质量软件。 第二章UML通用知识点综述 UML的元素:视图、图和模型元素

uml系统建模基础教程(清华大学出版社)课后题答案

UML习题答案 第一章面向对象设计与UML 1.填空题 (1)基本构造块UML规则公共机制 (2)名字属性操作 (3)封装继承多态 (4)继承 (5)瀑布模型喷泉模型基于组件的开发模型XP开发模型 2. 选择题 (1)C (2)A B C D (3)A B C D (4)A B C (5)A 3.简答题 (1)类是具有相同或相似结构、操作和约束规则的对象组成的集合,而对象是某一类的具体化实例,每一个类都是具有某些共同特征的对象的抽象。类与对象的关系就如模具和铸件的关系,类的实例化结果就是对象,而对一类对象的抽象就是类.类描述了一组有相同特性和相同行为的对象。 (2)1.UML是一种语言。 2. UML是用来建模的。 3.UML是统一的标准。(3)建模能够帮助我们按照实际情况或按我们需要的形式对系统进行可视化;提供一种详细说明系统的结构或行为的方法;给出一个指导系统构造的模板;对我们所做出的决策进行文档化。 在建模时应遵循以下原则:选择要创建什么模型对如何动手解决问题和如何形成解决方案有着意义深远的影响;每一种模型可以在不同的精度级别上表示;最好的模型是与现实相联系的;单个模型不充分;对每个重要的系统最好用一组几乎独立的模型去处理。 (4)UML和面向对象软件开发之间有紧密的关系,可以说是面向对象软件开发促使了UML的产生。但是由于在UML标准化的过程中,吸收了业务建模、工作流建模和数据库建模等领域的标准规范,形成了适应性很强的标准。 (5)在软件设计过程中,使用UML建模是为了能够更好地理解正在开发的系统。通过UML建模,可以达到以下目的:有助于按照实际情况或按照所需要的样式对系统进行可视化;能够规约系统的结构或行为;给出了指导构造系统的模板;对做出的决策进行文档化。 第二章UML通用知识点综述 1.填空题 (1)依赖泛化关联实现 (2)视图图模型元素 (3)实现视图部署视图 (4)构造型标记值约束 (5)规格说明修饰通用划分 2. 选择题

UML系统建模基础教程课后简答题答案

第一章面向对象设计与UML 简答题 (1)试述对象和类的关系 答:类是具有相同或相似结构、操作和约束规则的对象组成的集合,而对象是某一类的具体化实例,每一个类都是具有某些共同特征的对象的抽象。类与对象的关系就如模具和铸件的关系,类的实例化结果就是对象,而对一类对象的抽象就是类.类描述了一组有相同特性和相同行为的对象。 (2)请简要叙述面向对象的概念 答:面向对象技术是一种以对象为基础,以事件或信息来驱动对象执行处理的程序设计技术。从程序设计方法上来讲,它是一种自下而上的程序设计方法,它不像面向过程程序设计那样一开始就需要使用一个主函数来概括出整个程序,面向对象程序设计往往从问题的一部分着手,一点一点地构建出整个程序。 (3)请简述面向对象设计的原则有哪些。 (4)软件开发的模式有几种?它们的优缺点各是什么? 答:瀑布模型、喷泉模型、基于组件的开发模型、XP开发模型 瀑布模型—优点:提供了软件开发的基本框架;有利于软件开发过程中人员的组织与管理; 缺点:1、只有在项目生命周期的后期才能看到结果;2、通过过多的强制完成日期和里程碑来跟踪各个项目阶段;3、在软件需求分析阶段,要完全地确定系统用户的所有需求是一件比较困难的事情,甚至可以说完全确定是不太可能的。 瀑布模型—优点:可以提高软件项目的发开效率,节省开发时间,适应于面向对象的软件开发过程。 缺点:在开发过程中需要大量的开发人员,不利于项目的管理;该模型要求严格管理文档,使得审核的难度加大,尤其是面对可能随时加入的各种信息、需求与资料的情况。基于组件的开发模型—优点:构件组装模型导致了软件的复用,提高了软件开发的效率。 缺点:由于采用自定义的组装结果标准,缺乏通用的组装结构标准,因而引入了较大的风险,可重用性和软件高效性不易协调,需要精干的有经验的分析和开发人员,一般开发人员插不上手。 XP开发模型—优点:1、采用简单计划策略,不需要长期计划和复杂模型,开发周期短;2、在全过程中采用迭代增量开发、反馈修正和反复测试的方法,软件质量有保证;3、能够适应用户经常变化的需求,提供用户满意的高质量软件。

UML系统建模基础教程 课后习题(1-6章)

习题一 1.填空题 (1)______ 是面向对象技术领域内占主导地位的标准建模语言,它统一了过去相互独立的数十种面向对象的建模语言共同存在的局面,形成了一个统一的,公共的,具有广泛适合性德建模语言。 (2)类的定义要包含_____、_____和_________要素。 (3)面向对象程序的三大要素是_____、________和__________。 (4)面向对象方法中的_____机制使子类可以自动地拥有(复制)父类全面属性和操作。(5)面向对象的系统分析要确定的三个系统模型是______、_________和_______。 2.选择题 (1)如果对一个类的意义进行描述,那么应该采用() A.标记值 B.规格描述 C.注释 D.构造型 (2)建立对象的动态模型的步骤有() A.准备脚本 B.确定事件 C.构造类型图 D.准备事件跟踪表 (3)软件的开发模式有() A.瀑布模型 B.xp开发模型 C.喷泉模型 D.构建开发模型 (4)下列关于类和对象的关系说法正确的是() A.有些对象是不能被抽象成类的 B.类给出了属于该类的全部对象的抽象定义 C.类是对象集合的再抽象 D.类是用来在内存中开辟一个数据区,存储新对象的属性 (5)()模型的缺点是缺乏灵活性,特别是无法解决软件需求不明确或不准确的问题。 A.瀑布模型 B.增量模型 C.原型模型 D.螺旋模型 3.解答题 (1)试述对象和类的关系。 (2)请简要叙述面向对象的概念。 (3)请简述面向对象设计的原则有哪些。 (4)软件开发的模式有几种?它们的优缺点各是什么? 习题二 1.填空题 (1)UML中主要包括四种关系,分别是________、________、________和________。(2)从可视化的角度对UML的概念和模型进行划分,可将UML的概念和模型分为________、________和________。 (3)物理视图包含两种视图,分别是________和________。 (4)常用的UML扩展机制分别是________、________和________。 (5)UML的通用机制分别是________、________和________。 2.选择题 (1)UML中的事物包括结构事物,分组事物,注释事物和________。 A.实体事物 B.边界事物 C.控制事物 D.动作事物

UML教程

UML模型的基本概念 1 UML的建筑块 组成UML有三种基本的建筑块: 1、事物(Things) 2、关系(Relationships) 3、图(Diagrams) 事物是UML中重要的组成部分。关系把事物紧密联系在一起。图是很多有相互相关的事物的组。 1.1UML的事物 UML中有始终类型的事物: 1、结构事物(Structural things) 2、动作事物(Behavioral things) 3、分组事物(Grouping things) 4、注释事物(Annotational things) 这些事物是UML模型中最基本的面向对象的建筑块。它们在模型中属于最静态的部分,代表概念上等或物理上的元素。 1.1.1结构事物。 总共有七种结构化事物。首先是类(class),类是描述具有相同属性、方法、关系和语义的对象的集合。一个类实现一个或多个接口。在UML中类被画为一个矩型,通常包括它的名字、属性和方法。 第二种是接口(interface),接口是指类或组件提供特定服务的一组操作的集合。因此,一个接口描述了类或组件的对外的可见的动作。一个接口可以实现类或组件的全部动作,也可以只实现一部分。接口在UML中被画成一个圆和它的名字。

ISpelling 图1-2 接口 第三种是协作(collaboration ),协作定义了交互的操作,是一些角色和其它元素一起工作,提供一些合作的动作,这些动作比元素的总和要大。因此,协作具有结构化、动作化、维的特性。一个给定的类可能是几个协作的组成部分。这些协作代表构成系统的模式的实现。协作在UML 中用一个虚线画的椭圆和它的名字来表示。 图1-3 协作 第四种是use case ,use case 是描述一系列的动作,这些动作是系统对一个特定角色执行,产生值得注意的结果的值。在模型中use case 通常用来组织动作事物。Use case 是通过协作来实现的。在UML 中,use case 画为一个实线椭圆,通常还有它的名字。 图 1-4 use case 第五种是活动类(active class ),活动类是这种类,它的对象有一个或多个进程或线程。活动类和类很相象,只是它的对象代表的元素的行为和其他的元素是同时存在的。在UML 中活动类的画法和类相同,只是边框用粗线条。 EventManager Suspend() Flush() 图1-5活动类 第六种是组件(component ),组件是物理上或可替换的系统部分,它实现了一个接口集合。在一个系统中,你可能会遇到不同种类的组件,例如COM+或JA V A BEANS 。组件在UML 中用如下的图表示: 图1-6 组件 第七种是结点(node ),结点是一个物理元素,它在运行时存在,代表一个可计算的资源,通常占用一些内存和具有处理能力。 一个组件集合一般来说位于一个结点,但有可能从一个结点转到另一个结点。结点通常用如下的图形表示:

相关主题
文本预览
相关文档 最新文档