UML建模语言及其开发工具Rose
Rational_Rose_建模工具及应用
部分对象可以被多个整体对象共享。
组装关系
通过指针引用
组合关系
部分对象只能只属于一个整体对象。
组装关系
通过值
限定词
将多对多的关联转化为多对一的关联。
关联类
具有关联特性的类。
先建立类,然后在工 具栏中选中关联类工 具连接类与关联。
3.1.3 模板
将属性的类型、操作的参 数类型和返回值类型参数 化。
Rational 产品线
Apex Rose SoDA Pure Series ClearCase SQA Suite 集成化软件工程环境 可视化建模 文档自动化 白盒测试 配置管理 黑盒测试
Rational Rose与软件开发阶段
需求分析 Use Case Diagram 和 其它描述 Sequence Diagram Collaboration Digram Class Diagram State Diagram Activity Diagram Component Diagram 和 其它描述
Delete Course Registrar
Modify Course
2.2 活动图
在用例模型中,活动图用来捕捉用例中 的事件,使用框图方式显示动作与结果。 除此外,还可以:描述工作流的方式; 描述对象内部的工作。 活动图由起始状态、终止状态、状态、 活动、转移、分支、对象、同步棒以及 泳道组成。
2.1 用例图
选择工具 文本框
注释 注释连接线
包 用例 参与者 单向关系 依赖关系 泛化关系
在工具栏按鼠标右键,自 定义工具栏
绘图工具栏
添加了关联工具 的工具栏
2.1.1 参与者
UML基础与ROSE建模教程第一章基础知识
UML基础与ROSE建模教程第一章基础知识本教程的第一章将介绍UML的基础知识,并详细介绍ROSE建模工具的主要功能和用途。
第一节简介UML是由Object Management Group(OMG)开发和维护的一种建模语言。
它提供了一些标准的图形符号和元素,用于描述软件系统的各个方面,如结构、行为、交互和功能等。
UML图表是用于可视化系统设计和开发过程的重要工具。
它们可以帮助团队成员更好地理解和沟通设计思想,并促进系统开发的合作和协调。
第二节UML的主要图表类型UML定义了一系列图表,用于描述系统的不同方面。
以下是一些常见的UML图表类型:1. 用例图(Use Case Diagram):用于描述系统的功能需求和用户之间的关系。
2. 类图(Class Diagram):用于描述系统中的类、对象及其之间的关系。
3. 对象图(Object Diagram):用于描述系统中对象之间的实例关系。
4. 交互图(Interaction Diagram):用于描述系统中各个对象之间的交互关系,包括顺序图(Sequence Diagram)和协作图(Collaboration Diagram)等。
5. 状态图(Statechart Diagram):用于描述系统中一个对象的状态和状态之间的转换。
7. 部署图(Deployment Diagram):用于描述系统的物理部署架构,包括硬件设备、软件组件和网络之间的关系。
第三节ROSE建模工具的主要功能2.模型管理:ROSE提供了一个集中式的模型管理系统,可以帮助用户组织和管理各种UML图表。
用户可以创建、导入、导出和删除模型,还可以对模型进行版本控制和协作。
3.代码生成:ROSE可以根据UML图表生成相应的代码。
用户可以选择不同的编程语言和代码风格,以满足具体的开发需求。
4.反向工程:ROSE支持从现有的代码库中生成UML图表。
用户可以导入源代码,并根据代码结构和关系自动生成相应的UML图表,以帮助理解和分析现有的系统。
UML建模语言及其开发工具Rose
部署图
11.1 概述 11.2 部署图中的元素 11.3 部署图的应用 11.4 部署图建模实例
部署图也称配置图、实施图。部署图和构件图都是对系 统物理方面建模的重要手段。它们之间最大的不同在于: 构件图能够帮助开发人员了解系统的物理组织结构,部 署图则用来帮助安装、部署人员掌握系统的拓扑结构。
网上书店部署图
打开部署视图 部署图工具栏按钮介绍 添加处理器 编辑处理器属性 添加设备 添加链接 编辑连接属性
复习思考题
Βιβλιοθήκη 1、比较部署图和构件图,说说它们的相同点和不同之处。 2、 什么是节点?UML中有几种节点,它们有何差别?请举例 说明。 3、某大型商场的管理信息系统由一个中央服务器、每个楼层 的楼层服务器、各柜台的收款机和各个部门的计算机终端组成 的局域网络,它们负责商场数据的汇总与分析,当日数据的保 存整理、每笔销售款项的计算和跟中进销存业务的处理。尝试 用部署图加以描述。 4、是否所有的软件系统都需要部署图?为什么,请说明理由。 5、请根据第4章习题6的描述,建立相应系统的部署图。 6、请根据第4章习题7的描述,建立相应系统的部署图。
部署图描述了系统硬件的物理拓扑结构以及在这些硬件 上运行的可执行的软件。可以显示计算结点的拓扑结构 和通信路径。
部署图帮助安装、部署人员掌握系统的拓扑结构,一般由 体系结构设计师、网络工程师、系统工程师等描述。
部署图示例:论坛系统
部署图中通常包含2种元素:节点和连接。
11.2.1 节点
节点是运行时代表计算资源的物理元素,例如一台计算 机、打印机等设备。UML中使用立方体表示节点。
节点命名 [节点名称][:节点类型] ,如 DataBaseServer:Server
UML及建模工具Rose简介
UML及建模工具Rose在随着面向对象的程序设计的广泛应用,可视化编程遍地开花的今天,编程工作人员的地位一再被动摇,早以不再作为开发中的主流,而软件工程的应用以作为软件开发的质量和效率的重要见证已越来越被重视,针对早期的结构化建模工具的明显不足,ROSE吸取众多建模工具的优点,排除其不足,采用面向对象的成熟技术和双向工程的技巧,为提高软件开发的效率,保证软件开发的质量和可维护性作出了巨大的贡献。
软件工程概述软件开发是一套关于软件开发各阶段的定义、任务、作用的建立在理论上的一门工程学科。
它为解决软件危机,指导人们利用科学、有效的方法来开发软件,提高及保证软件开发的效率和质量取到了一定的作用。
软件开发过程:需求分析(开始阶段)--概要设计(静态结构)--详细设计(动态结构)--编码-测试-维护结构化模型设计方法A.E-R图(实体关系图)实体:客观存在并可区分的事物。
属性:实体所具有的某种特性,一个实体可以有多个属性。
关系:实体之间的对应关系,可分为1:1联系、1:n联系、m:n联系B.数据流图C.功能模块图结构化模型的不足传统的结构化模型的设计所建立的模型不能反应源代码,与程序设计脱节。
模型与代码几乎没什么关系。
这样的模型不能生成代码,代码更不能生成模型,模型大多是画给领导看或拿出作掩盖。
所以不能保证软件的质量,更不易软件的维护,没什么约束力也没有检测的标准,它的弊端是显于易见的。
面向对象的模型设计方法定义:利用面向对象方法,把应用程序分成许多小块(对象),这些对象是独立的,然后组合这些对象,建立程序。
特点:封装、继承、多态。
常用的建模工具:PlayCase, Rational ROSE, Computer Association BPWin , Computer Association ERWin, Oracle Designer/2000, Sybase PowerDesignerUML统一建模语言定义:一种面向对象的统一建模语言。
UML建模语言及其开发工具Rose
创建包 修改包的属性 将类添加到包中 添加关系
复习思考题
Hale Waihona Puke 1.包在UML中属于哪一类构造块,其作用是什么? 2.包可以包含的元素有哪些? 3.什么是包的可见性,请举例说明. 4.什么是包的循环依赖,如何解决? 5.请根据第4章习题6的描述,请在Rose中绘出系 统的包图。 6.请根据第4章习题7的描述,请在Rose中绘出系 统的包图。
UI
System.Windows.Forms
GraphicGenerate
System.Drawing
所有工作都必需掌握的 ng : 基础的基础-java的核心类库,如基本数据 类型、基本数学函数、字符串处理、线程、异常处理类 等,系统缺省加载这个包。 java.util : 工具库,包含如处理时间的date类,处理 变成数组的Vector类,以及stack和HashTable类
包的一般表示
显示内容的包
1、名称
简单名,如 domain 路径名,如 com::bookshop::domain
2、拥有的元素
每个包对其所包含的元素来说是一个命名空间,在一个包 的语境中同一种元素的名称必须是唯一的。不同包之间的 元素可以重名。
AWT
# Form + Window - EventHandler
1、引入与输出 引入(import)是最普遍类型的包的依赖关系,包引 入关系与依赖关系的表示方法是相同的。在包引入的 表示方法中,带有箭头一侧的包被引入到没有箭头一 侧的包中。
与import相对的是,(提供者)包的公有部分称为输 出(export)即可见性为“+”的元素。
UML建模语言及其开发工具Rose
设计阶段
设计阶段将构造系统,并获得的实现所有需求的系统。需 求分析结果是设计的基本输入。分析模型提供了对需求的 详细理解。 在设计类绘制完成后,可用顺序图来描述相应的设计类是 如何交互的。
设计阶段所涉及的工作人员与制品
实现阶段
在实现阶段,将基于设计的结果探讨如何使用源代码、脚 本、二进制代码和可执行以等构件来实现系统。该阶段的 主要任务是用面向对象编程语言将设计阶段的类转化成实 际的代码。
风险在早期被降低。 更容易对变更进行控制。 提高了重要性。 项目开发小组可以在整个开发过程中学习。 提高产品的整体质量。
工作者(Worker):又可称为角色,它定义了个人或由若干 人组成的小组的行为和责任,如系统分析员、架构设计师等。 活动(Activity):某个角色的活动是该角色中的个人要执行 的工作单元。活动具有明确的目的,通常是生产制品或更新制 品,如模型、类或计划等。对于同一个制品,活动可能会重复 多次,特别是在精化和扩展系统时从一个迭代过程到另一个迭 代过程中更是如此。 制品(Artifact):由过程生产、修改或使用的一段信息,如 模型、文档、源代码、可执行文件。角色把制品作为执行一项 活动的输入,同时这个活动的输出或者结果也是制品。 工作流:工作流是产生具有可观测结果的活动序列,并表示出 角色之间的交互作用。
在RUP中,软件 开发生命周期根 据时间和RUP的 核心工作流划分 为二维空间。横 轴表示项目的时 间维,纵轴以内 容来组织为自然 的逻辑活动。
RUP中的软件生命过程被分解为周期,每个周期工作在 新一代产品上。 1、初始阶段(Inception)
统一建模语言UML与Rational Rose工具
需求分析阶段应用
01
利用UML用例图描述系统功能和用户需求
02
通过活动图细化业务流程和交互逻辑
构建概念模型,明确系统范围和边界
03
系统设计阶段应用
使用类图和对象图设计系统静态结构 利用时序图和协作图设计系统动态行为 构建包图和部署图,规划系统物理架构
编码实现阶段应用
1
依据设计阶段的UML模型进行编码实现
逆向工程
当代码发生变化时,Rational Rose可以通过逆 向工程将代码同步到UML模型中,保持模型与代 码的一致性。
测试支持
利用Rational Rose的测试工具,可以创建测试 用例、执行测试并生成测试报告,以确保系统功 能的正确性和稳定性。
05
UML与Rational Rose在软件 开发中的应用
提供了版本控制功能
支持多人协作开发,方便团队管理和控制UML模型的版 本。
Rational Rose工具优势
专业的建模工具
Rational Rose是一款经过广泛验证的 专业建模工具,具有高度的可靠性和稳
定性。
良好的兼容性
支持多种操作系统和开发语言,可以 与其他开发工具无缝集成。
强大的功能支持
提供了全面的UML建模功能,并支持 多种UML图的创建和编辑,满足复杂 软件系统的建模需求。
与其他工具的集成
为了更好地支持软件开发过程,未来UML建模工具可能 会与其他开发工具进行更紧密的集成,实现建模、设计、 开发、测试等全流程的自动化。
多领域应用
UML作为一种通用的建模语言,未来可能会应用于更多 领域,如物联网、大数据、云计算等,为这些领域的软件 开发提供可视化建模支持。
标准化和规范化
UML建模语言及其开发工具Rose
Person
派生属性
派生关联
关联的种类
自返关联(reflexive association):又称递归关联,是一 个类与它本身相关联,也就是同一个类的两个对象间的关 联。
自返关联
如图所示一个Employee类如何通过 manager/manages 角色与它本身相关。该图描绘的关系说明一个Employeep 实例可能是另外一个Employee实例的经理。
关联名:动词或动词短语,用来描述关联的性质和作用。
关联名
在类图中,不需要给每个关联都加上关联名。只有在 明确地给关联提供角色名时才给出关联名。
关联的角色是关联关系中一个类对另一个类所表现出来 的职责。角色的名称是名词或名词短语。 关联关系上没有标出角色名,隐含用类名作为角色名。
关联的角色
DemandDepositAccount
Customer 1
holds 0..n
Account
FixedDepositAccount
CreditCardAccount
银行账户模型类图1:泛化
泛化定义了一般元素和特殊元素之间的分类关系,可以 克服以上两个问题。一般元素称为父类或超类,特殊元 素为子类。 从面向对象程序设计的角度过说,类与类之间的泛化就 是类与类之间的继承关系。
2、组合(composition) 组合也表示整体与部分的关系,又被称为强聚合。在 组合中,部分与整体具有相同的生命周期,“部分” 对象完全依赖于“整体“对象。
Window
1 1..n
Frame
撤销一个Window时,Window对象必须依次撤销它的 Frame 部分。
3、何时使用聚合和组合
第3章 ROSE简介
逻辑视图 包含的内容 1. 2. 3. 4. 5.
用例、用例图 类、类实体、类图 接口 活动图、状态图 协作图、顺序图
类是对某个或某些对象的定义。它包含相关对象动 作方面的信息,包括它的名称、方法、属性和事件 。在用例视图中可以直接创建类。在类的下面也可 以创建其他的模型元素,包括类的属性(Attribute) 、类的操作(operation)、嵌套类(Nested Class )、 状态图(statechart Diagram)和活动图(Activity Diagram)等。
在浏览器中选择某个接口,单击右键,在弹出
的快捷菜单中可以看到在该接口允许创建的元 索。
序列图主要用于按照各种类或对象交互发生的一系列 顺序显示各种类或对象之间的交互。 对开发者非常有意义,序列图显示了程序是如何在时 间和空间中在各个对象的交互作用下一步一步执行下 去的。 对于组织的业务人员,序列图显示了不同的业务对象 如何交互,对于交流当前业务很有帮助。一个业务级 的序列图还能被当作一个需求文件使用 在项目的需求阶段,分析师将用例细化为一个或者更 多的序列图,帮助技术人员了解,一个未来系统的行 为应该如何表现。 在设计阶段,架构师和开发者能使用序列图挖掘出系 统对象的交互,从而充实整个系统设计
• ……
2、附带UML建模工具的开发工具有: • Eclipse • Microsoft Visual Studio • JBulider • ……
ROSE简介(1)
Rational Rose是一种支持UML、 Booch 、Object Modeling Technique (OMT) 表示方法的OOA/OOD软件工 具。Rose是最早的UML的建模工具,由美国Rational公司 (现被IBM收购)开发,本课程实践使用2003版。 Rational Rose 提供了创建、查看、修改和管理UML模型 的可视化环境 Rose可以运行在多个平台 – Windows NT, Windows 95 – UNIX (Solaris, HP/UX, AIX, SGI, DEC Unix) 不同平台间的模型具有完全的互访性 Rose支持模型与多种编程语言代码的正反向转换功能
UML建模工具,rose和rhapsody区别
UML建模工具,rose和rhapsody区别一三大UML建模工具Visio、Rational Rose、PowerDesign的区别UML建模工具Visio 、Rational Rose、PowerDesign的比较ROSE是直接从UML发展而诞生的设计工具,它的出现就是为了对UML建模的支持,ROSE一开始没有对数据库端建模的支持,但是在现在的版本中已经加入数据库建模的功能。
ROSE主要是在开发过程中的各种语义、模块、对象以及流程,状态等描述比较好,主要体现在能够从各个方面和角度来分析和设计,使软件的开发蓝图更清晰,内部结构更加明朗(但是它的结构仅仅对那些对掌握UML的开发人员,也就是说对客户了解系统的功能和流程等并不一定很有效),对系统的代码框架生成有很好的支持。
但对数据库的开发管理和数据库端的迭代不是很好。
PowerDesigner原来是对数据库建模而发展起来的一种数据库建模工具。
直到7.0版才开始对面向对象的开发的支持,后来又引入了对UML的支持。
但是由于PowerDesigner侧重不一样,所以它对数据库建模的支持很好,支持了能够看到的90%左右的数据库,对UML的建模使用到的各种图的支持比较滞后。
但是在最近得到加强。
所以使用它来进行UML开发的并不多,很多人都是用它来作为数据库的建模。
如果使用UML分析,它的优点是生成代码时对Sybase的产品PowerBuilder的支持很好(其它UML建模工具则没有或者需要一定的插件),其他面向对象语言如C++,Java,VB,C#等支持也不错。
但是它好像继承了Sybase公司的一贯传统,对中国的市场不是很看看好,所以对中文的支持总是有这样或那样的问题。
UML建模工具Visio 原来仅仅是一种画图工具,能够用来描述各种图形(从电路图到房屋结构图),也是到VISIO2000才开始引进软件分析设计功能到代码生成的全部功能,它可以说是目前最能够用图形方式来表达各种商业图形用途的工具(对软件开发中的UML支持仅仅是其中很少的一部分)。
UML面向对象建模 -Rose实验教程
实验四:交互图.....................................................................................................................30 实验 4.1 了解交互图的工具栏按钮的图标和含义 ...................................................30 实验 4.2 交互图中的角色...........................................................................................31 实验 4.3 交互图中的消息...........................................................................................34 实验 4.3 在顺序图和协作图之间切换.......................................................................42 实验 4.3 练习:建立 Sequence 框图和 Collaboration 框图......................................42
3、如果选择框架,则 Rose 自动装入这个框架的默认包、类和组件。例如,装入 Jenterprise 框架,则左边的浏览器窗口如图
UML与ROSE建模基础时序图协作图等
主要内容
1. 协作图的组成 2. 运用协作图 3. 实例图与一般图 4. 对象的创建与销毁 5. 其他概念
14
1.2.1 协作图的组成
协作图由下列图形元素构成:对象、关联线、导航箭线和 消息。 (1)对象:一般只给出名称,其命名规则与在对象图中相 同。可以使用匿名对象。 (2)关联线:表示在对象之间存在交互协作的关系。 (3)导航箭线:指出消息传递的方向和消息的类型。 (4)消息:表示对象之间的通讯。消息的含义与格式跟顺 序图中相同。 序号[保护条件] *[循环]返回表:=操作名(参数 表)
16
1.2.2 协作图[2] 协作图
1: Keystroke
: GUI
2: notify(keystroke) 7: feedback() 4: update(keystroke) : OperatingSystem
: Monitor
3: notify(keystroke) 6: display(keystroke)
源对象 Simple Message
目标对象
7
1.1.1 顺序图的组成 顺序图的组成[3]
消息内容: 消息内容
序号[保护条件 循环]返回表 操作名( 序号 保护条件]*[循环 返回表 操作名(参数表) 保护条件 循环 返回表:=操作名 参数表) 为消息在整个交互中的顺序号,可缺省。 序号 为消息在整个交互中的顺序号,可缺省。 保护条件 在方括号中,含有一个布尔表达式,只有当条件满足时 在方括号中,含有一个布尔表达式, 才能发送该消息。当缺省时,表示该消息是无条件发送的。 才能发送该消息。当缺省时,表示该消息是无条件发送的。 *[循环 循环] “*”表示该消息重复发送。循环说明发送的重复次数, 表示该消息重复发送。 循环 表示该消息重复发送 循环说明发送的重复次数, 缺省表示次数未规定。 缺省表示次数未规定。 操作名(参数表) 操作名或是一般消息名, 操作名(参数表) 操作名或是一般消息名,或是接受该消息对象 中的操作名。参数表是一个以逗号分隔的实在参数表,实在参数的 中的操作名。参数表是一个以逗号分隔的实在参数表, 次序、个数、类型必须与该操作的形式参数一致。 次序、个数、类型必须与该操作的形式参数一致。 返回表: 返回表是一个以逗号分隔的名字列表, 返回表:= 返回表是一个以逗号分隔的名字列表,这些名字代表 后面跟的操作所返回的值。 后面跟的操作所返回的值。
UML建模语言及其开发工具Rose
构件,或称组件,是系统中可替换的物理部分,
它遵从一组接口并且提供了这些接口的实现。 通俗地说,构件是类、接口等逻辑元素打包而形 成的物理模块。构件的大小是可变的,例如源文 件、实现子系统、动态链接库、等都是一种构件。
UML2.x构造型表示法
UML2.x小图标表示法
UML1.x表示法
构件名:简单名,路径名 也可以使用标记值或表示其细节的分隔栏修饰构件 (rose不支持)
对源代码建模,应遵循以下策略:
采用不同的语言开发程序时,源程序会保 存在不同扩展名的文件中。如C++开发软件, 源程序存储在扩展名为.h的头文件和扩展名 为.cpp的程序文件中;Java的源文件存储 在.java文件中。通过构件图可以清晰地表示 出各个不同源程序文件之间的关系,有助于 理解各个源代码文件之间的对应关系。
部署构件(deployment component):又称实施构 件,这类构件是运行系统时需要配置的构件,是形成可 执行文件的基础。如动态链接库、.exe文件,COM+、 EJBs、CORBA、动态Web页面、数据库表等。 工作产品构件(work product component):这类 构件主要是开发过程的产物,包括创建部署构件的源代 码文件及数据文件,它们是部署构件的来源。 执行构件(execution component):作为一个正在 执行的系统的结果而被创建的,例如由DLL实例化形成 的COM+对象等。
对于一个构件而言,它有两类接口: 提供接口(provided interface):构件实现的接口称 为提供接口或导出接口,它是一个构件能够为其它构件 提供服务的操作的集合。 需求接口(required interface):构件使用的接口被 称为需求接口或引入接口,即构件向其它构件请求服务 时要遵循的接口。 构件和它实现的供给接口之间是实现关系,而和它所 使用的需求接口之间是依赖关系。
rational rose的基本特点
rational rose的基本特点Rational Rose是一种流行的UML建模工具,被广泛用于软件系统设计和开发之中。
作为一个高效的建模工具,Rational Rose在许多方面都有其独特的特点。
接下来,我们将从以下几个方面来详细阐述Rational Rose的基本特点。
1. 统一建模语言Rational Rose完全符合UML (Unified Modelling Language) 的标准,支持UML中的所有元素,如项、用例、类、接口、序列图、活动图、状态图、组件和部署图等。
这种特性使得用户可以使用UML标准的概念和术语来对系统进行建模和描述,这大大提高了跨团队和国家间沟通的效率。
2. 呈现数据的完整性Rational Rose可以对其内置的所有模型进行更新,这意味着任何属性或数据的改变都将更新到整个模型中。
系统的整个模型会被保留下来,并在新的版本或备份数据的创建中使用。
这使得用户可以轻松地维护项目,并确保在并行开发时数据的一致性。
3. 多种图形的表达方式Rational Rose支持多种图形表达方式。
通过使用这些表达方式,用户可以更好地理解和设计复杂的系统。
例如,类图可用于建模类,状态图可用于建模对象的生命周期,序列图可用于描述系统中的通信以及活动图可用于建模业务流程。
这些图形表达方式是Rational Rose 的另一种独特特性之一。
4. 可扩展性和定制性Rational Rose的另一个重要特点是其可扩展性和定制性。
它允许用户实现自己的代码生成器、自定义菜单和工具栏。
用户还可以加入自己的自定义UML元素,以适应他们自己的特殊要求。
这个特性非常重要,因为不同的用户需求不同,Rational Rose可以灵活的适应这些要求。
5. 支持多种编程语言Rational Rose不仅为用户提供了强大的模型作图工具,而且还提供了多种编程语言的支持,包括Java、C++和Visual Basic等。
UML建模语言及其开发工具Rose
[Cart=null] 4: 创建一个购物车并初始化 5: addCart()
监护条件 [Cart=null] 满 足发送消息 4和消息 5, 否则直接发 送消息 6 监护条件 [CartItem=null] 满足发送消 息 8,否则发 送消息 9
6: loadBook(bookId):Book
7: loadCartItem(cart,book):CartItem
: 购物车控制
: 购物车界面
: CartItem
会员添加图书到购物车通信图
订单状态图
类之间的关系
网上书店中的包图
Domain包构件图
网上书店部署图
6: loadBook(bookId):Book
7: loadCartItem(cart,book):CartItem [CartItem=null] 8: 创建一个新 CartItem并初始化 9: 追加已有 CartItem的 number和 money 12: 添加或更新 cartItem
: Cart 13:
书店管理员登录顺序图
: Member
: 图书信息界面
: 购物车界面
: 购物车控制
: Cart
: Book
: CartItem
1: addToCart() 2: addToCart(member,bookId) [ 会员已登录 ] 3: loadCart(member):Cart 监护条件 [ 会员已登录 ] 满足才发 送消息 3及 后续消息
: 管理员
: 管理员登录界面
2: admiginPwd)
[ 验证通过 ] 4: : 管理员登录控制
3: adminlogin(adminType,loginName,loginPwd):boolean
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
核心元素 用圆角矩形表示的状态(初态、终态除外) 转换:状态之间的、包含目标状态
withdraw( amt )[ amt>bal ] / bal- =amt
Overdrawn
源状态:受转换影响的状态 目标状态:转换完成后对象的状态 (触发)事件:任何能够影响对象的东西都可称为事件,用来为 转换定义一个事件,包括调用、改变(或称变化)、信号、 时间四类事件。 调用事件:例如,使用某对象的成员方法就是调用事件 改变事件:指依赖属性值的布尔表达式得到满足 信号事件:例如,键盘和鼠标的操作均属于此类事件 时间事件:指满足某一时间表达式的情况的出现
转换
源状态
事件
监护条件
动作
目标状态
InCredit
withdraw( amt )[ amt>bal ] / bal- =amt
Overdrawn
转换
监护条件:通常是布尔表达式,决定是否激活转换。要区别 变化事件和监护条件 动作:转换激活时的操作,它可以是一个赋值语句、简单的 算术运算、发送信号、调用操作、创建和销毁地象、读取和 设置属性值,甚至是一个包含多个动作的活动。 转换:事件(参数)[监护条件]/动作
订单对象处于 "等待到款"或 "等待受理"状态时,用户可取 消交易,由此订单对象转换为“取消”状态; 订单对象处于 "等待受理"状态,若书店销售管理员受理了 订单,则更新订单状态,订单对象转换为"已受理"状态; 订单对象处于 "已受理"状态,书店发货,销售管理员更新 订单状态订单对象转换为"已发货"状态; 用户收到货物,书店确认后"交易成功" 。
细化状态内部的转换和活动
使用复合状态
创建状态图 状态工具栏按钮介绍 增加初态和终态 添加状态 添加转换 增加复合状态 添加历史状态
复习思考题
1.使用状态机对对象建模时,应在选择什么样的对象属性上 建模? 2.引发状态转换的事件有哪几种? 3.在状态图中,状态可以由哪几部分组成? 4.复合状态可分为哪两种类型,区别是什么?并举例说明。 5.某电梯从第一层开始启动,他能上下移动。如果电梯在某 一层上处于空闲状态,则当超时事件出现时,它就返回到第 一层,请为其绘制简单的状态图。 6.某销售POS即,它的工作流程是:当客户到收银台后,兽 医院注意输入用户购买的商品,输入完后,计算出总金额, 然后等待用户付款,确定支付成功后,完成收银,等待下一 个用户。请为其绘制出相应的状态图。 7.请根据第4章习题6的描述,绘出相应系统的状态图集。 8.请根据第4章习题7的描述,绘出相应系统的状态图集。
在对象的整个生命周期中,它的状态是会发生变化的, 状态机用来表示一个对象在其的生命周期中所具有的各 种状态和这个对象从一种状态到另一种状态的转换,以 及引起状态转换的事件。 状态机图,也称状态图,就是用来展示状态机的,重点 在于描述状态之间的变化的控制流。
状态:指对象在生命周期中的一个条件和或情况,在这种状 态中,对象满足某些条件、执行某些活动或等待某些事件。 状态类型细分有初态、终态、组合状态、历史状态等。在一 个状态机图中只能有一个初态、可以有一个或多个终态,也 可以没有终态。 一个状态可包含:名称、进入/退出活动、内部转换、子状 态和延迟事件等。
活动:有时,对象在处于一个状态的同时,还做着某些 工作,并一直继续到被某个事件中断。这种情形就是一 个正在进行的活动。
语法:do/动作
延迟事件:延迟事件是一种特殊的事件,它是指该事件 不会触发状态的转换,当对象处于该状态时事件不会丢 失,但会被延迟执行。
语法:事件/defer
活动
延迟事件
Resume interupt Play Pause
Back
状态机图是一个用来描述局部信息的建模工具,它的主 要应用有两种:一是对对象生命周期建模,二是对反应 型对象建模。 1、对对象生命周期建模:使用状态机为目的对象(主 要是类和用例的实例)的生命周期建模。主要描述对象 能够响应的事件、对这些事件的响以及过去对当前行为 的影响 2、对反应型对象建模:这个对象可能处于的稳定状态、 从一个状态到另一个状态之间的转换所需的触发事件, 以及每个状态改变时发生的动作
第9 章
状态机图
9.1 概述
9.2 简单状态图
9.3 包含复杂转换的状态图 9.4 包含复合状态的状态机图
9.5 状态机图的应用
9.6 状态机图建模实例
在系统运行的某一时刻,每个对象都处于某种状态中, 该状态表示对象执行了前一个活动或动作的结果,它通 常由属性值和与其他对象的链接来确定。 例如,火车(对象)已出站(状态),张三(对象)在 读博士(状态)等等。
转换类型
描述
语法
外部转换 对事件做出响应,引起状态变化或 事件(参数)[监护条 自身转换,同时引发一个特定动作, 件]/动作 如果离开或进入状态将引发进入转 换、离开转换 内部转换 对事件做出响应,并执行一个特定 的活动,但并不引起状态变化或进 入转换、离开转换 进入转换 当进入某一状态时,执行相应活动 退出转换 当离开某一状态时,执行相应活动
1、顺序复合状态图 当复合状态被激活时,只有一个子状态会被激活。
2、并发复合状态图
当进入并发复合状态时,每个并发区中都有一个直接的子状态被 激活。
3、子状态机通信
Exit/ exam=true
[exam]
4、历史状态 历史状态代表上次离开复合状态时的最后一个子状态, Active 它用一个圆圈中加上字母’H’表示。每当转换到历史 H Forward 状态时,对象便恢复到上次离开时的最后一个子状态。
事件(参数)[监护条 件]/动作 entry/进入动作 exit/退出动作
外部转换:最普通的转换,是一种改变活动状态的转换。它 用从源状态到目标状态的箭头表示,其他特征以文字串附加 在箭头旁。
进入转换:当进入一个状态时,执行某个动作; 退出转换:退出某个状态时,执行某个动作。 内部转换:用来处理一些不离开该状态的事件。例:用 户在登录界面上单击清空按钮
状态机:UML中的状态机模型是用来展示状态与状态之 间转换的图。 对象往往具有多个属性,被状态机建模的属性特性: 属性拥有较少的可能取值 属性在这些值之间的转移有一定的限制 例 设备管理系统中,类“设备” 的属性 使用时间:整型,随时候变动会有很多的取值,对设 备管理意义不大。 设备状况:枚举型,使用中、维修中、闲置和报废。 取值有限,且每个取值的变换都受到发生事件的限制, 因此应根据“设备状况”建模。
步骤:寻找主要的状态,确定状态之间的转换,细化状态 内的活动与转换,用复合状态来展开细节 订单对象有确认订单、等待到款、等待受理、已受理、已 发货、交易成功和取消7种状态,状态间转换如下:
"确认订单"后根据付款方式决定向下一个状态的转换。 ① 付款方式=网银支付,订单对象进入"等待到款" 状态;用 户付款成功后,订单对象由 "等待到款" 状态转换为 "等待受 理"状态; ② 付款方式=货到付款,订单对象进入"等待受理"状态;
Lighting
entry/ turnOn do/ blinkFivetiomes event powerOff/ powerSupplySelf exit/ turnOff event selfTest/ defer
复合状态:包含一个或多个嵌套状态机的
状态,它所包含的状态称为子状态。复合 状态也称为组合状态。 复合状态可以使用‘与’关系分解为并发 子状态,或者通过‘或’关系分解为互斥 的顺序子状态。