收藏 分享(赏)

RUP开发过程与UML建模.ppt

上传人:hyngb9260 文档编号:4529589 上传时间:2019-01-02 格式:PPT 页数:106 大小:1.12MB
下载 相关 举报
RUP开发过程与UML建模.ppt_第1页
第1页 / 共106页
RUP开发过程与UML建模.ppt_第2页
第2页 / 共106页
RUP开发过程与UML建模.ppt_第3页
第3页 / 共106页
RUP开发过程与UML建模.ppt_第4页
第4页 / 共106页
RUP开发过程与UML建模.ppt_第5页
第5页 / 共106页
点击查看更多>>
资源描述

1、2019年1月2日3时9分,1,RUP开发过程与UML建模,1 软件开发的几个指导原则及模型的概念 2 统一软件开发过程(RUP) 3 UML概述 4 UML结构 5 UML中的图,2019年1月2日3时9分,2,软件开发过程是指为生产某个软件产品或系统,需要什么人在什么时候以何种方式进行何种活动的集合。,2019年1月2日3时9分,3,软件开发项目失败的共同症状: 对于最终用户的需求理解得不够精确。 不能处理需求变更。 模块之间不兼容。 软件不易维护和扩展。 对项目的严重缺陷发现较晚。 软件质量低劣。 软件性能无法令人接受。 团队中人员按各自的开发方式工作,这使得对谁在何时、何处做什么不完全

2、清楚,系统更改与重构难以进行。 一个不可靠的构造和发布过程。,2019年1月2日3时9分,4,尽管各个项目失败的原因是不同的,但是基本上大多数项 目失败是由于以下几个原因的组合造成的: 需求管理非规范。 模糊和不精确的交流。 脆弱的架构。 系统过度复杂。 未检测出需求、设计和实现中的不一致。 测试不足。 对项目状况的评估过于主观。 未解决存在的风险。 无法控制变化的传播。 自动化程度不足。,2019年1月2日3时9分,5,1 软件开发的几个指导原则及模型的概念,1、软件开发的三个指导原则: 分阶段进行(定义、开发、运行维护) 大开发任务划分成独立的小块任务(模块化)高内聚(模块内各元素彼此紧密

3、结合)低耦合(模块间互联程度低) 从抽象到具体逐步深入解决问题(逐步求精) 2、模型的概念: 是人们对现实世界理解的表达(一般对应一些图表),2019年1月2日3时9分,6,2 统一软件开发过程RUP,1 统一过程概述 2 统一过程的四个工作阶段 3 统一过程的五个核心工作流 4 统一软件开发过程的生命周期 5 RUP开发过程的特点,2019年1月2日3时9分,7,1 统一过程概述,Rational公司的RUP发展而来的一套软件工程方法,是目前最有效的软件开发过程模型。 基于构件的 用UML制定软件系统所有蓝图 突出特点:用例驱动、架构优先、迭代和增量过程 四个阶段:初始、细化、构造、移交 强

4、调开发过程 五个核心工作流:需求捕获、分析、设计、实现、测试,2019年1月2日3时9分,8,在RUP中,项目生命周期被划分为四个阶段:(1)初始阶段(Inception)(2)细化阶段(Elaboration)(3)构造阶段(Construction)(4)交付阶段(Transition)每个阶段开始时都有特定的目标,结束时有里程碑。在每个阶段中存在一个或多个迭代。在每个迭代中,可以有多个工作流。,2 统一过程四个工作阶段,2019年1月2日3时9分,9,1) 初始阶段 初始阶段的目标: 确定项目的软件范围和边界条件 识别出系统的关键用例 展示系统的侯选架构 估计整个项目需要的费用和时间安排

5、评估项目风险 初始阶段的主要活动: 建立系统的业务模型 捕获系统的基本需求 确定系统的边界 识别关键任务 确定系统验收标准 进行项目风险评估 进行项目资源的估计与效益分析 制定项目开发计划与重要里程碑。,2019年1月2日3时9分,10,初始阶段的里程碑生命期目标 初始阶段的制品:项目蓝图文档:系统的核心需求、关键特性与主要约束初始的用例模型(完成1020)初始的项目术语表业务用例模型,包括商业环境、验收标准和财政预测初始的风险评估一个可以显示阶段和迭代的项目计划一个或多个原型初始的架构文档,初始阶段的重点: 初始阶段的重点是需求分析与系统分析。如果需要构造原型系 统,则需做一些设计与实现。,

6、2019年1月2日3时9分,11,可以用如下标准来评价初始阶段是否成功:风险承担者是否赞成项目的范围定义、成本以及进度估计。是否通过主要用例证实对需求的理解。成本与进度预测的评估以及优先级、风险和开发过程的可信度。所开发软件原型的深度和广度。实际开支与计划开支的比较。架构的轮廓是否合理如果无法达到这些标准,可能取消项目或重新对项目进行仔细的考虑。,2019年1月2日3时9分,12,2)细化阶段-最关键的阶段 细化阶段的目标: 迅速定出实用的架构 规划完成项目的活动,估算完成项目所需资源 细化初始阶段模型 为构造阶段定出高精确度的计划 细化阶段的主要活动: 细化构想,建立对大多数关键用例的确定理

7、解 分析问题域,建立坚实的架构 细化架构并选择组件 捕获80%的功能需求用例 精化风险评估 建立可执行的软件原型 定义非功能需求 制定过程迭代计划和迭代的评价标准,2019年1月2日3时9分,13,细化阶段的里程碑生命期架构 细化阶段的主要制品:系统架构基线UML静态模型UML动态模型UML用例模型修订的风险评估修订的用例修订的项目计划可执行的原型,细化阶段的重点: 细化阶段主要关注需求、分析和设计工作流。每个工作流关注如下各项。 需求精化系统范围和需求 分析确定构造什么 设计创建稳定的架构 实现构造架构基线 测试测试架构基线,2019年1月2日3时9分,14,细化阶段的评价是通过回答下述问题

8、来完成的:软件的构想是否稳定?架构是否稳定?可执行的原型是否表明风险要素已被处理并可靠地解决了?构造阶段的计划是否足够详细和精确?是否有可靠的基础?如果在当前架构上下文中执行计划并开发出整个系统,是否所有的风险承担人都同意系统达到了当前的需求?实际的费用支出与计划支出是否可以接受?如果无法达到这些标准,可能取消项目或对项目进行重新考虑。,2019年1月2日3时9分,15,3)构造阶段 构造阶段的目标: 实现管理层和用户达成共识的产品的所有用例 一个移交阶段的高精度计划 关键特性和核心功能得到实现 产品发布的验收标准 初步的用户手册 产品质量的详细分析 构造阶段的主要活动: 资源管理、资源控制和

9、过程优化 完成组件开发并根据已定义的评价准则进行测试 利用构想制定的准则对发布的产品进行评估,构造阶段的重点: 构造阶段主要关注系统的实现工作流。每个工作流关注如下各项。 需求揭示任何遗漏的需求 分析完成分析模型 设计完成设计模型 实现构造初始运作功能 测试测试初始运作功能,2019年1月2日3时9分,16,构造阶段的里程碑初始运作功能 构造阶段的制品:可运行的软件系统UML模型测试用例用户手册发布描述,构造阶段的结束是项目开发的第三个重要的里程碑。这个阶段产生的版本通常被称为版。评价构造阶段需要回答以下问题:软件是否足够稳定和成熟,从而可以发布给用户?是否所有的风险承担人都准备好了向用户交付

10、软件产品?实际费用与计划费用的对比是否仍可被接受?如果项目无法达到这些要求,必须推迟进入交付阶段。,2019年1月2日3时9分,17,4)交付阶段 交付阶段的目标: 试用产品并改正试用中发现的缺陷 制作安装版并培训用户 提供在线支持 交付阶段的主要活动:将软件系统部署到用户环境修复软件的缺陷编制用户手册和其它文档培训用户和维护人员提供用户咨询,交付阶段的重点: 交付阶段主要关注系统的测试和配置工作流。每个工作流关注如下各项。 设计如果测试中出现问题,修改设计。 实现为用户场地裁减软件,修复在测试中发现的问题。 测试测试及其在用户现场验收测试。 配置将软件系统部署到环境中,并配置相应参数。,20

11、19年1月2日3时9分,18,交付阶段的里程碑产品发布 交付阶段的制品:可运行的软件产品用户手册用户支持计划,评价交付阶段需要回答以下问题:用户是否认可系统已经成功部署?用户是否积极使用该软件产品?用户是否认可产品支持策略?如果项目无法达到这些要求,必须推迟交付。,2019年1月2日3时9分,19,工作流(规程)是由活动构成的活动序列。沿着过程组件轴,开发过程可以被划分为五个核心工作流。(1)需求捕获 建立待开发系统的用例模型,多次迭代完善;进行初步用户界面设计。用来描述系统的功能性需求和非功能性需求。(2)分析 对需求捕获阶段所描述的用例模型进行精细化和组织,目的是为了更精确地理解需求,得到

12、一个易维护且有助于确定系统结构的需求描述。(3)设计 构造系统,获得实现了所有需求的系统组织。设计的目的是通过考虑实现环境,将分析阶段的模型扩展和转化为可行的技术实现方案。(4)实现 实现工作流活动是用编程语言来实现系统,同时对已建立的模型作相应的修正。(5)测试 测试工作流活动的目的是使用测试用例对系统软件进行验证与确认工作。,3统一过程的五个核心工作流,2019年1月2日3时9分,20,统一开发过程的一次迭代包括五个核心工作流。 每个阶段经过多次迭代,但每个阶段侧重点不同,4统一过程的生命周期,2019年1月2日3时9分,21,5RUP开发过程的特点,RUP综合了以前的多种软件开发过程的优

13、点,全面考虑了软件开发的技术因素和管理因素,它是一种良好的开发过程模式。RUP的主要特点如下:1) 面向对象从技术角度,RUP开发是基于面向对象技术,即它使用和支持面向对象技术的概念和方法。RUP要求建立的设计模型、实现模型都是对象模型。2) Use Case驱动系统的开发从问题领域的Use Case模型开始,Use Case模型表达了系统的需求,以后的各种工作围绕着如何实现这个Use Case模型展开。RUP推荐Use Case驱动的软件开发方法,当然也不排斥按常规方法进行需求分析和直接从对象模型着手进行开发工作。,2019年1月2日3时9分,22,3) 以架构为中心(架构优先)在系统的开发

14、过程中,软件架构是系统开发的基本制品,系统的概念化、构造和管理都是围绕着系统的架构进行的。4) 增量和迭代的开发过程RUP遵循原型法的思想,开发过程由一连串迭代开发活动组成,渐增、循环重复,以及往返工程构成了RUP的过程特色。,2019年1月2日3时9分,23,5) 以质量控制和风险管理为目标质量控制贯穿于开发的全过程。在RUP中的每一个阶段或循环中,都要进行质量评估,用质量目标和质量指标衡量软件系统的质量。从软件项目立项之初便尽可能地认识项目开发将面临的风险,风险管理贯穿于软件开发的全过程。6)与 UML配套UML本身只是一种建立模型的语言,UML的概念和表示法与RUP相结合将形成一种强大的

15、、高效的软件系统开发方法和技术。当然,RUP也可以与其他的面向对象表示工具相结合使用。 7)适用性强RUP适用于各类软件系统的开发。从规模上说,RUP可用于大、中、小型软件系统,从个人开发到数百人的团队开发都可以使用RUP开发过程。从种类上说,常规的信息管理系统、分布式系统、并行系统、实时系统和基于Web的系统都可以使用RUP开发过程。此外,RUP开发过程采用管理与技术相结合的二维方法,特别适合处理需求易变动的高风险项目。,2019年1月2日3时9分,24,3 统一建模语言UML概述,1、关于UML: 统一建模语言表达能力强,发展过程如下,2019年1月2日3时9分,25,2、为何要建模 软件

16、系统建模:指用某种抽象方法对软件系统的描述。模型是对现实的简化。 系统建模:构造系统模型的过程 建模的目的: 帮助我们按实际情况或所需样式对系统进行可视化 允许详细说明系统结构和行为 给出构造系统的模版 对决策文档化 3、什么是UML 统一建模语言(UML)是一个用于描述、可视化、构造和文档化软件系统的建模语言。它统一了Grady Booch、Jim Rumbangh、和Ivar Jacobson三位大师的面向对象建模描述语言(Booch, OMT、OOSE),并对其做了进一步的发展,最终成为广泛接受的面向对象建模语言。UML已被OMG所采用,目前成为业界的标准。,2019年1月2日3时9分,

17、26,4、UML的认识不是一门程序设计语言,只是一种建模语言。 从面向对象的角度对系统建模,提供了简洁的表达面向对象中的各种概念和模型元素。可视化、表示能力强。系统的逻辑模型或实现模型均可用UML模型图形清晰表示,并提供用户的扩展支持。独立开发过程。可支持其他面向对象开发和传统的软件开发过程。,2019年1月2日3时9分,27,4UML结构,构造块这些是基本UML建模元素(事物、关系和图) 公共机制达到特定目标的公共UML方法。 构架系统构架的UML视图。,2019年1月2日3时9分,28,1、UML构造块,物件(事物)这些是建模元素本身。(结构、行为、分组、注释) 关系这些把物件联系在一起,

18、关系说明两个或多个物件是如何语义相关的。(依赖、关联、泛化、实现) 图这些是UML模型的视图,它们展现物件的集合。(9种),2019年1月2日3时9分,29,1)UML物件,UM L物件可以分成: 结构物件UML模型的名词,如类、接口、协作、用例、活动类、组件、节点。 行为物件UML模型的动词,如交互、状态机。 分组物件包,它用于把语义上相关的建模元素分组为内聚的单元。 注解物件注解,它附加到模型以捕获特殊信息。,2019年1月2日3时9分,30,结构事物: 类(Class):是具有共同结构特征、行为特征、联系和语义的对象 集合的抽象形式。 类在UML中通常以实线矩形框表示,矩形框中含有若干

19、分隔框,分别包含类的名字、属性、操作、约束以及其他成分等, 如下图所示。,2019年1月2日3时9分,31,2019年1月2日3时9分,32,接口:描述了一个类或是一个构件的服务的操作集,定义操作的 特征标记,而不是实现。在UML中用带有名字的圆表示。 协作:定义了一个交互,由一组共同工作以提供某种协作行为的 角色和其他元素构成的一个群体。表示为包含名称的虚线椭圆 用例:一对动作序列的描述。表示为包含名称的实线椭圆 主动类:其对象至少包含一个进程或线程,能启动控制活动的类。 其表示和类相似,只是外边框粗黑线。 构件:系统中物理的、可替代的部件,表示为带小方框的矩形。 结点:运行时存在的物理元素

20、,用带名字的立方体表示。,2019年1月2日3时9分,33,行为事物: 交互:是一组对象之间为完成某一任务而进行的一系列消息交换的行为说明。表示为有向线。 状态机:描述了一个对象或交互在生命期内响应事件所经历的状态序列。状态用带名称的圆角矩形表示 分组事物: 包:是模型元素的集合,是概念上的,无真正意义。表示为左上角带有一个小矩形的大矩形。 注释事物: 注解:依附于一个元素或一组元素之上,对它进行约束或解释的简单符号。表示为右上角是折角的矩形。,2019年1月2日3时9分,34,2)UML关系,2019年1月2日3时9分,35,4.3用UML对系统建模,1、UML中的图:用例图、类图、对象图、

21、状态图、序列图、协作图、活动图、构件图、部署图共九种 用例图 :用于显示若干角色,以及这些角色与系统提供的用例之间的连接关系。 类图:用来表示系统中的类和类之间的关系,它是对系统静态结构的描述。 对象图:是类图的变体,两者之间的差别在于,对象图表示的是类的对象实例,而不是真实的类。对象图是类图的一个范例。 状态图:是对类所描述事物的补充说明,它显示了类的所有对象可能具有的状态,以及引起状态变化的事件。 序列图:用来反映若干个对象之间的动态协作关系,也就是随着时间的流逝对象之间是如何交互的。 协作图:和序列图的作用一样,反映的也是动态协作,除了显示消息变化称为交互 外,协作图还显示了对象和它们之

22、间的关系,称为上下文有关。由于协作图或序列图都反映对象之间的交互,所以建模者可以任意选择一种反映对象间的协作,如果需要强调时间和序列,最好选择序列图,如果需要强调上下文相关,最好选择协作图。 活动图:反映一个连续的活动流,相对于描述活动流来说,活动图更常用于描述某个操作执行时的活动状况。 构件图: 用来反映代码的物理结构 部署图:用来显示系统中软件和硬件的物理架构,2019年1月2日3时9分,36,4.3用UML对系统建模,2、UML模型: 包含用例模型,静态模型,动态模型共三种 用例模型:从用户角度描述系统需求,是所有开发活动的指南。包含:一或者多张用例图 静态模型:描述系统的元素与元素间的

23、关系。包括:类图,对象图,构件图,部署图 动态模型:描述系统随时间发展的行为。包含:状态图,序列图,协作图,活动图,2019年1月2日3时9分,37,3、UML视图一个系统应从不同的角度进行描述,从一个角度观察到的系统称为一个视图(view)。视图由多个图(Diagrams)构成,它不是一个图表(Graph),而是在某一个抽象层上,对系统的抽象表示。如果要为系统建立一个完整的模型图,需定义一定数量的视图,每个视图表示系统的一个特殊的方面。另外,视图还把建模语言和系统开发时选择的方法或过程连接起来。,2019年1月2日3时9分,38,Use case View描述系统的外部特性、系统功能等。,I

24、mplementation View 表示系统的实现特征,常用构件图表示。,Design View 描述系统设计特征,包括结构模型视图和行为模型视图,前者描述系统的静态结构(类图、对象图),后者描述系统的动态行为(交互图、状态图、活动图)。,Process View 表示系统内部的控制机制。常用类图描述过程结构,用交互图描述过程行为。,Deployment View 配置视图描述系统的物理配置特征。用配置图表示。,UML常用视图,2019年1月2日3时9分,39,5 UML中的图,5.1 UML规则 5.2 类图 5.3 对象图 5.4 用例图 5.5 顺序图 5.6 协作图 5.7 状态图

25、5.8 活动图 5.9 构件图 5.10 实施图 5.11 绘制UML图,2019年1月2日3时9分,40,5.1 UML规则,1、UML的规则: 命名 范围 可见性 完整性 执行 省略 不完全性 不一致性,2019年1月2日3时9分,41,5.1 UML规则,2、UML中的公共机制: 规格说明 修饰 通用划分 扩展机制,2019年1月2日3时9分,42,1)规格说明,2019年1月2日3时9分,43,2)修饰,修饰是用来在图中建模元素加上某个要点。,2019年1月2日3时9分,44,3)通用划分 抽象和实例划分 接口和实现的分离,2019年1月2日3时9分,45,4)扩展机制,2019年1月

26、2日3时9分,46,类图和对象图,面向对象的开发方法的基本任务是建立对象模型,是软件系统开发的基础。UML中的对象类图(Class Diagram)与对象图(Object Diagram)表达了对象模型的静态结构,能够有效地建立专业领域的计算机系统对象模型。,一、类图,是面向对象模型的最基本的模型元素,用类图来描述。类图(Class diagram)由系统中使用的类以及它们之间的关系组成,是描述系统的一种图式,分为长式和短式。类及类型名均用英文大写字母开头,属性及操作名为小写字母开头。常见类型有:Char,Boolean,Double,Float, Integer, Object,Short,

27、String等。类图是构建其它图的基础。,2019年1月2日3时9分,47,类名,对象是对象类的实例(instance),用对象图来描述。对象图亦分长式和短式。,对象名,类图与对象图,对象图,2019年1月2日3时9分,48,(1)属性(attribute)属性用来描述类的特征,表示需要处理的数据。属性定义:visibility attribute-name : type = initial-value property-string可见性 属性名:类型=缺省值约束特性其中:可见性(visibility)表示该属性对类外的元素是否可见。 分为:public(+) 公有的,即模型中的任何类都可以

28、访问该属性。private(-) 私有的,表示不能被别的类访问。protected(#) 受保护的,表示该属性只能被该类及其子类访问。如果可见性未申明,表示其可见性不确定。,2019年1月2日3时9分,49,(2) 操作对数据的具体处理方法的描述则放在操作部分,操作说明了该类能做些什么工作。操作通常称为函数,它是类的一个组成部分,只能作用于该类的对象上。操作定义:visibility operating-name(parameter-list): return-type property- string可见性 操作名(参数表):返回类型约束特性其中:可见性同上。参数表:参数名:类型,Param

29、eter-name :type =default-value返回类型:操作返回的结果类型。,类图的描述,2019年1月2日3时9分,50,二、类的识别是面向对象方法的一个难点,但又是建模的关键。常用的方法有:1、名词识别法2、系统实体识别法3、从用例中识别类4、利用分解与抽象技术,关键是要定义类的“属性”及“操作”。,2019年1月2日3时9分,51,UML中类的关系有关联(association) 、聚集(aggregation) 、泛化(generalization) 、 依赖(depending)和细化 (refinement)。,一、关联关联是类之间的连结,分为: 1、常规关联(图A)

30、 2、多元关联 3、有序关联 4、受限关联 5、或关联(图B) 6、关联类(图C),图A 顾佣关联,图B 或关联,图C 关联类,UML中类之间的关系,2019年1月2日3时9分,52,7、其它关联递归关联(Recursive association)即一个类到自身的关联。,图A 递归关联,人,治疗,病人,医生,图B 带有职责的递归关联,2019年1月2日3时9分,53,二、聚集(aggregation),聚集是一种特殊的关联,它指出类间的“整体-部分”关系。又分为:,1、共享聚集(shared aggregation)其“部分”对象可以是任意“整体”对象的一部分。当“整体”端的重数不是1时,称

31、聚集是共享的。,、组合聚集(composition aggregation)其“整体”(重数为0、1)拥有它的“部分” 。部分仅属于同一对象,整体与部分同时存在。,共享聚集,组合聚集,2019年1月2日3时9分,54,三、泛化,泛化指出类之间的“一般与特殊关系”,即继承关系。父类与子类之间构成类的分层结构。,抽象类 指没有实例的类,定义一些抽象的操作,即不提供实现方法的操作,只提供操作的特征。并附以abstract。 交叠泛化 在继承树中,若存在某种具有公共父类的多重继承,称为是交叠(overlapping)的。否则是不交的(disjoint)。 完全泛化 一般类特化出它所有的子类,称为完全泛

32、化,记为complete。 不完全泛化 即未特化出它所有的子类,称为是不完全泛化 的,表示为incomplete.,2019年1月2日3时9分,55,三、泛化,完全泛化,泛化中的多态性 及带识别名称的泛化,propulsion,propulsion,2019年1月2日3时9分,56,继承性的实例,泛化关系,2019年1月2日3时9分,57,泛化关系,2019年1月2日3时9分,58,5.4 用例图,1992年由Jacobson提出了Use case 的概念及可视化的表示方法Use case图,受到了IT界的欢迎,被广泛应用到了面向对象的系统分析中。用例驱动的系统分析与设计方法已成为面向对象的系

33、统分析与设计方法的主流。用例模型由Jacobson在开发AXE系统中首先使用,并加入由他所倡导的OOSE和Objectory方法中。用例方法引起了面向对象领域的极大关注。自1994年Ivar Jacobson的著作出版后,面向对象领域已广泛接纳了用例这一概念,并认为它是第二代面向对象技术的标志。,2019年1月2日3时9分,59,用例建模技术,用于描述系统的功能需求。在宏观上给出模型的总体轮廓。通过对典型用例的分析,使开发者能够有效地了解用户的需求。,5.3.1 用例建模概述,用例图,2019年1月2日3时9分,60,3.3.2 用例模型(Use case model)用例模型描述的是外部执行

34、者(Actor)所理解的系统功能。它描述了待开发系统的功能需求。它驱动了需求分析之后各阶段的开发工作,不仅在开发过程中保证了系统所有功能的实现,而且被用于验证和检测所开发的系统,从而影响到开发工作的各个阶段和 UML 的各个模型。用例模型由若干个用例图构成,用例图中主要描述执行者和用例之间的关系。在UML中,构成用例图的主要元素是用例和执行者及其它们之间的联系。,创建用例模型的工作包括:定义系统、确定执行者和用例、描述用例、定义用例间的关系、确认模型。,2019年1月2日3时9分,61,一、执行者(Actor)执行者是指用户在系统中所扮演的角色。执行者在用例图中是用类似人的图形来表示, 但执行

35、者可以是人,也可以是一个外界系统。,注意:用例总是由执行者启动的。,如何确定执行者: 1、谁使用系统的主要功能(主执行者)? 2、谁需要从系统获得对日常工作的支持和服务? 3、需要谁维护管理系统的日常运行(副执行者)? 4、系统需要控制哪些硬件设备? 5、系统需要与其它哪些系统交互? 6、谁需要使用系统产生的结果(值)?,供货,买饮料,取货款,客户,供货人,收银员,自动售货系统,2019年1月2日3时9分,62,二、 用例,二、用例(use case)从本质上讲,一个用例是用户与计算机之间的一次典型交互作用。在UML中,用例被定义成系统执行的一系列动作(功能)。 用例有以下特点:用例捕获某些用

36、户可见的需求,实现一个具体的用户目标。用例由执行者激活,并将结果值反馈给执行者。用例必须具有功能上的完整描述。,如何确定用例: 1、与系统实现有关的主要问题是什么? 2、系统需要哪些输入/输出?这些输入/输出从何而来?到哪里去? 3、执行者需要系统提供哪些功能? 4、执行者是否需要对系统中的信息进行读、创建、修改、删除或存储?,二、用例,2019年1月2日3时9分,63,用例图的元素,5.3.3用例图,用例图描述了系统的功能需求,它是从执行者的角度来理解系统,由“执行者”、“用例”和“用例之间的关系”3类模型元素构成。图中还有另外两种类型的连接,即使用和扩展关系,是两种不同形式的泛化关系。,U

37、se表示一个用例使用另一个用例。 Extend通过向被扩展的用例添加动作来扩展用例。,2019年1月2日3时9分,64,用例图实例,用例图实例,应用生命周期用例图,金融贸易系统,贸易经理,风险分析,设置边界,进行交易,交易估价,更新帐目,使用,使用,扩展,营销人员,超越边界,评价,记帐系统,销售人员,2019年1月2日3时9分,65,例1 建立项目与资源管理系统的Use case图,系统的主要功能是:项目管理,资源管理和系统管理。项目管理包括项目的增加、删除、更新。资源管理包括对资源和技能的添加、删除和更新。系统管理包括系统的启动和关闭,数据的存储和备份等功能。,1、分析确定系统的执行者(角色

38、),项目管理员、资源管理员、系统管理员、备份数据系统。,项目管理,资源管理和系统管理。,2、确定用例,3、对用例进行分解,画出下层的Use case图对上层的用例进行分解,并将执行者分配到各层次的Use case图中。,角色描述模板,还应画出相应的执行者描述模板及用例描述模板。,2019年1月2日3时9分,66,例1 项目与资源管理系统(PRMS),Use Case图可以自顶而下不断精化,抽象出不同层次的Use Case图。,2019年1月2日3时9分,67,例1 项目与资源管理系统(PRMS),2019年1月2日3时9分,68,作 业,现有一医院病房监护系统,病症监视器安置在每个病房,将病人

39、的病症信号实时传送到中央监视系统进行分析处理。在中心值班室里,值班护士使用中央监视系统对病员的情况进行监控,根据医生的要求随时打印病人的病情报告,定期更新病历,当病症出现异常时,系统会立即自动报警, 并实时打印病人的病情报告,立及更新病历。要求根据现场情景,对医院病房监护系统进行需求分析, 建立系统的Use case model。,2019年1月2日3时9分,69,顺序图存在两个轴:水平轴表示一组对象,垂直轴表示时间。 顺序图中的对象用一个带有垂直虚线的矩形框表示, 并标有对象名和类名。垂直虚线是对象的生命线,用于表示在某段时间内对象是存在的。 对象间的通信通过在对象的生命线之 间消息来表示,

40、消息的箭头类型指明消息的类型。,5.5 顺序图,顺序图(Sequence Diagram)用来描述对象之间动态的交互行为,着重体现对象间消息传递的时间顺序。,一、概述,2019年1月2日3时9分,70,当收到消息时,接收对象立即开始执行活动,即对象被激活了,通过在对象生命线上显示一个细长矩形框来表示激活。,二、消息,2019年1月2日3时9分,71,有两种使用顺序图的方式:一般格式和实例格式。 实例格式详细描述一次可能的交互。没有任何条件和分支或循环,它仅仅显示选定情节(场景)的交互(图5.49)。 而一般格式则描述所有的情节。因此,包括了分支,条件和循环。,三、顺序图的形式,顺序图,2019

41、年1月2日3时9分,72,带分支的顺序图,2019年1月2日3时9分,73,呼叫者,交换,接受者,拿起话筒,响拨号声,拨号码,路由选择,鸣响音,停音,响铃声,接电话,停铃声,A B C D E,B-A1S C-B10S通过网络选择通话路径 E-D5S 双方通话,打电话的顺序图,2019年1月2日3时9分,74,创建对象与对象的消亡,在顺序图中,还可以描述一个对象通过发送一条消息来创建另一个对象。,当对象消亡(destroying)时,用符号 表示。,创建或删除对象,2019年1月2日3时9分,75,协作图(Collaboration Diagram),也称为合作图,用于描述相互合作的对象间的交

42、互关系和链接(Link)关系。虽然顺序图和合作图都用来描述对象间的交互关系,但侧重点不一样。顺序图着重体现交互的时间顺序,合作图则着重体现交互对象间的静态链接关系。,5.6 协作图,一、 合作图中的模型元素,合作图中对象的外观与顺序图中的一样。如果一个对象在消息的交互中被创建,则可在对象名称之后标以new。类似地,如果一个对象在交互期间被删除,则可在对象名称之后标以destroy。,1、对象,对象名new,对象名destroy,2019年1月2日3时9分,76,2、链接(Link)链接用于表示对象间的各种关系,包括组成关系的链接(Composition Link)、聚集关系的链接(Aggreg

43、ation Link)、限定关系的链接(Qualified Link)以及导航链接(Navigation Link)。各种链接关系与类图中的定义相同,在链接的端点位置可以显示对象的角色名和模板信息。,各种关系的链接,对于链接还可以加上“角色”与“约束”,在链角色上附加的约束有global(全局),local(局部),parameter(参数),self(自身),broadcast(广播)。,2019年1月2日3时9分,77,、消息在对象之间的静态链接关系上可标注消息,消息类型有简单消息,同步消息和异步消息三种。用标号表示消息执行的顺序。消息定义的格式如下:消息类型 标号 控制信息:返回值:=消

44、息名 参数表,标号有种:顺序执行:按整数大小执行。,嵌套执行:标号中带小数点。1.1,1.2,1.3,并行执行:标号中带小写字母。1.1.1a,1.1.1b,,Predecessor guard-condition sequence-expression return-value:=signature,2019年1月2日3时9分,78,电路设计的合作图,在控制器控制下进行布线,找出左端点r0和右端点r1,创建对象“直线”,并在窗口显示出来。,布线,2019年1月2日3时9分,79,下图为一销售结果统计的合作图。,统计销售结果的合作图,2019年1月2日3时9分,80,关于顺序图与合作图,、顺序

45、图与合作图都是交互图,它们有何不同?所描述 的主要系统特征是什么? 、顺序图与合作图各适合于在哪类系统中使用?,关于状态图与活动图,、状态图与活动图有何相同与不同之处? 、在建立系统模型时,应该如何使用这两类模型?,2019年1月2日3时9分,81,状态图(State Diagram)用来描述一个特定对象的所有可能的状态及其引起状态转移的事件。一个状态图包括一系列的状态以及状态之间的转移。 状态 所有对象都具有状态,状态是对象执行了一系列活动的结果。当某个事件发生后,对象的状态将发生变化。状态图中定义的状态有:,5.7 状态图,初态状态图的起始点,一个状态图只能有一个初态。 终态是状态图的终点

46、。而终态则可以有多个。 中间状态可包括三个区域:名字域、状态变量与活动域。 复合状态可以进一步细化的状态称作复合状态。,2019年1月2日3时9分,82,中间态,响应事件的内部动作或活动的列表,定义为: 事件名 (参数表条件)/动作表达式,状态变量 是状态图所显示的类的属性。 活动 列出了在该状态时要执行的事件和动作。有3个标准事件:entry事件用于指明进入该状态时的特定动作。exit事件用于指明退出该状态时的特定动作。 do事件用于指明在该状态中时执行的动作。,例:,2019年1月2日3时9分,83,状态迁移 一个对象的状态的变迁称为状态迁移。通常是由事件触发的,此时应标出触发转移的事件表

47、达式。如果转移上未标明事件,则表示在源状态的内部活动执行完毕后自动触发转移。,状态图,电梯状态图,2019年1月2日3时9分,84,细化的状态表示,UML给出了电梯细化的状态表示,状态名 状态变量 活动,2019年1月2日3时9分,85,或关系的子状态,嵌套状态图 状态图可能有嵌套的子状态图,且子状态图可以是另一个状态图。子状态又可分为两种:“与”子状态和“或”子状态,,与子状态及或子状态,状态图,2019年1月2日3时9分,86,事件,事件是激发状态迁移的条件或操作。在UML中,有4类事件:,1、某条件变为真;表示状态迁移的上的警戒条件。 2、收到来自外部对象的信号 (signal) 表示为

48、状态迁移上的事件特征,也称为消息。 3、收到来自外部对象的某个操作中的一个调用,表示为状态迁移上的事件特征,也称为消息。 、状态迁移上的时间表达式。,2019年1月2日3时9分,87,状态图之间的消息发送,状态图之间可以发送消息,用虚箭头表示。,消息发送状态图,2019年1月2日3时9分,88,活动图(Activity Diagram)的应用非常广泛,它既可用来描述操作(类的方法)的行为,也可以描述用例和对象内部的工作过程,并可用于表示并行过程。活动图是由状态图变化而来的,它们各自用于不同的目的。活动图描述了系统中各种活动的执行的顺序。刻化一个方法中所要进行的各项活动的执行流程。活动图中一个活动结束后将立即进入下一个活动(在状态图中状态的变迁可能需要事件的触发)。,5.8 活动图,一、概述,2019年1月2日3时9分,89,二、活动图的模型元素,构成活动图的模型元素有:活动、转移、对象、信号、泳道等。,、活动是构成活动图的核心元素,是具有内部动作的状态,由隐含的事件触发活动的转移。活动的解释依赖于作图的目的和抽象层次,在概念层描述中,活动表示要完成的一些任务;在说明层和实现层中,活动表示类中的方法。活动用圆角框表示,标注活动名。,2019年1月2日3时9分,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 网络科技 > UML理论/建模

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报