面向对象分析设计与建模 课件 第3-5讲 软件建模语言_第1页
面向对象分析设计与建模 课件 第3-5讲 软件建模语言_第2页
面向对象分析设计与建模 课件 第3-5讲 软件建模语言_第3页
面向对象分析设计与建模 课件 第3-5讲 软件建模语言_第4页
面向对象分析设计与建模 课件 第3-5讲 软件建模语言_第5页
已阅读5页,还剩300页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件建模语言(一)第3讲软件建模语言1

关于UML2UML的构成3UML应用领域第2章第3讲软件建模语言1.1

UML的含义1.2

UML的发展历史1.3

UML的特点第2章1

关于UML1.1UML的含义

UML:UnifiedModelingLanguage

统一建模语言。

1.1UML的含义

UML:UnifiedModelingLanguage

统一建模语言.

①作用:

建立软件模型

1.1UML的含义

UML:UnifiedModelingLanguage

统一建模语言.①作用:

建立软件模型

②建模语言:

提供交流的词汇和规则

1.1UML的含义

UML:UnifiedModelingLanguage

统一建模语言.①作用:

建立软件模型

②建模语言:

提供交流的词汇和规则

③可视化:

通过标准图符构成图形来描述模型

1.1UML的含义

UML:UnifiedModelingLanguage

统一建模语言.①作用:

建立软件模型

②建模语言:

提供交流的词汇和规则

③可视化:

通过标准图符构成图形来描述模型

建模语言而非编程语言

1.1UML的含义

UML:UnifiedModelingLanguage

统一建模语言.①作用:

建立软件模型

②建模语言:

提供交流的词汇和规则

③可视化:

通过标准图符构成图形来描述模型

建模语言而非编程语言

⑤通用标准:

成为软件建模的标准语言,并且在其他领域也得到应用。

What'sUML101.2UML的发展历史RumbaughBooch

JacobsonUML的创建人:OMT方法Booch方法OOSE方法UMLHPFusion

操作描述和消息编号Embley单类和超级视图Meyer上下文语义Harel状态图Gamma,etal

框架和模式Wirfs-Brock

职责Odell分类Shlaer-Mellor对象生命周期RumbaughOMT方法BoochBooch方法JacobsonOOSE方法

UML吸收和容纳的方法和规范●统一的标准:已成为标准化的统一的建模语言。1.3UML的特点●统一的标准:已成为标准化的统一的建模语言。●面向对象:

支持面向对象方法.1.3UML的特点●统一的标准:已成为面向对象的标准化的统一的建模语言。●面向对象:支持面向对象方法.●可视化:表示能力强大1.3UML的特点●统一的标准:已成为面向对象的标准化的统一的建模语言。●面向对象:支持面向对象方法.●可视化:表示能力强大●独立于过程。1.3UML的特点●统一的标准:已成为面向对象的标准化的统一的建模语言。●面向对象:支持面向对象方法.●可视化:表示能力强大●独立于过程●概念明确,简洁,结构清晰,容易掌握。1.3UML的特点作曲用五线谱:设计软件用UML:一个比喻:UML和程序设计语言的关系Java、C++等程序设计语言用来编码实现一个软件系统。UML对一个软件系统建立模型。旋律比作过程:音符比作UML:一个比喻:UML和软件过程的关系软件过程规定软件开发的阶段、步骤和工作。UML是语言,用来描述软件模型。软件建模语言2.1

概述2.2

UML的构成

2.3

UML的基础元素第2章2

UML的构成2.1概述

作为建模语言,UML由以下几部分构成:

●模型元素

语言的构成成分,包括:

基本元素和关系

●图:

模型元素的直观展现形式

●语义规则:

语言的语法和语义规则

●公共机制:

规范说明,语言扩展等2.2UML的构成2.3.1

结构元素2.3.2

行为元素2.3.3

分组元素2.3UML的基础元素1结构元素

结构:

UML语言的静态构成要素,包括6种:类:

描述一组具有相同性质的对象。对象:

类的一个实例。1结构元素接口:

描述一个类或一个构件的服务操作集,分为供口和需口。构件:

描述软件系统的逻辑构成件。结点:

一个基本计算单元,可以是一个物理结点,客户机或服务器。制品:表示可以在结点上独立部署的软件单元,以文件形式呈现。2行为元素

行为:

UML的动态构成要素,包括:用例:

描述软件的一个相对独立的功能,它会包括一组动作序列。协作:

描述一个用例中动作序列的实现。交互:

一组对象之间为完成某一项任务而进行的一系列消息交换的行为说明。2行为元素

行为:

UML的动态构成要素,包括:状态:

一个对象或一个交互在生命期内所具有的一种态势。动作:

活动的基本单位。3分组元素

分组:

UML对模型的组织要素。包:UML用包来对模型进行分组组织,一个包中包括若干个相关的模型元素。

UML1.x共定义了9种图,UML2.x扩展为13种:

●用例图

●状态图

●类图●活动图

●对象图●组合结构图

●顺序图●构件图●通信图

●部署图●时序图

●包图●交互概览图2.3UML的图UML中的图2.3.1类图1.

对象与类2.

关联关系3.

组成关系4.

泛化关系5.

依赖关系6.

类图2.3.1类图

①.书店图书与出版社关系的类图

类的关系类几个类图的例子:

②.书店图书销售管理类图

类的关系类

③.书店业务管理类图

1.

对象与类2.3.1类图1.对象与类1)对象的一般含义

对象的本意:认识的指向物。可以是:客观中的具体事物,树,教室,台灯等主观中的抽象观念,鬼,神,上帝,天堂等

1.对象与类

2)软件领域中的对象

软件系统中的一个具有确定语法规则的软件单元;●//定义一个Tree类ClassTree{ publicStringvariety;//品种

publicStringroot;//根

publicString[]leaf;//叶子

publicTree(StringV,Stringr,intx,String[]L)//构造函数

{ this.variety=V

; this.root=R

; intI=1; foreach(StringsinL) { Leaf[i]=s; i++; } }}publicclassProgram{ StaticvoidMain(string[]args) { Treet1=newTree(); //创建一个对象

}}1.对象与类

2)软件领域中的对象

软件系统中的一个具有确定语法规则的软件单元;●在软件系统中作为一个相对独立的执行单元,用来表示客观事物及主观概念。●类的概念教学进程4.3.23)类的概念

类是是具有相同性质的一组对象的集合,这组对象具有相同的特性、约束和语义。一个类中的所有对象具有相同的属性、操作,以及约束。例如,学生是一个类,张三,李四和王五这三个具体的学生就属于学生类中的对象。类的概念教学进程4.3.24)类与对象的表示

类的一般表示

StudentNo:Stringname:Stringsex:Stringbirthdata:Dateclass:StringgetNo():Stringsetno(No:String)getname():Stringsetname(name:String)getsex():Stringsetsex(sex:String)getbirthdate():Datesetbirthdate(birthdate:Date)getclass():Stringsetclass(class:String)类名属性操作类的概念教学进程4.3.24)类与对象的表示

类的简化表示

③类的缩略表示

实体类界面类控制类

5)类名

①名词或名词短语(动词或动词短语表示控制类)②尽可能用明确、简短,业务领域中事物的名称,避免使用抽象、无意义的名词例如:人,桌子,图形,汇总③用英文,第1个字母大写例如:Shape,Person,CheckingAccdount④

可分为简单类名,带限定名的类名例如:CheckingAccdountBanking::CheckingAccdount例如:帐户,订单,事物问题:教学进程指出下面命名有问题的类。?教学进程指出下面命名有问题的类。答案:!

①.属性的含义

属性(attribute):描述类所表示事物的静态性质。

②.属性的表示

[可见性]属性名[:类型][‘[’多重性[次序]‘]’][=初始值][{特性}]类的属性6)

①.属性的含义

属性(attribute):描述类所表示事物的静态性质。

②.属性的格式

第1个英文单词首字母小写,其它单词首字母大写

contactNamecredintLimitisPrepaid[可见性]属性名[:类型][‘[’多重性[次序]‘]’][=初始值][{特性}]类的属性6)

①.属性的含义

属性(attribute):描述类所表示事物的静态性质。

②.属性的格式

该属性对外部实体的显现程度.

可见public:+

受限protected:#

私有private:-

包package:~[可见性]属性名[:类型][‘[’多重性[次序]‘]’][=初始值][{特性}]类的属性6)

①.属性的含义

属性(attribute):描述类所表示事物的静态性质。

②.属性的格式

属性的数据类型:

字符串:String

日期:Date

布尔:Boolean

整型:int[可见性]属性名[:类型][‘[’多重性[次序]‘]’][=初始值][{特性}]类的属性6)

①.属性的含义

属性(attribute):描述类所表示事物的静态性质。

②.属性的格式

表示属性取值的多寡,以及有序性:

例如:name:String[0..1]

表示属性”name”可能无值,也可能仅有一个值.

points:Point[2..*ordered]

表示有两个或多个值,这些值是有序的[可见性]属性名[:类型][‘[’多重性[次序]‘]’][=初始值][{特性}]类的属性6)

①.属性的含义

属性(attribute):描述类所表示事物的静态性质。

②.属性的格式

表示对象一经建立,属性自动被赋予的值:

例如:#visibility:Boolean=false

表示属性”visibility”初始取”false”[可见性]属性名[:类型][‘[’多重性[次序]‘]’][=初始值][{特性}]类的属性6)

①.属性的含义

属性(attribute):描述类所表示事物的静态性质。

②.属性的格式

表示属性约束说明:

例如:#visibility:Boolean=false{读写}

表示属性”visibility”可读,写[可见性]属性名[:类型][‘[’多重性[次序]‘]’][=初始值][{特性}]类的属性6)问题:教学进程指出下面属性名的含义。?+studentName:String=“黎明”#studentBirthDay:Date=1999-10-21-price:float=12.01{R/W}③.关联属性

关联属性也叫隐属性或伪属性,其作用是在类中标识与其存在关联关系的其他类。关联属性的类型是类,关联属性不会像属性那样显式地表现出来,但只要类之间存在关联关系,就一定存在关联属性。类的属性6)③.关联属性

类的属性6)

①.操作的含义

操作(operation):描述类所表示事物的动态性质。

②.操作的格式

[可见性]操作名[(参数列表):返回类型][{特性}]类的操作7)

①.操作的含义

操作(operation):描述类所表示事物的动态性质。

②.操作的格式

[可见性]操作名[(参数列表):返回类型][{特性}]第1个英文单词首字母小写,其它单词首字母大写

close()creditRecording()类的操作7)

①.操作的含义

操作(operation):描述类所表示事物的动态性质。

②.操作的格式

该操作对外部实体的显现程度.

可见public:+

受限protected:#

私有private:-

包package:~[可见性]操作名[(参数列表):返回类型][{特性}]类的操作7)

①.操作的含义

操作(operation):描述类所表示事物的动态性质。

②.操作的格式

该操作的形式参数,可以为空.

例如:#create()+hide()-tachXWindow(Xwindow:xwin)[可见性]操作名[(参数列表):返回类型][{特性}]类的操作7)

①.操作的含义

操作(operation):描述类所表示事物的动态性质。

②.操作的格式

该操作的返回值的类型.

例如:+display():Boolean[可见性]操作名[(参数列表):返回类型][{特性}]类的操作7)问题:教学进程指出下面操作名的含义。?+setName(String:name)+getName():String+creatBook()2.

关联关系2.3.1类图

●关联的一般含义表示事物之间存在的内在的角色牵连关系。例如:关联的定义1)教学薪资亲缘关联●关联的本质

关联(association):用来表示存在内在角色联系的类元中实例之间的连接关系。

关联的定义1)关联名就是关联的名称,用来标识关联。

★如果关联关系已经清楚,可省略关联名关联名2)关联名在关联的端点标注的名字被称为关联的角色名,简称关联端名,用来表示参与关联的类在关联中所扮演的角色。

★如果类名与角色名相同,可以不标角色名关联的角色3)关联的角色关联的多重性4)用来描述所关联的类元中实例链接的数目对应关系。

1:11:多多:多●多重性的含义关联的多重性4)0..1:0或10..n,0..*,*:0到多11..n:1到多●多重性的类型关联的多重性4)●导航的概念关联的导航是类元中的实例对与之相关联的类元中的实例的访问性。假设A,B两个类存在关联,如果A中的对象可以直接访问到与其关联的B中所链接的对象,则称为A可以导航到B,如果不能直接访问B中的对象,则称从A到B不具有导航性。导航关联的导航5)●关联端导航的三种情况

1)可导航:用箭头表示。

2)不可导航:用×表示。

3)不确定:没有表示。关联的导航5)关联的导航情况:

关联的导航5)类之间因关联而涉及到其他实体,这个实体被表示为关联类。关联类表示成为由关联线的中点连一条虚线到关联类。关联类关联类6)①一元(自返)关联②二元关联关联的种类7)③多元关联三元关联关联的种类7)3.

组成关系2.3.1类图概述1)

①.组成关系的概念

组成关系:描述事物之间整体与部分的关系。

②.组成关系的类型

聚集:整体与部分的关系是松散组成。组合:整体与部分的关系是紧密组成。

③.组成关系的特性

A)

传递性:若A是B的部分,B是C的部分,则A亦是C的部分。

*例如:我们大家属于软件专业学生,软件专业属于计算机学院的专业,我们也属于计算机学院。B)不可逆性:若A是B的部分,则B不可能是A的部分。

聚集(aggregation):表示类之间一种松散的组成关系。表示例子聚集④

松散体现在:

1)一个对象可以被多个对象所聚集。例如:

松散体现在:

2)整体对象与部分对象的生命周期可以不同,整体对象消亡,部分对象还可以存在,也可以充当另外一个整体的部分对象。例如:

组合(composition):表示类之间一种紧密的组成关系。表示例子组合⑤A聚集松散,组合紧密;

●聚集与组合的区别⑥A聚集松散,组合紧密;

B一个部分事物对象可以属于多个聚集对象,但一个部分事物对象仅能属于一个组合对象;●聚集与组合的区别⑥A聚集松散,组合紧密;

B一个部分事物对象可以属于多个聚集对象,但一个部分事物对象仅能属于一个组合对象;C聚集的对象生命周期可以不同,但组合对象则是同存同亡。●聚集与组合的区别⑥4.

泛化关系2.3.1类图

①.泛化的一般含义

泛化(generalization):泛化具有抽象、概括和超越的意思。泛化指抽取事物的共性特征,形成超越特殊事物而具有普遍意义的一般事物的方法。泛化的反面是特化,意思是对一般事物的具体化、特殊化和细化。

泛化和特化反映事物之间的特殊与一般关系。泛化的概念1)

②.泛化与继承

泛化与继承描述事物之间的同一种关系。继承是一类事物拥有或承接另一类事物的某些性质,成为自己所具有的性质。继承的事物是特殊事物,所继承的事物是一般事物。

泛化的概念1)

③.父类与子类在泛化关系中:把表示一般性的类元称为父类、基类、超类等,

把表示特殊性的类元称为子类、衍生类、派生类等。

泛化的概念1)例子表示泛化的表示2)①传递性:如果B是A的子类,C是B的子类,则C亦是A的子类;●泛化的特性3)例如:“动物”是“生物”的子类,“狮子”是“动物”的子类,那么“狮子”也是“生物”的子类。①传递性:如果B是A的子类,C是B的子类,则C亦是A的子类;②不可逆性:若A是B的父类,则B就不能是A的父类;●泛化的特性3)①传递性:如果B是A的子类,C是B的子类,则C亦是A的子类;②不可逆性:若A是B的父类,则B就不能是A的父类;③反自反性:类元自己不能和自己存在泛化;●泛化的特性3)①传递性:如果B是A的子类,C是B的子类,则C亦是A的子类;②不可逆性:若A是B的父类,则B就不能是A的父类;③反自反性:类元,自己不能和自己存在泛化;④继承性:子类继承父类的特性;●泛化的特性3)①传递性:如果B是A的子类,C是B的子类,则C亦是A的子类;②不可逆性:若A是B的父类,则B就不能是A的父类;③反自反性:类元,自己不能和自己存在泛化;④继承性:子类继承父类的特性;⑤单向拥有性:子类知道自己泛化到那个父类,但父类并不知道自己具体特化到哪些子类。●泛化的特性3)①特征抽象:把事物的共性特征抽取出来,并用一个抽象概念来表示这些具有共性特征的抽象事物,抽象事物和原事物之间就形成泛化关系。●泛化的作用4)泛化在建模中,存在以下作用:①特征抽象:把事物的共性特征抽取出来,并用一个抽象概念来表示这些具有共性特征的抽象事物,抽象事物和原事物之间就形成泛化关系。②分层分类:泛化是一种分层分类方法,并用泛化机制来实现。例如,把生物分为:界、门、纲、目、科、属、种7个等级。●泛化在建模中,存在以下作用:泛化的作用4)①特征抽象:把事物的共性特征抽取出来,并用一个抽象概念来表示这些具有共性特征的抽象事物,抽象事物和原事物之间就形成泛化关系。②分层分类:泛化是一种分层分类方法,并用泛化机制来实现。例如,把生物分为:界、门、纲、目、科、属、种7个等级。③特征重用:特化的子类无需再定义可以直接继承父类的属性和操作被称为特征重用或继承。特征重用能够简化软件设计,提高开发效率。

●泛化在建模中,存在以下作用:泛化的作用4)5.

依赖关系2.3.1类图

依赖(dependency):是模型元素之间的一种有向关系,表示一个模型元素在其语义或结构上依赖于另外一个元素。

客户元素:依赖另外一个元素的元素;

供应者元素:被依赖的元素。依赖的概念1)例子表示依赖的表示2)

依赖关系存在不同的类型,常有的依赖类型有:

《use》:使用;

《call》:调用;

《instantiate

》:实例化;

《create》:创建;

《destory》:销毁;

《send》:发送;

《abstraction》:抽象;

《derive》:派生;

《refine

》:精化;

《trace》:跟踪;

《realize》:实现;

《substitute》:替代;

《permit》:许可.依赖的类型3)

使用(use):是依赖关系的一种,客户元素为了完整地实现、或操作需要供应者元素。使用关系的构造型名字是《use》。例如,要计算订单的总价,需要使用到订单商品中的数量和单价,它们乘积的和便是订单总价。

依赖的类型3)

调用(call):是依赖关系的一种,表示客户类中的操作要调用供应者类的操作。例如,订单在计算总价的total()操作中要通过调用订单商品的subtotal()计算小计。

依赖的类型3)

创建(create):是依赖关系的一种,表示一个客户类中的实例会创建供应者类的实例。例如,“订单”类中的对象可以产生“订单商品”类的对象。

依赖的类型4)

销毁(destory):是依赖关系的一种,是创建的逆操作,其作用是客户类中的实例删除另外类中的一个实例。例如在订单类中的delOrderCommodity()操作能够删除订单商品中的一个对象。依赖的类型4)

实现(realize):表示一个模型元素描述要实现的契约或规格,另外一个模型元素表示对契约的实现。例如,螺丝是对螺丝规格的实现。UML是一种建模规格,而Rose,StarUML,IBMRSA等建模工具是对UML这种规格的实现

。依赖的类型4)

接口的实现(implementation):表示类元和接口之间的一种实现关系,其含义是类元实现接口所定义的操作。

依赖的类型4)6.

类图2.3.1类图类图与对象图4.9.1

类图的概念4.9.2

类图的抽象层次4.9.3

建立类图第4章4.9类图

类图(ClassDiagram):是由类,相关建模元素,及其关系构成的图,用来描述类之间的静态关系。类图在系统中处在核心位置。也是UML中最为重要的一种图。类图的概念1)网络订餐系统的类图

在系统的不同开发阶段,类图可以具有不同的抽象程度。随着开发的深入,类图应该越来越详细、具体。可以分为:业务对象层,分析类层,设计类层。概念层逻辑层实现层类图的抽象层次2)①.业务对象层类图

在业务对象层,类图一般以抽象的方式描述从业务领域中抽取的业务对象之间的关系。特点是:

●抽象反映业务对象之间的关系;

不展开类中的内容;

对类用缩略表示或简化表示。

②.分析层类图

在分析层,需要展开类图中类的内容,但对类的内容不需要过于详细,仅列出属性名和操作名就可以。

●分析层是对概念层的深化;

展开类中的内容,但可以不包括细节;

对类用一般表示形式。

③.设计层类图

在设计层,需要展开类的所有内容,包括属性名,类型,可见性,初始值等。设计层中的类应该能够立即用于编程实现。特点:

●设计层是对设计层的深化;

展开类中的内容,包括细节;

对类用一般表示形式;

类一般要采用某种具体的编程语言表示形式。

本讲小结

UML的含义

UML发展历史

UML的特点

UML的构成

UML的基本元素类图软件建模语言(二)第4讲2.3.2用例图1.

概述2.

参与者3.

用例4.

用例之间的关系5.

用例图2.3.2用例图1概述1).用例图的概念

用例图:UML用来描述软件功能的一种图形,包括用例,参与者,及其关系,也可以包括注释和约束。1概述2).用例图的作用用例图用来展现软件的功能,作用是:

●展现软件功能;●展现软件使用者和软件之间的关系;●展现软件功能相互之间的关系。1概述3).用例图的要素用例图的要素主要有:

●参与者:与用例存在交互关系的系统外部实体

;●用例:描述一个相对独立的软件功能;

●关系:参与者与用例的关系,参与者相互之间的关系,以及用例相互之间的关系。2参与者

1).参与者的概念

参与者(actor)是外部需要与系统交互的事物。也被称为活动者。

2参与者2).参与者的类型

①.人:客户,读者,库管员

②.设备:计算机,磁盘,读卡机等③.外部系统:上层系统,同级系统等

④.

时间:由时间激发或启动用例

3).参与者的表示

参与者可以表示为下面三种形式。

4).参与者之间的关系

参与者之间可以有泛化关系。

4).参与者之间的关系

参与者之间可以有通信关系。

5).参与者的特性

参与者具有以下特性:①.参与者位于系统外部;

②.参与者与系统发生交互关系

③.参与者与系统之间存在交互接口3用例1).用例的概念

用例(usecase,用案,用况):表示系统执行的一组动作,它会给系统或者参与者产生一组可观察的结果,用例用来描述系统的一个相对独立的功能。

2).用例的表示

用椭圆表示用例3).用例的特点

①用例用于描述系统的功能,这个功能是外部使用者看到的系统功能,不反映功能的内部实现。

储蓄系统√开户√存款√取款转帐√内部实现3).用例的特点②用例描述用户提出的一些可见需求,对应一个具体的用户需求。

√×储蓄系统√√√开户存款取款转帐数据上传3).用例的特点③

用例反映系统与用户的一次交互过程,应该具有交互的信息的传递。

帐户,密码,金额数确认信息,帐户余额取款

3).用例的特点④用例是对系统功能的描述,属于需求建模。

a

通过读卡机,储户插入ATM卡

b

ATM系统从卡上读取银行ID、帐号、并验证帐号。

c

储户键入密码。

d系统检验密码。

e

储户按确认键,输入取款金额。

f

ATM把帐号和取款金额传递给银行系统,取回帐户余额。

g

ATM输出现金,并显示帐户余额。

h

ATM记录事务到日志文件。

i

储户取出ATM卡。取款用例的动态事件流

用例的特点

①用例用于描述系统的功能,这个功能是外部使用者看到的系统功能,不反映功能的内部实现。

②用例描述用户提出的一些可见需求,对应一个具体的用户需要。

③用例反映系统与用户的一次交互过程,应该具有交互的信息的传递。

用例是对系统功能的描述,属于需求建模。总结4参与者与用例之间的关系

参与者与用例之间可以具有以下关系:

①.启动用例

有些用例可以由参与者启动,例如:

4参与者与用例之间的关系

②.获取用例提供的服务

参与者通过用例获取系统提供的服务,大部分参与者与用例属于这种关系,例如:

4参与者与用例之间的关系

③.为用例提供服务

有些参与者需要向用例提供服务,例如:

4参与者与用例之间的关系

④.给系统提供信息

有些需要给系统提供必要的信息,例如:

5用例之间的关系

用例之间可以具有以下几种关系:

①.泛化关系

②.包含关系

③.扩展关系

1).泛化关系参与者与参与者之间,用例与用例之间存在一般与特殊的泛化关系。2).包含关系两个用例之间,一个用例(基用例)的行为要用到另外一个用例(包含用例)的行为。包含关系用依赖关系的<<include>>构造型来表示。

3).扩展关系扩展关系表示基本用例在扩展点要增加新的行为或功能,以扩展到新用例。扩展关系用依赖关系的<<extend>>构造型来表示。4).包含关系与扩展关系的区别①.两个关系箭头方向相反.包含关系的箭头由基用例指向包含用例;扩展关系的箭头由扩展用例指向基用例。

②.在基用例执行的过程中,被包含的用例一定要被执行;扩展关系如果条件不为真,扩展用例可以不执行。③.包含关系中的基用例必须依赖被包含的用例,它不能独立存在;扩展关系中的基用例可以独立存在。6用例图

1).用例图的作用

用例图用来描述软件需求模型中的系统功能,通过一组用例可以描述软件系统能够给用户提供的功能。

用例图可以作为整个系统开发过程中的开发依据,指导和驱动其他模型。2).用例图的形式

图书借阅系统用例图2.3.3活动图1.

概述2.

活动3.

活动结点4.

活动边5.

活动分区6.

活动图2.3.3活动图1)

活动图的例子2)

几个概念3)

活动图4)

活动图的用途1

概述1概述1).几个活动图的例子

书店图书入库的活动图工程建设的活动图处理订单的活动图1概述2).活动图的概念

活动图(activitydiagram)通过对一个活动中的各个动作的联系来描述活动的流程。一个活动图描述一个活动。一个基本的活动图由结点和边构成,结点表示动作或对象,边表示动作之间的联系。

1概述3).活动图的作用

1.业务流程建模可以用活动图对业务流程建模。处理订单的活动图

2.工作流建模

工作流是计算机化的业务过程。信息系统开发的业务过程重组需要建立详细的工作流模型,用活动图可以有效地建立工作流模型。医院医生诊病的工作流程

3.算法流程建模

可以用活动图描述一个算法的流程,一个类中操作的处理流程。

算法流程1)

活动的概念2)

活动的表示3)

活动的要素2

活动

1.活动

活动(activity

)是指在过程中能够完成一定任务的一组相关动作的集合。一个活动由一组动作组成,动作是活动基本要素。

活动的概念1)2.动作

动作(action

)是活动的一个基本执行单位,若干个动作按照一定的流程联系起来,就构成一个活动。活动可以分解为多个动作,但动作一般不再分解。活动的概念1)活动的表示2)活动活动名活动结点活动边输入参数输出参数

活动的要素主要包括:活动结点和活动边

活动结点:动作结点,对象结点,控制结点

活动边:对象流,控制流活动的要素3)活动结点活动边1)

活动结点的概念2)

动作结点3)

控制结点4)

对象结点3

活动结点

①.活动结点的概念

活动结点(activitynode

):是活动图中由活动边连接的表示活动单元的结点。一个活动结点是一条活动流程中的一个步骤,通过活动边把多个活动结点联系起来,就构成为一个完整的活动。活动结点的概念1)

②.活动结点的类型活动结点分为三种类型:

动作结点:描述一个动作,是活动的基本行为单位;

控制结点:用来控制和协调活动图中动作结点和对象结点的流程;

对象结点:描述实体或数据结构的结点。活动结点的概念1)

③.活动结点的表示通过结点名来表示一个活动结点,控制结点可以省略结点名。动作结点控制结点对象结点活动结点的概念1)动作(action):是活动的一个基本执行单位,若干个动作按照一定的流程由多个活动边联系起来,就构成一个活动。

动作结点:动作作为结点出现在活动图里,被称为动作结点

动作表示为下图的样式::动作结点2)

①.控制结点的概念

控制结点:是协调活动中动作和对象执行流程的活动结点。UML共定义了7种控制结点,分别是起始结点、活动终止结点、流终止结点、分叉结点、汇合结点、判断结点、合并结点。控制结点3)

②.起始结点一个活动从起始结点开始引发执行。起始结点没有入边,只有出边,用实心小圆表示。控制结点3)

③.活动终止结点与流终止结点

活动终止结点:用来终止一个活动的结点。在活动中,只要有一个控制流程到达活动终止结点,那么该活动的所有流程将被终止。在一个活动图中,可以有多个活动终止结点,无论那一个流程到达活动终止结点,该活动都会被全部终止。控制结点3)活动终止结点

3.活动终止结点与流终止结点

流终止结点:用来终止活动中的一股流。一个活动中可以有多股流,当在某一股流上的控制达到流终止结点时,该流被终止。一个活动的流程到达这股流的流终止结点时,只终止该股流的执行,并不影响在该活动中其他流的执行。流终止结点用里面含叉的圆圈表示。控制结点3)流终止结点控制结点3)流终止结点的例子流终止结点

④.分叉与汇合结点

分叉结点:分叉是一种控制结点,它有一个入边,多个出边。分叉在活动中的作用是把一股流分成为多股并发的流,以实现流并发控制。分叉用一个条棒表示。控制结点3)分叉结点

④.分叉与汇合结点

汇合结点:汇合是与分叉正好相反的一种控制结点,它有多个入边,一个出边。其作用是把活动中的多股流汇合成为一股流,以实现流的同步控制。

控制结点3)汇合结点

⑤.判断与合并结点

判断结点:是在活动中实施多流判断的一种控制结点。一个判断结点有一条入边,多条出边,用菱形框表示

控制结点3)判断结点

⑤.判断与合并结点

合并结点:是把多股有条件的进入控制流合并成为一股控制流。合并结点与汇合结点的不同在于,汇合结点汇合多股并发的控制流,等待它们的控制全部到达后,把多个控制变换为一个控制传给后续结点;合并结点则是一旦有一个控制到达合并结点,立刻把控制传给后续结点,并且不允许存在控制同时到达的情况。

控制结点3)合并结点

①.对象结点的概念

对象结点:是在活动中描述实体或数据结构的结点。对象结点有一般对象结点、引脚、活动参数结点、中心缓冲结点和数据存储结点等类型。对象结点4)

②.一般对象结点

一般对象结点:是活动图中显式描述对象的结点,这种结点以对象的形式出现在活动中,用来表示对象的某种状态。对象结点4)对象结点

③.活动参数结点

活动参数结点:可以通过给活动设置参数来提高活动的灵活性。活动参数分为输入参数和输出参数两种类型,作为活动参数的结点被称为活动参数结点,它是一种特殊的对象结点。对象结点4)

④.引脚

(1)

引脚的概念:引脚(pin)是用来作为动作参数的对象结点,因此,引脚也被称为动作参数结点,因为在动作的两边通过小插脚来表示动作参数结点,这种小插脚和集成电路芯片的引脚很相像,因此被称为引脚。对象结点4)

④.引脚

(2)引脚的表示:引脚表示为用一个小矩形贴在动作的边线上,如图所示。图中的支付动作有三个引脚,其中“订单”和“卡”是输入引脚,“结果”是输出引脚。对象结点4)

⑤.中央缓冲结点

中央缓冲结点(centralbuffernode)是一种特殊的对象结点,它可以接收来自不同源的对象流,对接收到的对象进行排序,分拣和缓冲处理,然后分发给不同的对象流。中央缓冲结点用带有《centerBuffer》构造型的对象结点来表示。对象结点4)信件分拣的中央缓冲

⑥.数据存储结点

数据存储结点

(datastorenode)可以接收来自对象流的对象令牌,并把接收到的对象令牌作为对象存放在数据存储结点内。数据存储结点用带构造型《datastore》的对象结点来表示。对象结点4)数据存储结点的例子1)

活动图的例子2)

几个概念3)

活动图4)

活动图的用途1

概述1)

概述2)

活动流3)

对象流4

活动边

①.活动边的概念在活动图中,连接两个活动结点之间的连线被称为活动边。活动边用一个带箭头的直线表示。可以给活动边命名,活动边的名字可以放置到接近箭头的一边。活动边上可以标注警戒条件,只有警戒条件为真,活动流才能通过该活动边。概述1)

②.活动边的类型活动边分为控制流和对象流两种类型。

控制流传输控制的流向信息,对象流传输对象或数据。概述1)

①.控制流的概念

控制流是一种活动边,表示在前一个活动结点执行完成后,把控制传递给下一个活动结点,启动该结点的执行。

控制流2)

②.控制流的特性

控制流上不能传递对象或数据,因此控制流不能连接对象结点,可以连接动作结点和控制结点。在源活动结点执行完成后,将交出控制,通过控制流传递给目标结点。如果连接源结点有多个目标结点,则源结点会通过多个控制流,给每一个目标结点传送一个控制。控制流2)

对象流是另外一种活动边,活动图中的结点通过对象流传送对象或数据。一个对象流连接的两个活动结点中,至少应该有一个是对象结点,也可能两个全是对象结点。对象流3)1)

活动分区的概念2)

活动分区的表示5

活动分区

活动分区(activitypartition)是对活动图划分的一个责任区域,把一个活动执行主体所承担的动作放到这个区域之中,这样如果一个活动有多个主体参与,就可以通过活动分区明确表示出各动作所属的执行主体,以及在活动中这些主体之间的动作联系。活动分区也被称为

泳道(swimlane)

。活动分区的概念1)

活动分区的顶部标写活动分区名,活动分区名就是承担这个分区动作主体的名字。在UML中,可以根据图的需要在活动图中把活动分区水平或垂直排放。活动分区活动分区的表示2)活动分区的表示2)活动分区活动分区的表示2)本讲小结

用例图活动图软件建模语言(三)第5讲2.3.4状态机图1.

状态2.

状态的转换3.

复合状态4.

并发状态5.

控制结点6.

子机状态7.

状态机8.

状态机图的例子2.3.4状态机图1)

状态的概念2)

状态的类型3)

状态的动作1

状态

状态(state):指事物在其生命周期中满足某些条件、执行某些操作或等待某些事件而持续的一种稳定的状况

。状态表示为:状态名若用英文,第一个字母要大写。状态的概念1)

可分为以下三类:

●简单状态:也被称为原子状态,不包含子状态和子机状态的状态。●复合状态:内部包含子状态的状态。

●子机状态:状态机作为子状态的状态。状态的类型2)

可分为以下三类:

●简单状态:

●复合状态:

●子机状态:状态的类型2)1)

状态转换的概念2)

状态转换的三要素2

状态的转换

状态转换(statetransition):是两个状态之间的一种有向关系,表示从源状态转换到目标状态。状态转换用一个带箭头的实线表示,箭头由源状态指向目标状态。

状态转换的概念1)源状态目标状态●触发事件:触发状态转换的事件,如开门,入库,开电源等。状态转换的三要素2)触发事件●触发事件:●监护条件:决定状态转换的条件。在触发事件发生后,如果监护条件为真,则执行转换动作,并转换状态。如果监护条件为假,则不执行转换动作,也不实施状态转换。如果没有监护条件,则不作条件判断,在事件发生后直接执行转换动作。监护条件状态转换的三要素2)

●触发事件:●监护条件:●转换动作:在事件发生后所执行的一组动作,并把状态由源状态转换到目标状态。在动作前置一个“/”

。转换动作状态转换的三要素2)思考:教学进程

电梯运行所具有的状态,以及状态相互之间的转换?!1)

复合状态的含义2)

复合状态的性质3)

复合状态的类型3

复合状态

复合状态:指包含子状态的状态。

例如,ATM机的状态机图:复合状态的含义1)复合状态的性质2)●事物在复合状态时,意味着它处于复合状态中的一个子状态;事物如果在某一个复合状态的子状态,它一定处于该复合状态。

●复合状态允许嵌套,子状态可以是简单状态、复合状态,也可以是子机状态。

复合状态的性质2)●复合状态具有始态,转入一个复合状态等价于转入其始态。

●复合状态可以有终态,达到复合状态的终态,将从复合状态转出。复合状态转换的类型3)●外部转换:在复合状态与其他状态之间发生的状态转换,以及复合状态的自转换。外部转换表示离开一个复合状态进入另外一个状态,或者进入复合状态自身。

●局部转换:复合状态内部子状态之间的转换,或者复合状态转换到其中某个子状态。1)

并发状态的含义2)

同步状态4

并发状态

并发状态:在一个状态机或一个复合状态中,如果同时存在相互可以独立的几组状态,则称这几组状态是并发状态(concurrentstate)。

例如:并发状态的含义1)

同步状态:指多个并发区间中的状态在转换过程中彼此存在同步关系,一个区间中的一个转换需要等到另一个区间中的某个转换发生后才能进行。

例如:同步状态2)1)

初始状态2)

分叉与汇合3)

汇接4)

选择5)

历史状态6)

终止状态7)

入口点与出口点5

控制结点初始状态

(initialstate):简称始态,表示状态机的起始,始态用实心园表示。一个复合状态或子机状态也有其始态。一个状态机可以有多个始态,存在多个始态的状态机一定存在状态的并发,在并发状态的一个区间只能有一个始态。初始状态表示一个状态机从此结点开始,但事物不会此状态停留,会立即转换到初始状态所连接的下一个状态。初始状态只有输出,没有输入。初始状态1)分叉

(fork):指将一个转换分成两个或多个转换,用来描述需要并发的状态。

汇合

(join):指将从并发状态来的转换合并形成一个转换,用来描述多个并发状态的控制同步。

分叉与汇合2)汇接(junction):用来汇接多个转换,以简化转换路径。汇接的符号与初始状态的符号相同,但它允许连接多个转换的输入和多个输出。汇接3)选择(choice

):用来实现根据条件判断,转换到不同目标状态。用菱形表示选择,有一个输入边到选择,多个输出边由选择到目标状态结点。

下图表示一个温控器的工作状态:选择4)历史状态(historystate

):为一个状态机或复合状态提供了一种在退出状态时记忆当前活动所处的子状态,并能够返回到该子状态的机制。

历史状态5)历史状态终止状态(finalstate

):被简称为终态,表示一个状态机、一个复合状态,或一个区间状态的结束。终止状态用“牛眼”符号表示。

终止状态6)终止状态

入口点(entrypoint

):是其它状态转换到一个状态机或复合状态的始态的一个进入点。入口点用小圆圈表示,被放置到状态机或复合状态的边界上。出口点(exitpoint

):是状态机或复合状态到其他状态的一个转出点。出口点用带叉的小圆圈表示,也被放置到状态机或复合状态的边界上。

入口点和出口点7)入口点和出口点的例子:6

子机状态

子机状态(submachinestate

):是指把一个状态机作为另外一个状态机的子状态。包含子机状态的状态机被称为母状态机。母状态机是以引用的方式把一个已经存在的状态机作为自己子状态,在母状态机中子机状态作为一个子状态,但它自身仍是一个完整的状态机。

1)

状态机的概念2)

状态机的用途3)

状态机建模规则4)

状态机建模5)

状态机与其它的比较7

状态机

状态机(statemachine

):

描述一个事物在其生命期中,所具有的状态,以及因事件触发而引起的状态的各种转换。

状态机的概念1)

●对象状态建模:●用例状态建模:●交互状态建模:●构件状态建模:状态机的用途2)

对象状态建模:

描述一个对象在其生命期中,所具有的状态,以及因事件触发而引起的状态的各种转换。根据其用途,可分为行为状态机和协议状态机。状态机的用途2)

行为状态机:描述一个对象在其生命周期中可能处的各种状态,以及因事件的触发而引起状态之间转换的行为规则与方式

。前面的例子全部属于行为状态机状态机的用途2)

协议状态机:描述一个对象在其生命周期中可能处的状态,以及因对对象所定义操作的一种允许的调用序列,使得对象可能经历的状态变化过程。

状态机的用途2)

用例状态建模:一个用例在其执行过程中也会处于不同的状态,可以用状态机描述用例的状态,及其转换。状态机的用途2)登录

交互状态建模:一个交互描述为完成某项功能,系统中若干个对象相互交互消息的过程。一个交互过程也会存在多种状态,及其状态的转换,可以用状态机图来描述交互状态的转换。状态机的用途2)订货交互的状态机:

构件状态建模:构件封装了多个类,构件在其生命周期中也会存在不同状态,可以用状态机对构件的状态及其转换进行建模。

状态机的用途2)状态机建模一般应该遵循的基本规则:

a)初始状态只有转出,没有转入。初始状态的转出无触发事件、无监护条件。

b)状态机最少应该有一个初态,如果存在并发可以有多个初始状态。

c)状态机最少应该有一个终态,允许存在多个终态。

d)除初态外,其他所有状态都至少应具有一个转入。

e)除终态外,其他所有状态都至少应具有一个转出。

f)一个状态机中不允许存在两个同名的状态。状态机建模规则3)状态机建模的基本步骤:

a)确定对哪一个类元进行建模。

b)从类元实例的创建(始态)到被撤销(终态),确定实例可能经历的所有状态。

c)分析实例从一种状态转换到另外一种状态可能发生的事件。

d)确定当触发事件发生时,实例应该执行的动作。

e)对建模结果进行精化和细化。

f)检查与验证状态机图。状态机建模4)a)状态机图用于事物状态及其变换的建模;活动图用于过程流程建模。

b)状态结点表示事物一个状态,活动结点表示一个过程中的一个动作。

c)交互图用于多个对象为完成一个任务的交互关系,状态机图表示一个事物所处的状态,及其变换。

d)可以用状态机描述一个交互过程中所处的状态及其转换,用活动图描述一个交互执行的流程。

状态机图与其他的图比较5)1)

手机状态机图2)

电梯状态机图3)

银行账户状态机图8

状态机图例子手机状态机图1)电梯状态机图2)银行信用卡账户状态机图3)2.3.5顺序图2.3.5顺序图1

顺序图的要素2

交互片断3

顺序图的应用4

顺序图的建立1)

顺序图的概念2)

生命线3)

消息1

顺序图的要素

顺序图(sequencediagram):用于交互建模,强调在交互过程中,交互实体之间的交互时序关系。顺序图的概念1)“登录”的顺序图消息生命线顺序图的要素:

顺序图的要素

生命线(lifeline)表示参与交互的一个要素实体的生命过程。

一条生命线表示为一个对象实体下面垂着一条虚线,虚线表示其生命过程,如下图所示。生命线2)

消息(message)

定义了在交互中,对象实体之间的一种特定的信息通信,消息可以是:

●一个对象调用另外一个对象的操作;

●一个对象创建或销毁另一个对象实体;

●一个对象给另外一个对象发送一个信号。

消息3)

①.消息的概念

消息在生命线之间的水平方向上,用带箭头的直线来表示,例如,图中的横线就代表消息。

②.消息的表示消息图9消息消息3)

消息必须有名字,消息的命名规则是:

[条件][序号][属性=]消息名([参数列表])[:返回值]消息3)

③.消息的命名消息或信号的名字,用标识符表示,不能省略

消息必须有名字,消息的命名规则是:

[条件][序号][属性=]消息名([参数列表])[:返回值]消息3)

③.消息的命名消息的形式参数,可以为空

消息必须有名字,消息的命名规则是:

[条件][序号][属性=]消息名([参数列表])[:返回值]消息3)

③.消息的命名调用消息的返回值

消息必须有名字,消息的命名规则是:

[条件][序号][属性=]消息名([参数列表])[:返回值]消息3)

③.消息的命名消息发送的条件,条件满足才能发送该消息.例如[x<0]4:invert(x,color)

x<0才能发送invert(x,color)消息

消息必须有名字,消息的命名规则是:

[条件][序号][属性=]消息名([参数列表])[:返回值]消息3)

③.消息的命名指明消息的序号。

消息必须有名字,消息的命名规则是:

[条件][序号][属性=]消息名([参数列表])[:返回值]消息3)

③.消息的命名调用消息返回值赋给的属性。例如,p=find(specs)的含义是调用find(specs)消息,并把返回值赋给属性p

消息必须有名字,消息的命名规则是:

[条件][序号:][属性=]消息名([参数列表])[:返回值]消息3)

③.消息的命名例如:

2:display(x,y)简单消息

1.2.1:p=find(specs)有返回值的消息

[x<0]4:invert(x,color)条件消息

交互事件是在交互的某个时刻发生的事情。

一条消息一定隐含着发送消息事件和接收消息事件两个交互事件:发送消息事件存在在消息的起点,接收消息事件存在在消息的终点。消息3)

④.交互事件把发送消息事件定义为!p,接收消息事件定义为?p,下图!p是消息m的发送事件,?p是消息m的接收事件。消息3)

④.交互事件

消息的接收和发送事件

消息有以下类型:●同步调用消息

●异步调用消息

●异步信号

●应答消息

●创建消息●销毁消息

⑤.消息的类型消息3)

a.

同步消息

同步消息:也叫同步调用消息,是一个对象实体对另外一个对象实体发出的一个同步调用操作消息。发送对象发给接收对象的消息将引起接收对象的一个操作的执行。发送对象在发送出消息之后,将一直等待接收对象给予的应答,在未接收到应答之前,发送对象将一直等待。同步消息用带实心箭头的直线表示。如下图所示。同步消息消息3)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论