自考02333软件工程复习面向对象方法UML.docx
《自考02333软件工程复习面向对象方法UML.docx》由会员分享,可在线阅读,更多相关《自考02333软件工程复习面向对象方法UML.docx(7页珍藏版)》请在冰豆网上搜索。
自考02333软件工程复习面向对象方法UML
自考02333软件工程复习面向对象方法UML
统一建模语言(UnifiedModelingLanguage,UML)
UML是目前流行的建模语言,特别是在网站开发中广泛应用。
UML涉及很多的图,每一种图都有不同的图形符号、作用,在什么情况下用何种图来描述是本章的重点内容。
考核题目类型包括单项选择题、填空题、简答题,分值在10%~15%之间。
需要考生掌握各种UML图的作用。
面向对象建模过程的步骤:
(1)需求获取
a)建立用况(usecase)模型和用况场景
(2)需求分析
a)建立活动图和状态图
b)类图(建立域模型)
c)顺序图(实现用况)
(3)编写需求规格说明书
(4)需求验证
第一节UML术语表
1.对象(object)
对象(object)是系统中用来描述客观事物的一个实体。
一个对象由一组属性和对这组属性进行操作的一组方法组成。
对象只描述客观事物本质的与系统目标有关的特征。
对象之间通过消息通信,一个对象通过向另一个对象发送消息激活某一个功能。
2.类
类(Class)是具有相同属性、操作、关系和语义的一组对象的集合,它为属于该类的全部对象提供了同一的抽象描述,其内部包括属性和服务两个主要部分。
类有超类(Superclass)和子类(Subclass)之分。
(相对而言)对象与类的关系犹如程序设计语言中变量和类型的关系。
对象是类的实例(Instance)。
类在类图上使用包含三个部分的矩形来描述,如下图所示。
最上面的部分显示类的名称,中间部分包含类的属性,最下面的部分包含类的操作(或者说"方法")。
类图中的示例类对象
3.属性
对象或类的属性(attributes)描述了对象的具体特征。
属性有属性名和属性值(或称属性状态)。
每条属性可以包括属性的可见性、属性名称、类型、缺省值和约束特性。
UML规定类的属性的语法为:
可见性 属性名:
类型=缺省值 {性质串}
可见性:
public(+)、protected(#)、private(-)、包内的(~)
4.类的操作
通常也被称为功能,但是它们被约束在类的内部,只能作用到该类的对象上。
操作名、返回类型和参数表组成操作界面。
UML规定操作的语法为:
可见性操作名(参数表):
返回类型{性质串}
例如:
+取客户地址(客户名:
字符串):
字符串
5.接口
接口是操作的一个集合,其中每个操作描述了类、构件或子系统的一个服务。
(1)采用具有分栏和关键字的矩形符号来表示
(2)采用小圆圈和半圆圈来表示
6.协作
协作是一个交互,涉及交互的三要素:
交互各方、交互方式以及交互内容。
7.用况(usecase)/用况
对一组动作序列的描述,系统执行这些动作应产生对特定参与者有值的、可观察的结果。
8.主动类
至少具有一个进程或线程的类。
能够启动系统的控制活动,并且其对象的行为通常与其它元素行为并发的。
表示方法:
两条竖线。
9.构件
系统设计中的一种模块化部件,通过外部接口隐藏了它的内部实现。
10.制品
系统中包含物理信息的、可替代的物理部件。
11.节点
节点是在运行时存在的物理元素,通常表示一种具有记忆能力和处理能力的计算机资源。
12.关联(Association)
关联反映了类和类之间的静态关系。
关联在模型中,特别是在永久业务对象模型中是最基本的关系。
链(link)是对象之间具有特定语义关系的抽象。
(1)关联名
(2)导航
(3)角色
(4)可见性
(5)多重性:
多重性(Multiplicity)定义了与一个对象/类相联系的对象/类出现一次,该对象/类可能出现的最小和最大的数目。
(6)限定符
(7)聚合:
一个类是另一类的一部分。
(8)组合:
是聚合的一种特殊形式
(9)关联类
(10)约束
13.泛化/继承
继承:
特殊类(子类)的对象拥有其一般类(超类)的全部属性与服务,称作特殊类对一般类的继承(Inheritance)。
利用继承(inheritance),子类可以继承父类的属性和方法。
子类/父类也可分别叫做特殊类/一般类、子类/超类、派生类/基类等。
继承反映了类之间的一种联系或结构:
一般-特殊结构,也称分类结构(ClassificationStructure),是由一组具有继承关系的类所组成的结构。
仅由一些单继承关系的类形成的结构又称作层次结构(HierarchyStructure);由一些存在多继承关系的类形成的结构又称作网格结构(LatticeStructure)。
14.多态性(Polymorphism)
是指一般类中定义的属性或服务被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。
这使得同一属性或服务名在一般类及其各个特殊类中具有不同的语义。
多态是指用同一界面形式表示不同对象类中的不同实现的能力。
多态性的实现基于两个基本原理:
封装和泛化。
多态性实现的方法:
(1)泛化
(2)定义一个抽象类——接口类
15.细化
细化是类目之间的语义关系,其中一个类目规约了保证另一类目执行的契约。
用空心三角形的虚线表示。
16.依赖
依赖是一种使用关系,用于描述一个类目使用另一类目的信息和服务。
用有向虚线段表示。
17.包
包是模型元素的一个分组,一个包本身可以被嵌套在其它包中,并且可以含有子包和其它类型的模型元素。
第二节UML的模型表达格式
图形化工具。
图的类别:
(一)结构图
(1)对象结构建模—类图和对象图
(2)应用结构建模—包图、构件图、部署图、组合结构图
(二)行为图
对象交互建模—顺序图、协作图(通信图、交互综述图、定时图)、状态图(状态机)
对象行为建模—用况图、活动图
1.类图
任何系统都需要从两方面进行描述:
结构信息和行为信息。
系统的组成表达了系统各组成要素之间的联系,称为结构;这些组成要素的执行逻辑称为行为。
在面向对象方法中,系统的结构信息是通过类图(classdiagram)来描述的;而系统行为信息则通过用况图、交互图(包括顺序图和协作图)和状态图来描述的。
也就是说,前者说明了系统的组成部分是什么,而后者则说明了系统做什么。
类图(classdiagram)表达了系统的静态结构信息,即系统是由哪些类组成的,这些类之间的关系是什么。
类图显示系统各个部分以及怎样将它们组装起来;但却不能模拟组装后系统的工作情况。
构造类图的三个关键问题是:
(1)系统中有哪些需要关心的类?
(2)这些类是如何描述的?
(3)这些类之间的联系是什么?
创建一个系统的类图,要涉及4方面的工作:
(1)模型化待建系统中的概念,形成类图中基本元素
(2)模型化待建系统中的各种关系,形成该系统的初始关系。
(3)模型化系统中的协作,给出该系统的最终类图。
(4)模型化逻辑数据库模式
2.用况图(usecase图)
用况是对一个参与者(actor)使用系统的一项功能时所进行的交互过程的一个文字描述序列。
用况是系统、子系统或类与外部的参与者(actor)交互的动作序列的说明,包括可选的动作序列和会出现异常的动作序列。
用况图(UseCaseDiagram)是指反映活动者,系统边界所封闭的用况,及活动者与用况之间,用况与用况之间关系的一种图。
6个模型元素:
(1)主题
(2)用况
(3)参与者:
Ø系统用户:
是最常见的一种角色。
是直接使用系统的人。
Ø另一个系统:
如DSS可作为MIS的一个活动者。
补货系统可作为定单处理系统的活动者。
Ø时间:
当经过一定时间触发系统中的某个事件时,时间就成了角色。
例如定期的某些业务处理工作。
(4)关联
(5)泛化
(6)依赖
3.状态图
对象或者类的整体行为的某些规则所能适应的对象或类的状况、情况、条件、形式或生存周期。
仅当对象的行为规则不同时,才称对象处于不同的状态。
在由对象的全部属性的属性值集合所构成的笛卡儿乘积中的每一个等价集合(即,使对象的服务呈现相同行为规则的属性值的集合)称之为对象的一种状态。
例如,对象发票(invoice)可以根据其付款的情况分为三个状态:
未付款(unpaid)、部分付款(partlypaid)以及付清款(fullypaid)。
状态图(statechartdiagram)使用状态、事件和转换来记录对象在其生命周期中所历经的状态序列。
①对象的初始状态是图中任何事件都未对该对象起作用时的状态。
②状态代表对象生命周期中的某一瞬间。
③转换表明作为对事件的响应结果,对象将从一种状态转换到另一种状态并执行某个动作。
④触发状态转换的事件在状态转换字符串中命名。
双击一个状态转换,除事件签名以外,还可用字符串为其加注临界条件、动作表达式等标签。
4.顺序图
顺序图(sequencediagram)表示了对象之间传送消息的时间顺序,也就是对象之间的交互顺序,这些交互是指在场景或用况的事件流中发生的。
每一个对象(类)用一条生命线来表示——即用垂直线代表整个交互过程中对象的生命期。
生命线之间的箭头连线代表消息。
顺序图中的基本元素包括:
①活动者,指用况中的活动者。
②对象,指在用况中的内部对象。
③生命线:
在顺序图中的一个对象下面的竖线,用以显示这个对象的生命期。
时间从上到下流过。
生命线实际上显示了消息的顺序,在生命线之上的消息比在它之下的消息先发生。
在生命线中的棒形方框表示的是活动生命线,用以强调一个对象只有在一个场景的部分中处于活动状态。
④消息,指场景内由事件流定义的内部事件成为在对象和活动者或其他对象之间的消息。
•同步消息——返回消息。
同步消息假定有一个返回消息。
同步消息用有实心的箭头表示;返回消息用虚线、箭头也不是实心来表示。
•反身消息——消息的发送方和接收方是同一个对象。
•异步消息——没有返回值的消息。
用非实心箭头表示。
•定时消息——对消息附加时间约束条件,包括:
发送时间、接收时间、已用时间等。