跟我学UML建模工具StarUML(第12部分)——应用StarUML创建状态图的创建示例
starUML用例图类图建模

26
华中科技大学控制系 软件工程 陈曦
添加依赖关系
• “Test_Pizza”类对其他三个类存在依赖关系,因为“Test_Pizza”类 中会对这三个类实例化以进行测试。在左侧的“ToolBox”中的 “Class”栏,选择“Dependence”图标,左键点击“Test_Pizza”类 ,分别拖拽至其他三个类,用顶部工具栏的“Line Style”按钮将连线 变为直角类型。为这三条依赖连线命名为“instantiates”,即实例化 。
2
华中科技大学控制系 软件工程 陈曦
给工程命名
• 在右边的“Model Explorer”框中选定“Untitled”节点, 这是整个工程的根节点,在右边的“Properties”框的 “Title”项填写工程的名称
3
华中科技大学控制系 软件工程 陈曦
新建模型
• 在StarUML中,模型是包含软件模式信息的元素,右键项目根节点, 在弹出的菜单中选“Add/Model”,则在根节点下新建节点 “Model1”,此时可以输入模型名称,也可以选定“Model1节点”, 在右侧“Properties”框的“Name”项为其改名。
10
华中科技大学控制系 软件工程 陈曦
为用例增加扩展点
• 在用例图中选中“显示购物篮”用例,在右侧“Properties”框中选中 鼠标左键单击“ExtensionPoints”项,再单击该项右侧出现的“…” ,选择弹出窗体的“ExtensionPoints”选项卡,单击左侧的“Insert” 绿色按钮,则增加一个扩展点,在右侧“Properties”框为扩展点改名 为“管理购物篮”,同样地增加“付账”扩展点。
4
华中科技大学控制系 软件工程 陈曦
UML建模工具软件StarUML从入门到精通——应用StarUML实现正反向工程的应用示例

(2)反向工程 1)由于在软件系统的实际开发实现的过程中, 很可能是先完 成了系统中的部分程序代码的开发实现, 然后再补充相关 的设计文档, 此时就希望能够通过存在的程序代码来生成 对应的UML类图, 这个就属于逆向工程了。 2)另外,当开发实现的过程中也可能会修改程序类的结构及 类之间的关系的程序代码,希望所修改的程序代码能够反 映在原始的UML类图中以更新类图,从而保持UML类图与程 序代码的一致性。此时,也需要应用逆向工程。
(1)打开待导出的类图
(2)设置导出的程序风格选项 在菜单中依次选择“Tools — Java — Configure”子菜 单项目。
(3)在设置对话框中根据应用的需要选择对应的项目
比如,可以选中“Generate the Documentation by JavaDoc”等选项,从而可以在创建的Java程序代码中自动地添 加文档说明信息。
2)导出所创建的Compute类的程序代码示例
(7)添加实现代码 1)由于StarUML只是生成反映类结构的程序代码,而不是任 何对象的具体功能实现的程序代码。
2)因此,在使用StarUML创建类图后,还应该为此Stub Code 添加剩余的功能性实现代码以实现方法的最终功能实现。
6、应用逆向工程实现根据程序代码创建出对应的类图
2、添加Java扩展插件
在StarUML工具软件中需要添加相关语言的插件才能进行正 反向工程的操作。 (1)启动Extension Manager子菜单
StarUML建模指南

StarUML 建模指南1. 启动,建立project 。
选择default 即可。
2. 进入主界面,各部分功能如下所示:模型浏览区,分为用例模型、分析模型、设计模型、实现模型、部署模型五部分属性浏览区,当选中某一模型或模型元素时,它的所有属性都在这里展示,可以修改建模区,相当于一张图纸,从左侧区域选择建模符号,在此绘制模型即可。
建模符号区,是构成UML 模型的基本要素3. 首先创建用例模型。
在模型浏览区的<<useCaseModel>>树节点上点击右键,选择AddDiagram 、Use Case Diagram ,并为新建立的图命名。
4.此时,左侧建模符号区展现了用例模型的基本要素参与者通讯关联(双向)通讯关联(单向)泛化关系(actor之间、用例之间)Include关系(用例之间)Extend关系(用例之间)5.选中某种建模符号,在绘图区单击,即可建立相应的模型要素。
对其进行命名,并可在右下角的属性区修改属性。
6. 接下来建立分析类图。
在模型浏览区的<<analysisModel>>节点上点击右键,选择AddDiagram 、Robustness Diagram ,并为新建立的图形命名。
此时左侧符号区展示了分析类图的要素。
实体类控制类边界类关联关系选中某个类,可以在这里修改它的版型(边界类、控制类、实体类)从用例模型的菜单里,可以将已有的actor 拖拽进建模区7. 建立领域类图。
在模型浏览区的<<analysisModel>>节点上点击右键,选择Add Diagram 、Class Diagram ,并为新建立的图形命名。
此时左侧符号区展示了领域类图的要素。
类接口双向关联单向关联聚合组合继承依赖实现关联类可以将分析类图中已建立好的实体类直接拖拽到建模区选中某个类或某个关系,在这里可以修改它的相关信息•类:名字/版型等•关系:角色名、方向性、多重性等8.建立类的属性和操作。
UML建模工具软件StarUML从入门到精通——软件系统详细设计中的ML类图及类之间的各种关系

7、类的聚合与组合关系
(1)聚合与组合反映了事物的部分与整体之间的关系。通过聚 合与组合对实体之间的部分与整体关系建模。
(2)识别聚合关系的常用方法是在系统需求分析中寻找“由…. 构成”、“包含”或者“是….”等字句。
(3)所应该要注意的问题 1)聚合暗示着整体在概念上处于比局部更高的一个级别, 而关联暗示两个类在 概念上位于相同的级 别。 2)聚合也转换 成Java中的一个实例 作用域变量。
类的继承关系的层次体现12抽象类的uml表示形式1抽象类或抽象操作的名字用斜体字表示2关键字abstract可以放置在位于名称下面或后面的特性表中如accountabstract如下的computer类为系统中的抽象13类之间的依赖关系1类之间的依赖关系实体之间一个使用关系1依赖关系是一种使用关系特定事物的改变有可能会影响到使用该事物的事物反之不成立
(3)合成的新对象与组成部分的各个对象的关系 1)在一个合成里,部分与整体的生命周期都是一样的。
2)一个合成的新对象完全拥有对其组成部分的支配权。包 括他们的创建和毁灭(与代表整体的对象同时存在、消 失)。
3)因为如果没有了整体类,则此时系统中的部分类也没有 存在的价值, 部分类的存 在是因为有 整体类的存 在。
(2)类的static成员属性 所应该注意的是,对类的成员属性也就是 static成员属 性在类图中的表示为带下划线的形式。 如下面的Compute类中的“oneUSBDevice”成员属性的表 示方式。
4、类中的方法成员及其UML的图示
(1)类中的操作(成员方法) 1)操作是类的行为特征或动态特征,用于对服务或实体相关 的操作建模。
2、类的UML的图示表示形式
(1)类是对象的集合,这些对象有共同的结构特征、行为特征 、联系和语义; (2)在UML中类的图形表示为实线矩形框。 (3)所应该要注意的问题 1)在类图中不一定要列出全部的成员内容。如在建立分析模 型或设计模型时,可以只列出类名,在图中只需要着重表 达类之间的联系; 2)在建立实现模型时,再在类图中给出类的组成成员属性和 操作方法等方面的详细内容。
UML建模工具软件StarUML从入门到精通——StarUML工具软件的主要功能界面和UML图的创建示例

(6)构件图(Component Diagram) 构件图表示软件构件之间的依赖。组成软件构件的那些元 素和实现软件的那些元素都可以用构件图来表示。
(7)活动图(Activity Diagram) 活动图是状态图的一种特殊形式,适合于表示动作执行流。 活动图通常用于表示工作流,常用于象类、包和操作等对象。
(12)StarUML不仅可以导出或者输出不同格式的文件,也可以 将其它文件直接导入到本项目文件中:
2、StarUML工具软件所支持的各种模板类型
其中的“4+1 View Model”为软件架构 "4+1" 视图模型, 该模型包含五个主要的视图: 1)逻辑视图(Logical View),设计的对象模型(使用面向 对象的设计方法时); 2)过程视图(Process View),捕捉设计的并发和同步特征;
(1)类图(Class Diagram) 类图是各种类相关的元素静态关系的可视表示。类图不仅 包含类,而且还包含接口、枚举、包和各种关系、实例及其联 系。
(2)用例图 (Use Case Diagram) 用例图是特定系统或对象中用例及外部角色间关系的可视表 示。用例表示系统功能以及系统如何同外部角色交互的。
3)物理视图(Physical View),描述了软件到硬件的映射, 反映了分布式特性; 4)开发视图(Development View),描述了在开发环境中 软件的静态组织结构; 5)场景(Scenarios)
3、下图为创建“4+1 View Model”项目后的结果界面
(1)在右端自动地出现软件架构 "4+1" 视图模型中的五个主要 的视图元素,在项目中可以直接编辑这些视图元素,从而可以快 速地创建基于软件架构 "4+1" 视图模型的UML文件:
UML建模工具软件StarUML从入门到精通——如何应用StarUML创建接口及实现类的应用示例

1、接口
(1)接口是一组外部可访问的操作,也是一个类提供给另一个 类的一组操作,它描述类的部分行为,用于为类或组件提供服务 。 (2)可以将接口看成是不含属性的特殊抽象类,其操作也没有 方法。
2、接口的UML图示形式
接口在类图中表示为一个带接口名称的小园,并标有接口 名(棒糖式接口);
5、在该类图中再添加USBDevice接口的其它实现类 (1)实现类MP4
(2)实现类RemoveHDDisk
(3)设置RemoveHDDisk和MP4为USBDevice接口的实现类
(4)最终的结果
3、实现接口
或者
(1)接口的实现 接口与对它进行实现的模型元素(实现类)之间用一条直线 相连(它们之间是一对一的关联关系);
或者
(2)调用该接口的类与接口之间用带箭头的虚线连接,它们之 间是依赖关系
3、在项目中再添加一个名称为“USB设备接口及实现”的 类图
4、在该类图中添加一个名称为USBDevice的接口
(1)添加一个名称为USBDevice的接口
(2)设置该接口的显示方式为“Icon with Label”的形式, 从而显示出<interface>构造形。
(3)在名称为USBDevice的接口中添加readData和writeData成 员方法
(4)在接口中显示出这些方法——在Format工具栏中选择 “Suppress Operations”按钮
staruml使用方法

staruml使用方法StarUML是一款流行的UML建模工具,它可以帮助开发人员更好地设计和管理软件项目。
下面是关于StarUML使用方法的详细介绍。
一、安装StarUML1. 下载StarUML安装包,可以从官方网站或其他可信的下载站点下载。
2. 双击安装包,按照提示完成安装过程。
二、创建新项目1. 打开StarUML,点击“File”菜单,选择“New Project”。
2. 在弹出的对话框中输入项目名称和存储路径,点击“OK”按钮。
三、创建类图1. 在左侧的工具栏中选择“Class Diagram”工具。
2. 在右侧的“Model Explorer”中选择新建的项目,右键点击“AddDiagram”菜单,选择“Class Diagram”。
3. 在新建的类图中,可以使用工具栏中的各种工具创建类、接口、枚举等元素。
4. 双击类图中的元素,可以编辑其属性和方法。
四、创建时序图1. 在左侧的工具栏中选择“Sequence Diagram”工具。
2. 在右侧的“Model Explorer”中选择新建的项目,右键点击“Add Diag ram”菜单,选择“Sequence Diagram”。
3. 在新建的时序图中,可以使用工具栏中的各种工具创建对象、消息等元素。
4. 双击时序图中的元素,可以编辑其属性和方法。
五、创建用例图1. 在左侧的工具栏中选择“Use Case Diagram”工具。
2. 在右侧的“Model Explorer”中选择新建的项目,右键点击“Add Diagram”菜单,选择“Use Case Diagram”。
3. 在新建的用例图中,可以使用工具栏中的各种工具创建用例、参与者等元素。
4. 双击用例图中的元素,可以编辑其属性和方法。
六、导出项目1. 点击“File”菜单,选择“Export”菜单。
2. 在弹出的对话框中选择要导出的文件类型和存储路径,点击“OK”按钮。
以上就是关于StarUML使用方法的详细介绍。
跟我学UML建模工具StarUML(第12部分)——应用StarUML创建状态图的创建示例

1.1跟我学UML建模工具StarUML(第12部分)——应用StarUML创建状态图的创建示例1.1.1UML状态图及相关技术1、状态机图和状态机图中的状态(1)状态机图UML状态图(也称UML状态机图)是展示对象状态与状态转换的视图,在UML中,状态机图用于对具有事件驱动的特性的动态行为的建模。
(2)状态机图中的状态状态是状态机图的重要组成部分,所有对象都具有状态,状态是对象执行了一系列活动的结果。
当某个事件发生后,对象的状态将发生变化。
2、状态图(State Diagram)(1)什么是状态图用来描述一个特定对象的所有可能状态及其引起状态转移的事件,从而可以实现对单个的对象行为建模。
(2)状态图的主要作用大多数面向对象技术都用状态图表示单个对象在其生命周期中的行为,同时也显示了该实体如何根据当前所处的状态对不同的时间做出反应的。
3、什么场合中应该要采用状态图当功能行为的改变和状态有关时才需要创建出UML状态图,因为通过状态图可以显示对象在其生命周期中依次经历的各种状态。
但如果要表示由系统内部生成的功能操作(而非外部事件)驱动的事件流时,则一般使用UML活动图。
如下给出一个Account对象的状态图示例:4、为什么要使用UML状态图(1)动态特性是由事情所触发的一个完全静态的系统是无任何应用价值的,因为没有事件发生也就不可能产生出具体的功能。
所有真正的软件应用系统自身都含有某些动态的特性,并且这些动态的特性是由内部或外部发生的事件所触发。
比如,在一个ATM机上,动作是由一个用户按下相关的功能按钮引发而开始一个事件;在一个自动机器人中,动作是由机器人碰上一个对象而引发的;在一个网络路由器中,动作是由检测消息缓冲区是否溢出而引发的。
如下图为一个图书销售业务的状态图示例:(2)为单个的对象和共同工作的对象建模使用UML交互图可以对共同工作的对象群体的行为进行建模,而使用状态图,则可以对单个的对象行为进行建模。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.1跟我学UML建模工具StarUML(第12部分)——应用StarUML创建状态图的创建示例
1.1.1UML状态图及相关技术
1、状态机图和状态机图中的状态
(1)状态机图
UML状态图(也称UML状态机图)是展示对象状态与状态转换的视图,在UML中,状态机图用于对具有事件驱动的特性的动态行为的建模。
(2)状态机图中的状态
状态是状态机图的重要组成部分,所有对象都具有状态,状态是对象执行了一系列活动的结果。
当某个事件发生后,对象的状态将发生变化。
2、状态图(State Diagram)
(1)什么是状态图
用来描述一个特定对象的所有可能状态及其引起状态转移的事件,从而可以实现对单个的对象行为建模。
(2)状态图的主要作用
大多数面向对象技术都用状态图表示单个对象在其生命周期中的行为,同时也显示了该实体如何根据当前所处的状态对不同的时间做出反应的。
3、什么场合中应该要采用状态图
当功能行为的改变和状态有关时才需要创建出UML状态图,因为通过状态图可以显示对象在其生命周期中依次经历的各种状态。
但如果要表示由系统内部生成的功能操作(而非外部事件)驱动的事件流时,则一般使用UML活动图。
如下给出一个Account对象的状态图示例:
4、为什么要使用UML状态图
(1)动态特性是由事情所触发的
一个完全静态的系统是无任何应用价值的,因为没有事件发生也就不可能产生出具体的功能。
所有真正的软件应用系统自身都含有某些动态的特性,并且这些动态的特性是由内部或外部发生的事件所触发。
比如,在一个ATM机上,动作是由一个用户按下相关的功能按钮引发而开始一个事件;在一个自动机器人中,动作是由机器人碰上一个对象而引发的;在一个网络路由器中,动作是由检测消息缓冲区是否溢出而引发的。
如下图为一个图书销售业务的状态图示例:
(2)为单个的对象和共同工作的对象建模
使用UML交互图可以对共同工作的对象群体的行为进行建模,而使用状态图,则可以
对单个的对象行为进行建模。
因为状态图能够说明对象在它的生命期中响应事件所经历的状态序列以及它们对那些事件的响应。
(3)可以了解类的动态行为
软件系统的分析人员和开发人员通过状态图能够更好地了解系统中类的动态行为,有助于理解系统中的复杂业务逻辑。
因此,在软件系统的分析设计中创建出一个UML状态图是为了达到以下的研究目的:
1)研究类、角色、子系统、或组件的复杂行为。
2)建模实时软件应用系统。
5、UML状态图中定义的状态类型
在UML状态图中定义的状态主要有:初态、终态、中间状态、复合状态等类型。
(1)初态
是状态图的起始点,一般都把初始状态放置在状态图的左上角。
在UML状态图中的初始状态被建模成一个实心圈()。
如下示图为在StarUML工具软件中所提供的初态工具按钮的图示例:
(2)终态
是UML状态图中的终点状态(结束的状态),一般都把最终状态放置在状态图的右下
角。
在UML状态图中的最终状态被建模为一个带边界的实心圆();一个UML状态图只能有一个初态,而终态则可以有多个。
如下示图为在StarUML工具软件中所提供的终态工具按钮的图示例:
(3)中间状态
初态和终态之外的状态称为中间状态,采用圆角矩形表示()。
如下示图为在StarUML工具软件中所提供的中间状态(简单状态Simple State)工具按钮的图示例:
(4)复合(嵌套)状态
一个状态可以进一步地细化为多个子状态,我们将可以进一步细化的状态称作复合状态。
子状态之间有“或关系”和“与关系”两种关系。
如下为一个复合(嵌套)状态的图示例:
如下示图为在StarUML工具软件中所提供的复合(嵌套)状态(Composite State)工具按钮的图示例:
1)或关系(如下图所示)说明在某一时刻仅可到达一个子状态
例如一个处于行驶状态的汽车,在“行驶”这个复合状态中有向前和向后两个不同的子状态,在某一时刻汽车要么向前,要么向后(倒车)。
2)与关系说明复合状态中在某一时刻可同时到达多个子状态(称为并发子状态)。
具
有并发子状态的状态图称为并发状态图。
6、转移(或者转换)
(1)转换
转换是状态间的关联,它们用于对一个实体的不同状态间的关系建模。
在UML状态图中采用带箭头的连线来表示(),状态的变迁通常是由事件触发而产生的,此时应在转移上标出触发转移的事件表达式。
如果转移上未标明事件,则表示在源状态的内部活动执行完毕后自动触发转移。
如下示图为在StarUML工具软件中所提供的状态转换(Transition)工具按钮的图示例:
(2)转换的组成
在UML状态图中的转换由四个部分组成,它们分别是:
1)源状态(Source State)
2)目标状态(Target State)
3)触发事件(Trigger Event)
4)监护条件(Guard Condition)
7、状态图的建模过程——创建UML状态图的一般步骤如下
(1)识别一个要对其生命周期进行描述的参与行为的类。
(2)对状态建模,即确定对象可能存在的各种状态。
(3)对事件建模,即确定对象可能存在的事件和相应被执行的动作。
(4)对建模结果进行精化和细化。
1.1.2在StarUML工具软件中创建UML状态图的建模示例
1、在StarUML工具软件中与状态图相关的工具按钮
(1)一般的工具按钮
(2)高级工具按钮
(3)注释说明相关的工具按钮
2、在StarUML工具软件中新建一个名称为“BBS前台注册用户的状态图”(1)添加一个状态图
(2)在左边的Toolbox面板中将自动地出现与状态图相关的各个工具按钮
(3)命名该状态图为“BBS前台注册用户的状态图”
3、在状态图中添加各个状态及其转换
(1)游客用户通过系统注册而成为注册用户
此时的游客用户的状态将从“游客用户”的初始状态转换为“注册用户”状态。
(2)应用转换连接“初始状态”和“注册用户”状态
4、再添加其它的状态和转换方式
(1)“注册用户”通过“系统登录”转换为“会员用户”
(2)会员用户通过“回帖”而成为“回帖用户”
(3)会员用户通过“发帖”而成为“发帖用户”
(4)会员用户通过“申请版主”而成为“版主用户”
5、最后再给出结束状态
6、最终的结果示图。