《软件工程》课件-第8章 面向对象技术与UML_第1页
《软件工程》课件-第8章 面向对象技术与UML_第2页
《软件工程》课件-第8章 面向对象技术与UML_第3页
《软件工程》课件-第8章 面向对象技术与UML_第4页
《软件工程》课件-第8章 面向对象技术与UML_第5页
已阅读5页,还剩93页未读 继续免费阅读

下载本文档

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

文档简介

第8章

面向对象技术与UMLXX大学XX系XXX软件工程教程电子科技大学出版社学习目标l

掌握面向对象的基本概念;l

了解UML图的作用;l

掌握UML常用图形的绘制方法。目录010203面向对象技术概述UML概述UML图04本章小结05面向对象技术概述面向对象方法和基本概念01面向对象方法简介面向对象方法面向对象面

(

O

b

j

e

c

t-

O

r

i

e

n

t

e

d

所谓面向对象就是基于对象概Method)是一种把面向对象的思想应用于

念,以对象为中心,以类和继软件开发过程中,指导开发活动的系统方

承为构造机制,来认识、理解法,简称OO

(Object-Oriented)方法,

、刻画客观世界和设计、构建是建立在“对象”概念基础上的方法学。

相应的软件系统。面向对象程序设计优点1

与人类习惯的思维方式一致2稳定性好3

开发时间短,效率高,可靠性高面向对象程序设计优点4较易开发大型软件产品可维护性好5面向对象的基本概念(1)对象(object)对象是客观存在,要研究的事和物。对象是问题域中某个实体的抽象,设立某个对象就反映了软件系统保存有关它的信息并具有与它进行交互的能力。一个对象通常由对象名、属性和操作三个部分组成。面向对象的基本概念(2)类(class)“类”就是对具有相同属性和相同操作的一组相似对象的集合。有相同或相似性质的对象的抽象就是类。对象的抽象是类,类的具体化就是对象,也可以说类的实例是对象。类具有属性,它是对象的状态的抽象。类具有操作,它是对象的行为的抽象。面向对象的基本概念(3)消息(Message)软件对象通过相互间传递消息来相互作用和通信。通常一个消息由下述三个部分组成。①对象名:接收消息的对象。②消息名:要求接收对象完成的操作。③参数:执行操作时的参数或者操作返回的结果。面向对象的基本概念(4)方法(Method)方法,就是对象所能执行的操作,也就是类中所定义的服务。在面向对象程序语言中把方法称为成员函数。类中操作的实现过程叫做方法,一个方法有方法名、返回值、参数、方法体。面向对象的基本概念(5)属性(Attribute)属性,就是类中所定义的数据,是对客观世界实体所具有的性质的抽象。类的每个实例都有自己特有的属性值。在面向对象程序语言中把属性称为数据成员。面向对象的基本概念(6)封装(Encapsulation)封装性是保证软件部件具有优良的模块性的基础。对象是封装的最基本单位。使用一个对象的时候,只需要知道他向外界提供的接口形式而无需知道它的数据结构细节和实现操作的算法。面向对象的基本概念实现封装性的条件如下:①有一个清晰的边界。②有确定的接口(即协议)。③受保护的内部实现。封装性也就是信息隐藏,通过封装把对象的实现细节对外界隐藏起来了。面向对象的基本概念(7)继承(Inheritance)继承性是子类自动共享父类数据结构和方法的机制。继承性是面向对象程序设计语言不同于其它语言的最重要的特点。子类可以继承其父类的所有属性和操作,子类中还可以定义自己特有的属性和操作。所有子类的属性和操作是子类中的定义部分和父类中的定义部分的总和。面向对象的基本概念一个类可以定义为另一个更一般的类的特殊情况,如“轿车”类是“汽车”类的特殊情况,这时可以称一般类是特殊类的父类,特殊类是一般类的子类。例如,“汽车”类是“轿车”类的父类,“轿车”类是“汽车”类的子类。同样“汽车”类还可以是“交通工具”类的子类,“交通工具”类是“汽车”类的父类。这样可以形成类的一般到特殊的层次关系,如图8.2所示。面向对象的基本概念图8.2

一般特殊关系面向对象的基本概念(8)多态性(Polymorphism)多态性是指相同的操作、函数或过程可作用于多种类型的对象上并获得不同的结果。不同的对象,收到同一消息可以产生不同的结果。面向对象的基本概念(9)重载(Overloading)函数重载:同一作用域内的若干个参数特征不同的函数可以使用相同的函数名字。运算符重载:同一个运算符可以施加于不同类型的操作数上。重载进一步提高了面向对象系统的灵活性和可读性。UML概述UML-Unified

Model

Language

统一建模语言02UML概述◆

UML-Unified

ModelLanguage统一建模语言,又称标准建模语言。是用来对软件密集系统进行可视化建模的一种语言,它用一组”专用符号描述软件模型。UML的定义包括UML语义和UML表示法两个元素。◆

它适用于系统开发的全过程,用定义完善的符号来图形化地展现一个软件系统。UML概述◆

从使用角度将UML的常用图分为结构和行为图,其中共有六种结构图和七种行为图。◆

结构图也称为静态模型图,主要是用来强”调系统的建模。◆

行为图也称为动态模型图,主要用来强调系统模型中触发的事件UML图03用例模型概述◆

用例图用来描述角色以及角色与用例之间的连接关系。说明的是谁要使用系统,以及他们使用该系统可以做些什么。◆

用例模型描述的外部参与者所理解的系统功能。用例模型用于需求分析阶段。◆

首先,描述了待开发系统的功能需求:其次,把系统开发视做黑盒子,从外部参与者的角度来理解系统;第三,参与了需求分析之后各阶段的开发工作。用例的组成◆

一个用例由以系统边界、参与者、用例和关系要素构成。1)系统边界◆

系统边界是定义由谁或什么(即:参与者)使用系统,系统能够为哪些参与者提供什么特定利益(即用例)。◆

系统边界在UML中绘制为方框,用系统的名称作为标签,参与者绘制在边界外部,用例绘制在边界内部。一个棋盘管理系统的边界如书上的图8.3所示。用例的组成图8.3

棋盘管理系统边界用例的组成2)参与者(活动者,Actor)(1)参与者的表示参与者是与系统交互的人或物,它代表外部实体。参与者是一个群体概念,代表的是一类能够使用某个功能的人或物。图8.4

参与者的表示用例的组成(2)参与者间的关系如果一个角色的操作是由另一个角色代理完成的,先建立该角色到另外角色之间的依赖。图8.5

角色之间的关系用例的组成(3)怎样识别参与者对于参与者通过以下几个问题来确认。◆

谁向系统提供信息?◆

谁从系统获取信息?◆

谁操作系统?◆

谁维护系统?◆

系统使用哪些外部资源?◆

系统是否和已经存在的系统交互?用例(UseCase)◆

一个用例实质上是用户与计算机系统之间的一次典型的交互作用,它代表的是系统的一个完整的功能。◆

用例具有以下特点。①

用例代表某些用户可见的功能,实现一个具体的用户目标;②用例由参与者激活,并提供确切的值给参与者;③

用例可大可小,但它必须是对一个具体的用户目标实现的完整描述。用例(UseCase)◆

用例是一个类,它代表一类功能而不是使用该功能的某个具体事例。◆

用例的实例是系统的一种实际使用方法,通常把用例的实例称为脚本。脚本是系统的一次具体执行过程。关系(Relationship)◆

用例图中有以下四种基本关系。关联(association)包含(include)扩展(extend)泛化(generalization)关系(Relationship)①

关联关系描述参与者与用例之间的关系,用单向箭头,表示谁启动用例。图8.7

关联关系②

包含关系是指两个用例之间的关系。其中一个用例(基本用例,base

use

case)的行为包含了另一个用例(包含用例,inclusion

use

case)的行为。图8.10

包含关系关系(Relationship)③

扩展关系◆

一个用例可以被定义为基础用例的增量扩展,称作扩展关系。◆

扩展关系是把新的行为插入到已有用例中的方法。◆

基础用例即使没有扩展用例也是完整的。如图所示订货购物用例和VIP打折用例之间的关系为扩展关系。关系(Relationship)图8.11

扩展关系关系(Relationship)④

泛化关系◆

一个用例和几种情形的用例间构成泛化关系。◆

往往父用例表示为抽象用例,任何父用例出现的地方子用例也可出现。◆

如图所示。电话预定用例和网上预订用例是父用例预订的具体用例,之间是泛化关系。图8.13

泛化关系建立用例模型1)发现参与者2)获取用例例8.3:有一业务需求列表如下,要求为其构建一个用例图。①系统可以供教师使用,为学生记录成绩。②系统根据需要创建报告卡。③系统允许用户浏览记录的成绩。建立用例模型建立用例图步骤:第一步:首先需要询问业务需求的提出者以获取更多的信息。第二步:确定系统的边界范围,找出系统中的参与者和用例。第三步:细化每个用例。第四步:建立用例模型结构。图8.14

系统用例图类图◆

类图是描述系统中的类,以及各个类之间关系的静态视图。是一种静态模型类型。◆

类图表示类、接口和它们之间的协作关系。◆

在系统分析阶段,类图主要用于显示角色和提供系统行为实体的职责;类图◆

在系统设计阶段,类图主要用于捕捉组成系统体系结构的类结构;◆

在系统编码阶段,根据类图中的类及它们之间的关系实现系统的功能。类图的组成◆

类图是定义其他图的基础,在类图的基础上,状态图、协作图等进一步描述了系统其他方面的特性。◆类描述一类对象的属性和行为。在UML中,类的可视化表示为一个划分成三个格子的长方形。◆

在系统编码阶段,根据类图中的类及它们之间的关系实现系统的功能。图8.15

类的图形符号类之间的关系1)关联关系关联表示两个类之间存在某种语义上的联系。①

普通关联◆

普通关联是最常见的关联关系。◆

如果关联是单向的,则成为导航关联,其符号是用实际箭头链接两个类。图8.16

普通关联类之间的关系②

聚集聚集也称为集合,是关联的特例。聚集表示的是类与类之间是整个与部分的关系。◆

共享聚集:如果在聚集关系中处于部分方的对象可同时参与多个处于整体方对象的构成,则该聚集称为共享聚集。◆

复合聚集:如果部分类完全隶属于整体类,部分与整体共存,整体不存在了部分也会随之消失(或失去存在价值),则该聚集称为复合聚集(简称为组成)。类之间的关系2)泛化关系◆

UML中的泛化关系就是通常所说的继承关系,它是通用元素和具体元素之间的一种分类关系。◆

具体元素完全拥有通用元素的信息,并且还可以附加一些其他信息。◆

在UML中,用一端为空心三角形的连线表示泛化关系,三角形的顶角紧挨着通用元素。类之间的关系图8.20

泛化关系类之间的关系3)依赖关系◆

依赖关系描述两个模型元素(类、用例等)之间的语义连接关系;其中一个模型元素是独立的,另一个模型元素不是独立的,它依赖于独立的模型元素,◆

在UML的类图中,用带箭头的虚线连接有依赖关系的两个类,箭头指向独立的类。在虚线上可以带一个版本的标签,具体说明依赖的种类。图8.21友元依赖关系建立类图建立类图主要遵守以下步骤。1)分析问题域,确定需求;2)寻找类,确定类的含义和职责;3)定义类的属性和操作;4)确定类之间的关系;5)精化类和类间的关系;6)绘制类图。UML中类的三种主要版型UML中类有三种主要的版型:边界类、控制类和实体类。1)边界类:边界类位于系统与外界的交界处2)实体类:实体类保存要放进持久存储体(数据库/文件等)的信息。3)控制类是负责管理或控制其他类工作的类。对象图◆

对象图显示类的多个对象实例,而不是实际的类。它描述的不是类之间的关系,而是对象之间的关系。◆

对象是类的实例,对象之间的连接是类之间关联的实例,因此,对象图可以看做是类图的实例。对象图◆

对象名有下列三种表示格式。第一种格式如对象名:类名,即对象名在前,类名在后,中间用冒号连接。第二种格式如:类名,这种格式用于尚未给对象命名的情况,注意,类名前的冒号不能省略。第三种格式如对象名,这种格式省略类名。对象图图8.29

对象图顺序图◆

顺序图又称序列图,描述对象之间的动态交互关系,着重表现对象间消息传递的时间顺序。◆

顺序图是用来显示参与者如何以一系列顺序的步骤与系统的对象交互的模型。◆

顺序图由四部分组成:参与者、生命线、激活期与消息。顺序图的组成(1)参与者参与者(actor)或者对象(object)具有以下四个特点①参与者和对象按照从左到右的顺序排列;②

一般最多两个参与者,他们分列两端。启动这个用例的参与者往往排在最左边,接收消息的参与者则排在最右端;顺序图的组成③

对象从左到右按照重要性排列或按照消息先后顺序排列;④

将对象置于顺序图的顶部意味着在交互开始的时候对象就已经存在了,如果对象的位置不在顶部,那么表示对象是在交互的过程中被创建的。顺序图的组成(2)生命线(lifeline)①每个对象都有自己的生命线,用来表示在该用例中一个对象在一段时间内的存在;②垂直的虚线;③如果对象生存周期结束,则用注销符号表示。图8.31生命线顺序图的组成(3)激活期(activation)/

控制焦点(focus

ofcontrol)1)对象在一段时间内获得了焦点,也称激活期;2)对象执行某个动作的时期;3)空心矩形条;4)激活期的长短意味着对象执行某个动作的时间有多长,可以通过约束来限制执行时间的长短。顺序图的组成图8.32

激活期顺序图的组成(4)消息(message)◆

消息是对象间交互信息的主要方式。◆

消息具有如下三个特点:1)顺序图中,尽力保持消息的顺序是从左到右排列的。2)一个顺序图的消息流开始于左上方,消息2的位置比消息1低,这意味着消息2的顺序比消息1要迟。3)顺序图中消息编号可显示,也可不显示。顺序图的组成主要的消息介绍:1)调用消息。消息的发送者把控制传递给消息的接收者,等待接收者返回或放弃控制,可以表示同步。2)异步消息。消息的发送者把控制传递给消息的接收者,然后继续自己的工作,不等待接收者返回或放弃控制。3)返回消息(Return)。表示消息的返回。消息上方放置返回值,也可以不画出,直接隐含。虚线箭头表示,虚线表示返回消息。顺序图的组成4)阻止消息。消息的发送者传递消息给接收者,

如果接收者无法立即接收,则发送者放弃该消息。5)超时消息。消息的发送者发出消息给接收者并按指定时间等待,

若接收者无法在指定时间内接收,

则发送者放弃该消息。6)自调用。某对象自己调用自己的操作,用嵌套的矩形条表示。建立顺序图的步骤1)确定交互过程的上下文;2)识别参与交互过程的对象;3)为每个对象设置生命线;4)从引发这个交互过程的初始消息开始,

在生命线之间自顶向下依次画出随后的各个消息;5)如果需要嵌套或表示消息发生的时间点,使用控制焦点;6)如果需要说明时间约束,则在消息旁边加上约束说明;7)如果需要,可以为每个消息设置前置条件和后置条件。协作图◆

协作图用于描述互相合作的对象间的交互关系和链接关系。◆

协作图则着重体现交互对象间的动态连接关系。◆

如果强调上下级关系,选择用协作图◆

协作图包含了三个元素,即对象(Object)、链(Link)、消息(Message)。图8.42

协作图建立协作图建立协作图的步骤如下。①确定交互过程的上下文。②识别参与交互过程的对象。③如果需要,为每个对象设置初始特性。④确定对象之间的链,及沿着链的消息。状态图◆

状态机图用来描述一个特定对象的所有可能状态,以及引起状态转换的事件。◆

一个状态机图包括一系列状态、事件以及状态之间的转移。◆

状态:所有对象都具有状态,状态是对象执行了一系列活动后的结果。当某个事件发生后,对象的状态将发生变化。一个状态机图只能有一个初始状态,而最终状态则可以有多个。状态图◆

状态转换:状态机图中两个状态之间带箭头的连线称为状态转换。状态的变迁通常是由事件触发的,此时应在转移上标出触发转移的事件表达式。状态图图8.50描述了顾客在ATM机上进行操作时经历的几种状态以及各种状态之间转换的条件。图8.50

状态机图活动图◆

活动图用来描述事物或对象的活动变化流程,是一种表述业务过程、工作流的技术。◆

活动图描述了从活动到活动的流。从本质上说,是一个流程图,它显示出一个过程的各个步骤。是UML中对系统动态方面建模的图之一。◆

活动图的组成:活动图由活动、活动流、分支与合并、分叉与汇合、泳道和对象流六要素组成。图8.51

活动图活动图的组成1)活动活动(Action):

是活动图主要结点,用两边为弧的条形框表示,中间为活动名。活动分为简单活动和复合活动。简单活动为不能再分解的活动,如图8.52所示;复合活动是可以再分解的复杂活动,如图8.53所示。活动图的组成2)活动流活动流(Action

Flow)用来描述活动之间的有向关系,反映一个活动向另外一个活动之间的转移。用带箭头的实线表示,如图8.54所示。活动图的转换一般不需要特定事件的触发,自动转换。活动图的组成3)分支与合并分支活动流要根据不同的条件决定转换的去向。分支包括一个入转换和多个出转换。出转换之间是互斥的;合并包括多个入转换和一个出转换,如图8.55所示。图8.55

分支与合并活动图的组成4)分叉与汇合分叉与汇合用来对并发的控制流建模。分叉用于将活动流分为两个或多个并发运行的分支,如图8.56所示。活动图的组成如图8.57所示,处理订货活动分叉成结帐活动和运货活动,之后又汇合成通知客户活动。图8.57分叉与汇合实例活动图的组成5)泳道泳道(swim

lane)是活动图中的区域划分,每一个泳道代表一个责任区域,指明活动是由谁负责的或发起的。一个泳道中包括一组相关活动。图8.58

泳道活动图的组成6)

对象流对象流反映活动与对象之间的依赖关系,表示对象对活动的作用或活动对对象的影响,用依赖关系表示,如图8.59所示。①

如果箭头从活动指向对象,表示活动对对象的创建、修改或撤销等的影响;②

如果箭头从对象指向活动,表示该活动将使用所指向的对象。图8.59

对象流建立活动图下面这些步骤描述了绘制活动图的基本任务,这些任务都以迭代的方式执行。1)确定活动图的范围;2)增加起点和终点;3)添加活动;4)添加活动间的转变;5)添加决策点;6)找出可并行活动之处。活动图和状态图的比较◆

描述对象不同。状态图描述对象状态及状态之间的转移,以状态为中心;活动图描述从活动到活动的控制流,以活动为中心。◆

使用场合不同。状态图描述对象在其生存周期中的行为状态变化;活动图描述过程的流程变化。◆

目的不同。活动图的主要目的是描述动作及动作的结果——对象状态改变。如果状态转换的触发事件是内部动作的完成,可以用活动图描述;当状态转换的触发事件是外部事件时,常用状态机图来表示。包图◆

包图用于描述系统的分层结构,由包或类组成,表示包与包之间的关系。◆

包是一种组合机制。把各种各样的模型元素通过内在的语义关系连在一起,形成一个高内聚、低耦合的整体就叫做包。◆

包通常用于对模型的组织管理,因此有时又把包称为子系统。包图◆

包的内容:构成包的模型元素称为包的内容,包的内容可以是一个类图也可以是另一个包图。包与包之间不能共用一个相同的模型元素。◆

包的依赖和继承:包与包之间允许建立依赖、泛化和细化等关系。图8.66

包图构件图和部署图◆

构件图是描述代码构件的物理结构以及各种构建之间的依赖关系。用来建模软件的构件及其相互之间的关系,这些图由构件标记符和构件之间的关系构成。图8.67

构件图构件图和部署图◆

部署图是用来建模系统的物理部署。◆

部署图也称配置图。部署图描述的是处理器、硬件设备和软件构建在运行时的架构,它显示系统硬件的物理拓扑结构,以及在此结构上运行的软件,也可以显示硬件节点的拓扑结构和通信路径、节点上运行的软件构建、软件构建包含的逻辑单元(对象、类)等。构件图和部署图◆

部署图常用于帮助理解分布式系统。1)节点和连接节点代表一个物理设备及在

温馨提示

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

评论

0/150

提交评论