电子商务系统分析与设计.ppt_第1页
电子商务系统分析与设计.ppt_第2页
电子商务系统分析与设计.ppt_第3页
电子商务系统分析与设计.ppt_第4页
电子商务系统分析与设计.ppt_第5页
已阅读5页,还剩75页未读 继续免费阅读

下载本文档

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

文档简介

1、第2章,统一建模语言UML,本章内容,2.1 UML概述 2.2 UML的关系 2.3 用例图 2.4 类图和对象图 2.5 交互作用图 2.6 活动图 2.7 用例驱动开发 2.8 Rational Rose的安装与使用,2.1 UML概述,建模的目的 UML简介 UML的术语和概念 UML的组成,2.1.1 建模的目的,建模的必要性 对于多数程序员而言,在脑海里设想一个软件的实现与用代码来实现这个软件是没有距离的,怎么想,就怎么用代码来实现它。这种做法会产生下列问题: 不利于交流。 如果不建立模型,软件系统中的有些东西很难用文本的编程语言来表达清楚。 如果程序员在修改代码时,没有将他脑海中

2、的模型记录下来,这个信息可能会永远丢失,不便于软件维护。,建模的重要性 模型是对现实世界的简化,建模是为了更好地理解正在开发的系统。 建模原理 每一种模型可以在不同的精度级别上表示,最好的模型是与现实相联系的。单个模型是不充分的。对重要的系统应采用一组几乎独立的模型进行建模。 面向对象建模 从算法的角度建模(结构化) 从面向对象的角度建模,建模的目的,2.1.2 UML简介,UML的发展 UML不仅结合了Booch、OMT和OOSE方法,而且对其做了进一步的发展,统一了符号体系,并从其它的方法和软件工程实践中吸收了许多经过实际检验的概念和技术; UML是Grady Booch、James Ru

3、mbaugh、Ivar Jacobson和许多其他人员集体智慧的结晶,并最终统一为大众所接受的标准建模语言。,UML的特点 UML是一种语言 UML是一种可视化语言 UML是一种可用于详细描述的语言 UML是一种构造语言 UML是一种文档化语言 UML的功能 为软件系统的产出建立可视化模型 规约软件系统的产出 构造软件系统的产出,UML简介,2.1.3 UML的术语和概念,系统和模型 系统和子系统 模型 视图 用例视图 设计视图 过程视图 实现视图 配置视图 图,系统和子系统,包 包是一个用来将模型单元分组的通用机制,可以将一个系统看作一个单一的、高级的包。 可见性 引入与输出 类属关系,UM

4、L的术语和概念,注释 注释是附加在元素或元素集上,用来表示约束或注释的图形符号。,UML的术语和概念,协作 协作是一组类、接口和其他元素的群体,它们共同工作,提供比各组成部分的功能总和更强的合作行为。,UML的术语和概念,对象 对象(Object)代表了类的一个特定实例,具有身份(Identity)和属性值(Attribute Values)。 为了与上下文中的其他对象相区别,每个对象都应该有一个名字。对象可以用3种方式命名:对象名、对象名和类名、或只用类名。,UML的术语和概念,消息 消息是对象间的通信,它传达了要执行动作的信息,它能触发事件。,UML的术语和概念,接口 接口是用来规定类或组

5、件服务的操作的集合。 接口可以有名字,以与其他的接口相区分。实践中,接口名通常是从问题域的词汇表中抽取出的短名词或名词词组。 和类一样,接口可以参与类属关系、关联关系和依赖关系。另外,接口还可以参与实现关系。,UML的术语和概念,接口的符号如图所示有3中表示方法。第一种是图标(Icon)形式,第二种是修饰(Decoration)形式,第三种是标签(Label)形式。对于后两种表示方法,还可以将属性、或操作、或两部分都隐藏起来,UML的术语和概念,类型 类型是类的构造型,用于描述对象的域。,UML的术语和概念,角色 角色是一个参与特定语境的实体的行为。,UML的术语和概念,实例 实例是抽象的具体

6、表示,对它可使用一组操作,它有用来存储操作结果的状态。 名称 操作 状态 主动对象 连接 类范围的属性和操作 暂时,UML的术语和概念,事件 事件是对一个在时间和空间上占有一定位置的有意义的事情的规格说明。 种类 消息信号 调用,UML的术语和概念,UML的扩充机制 UML支持自身的扩充与调整,以便使其与一个特定的方法、组织或用户相一致,UML中包含3种主要的扩充组件:原型、标记值和约束。 原型:能够说清领域中的词汇,且看起来仍像原有构造块的新事物。 标记值:为UML事物增加新的特性。 约束:增加新的语义或改变已存在的规则。,UML的术语和概念,状态机 说明对象在生命期中响应事件所经历的状态序

7、列,以及它们对事件的响应。 状态:对象生命期中的一个条件或状况,在此期间,对象将满足某些条件,执行某些活动,或等待某些事件。 初态:状态机或子状态的缺省开始位置; 终态:状态机或外围状态的执行已经完成。 转换:一个转换是两个状态之间的一种关系,表示对象将在第一个状态中执行一定的动作,并在某个特定事件发生而某个特定的条件满足时进入第二个状态。,UML的术语和概念,时间和空间 时间标记:表示事件发生时刻的符号,由交互中的消息名形成的表达式。 时间表达式:用来判断绝对或相对时间值的表达式。 时间约束:关于绝对或相对时间值的语义陈述。 位置:一个构件在一个节点上的位置。 实时系统:是时间关键系统。事件

8、可以在规则或不规则的时间发生;对一个事件的响应必须在可预料的绝对时间或者相对于事件本身的时间发生。,UML的术语和概念,UML的内容 UML语义 UML表示法 UML的构成 元素 结构元素:模型的静态部分,描述概念或物理元素。包括类、接口、协作、用例、主动类、组件和节点。 行为元素:模型的动态部分,描述跨越时间和空间的行为。包括交互和状态机。 分组元素:模型的组织部分,如包。 注释元素:模型的解释部分,用来描述、说明和标注模型的任何元素,如注解。,2.1.4 UML的组成,关系 关系说明元素之间的相互联系,即事物之间的联系,在面向对象建模中,有四种很重要的关系: 依赖(Dependency)关

9、系 类属(Generalization)关系 关联(Association)关系 实现(Realization)关系,UML的组成,图 图是由一组元素和关系组成的连通图,包括静态结构图和动态行为图 类图 对象图 组件图 配置图 用例图,UML的组成,顺序图 协作图 状态图 活动图,2.2 UML的关系,依赖关系 类属关系 关联关系 实现关系,2.2.1 依赖关系,依赖关系描述了类之间的使用关系。 如果一个模型元素发生变化会影响另一个模型元素(这种影响不必是可逆的),那么就说在这两个模型元素之间存在依赖关系。 例如:有两个元素X、Y,如果修改元素X的定义会引起对元素Y的定义的修改,则称元素Y依赖

10、于元素X。,依赖关系,依赖关系的UML符号表示是带箭头的虚线,指向被依赖的模型元素。,依赖关系,在类图中,依赖可以由许多原因引起,例如,一个类向另一个类发送消息(也即,一个类的操作调用另一个类的操作),或者一个类是另一个类的数据成员,或者一个类是另一个类的某个操作参数,那么就可以说这两个类之间存在着依赖关系。 语义上,所有的关系(包括关联关系、类属关系、实现关系)都是各种各样的依赖关系,因为这3种关系具有很重要的语义,所以在UML中被分离出来成为独立的关系。,2.2.2 类属关系,类之间的类属关系表示子类继承一个或多个父类的结构与行为。类属关系描述了类之间的“是一种”(is-a-kind-of

11、)的关系,类属关系用来连接一般类与特殊类,用来描述父类与子类或父与子的关系,子类继承父类的特性,尤其是属性和操作。 类属关系的UML符号表示是带空心箭头的实线,箭头指向父元素。,一个类可以有零个到多个父类,没有父类且有一个 或多个子类的类被称为根类或基类。 没有子类的类被称为叶类。,如果在继承关系中,每个类只能有一个父类,则是单继承。 如果一个类有多于一个的父类存在,则被称为多继承。,2.2.3 关联关系,关联关系是一种结构关系,规定了一种事物的对象可以与另一种事物的对象相连。 例如,雇员为公司工作,一个公司有很多部门,就可以认为雇员和公司、公司和部门之间存在某种语义上的联系,在类图模型中,就

12、可以在类Employee(雇员)和类Company(公司)、类Company(公司)和类Department(部门)之间建立关联关系。 关联关系的UML符号表示是一条实线。,关联关系,可以应用于关联关系的四种基本修饰是: 名称:描述关系的性质。 角色:关联中靠近它一端的类对另外一端的类呈现的职责。 阶元(Multiplicity):说明一个关联的实例中有多少个相互连接的对象。 聚合(Aggregation):整体对象拥有部分对象。,关联名通常是一个动词或动词词组,用来表示关联关系的类型或目的。所选择的关联名应该有助于理解该模型。,关联关系中的相关术语和概念 角色 阶元 导航 聚合关系 组合关系

13、 关联类 可见性 限定符 接口说明符,关联关系,2.2.4 实现关系,实现关系是分类器之间的语义关系,一个分类器规定合同,另一个分类器保证实现这个合同。 可以在两种情况下使用实现关系: 实现被用在接口与实现它们的类或组件之间; 实现被用在用例和实现该用例的协作之间。 实现关系的UML符号表示是一条带有空心箭头的虚线。,2.3 用例图,用例图概述 用例图的构成 用例图的应用,2.3.1 用例图概述,参与者触发用例,并与用例进行信息交换。单个参与者可以和多个用例连接,一个用例也可以与多个参与者连接。 对同一个用例而言,不同参与者有着不同活动:可以从用例获取值,也可以输出信息到用例中。 在参与者和用

14、例之间存在的关联关系通常被称为通信关联,因为它代表着参与者与用例之间的通信。,用例图概述,不带箭头的线段代表关联是双向导航(从参与者到用例,并从用例到参与者);带箭头的线段代表关联是单向导航(从参与者到用例,或从用例到参与者),导航的方向表明了是参与者发起了和用例的通信还是用例发起了和参与者的通信。 用例捕捉了系统的行为但没有规定怎样实现这些行为,这一点很重要,因为系统分析(规定行为)应该尽可能多地不被实现的细节(规定怎样执行行为)所影响。 最终,用例需要被实现,在UML中用来实现用例的元素是协作(Collaboration)。,协作是一起工作以实现用例行为的类和其他元素构成的群体,显式说明用

15、例的实现。,2.3.2 用例图的构成,参与者 在UML中,参与者代表与系统交互的人、硬件、或另一个系统,是用例使用者与用例交互时所扮演的角色。参与者的UML符号表示是图示的“小人”,并可在符号下标出参与者名。参与者可以只向系统输入信息或只从系统接受信息,也可以既可以输入信息给系统,还可以接受系统的输出信息。参与者与参与者之间也可以存在类属关系。 为了准确获取用例,首先需要识别系统的参与者,可以通过问题的答案来帮助发现系统的参与者。,识别参与者须注意的问题: 尽管参与者在用例图中是用类似人的图形来表示,但参与者并不一定必须是人。 参与者代表角色。 一个实体可以扮演多种角色(参与者),在确定实体的

16、参与者身份时,应考虑其所扮演的角色,而不是实体的头衔或名称。 角色不是对职位建模。,用例图的构成,用例 用例描述了系统所执行的一组动作序列,系统执行该动作序列来为参与者产生一个可供观察的结果。 用例的UML符号表示是椭圆,并可在符号下标出用例名。 在实践中,用例的名字通常是用动词词组命名从问题域中发现的一些行为。 用例表示了系统的功能,也就是系统提供给参与者的功能。系统的用例构成了系统的所有使用功能。,用例图的构成,用例图的构成,构造一个好的用例应该遵循的原则: 一个用例应该描述一个从头至尾的完整的功能,用例要与参与者交互。 用例的获取是需求分析时首先要做的工作,大部分用例将在需求分析时产生,

17、并且随着工作深入会发现更多的用例,这些都应及时添加到已有的用例集中。用例集中的每个用例都是一个潜在的需求。 参与者的识别对识别用例很有用。面对一个大系统,可先列出参与者清单,再对每个参与者列出它的用例,问题就会容易很多。 在识别出了参与者后,可以通过一些问题的答案来帮助发现系统的用例。,用例图的构成,对于每个用例,都可以用事件流来规定用例的行为。用例的事件流是对完成用例规定行为所需要的事件的描述。 在描述用例的事件流时,既可以用非正式的结构化文本,也可以用正式的结构化文本,还可以用伪代码。在创建事件流文档时,每个项目都应使用一个标准模板,模板内容如下所示: X “用例名” X.1 简单描述 X

18、.2 前置条件 X.3 后置条件 X.4 事件流 X.4.1 基流 X.4.2 分支流(可选) X.4.3 替代流,用例间的关系 类属关系(Generalization) 用例间的类属关系如同类间的类属关系。也就是说,子用例继承父用例的行为和含义,子用例可添加新行为或覆盖父用例的行为。 包含关系(Include) 多个用例可能具有一些相同的功能,共享的功能通常被放在一个单独的用例中,可在该用例和其他需要使用其功能的用例之间创建Include关系。 使用Include关系可以避免重复描述同样的事件流,因为公共的行为被放入一个专门的用例中,这个专门的用例是被基用例包含的。,用例图的构成,扩充关系(

19、Extend) 扩充关系用来说明可选的、只在特定条件下运行的行为,具有扩充关系的用例基于参与者的选择,可以运行几个不同的流。 用例间的扩充关系表示基用例在指定的扩充点隐式地含有另一个用例的行为。基用例可以独立存在,但在特定条件下,它的行为会被另一个用例的行为扩充。基用例只在被称为扩充点的特定点被扩充。可以认为,扩充用例将行为推进基用例。 包含关系(抽取公共行为)和扩充关系(识别变种)对于创建简单、易于理解的系统用例集是非常重要的。,用例图的构成,2.3.3 用例图的应用,为系统的上下文建模 为系统的上下文建模,涉及到围绕整个系统划一条线,并确保位于系统外的参与者与系统相互作用。这个上下文定义了

20、系统存在的环境。在建立用例图时,首先要确定围绕系统的参与者,确定参与者是很重要的,因为这样就确定了与系统交互作用的一类事物。 对系统的需求建模 需求规定了用户期望系统做什么。需求的表达可以有很多方式,例如:事件流描述、活动图。系统的全部或大部分功能需求可以表达为用例。UML的用例图对于管理这些需求是很重要的。为系统的需求建模涉及到规定系统应该做什么,不需要知道系统应该怎样实现这些行为,即用例图用来规定系统的行为。,2.4 类图和对象图,类的相关概念 类图 对象图,2.4.1 类的相关概念,类是一组具有相同属性、操作、关系和语义的对象的描述,是现实世界中的事物的抽象,当这些事物存在于真实世界中时

21、,他们是类的实例,并被称为对象。 类的UML符号表示是划分为3个格子的长方形,顶部的格子放类名,中间格子放类的属性、属性的类型和值,下面的格子放操作、操作的参数表和返回类型。 有实例的建模元素称为类元,它具有结构特征(属性)和行为特征(操作)。包括类、接口、数据类型、信号、构件、节点、用例和子系统。,类的名称 每个类都有一个名字,以与其他类相区别。 在实践中,类名通常用问题域中的短名词或名词词组来表示。通常将类名中的每个组成词的第一个字母大写,如Student、HelloWorld等。 类的命名应尽量用问题域中的术语,应明确、无歧义,以利于开发人员与用户之间的相互理解与交流。 类的属性 属性描

22、述了类的所有对象所共有的特性。一个类可以有一个或多个属性或者根本没有属性。属性是类的对象所包含的数据或状态的抽象。在特定的时刻,类的对象对类的每个属性都有特定的值。 不同的属性具有不同的可见性,可见性用来描述特征能否为其他类元使用。常见的可见性有公用的(public)、私有的(private)、受保护的(protected),类的相关概念,类的操作 操作是类的所有对象所共有的行为的抽象。操作用于修改、检索类的属性或执行某些动作。一个类可以有任何数量的操作或根本没有操作。 操作通常也被称为功能或方法,但是它们被约束在类的内部,只能作用到该类的对象上。操作名、返回类型和参数表组成操作的接口。 类的

23、类型 边界类 实体类 控制类,类的相关概念,2.4.2 类图,概述 类图是面向对象建模最常见的图,它是显示一组类、接口、协作以及它们之间关系的图。 类图由类、接口、协作、依赖关系、类属关系、实现关系以及关联关系这几部分组成,像其他的图一样,类图也可以含有注释和约束。 划分 虽然在软件开发的不同阶段都使用类图,但这些类图描述了不同层次的抽象。在需求分析阶段,类图是所研究的问题域中的概念;在设计阶段,类图描述类与类之间的接口;在实现阶段,类图描述软件系统中类的实现。 要正确的理解类图,首先应正确的理解3种层次:概念层、说明层、实现层。,类图,如何筛选得到分析类并画出分析类图 在系统分析阶段的前半部

24、分内容中,使用用例图、活动图和用例的一种结构化文档描述方法对系统的需求进行了分析。下一步的工作是找出实体类、控制类和边界类,然后再使用协作图分析它们之间的交互情况,从而不仅又一次明确了功能需求,也为在设计阶段设计出真正的可编程的类打下了基础,因此这是一个承前启后的过程。 以“图书选购”这一个功能为例。,类图,设计阶段类图的作用 对简单的协作建模 对数据库概念设计建模 类图的应用 对系统的词汇建模 对简单的协作建模 对逻辑数据库模式建模,2.4.3 对象图,概述 表示在某一时间点上一组对象以及它们之间的关系的图,模拟类图中所含有的类的实例。它为处在时域空间某一点的系统建模,描绘了系统的对象、对象

25、的状态及对象间的关系。对象图主要用来为对象结构建模。 对象图可以看作是类图的一个实例。对象是类的实例,对象之间的连接是类之间的关联关系的实例。对象图常用于描述复杂类图的一个实例。 对象图中通常含有:对象(Objects)、连接(Links),对象图可以含有注解和约束;对象图也可以含有包或子系统,包或子系统用来将模型的元素封装成比较大的模块。,对象图,应用 对象图通常用于为对象结构建模。对象图可以用来可视化、规范、构造、并文档化系统中特定实例的存在以及实例间的关系。 为对象结构建模时,需要考虑以下几点: 确定想要模拟的机制。机制代表了所模拟的部分系统的由类、接口等交互作用产生的功能或行为。 对于

26、每个机制,识别参加这个协作的类、接口以及其他元素,并确定这些元素间的关系。 考虑贯穿这个机制的一个脚本,显示在脚本的某一时间点参与这个机制的对象。 如果必要,揭示每个对象的状态和属性值。 类似地,揭示对象间的连接,这些连接是关联关系的实例。,2.5 交互作用图,显示一个交互,由一组对象和它们之间的关系构成,其中包括在对象间传递的消息。顺序图和协作图都被称为交互作用图。 顺序图强调消息的时间顺序,适合于描述实时系统;协作图强调发送和接收消息的对象的组织结构,描述了对象间的关系。 交互作用图的组成元素: 对象; 连接;,消息; 注解和约束。,2.5.1 交互,交互是由实现某一目标的一组对象之间进行

27、交换的一组消息所构成的行为。它包括连接和消息,连接是关联的一个实例,它指明了一个对象向另一个对象发送消息的路径;消息是传送信息的对象之间所进行的通讯的详述。 消息的传送将引起如下动作: 调用(Call) 返回(Return) 发送(Send) 创建(Create) 撤消(Destroy),2.5.2 顺序图概述,顺序图存在两个轴:水平轴表示不同的对象,垂直轴表示时间。 顺序图中的对象用一个带有垂直虚线的矩形框表示,并标有对象名和类名,对于对象,可以只标对象名,也可以只标类名,还可以都标出。 垂直虚线是对象的生命线,用于表示在某段时间内对象是存在的。对象间的通信通过在对象的生命线间画消息来表示。

28、,顺序图概述,顺序图中的消息可以是信号、操作调用等。当收到消息时,接收对象立即开始执行活动,即对象被激活了,通过对象生命线上的一个细长矩形框来表示激活。消息以带有标签的箭头表示。 消息还可带有条件表达式,表示分支或决定是否发送消息。如果用于表示分支,则每个分支是相互排斥的,即在某一时刻仅可发送分支中的一个消息。,顺序图强调了消息的时间顺序。在画顺序图时,首先将参与交互作用的对象沿着X轴放在图的顶端,将启动交互作用的对象放在左边,将从属的对象放在右边,将这些对象发送和接收的消息按照时间增加的顺序沿着Y轴由上而下地放置。,当消息的源和目标为对象或类时,标签是响应消息时所调用的方法的签名。不过,如果

29、源或目标中有一方是参与者,那么消息就以描述交流信息的简要文本为标签。,顺序图概述,顺序图区别于协作图的两个特点: 有对象生命线。 有控制中心。,2.5.3 协作图概述,在形成协作图时,首先要将参与交互作用的对象放在图中,然后联结这些对象,并用对象接收和发送的消息来装饰这些连接。 协作图没有时间维,所以消息和并发线程的时间顺序必须由序列号表示。 协作图描述了两个方面:对交互作用的对象的静态结构的描述,包括相关的对象的关系、属性和操作;为完成工作在对象间交换的消息的时间顺序的描述。第一个方面被称为协作所提供的“上下文”,第二个方面被称为协作支持的“交互作用”。,对象间的连接关系是类图中类之间关系的

30、实例。通过在对象间的连接上标记带有消息串的消息来表达对象间的消息传递,也即描述对象间的交互。协作图中的连接用于表示对象间的各种关系,消息的箭头指明消息的流动方向,消息串说明要发送的消息、消息的参数、消息的返回值以及消息的序列号等信息。,协作图概述,协作图区别于顺序图的两个特点: 有路径 有序列号,2.5.4 交互作用图的应用,在用交互作用图为系统的动态方面建模时,上下文可以是整个系统、一个子系统、一个操作或一个类,还可以用交互作用图来为用例的一个脚本建模。 当为系统的动态方面建模时,通常有以下两种方式: 按时间顺序为控制流建模 需要使用顺序图按时间顺序为控制流建模。 按组织结构为控制流建模 在按组织结构为控制流建模的情况下,使用协作图。,2.6 活动图,活动图概述 活动图的组成元素 活动图的应用,2.6.1 活动图概述,活动图是一个流图,描述了从活动到活动的流。 一个活动是在状态机中进行的一个非原子执行单元,它由一系列的动作组成。 动作由可执行的原子计算组成,这些计算会导致系统状态的改变或者返回一个值。例如调用另一个操作、发送一个信号、创建或破坏一个对象、或者是纯粹的计算(例如计算一个表达式的值)等都是动作。 活动图主要包含下列元素: 活动状态和动作状

温馨提示

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

评论

0/150

提交评论