1、2022年6月6日第1页软件开发工具软件开发工具StarUMLStarUML及其应用及其应用本章内容结构本章内容结构l本章引言本章引言l学习目标学习目标l教学内容教学内容l本章小结本章小结l思考和练习思考和练习l课堂讨论课堂讨论本章引言本章引言 StarUML(简称SU)是一款开放源码的UML 开发工具,本身具有发展快、灵活、可扩展性强等特点,是当前应用范围较广的软件建模工具之一。StarUML 可以读取Rational Rose生成的文件,让原先Rose 的用户可以转而使用免费的StarUML。 本章主要介绍StarUML 环境对面向对象分析与设计过程的支持和UML 图形描述。本章最后通过一
2、个教学管理系统的系统分析设计过程,描述StarUML 工具在系统分析与设计中的使用。2022年6月6日第2页2022年6月6日第3页学习目标学习目标 熟悉并掌握StarUML工具的用法 理解和掌握StarUML工具用于分析、设计的用法 掌握面向对象分析、设计的方法2022年6月6日第4页教学内容教学内容1 软件开发工具StarUML 概述2 StarUML 环境下的UML 图形建模3 一个简易教学管理系统的分析和设计4 本章小结和习题 2022年6月6日第5页1 1 软件开发工具软件开发工具StarUMLStarUML 概述概述当前,业界使用最广泛的UML建模工具包括Rational Rose
3、、ArgoUML、StarUML等。StarUML不仅包含Rose所具有的功能全面、满足所有建模环境需求能力和灵活性等特点,最关键的是,StarUML开源、可扩展、灵活小巧(基本构成只有约20M)。与Rose类似,StarUML可以和任何一种面向对象的应用程序结构组合使用,得到各类主要的面向对象编程语言和快速应用开发工具的直接支持。StarUML工具基于UML1.4版本,提供11种不同类型的图,支持UML2.0的表示法,通过支持UML轮廓(profile)的概念积极地支持模型驱动结构(Model Driven Architecture,UMD)方法。1.1 StarUML 的安装及使用1.2
4、StarUML 的主要功能2022年6月6日第6页1.1 1.1 StarUMLStarUML 的安装及使用的安装及使用StarUML是完全开放源码的软件,不仅免费自由下载,连代码都免费开放,官方网站为:http:/ : IntelPentium233MHz 或更高。 Windows2000,Windows XP,或更高版本。 Microsoft Internet Explorer5.0或更高版本。 128 MB RAM(推荐256MB)。 110 MB硬盘空间(推荐150MB空间)。 SVGA或更高分辨率(推荐1024768)。 鼠标或其他指引设备。1.1 1.1 StarUMLStarUM
5、L 的安装及使用的安装及使用2StarUML 的安装步骤(此处省略安装过程界面) 单击StarUML安装包,弹出欢迎界面(此处省略欢迎界面)。 单击Next按钮,点击“I accept the agreement”同意安装协议,再点击Next按钮。 设置StarUML安装的路径后,单击Next按钮,则开始安装过程。 单击Finish,完成安装并退出。2022年6月6日第7页1.1 1.1 StarUMLStarUML 的安装及使用的安装及使用3StarUML 的使用 StarUML工具是个菜单驱动的应用程序,具有非常友好的图形用户界面。与常规应用程序的启动方法类似,StarUML可以从“开始”
6、“所有程序”中选择StarUML文件夹下的StarUML启动,或者在安装过程中建立快捷方式,直接点击快捷方式启动StarUML。2022年6月6日第8页2022年6月6日第9页1.2 1.2 StarUMLStarUML 的主要功能的主要功能1StarUML 的主菜单窗口及使用 StarUML应用程序界面窗口包括工具栏区域、UML图例区域、工作区域、模型视图区域、属性编辑区域及状态信息栏6大区域,参见图2。1.2 1.2 StarUMLStarUML 的主要功能的主要功能2022年6月6日第10页图图2 2 StarUMLStarUML应用程序窗口应用程序窗口1.2 1.2 StarUMLSt
7、arUML 的主要功能的主要功能工具栏区域包括菜单栏及标准工具栏两个部分。菜单栏用于显示当前可供使用的菜单项,包括文件(File)、编辑(Edit)、格式(Format)、模型(Model)、视图(View)、工具(Tools)、帮助(Help)7个项目,其内容随当前正在操作的模型图而有所不同;标准工具栏位于菜单栏下,沿着应用程序窗口的顶部展开,包含一系列可以简化常用操作的图标,与打开的模型图窗口无关。另外,用户可以通过工具栏帮助使用常用特性。StarUML对不同的图显示不同的工具栏,除了工具栏和菜单外,StarUML还有相关的弹出菜单,可以用右键单击来进行项目访问。例如,鼠标右键单击类图中的
8、类,弹出一个菜单,其中的选项包括增加类的属性或操作、浏览和编辑类规范、产生类的代码和浏览产生的代码等。2022年6月6日第11页1.2 1.2 StarUMLStarUML 的主要功能的主要功能UML图例区域中包括了适用于当前模型图的各种组成成分,模型图就是通过选择图例区域中的模型在工作区域中设计而成的。每种模型图都有各自对应的工具箱。工作区域是建立和修改当前模型图的主操作区,区域左上角的图标表示当前正在被操作的图的名称,图中绘制的每个模型元素都会显示在工作区域中,用户可以通过对模型元素的控制来达到成功绘制图形的目的。其中工作区域右下角的 图标表示综览窗口标识,用于显示模型图当前区域在整个模型
9、中的位置。模型视图区域是一个层次结构的导航工具,通过它可以快速查看顺序图、类图、用例图、状态图、活动图和部署图的名称及其中的模型元素和其他许多模型元素。2022年6月6日第12页1.2 1.2 StarUMLStarUML 的主要功能的主要功能属性编辑区域是对图中各个组成成分、成分之间的关系,甚至图本身的属性进行编辑的工具,其中包括许多预定义及自定义的属性设置,其中一些设置会直观地在工作区域中的图上表示出来。另外,描述文档编辑区域在默认情况下是和属性编辑区域放在一起的,用户可以通过单击下方Document选项进行切换。状态信息栏用于显示执行某些命令和操作之后的进展情况、结果和错误提示。 202
10、2年6月6日第13页2022年6月6日第14页2 2 StarUMLStarUML 环境下的环境下的UML UML 图形建模图形建模StarUML模型是问题陈述域与软件系统表示的联系纽带,软件系统的所有工作可以从StarUML模型的建立开始。在默认情况下,StarUML模型都以扩展名为.uml 的文件进行保存,一个项目包含并管理模型(Model)、子系统(Subsystem)和包(Package)等子元素。模型是由图形和相关的说明组成的,StarUML共提供了类图、用例图、顺序图、顺序图(角色)、协作图(UML2.0中修改为通信图)、协作图(角色)、状态图、活动图、构件图、部署图、组合结构图1
11、1种模型图的绘制方法。2 2 StarUMLStarUML 环境下的环境下的UML UML 图形建模图形建模2.1 StarUML 的用例图、类图和包图2.2 StarUML 的交互图和状态机图2.3 StarUML 的构件图与部署图2.4 StarUML 的正向工程和逆向工程2022年6月6日第15页2022年6月6日第16页2.1 2.1 StarUMLStarUML 的用例图、类图和包图的用例图、类图和包图用例图主要用于对系统、子系统或类的行为进行建模,与具体用例图主要用于对系统、子系统或类的行为进行建模,与具体的实现细节无关,它只说明系统实现什么功能,而不必说明如的实现细节无关,它只说
12、明系统实现什么功能,而不必说明如何实现,表示从系统外部用户的观点看系统应具有的功能。类何实现,表示从系统外部用户的观点看系统应具有的功能。类图用于对系统的静态结构建模,是逻辑视图的重要组成部分,图用于对系统的静态结构建模,是逻辑视图的重要组成部分,涉及具体的实现细节,不仅定义系统中的类,表示类的内部结涉及具体的实现细节,不仅定义系统中的类,表示类的内部结构(属性和操作),还表示系统中类之间的关系,包括关联、构(属性和操作),还表示系统中类之间的关系,包括关联、依赖及聚集等,类之间的这种复杂关联关系在依赖及聚集等,类之间的这种复杂关联关系在UML2.0UML2.0中也可定中也可定义为组合结构图。
13、义为组合结构图。2.1 2.1 StarUMLStarUML 的用例图、类图和包图的用例图、类图和包图1用例图(Use Case Diagram) 在软件开发的生存周期中,用例图主要用在系统需求分析阶段和系统设计阶段。在系统需求分析阶段,用例图用来获取系统的需求,帮助理解系统应当如何工作;在系统设计阶段,用例图可以用来规定系统要实现的行为。一般地,每个用例图都应包含三个方面的内容:一个(或一组)用例、参与者、参与者与系统中的用例之间的交互及用例之间的关系。在使用StarUML绘制用例图之前,一般地应该已经有过对系统的建模过程。用例图是系统的外部行为视图,在确定了参与者和相关用例的基础上,通过绘
14、制用例图可以更清晰地理解系统的行为。2022年6月6日第17页2.1 2.1 StarUMLStarUML 的用例图、类图和包图的用例图、类图和包图一般地,用例图的建立步骤如下。 找出系统外部的参与者和外部系统,确定系统的边界和范围。 确定每一个参与者所希望的系统行为。 把这些系统行为命名为用例。 把一些公共的系统行为分解为一批新的用例,供其他的用例引用,把一些变更的行为分解为扩展用例。 编制每一个用例的脚本。 绘制用例图。 区分主业务流和例外情况的事件流。可以把表达例外情况的事件流的用例图画成一个单独的子用例图。 精化用例图,简化用例中的对话序列。用例图可以有不同的层次,高层次系统的用例可以
15、分解为若干个下属子系统中的子用例2022年6月6日第18页2.1 2.1 StarUMLStarUML 的用例图、类图和包图的用例图、类图和包图下面给出在StarUML中创建用例图的各组成元素的方法描述。(1)用例图中的各个组成成分在StarUML工具中的画法描述StarUML在建立新项目(New Project)后会默认生成一个主用例图Main。而在StarUML中创建新用例图的方法如下: 在模型视图区域的Use Case Model标题上单击鼠标右键,显示出弹出菜单(其他Model亦允许添加); 选择Add DiagramUse Case Diagram,一个新的用例图出现在Use Cas
16、e Model之下; 直接将新用例图更名为设计的名字。2022年6月6日第19页2.1 2.1 StarUMLStarUML 的用例图、类图和包图的用例图、类图和包图在StarUML中创建参与者actors的方法如下: 在图例模型区域中选中Actor模型; 在工作区域中单击鼠标左键,则生成一个新的actor; 可对actor的Name、Visibility、Attribute和Operation进行编辑。在StarUML中创建用例UseCase的方法如下: 在图例模型区域中选中UseCase模型; 在工作区域中单击鼠标左键,则生成一个新的UseCase; 可对UseCase的Name、Visi
17、bility、Attribute和Operation进行编辑。 2022年6月6日第20页2.1 2.1 StarUMLStarUML 的用例图、类图和包图的用例图、类图和包图(2)StarUML工具中确定用例图中各组成成分之间关系的画法描述: 在用例图的工具栏上单击相应的关系图标。StarUML 中提供了Association、DirectedAssociation、Generalization、Dependency、Include、Extend 6类用例图中涉及的关系。 在相应的起始组成单位上单击并拖动到结束组成单位上。 选中生成的关系,在属性编辑区域编辑该关系的Name、Stereoty
18、pe、Visibility等相关属性。(3)StarUML工具中为用例图、组成成分及关系添加摘要描述的方法 在模型视图区域或工作区域选中相应用例图、成分及关系。 在属性编辑区域底端单击Documentation,属性编辑区替换为摘要描述编辑区。 在编辑区中键入相关描述。在StarUML中为图、成分及关系添加摘要描述的方法与以上介绍的方法完全相同,下文中不再赘述。2022年6月6日第21页2.1 2.1 StarUMLStarUML 的用例图、类图和包图的用例图、类图和包图图3展示了在StarUML中包含一个actor、一个usecase的用例图的描述示例。2022年6月6日第22页图图3 3
19、用例图示例用例图示例2.1 2.1 StarUMLStarUML 的用例图、类图和包图的用例图、类图和包图2类图类图在系统的整个生存周期中都是有效的,它是项目组的良好设计工具,有助于开发人员在用具体的编程语言实现系统之前显示和计划系统结构,保证系统设计和开发的一致性。在系统分析阶段,类图主要用于显示角色和提供系统行为的实体的职责;在系统设计阶段,类图主要用于捕捉组成系统体系结构的类结构;在系统编码阶段,类图提供系统功能实现的依据。类图是用类和它们之间的关系描述系统的一种图示,是从静态角度表示系统的,属于一种静态模型。类图是构建其他图的基础,没有类图,就没有状态图、通信图等其他图,也就无法表示系
20、统的其他各个方面。2022年6月6日第23页2.1 2.1 StarUMLStarUML 的用例图、类图和包图的用例图、类图和包图一般地,对象类图的建立步骤如下: 研究分析问题领域,确定系统的需求。 从需求描述中发现对象和对象类,明确它们的含义和责任,确定属性和操作。 从需求描述中发现类之间的静态联系。着重分析找出对象类之间的一般和特殊关系,部分与整体关系,研究类的继承性和多态性,把类之间的静态联系用关联、泛化、聚集、组合、依赖等联系表达出来。虽然对象类图表达的是系统的静态结构特征,但是应当把对系统的静态分析与动态分析结合起来,更能准确地了解系统的静态结构特征。 设计类与联系。调整和精化已得到
21、的对象类和类之间的联系,解决诸如命名冲突、功能重复等问题。 绘制对象类图并编制相应的说明。2022年6月6日第24页2.1 2.1 StarUMLStarUML 的用例图、类图和包图的用例图、类图和包图 研究分析问题领域,确定系统的需求。 从需求描述中发现对象和对象类,明确它们的含义和责任,确定属性和操作。 从需求描述中发现类之间的静态联系。着重分析找出对象类之间的一般和特殊关系,部分与整体关系,研究类的继承性和多态性,把类之间的静态联系用关联、泛化、聚集、组合、依赖等联系表达出来。虽然对象类图表达的是系统的静态结构特征,但是应当把对系统的静态分析与动态分析结合起来,更能准确地了解系统的静态结
22、构特征。 设计类与联系。调整和精化已得到的对象类和类之间的联系,解决诸如命名冲突、功能重复等问题。 绘制对象类图并编制相应的说明。2022年6月6日第25页2.1 2.1 StarUMLStarUML 的用例图、类图和包图的用例图、类图和包图(3)在StarUML中创建类间关系的方法如下: 在模型区域点击相应的关系图标,StarUML中提供了Association、DirectedAssociation、Aggregation、Composition、Generalization、Dependency、Realization、Link 8种类图中涉及的关系; 在相应的起始组成单位上单击并拖动到
23、结束组成单位上; 选中生成的关系,在属性编辑区域编辑该关系的Name、Stereotype、Visibility等相关属性。2022年6月6日第26页2.1 2.1 StarUMLStarUML 的用例图、类图和包图的用例图、类图和包图图4 展示了具有两个Class和一个接口的类图图例。其中Class1与Class2的关系为DirectedAssociation,Class1与Interface是Realization关系,Class2与Interface是Dependency关系。2022年6月6日第27页2.1 2.1 StarUMLStarUML 的用例图、类图和包图的用例图、类图和包图
24、3包图 包是一种组合机制,把各种各样的模型元素通过内在的语义连在一起,成为一个整体就叫做包,构成包的模型元素称为包的内容。包通常用于对模型的组织管理,因此有时又将包称为子系统(Subsystem)。包拥有自己的模型元素,包与包之间不能共用相同的模型元素。包的实例没有任何语义,只有在模型执行期间,包才有意义。包能够引用来自其他包的模型元素。当一个包从另一个包中引用模型元素时,这两个包之间就建立了关系。包与包之间允许建立的关系有依赖、精化和通用化,但需注意,只能在包中的类型之间建立关系,而不能在实例之间建立关系,因为包的实例没有语义。2022年6月6日第28页2.1 2.1 StarUMLStar
25、UML 的用例图、类图和包图的用例图、类图和包图包是用来说明元素组或者子系统的机制。一个包可以是任何种类的一组模型元素,如一组类、一组用例、一组协作图(通信图)或者其他的包(嵌套包)。整个系统都可以被认为是包含在一个最顶层的包中System(系统)包。一个包定义了一个嵌套的名字空间,因此同名元素在不同的包内可能需要被复制。一般地,需要按照下列原则将元素组织成包:将提供通用服务(或者一组相关服务集)的元素组织成一个包,这些元素之间具有高耦合度和密切的协作关系。包在某种程度上应该被视为具有高聚合度它所承担的职责相互之间密切关联。相比之下,不同包中的元素之间的耦合和合作关系应该比较松散。2022年6
26、月6日第29页2.1 2.1 StarUMLStarUML 的用例图、类图和包图的用例图、类图和包图包图的建立步骤如下。(1)分析系统模型元素(通常是对象类),把概念上或语义上相近的模型元素纳入一个包。注意可以从类的功能的相关性来确定纳入包中的对象类。以下几点可作为分析对象类的功能相关性的参考。 如果一个类的行为和/或结构的变更要求另一个相应的变更,则这两个类是功能相关的。 如果删除一个类后,另一个类便变成是多余的,则这两个类是功能相关的,这说明该剩余的类只为那个被删除的类所使用,它们之间有依赖关系。2022年6月6日第30页2.1 2.1 StarUMLStarUML 的用例图、类图和包图的
27、用例图、类图和包图 如果两个类之间有大量的频繁交互或通信,则这两个类是功能相关的。 如果两个类之间有一般/特殊关系,则这两个类是功能相关的。 如果一个类激发创建另一个类的对象,则这两个类是功能相关的。 如果两个类不涉及同一个外部活动,则这两个类不应放在同一个包中。 一个包应当具有高内聚性,包中的对象类应该是功能相关的。2022年6月6日第31页2.1 2.1 StarUMLStarUML 的用例图、类图和包图的用例图、类图和包图(2)对于每一个包,标出其模型元素的可视性:公共、保护或私有。(3)确定包与包之间的依赖关系,特别是输入依赖。(4)确定包与包之间的泛化关系,确定包元素的多态性和重载。
28、(5)绘制包图。(6)包图精化。2022年6月6日第32页2.1 2.1 StarUMLStarUML 的用例图、类图和包图的用例图、类图和包图在StarUML中创建包图的方法如下。(1)包图可以直接在Class Diagram中建立。点击图例区域中的Package图例,然后在工作区域中单击鼠标左键,即生成一个包。(2)选中生成包,在属性编辑区域中对包属性进行编辑。(3)将需要放在一个包中的对象拖到对应包中。(4)当创建两个及以上的包后,可选择Dependency项等关系,然后单击起始包并拖动至结束包,松开鼠标后,则生成一条关系。 (5)重复步骤(1)(3),至包图完成。2022年6月6日第3
29、3页2.1 2.1 StarUMLStarUML 的用例图、类图和包图的用例图、类图和包图图5展示了一个基本的包图画法示例。2022年6月6日第34页图图5 5 包图示例包图示例2022年6月6日第35页2.2 2.2 StarUMLStarUML 的交互图和状态机图的交互图和状态机图交互图包括顺序图和通信图(交互图包括顺序图和通信图(UML1.0UML1.0中称为协作图),通常由中称为协作图),通常由一组对象和它们之间的关系组成,包括它们之间可能传递的消一组对象和它们之间的关系组成,包括它们之间可能传递的消息。多数情况下,交互图包括对类、接口、构件和结点的具体息。多数情况下,交互图包括对类、
30、接口、构件和结点的具体的或原型化的实例,以及它们之间传递的消息进行建模。交互的或原型化的实例,以及它们之间传递的消息进行建模。交互图除了可以用于对一个用例的事件流程进行建模外,也可以单图除了可以用于对一个用例的事件流程进行建模外,也可以单独使用,用于可视化、详述、构造和文档化一个特定对象群体独使用,用于可视化、详述、构造和文档化一个特定对象群体的动态方面,主要由一组对象和它们之间的关系构成包括需要的动态方面,主要由一组对象和它们之间的关系构成包括需要什么对象、对象相互之间发送什么消息、什么角色启动消息及什么对象、对象相互之间发送什么消息、什么角色启动消息及消息按照什么顺序发送等。消息按照什么顺
31、序发送等。2022年6月6日第36页2.2 2.2 StarUMLStarUML 的交互图和状态机图的交互图和状态机图状态机通过对类对象的生存周期建立模型来描述对象随时间变状态机通过对类对象的生存周期建立模型来描述对象随时间变化的动态行为,也可以用来描述用例、协作和方法的动态行为,化的动态行为,也可以用来描述用例、协作和方法的动态行为,包括状态图和活动图。状态图是状态结点通过转移连接的图,包括状态图和活动图。状态图是状态结点通过转移连接的图,描述一个特定对象的所有可能状态,以及由于各种事件的发生描述一个特定对象的所有可能状态,以及由于各种事件的发生而引起的状态之间的转移。活动图是一种表述过程机
32、理、业务而引起的状态之间的转移。活动图是一种表述过程机理、业务过程及工作流的技术,是过程及工作流的技术,是UMLUML用于对系统的动态行为建模的一用于对系统的动态行为建模的一种常用工具,描述活动的顺序,展现从一个活动到另一个活动种常用工具,描述活动的顺序,展现从一个活动到另一个活动的控制流,与常用的软件流程图类似,从本质上说,活动图是的控制流,与常用的软件流程图类似,从本质上说,活动图是一类流程图。一类流程图。2022年6月6日第37页2.2 2.2 StarUMLStarUML 的交互图和状态机图的交互图和状态机图1 1顺序图和通信图顺序图和通信图 顺序图强调消息发送的时间顺序,而通信图则强
33、调接收和发送顺序图强调消息发送的时间顺序,而通信图则强调接收和发送消息的对象的组织结构,显示对象、对象之间的连接及对象之消息的对象的组织结构,显示对象、对象之间的连接及对象之间的消息,还可以显示当前模型中的简单类实例。在图形上,间的消息,还可以显示当前模型中的简单类实例。在图形上,顺序图是一张表,其中显示的对象沿横轴排列,从左到右分布顺序图是一张表,其中显示的对象沿横轴排列,从左到右分布在图的顶部,消息则沿纵轴按时间顺序排列;而通信图则表现在图的顶部,消息则沿纵轴按时间顺序排列;而通信图则表现为顶点和弧的集合。为顶点和弧的集合。2022年6月6日第38页2.2 2.2 StarUMLStarU
34、ML 的交互图和状态机图的交互图和状态机图(1 1)顺序图)顺序图建立顺序图的步骤如下。建立顺序图的步骤如下。 确定交互的上下文。确定交互的上下文。 找出参与交互的对象类角色,把它们横向排列在顺序图的顶部,最重找出参与交互的对象类角色,把它们横向排列在顺序图的顶部,最重要的对象安置在最左边,交互密切的对象尽可能相邻。在交互中创建的要的对象安置在最左边,交互密切的对象尽可能相邻。在交互中创建的对象在垂直方向应安置在其被创建的时间点处。对象在垂直方向应安置在其被创建的时间点处。 对每一个对象设置一条垂直向下的生命线。对每一个对象设置一条垂直向下的生命线。 从初始化交互的信息开始,自顶向下在对象的生
35、命线之间安置信息。从初始化交互的信息开始,自顶向下在对象的生命线之间安置信息。注意用箭头的形式区别同步消息和异步消息。根据顺序图是属于说明层注意用箭头的形式区别同步消息和异步消息。根据顺序图是属于说明层还是属于实例层,给出消息标签的内容,以及必要的构造型与约束。还是属于实例层,给出消息标签的内容,以及必要的构造型与约束。 在生命线上绘出对象的激活期,以及对象创建或销毁的构造型和标记。在生命线上绘出对象的激活期,以及对象创建或销毁的构造型和标记。 根据消息之间的关系,确定循环结构及循环参数和出口条件。根据消息之间的关系,确定循环结构及循环参数和出口条件。2022年6月6日第39页2.2 2.2
36、StarUMLStarUML 的交互图和状态机图的交互图和状态机图在在StarUMLStarUML中创建顺序图的方法如下。中创建顺序图的方法如下。 在模型视图区域在模型视图区域ModelModel处单击鼠标右键,弹出显示菜单。处单击鼠标右键,弹出显示菜单。 将鼠标移至将鼠标移至Add DiagramAdd Diagram项,然后在子菜单中选择顺序图项,然后在子菜单中选择顺序图(Sequence DiagramSequence Diagram),则在工作区域生成一个新的顺序图界面。),则在工作区域生成一个新的顺序图界面。 在图例区域中选择在图例区域中选择ObjectObject项,然后在工作区域
37、中点击鼠标左项,然后在工作区域中点击鼠标左键,则生成一个对象类。键,则生成一个对象类。 可在属性编辑区域对对象类的属性进行编辑。可在属性编辑区域对对象类的属性进行编辑。 当创建两个及以上的对象类后,可选择当创建两个及以上的对象类后,可选择StimulusStimulus项,然后单项,然后单击起始类的生命线并拖动至结束类的生命线,松开鼠标后,则生击起始类的生命线并拖动至结束类的生命线,松开鼠标后,则生成一条调用关系。成一条调用关系。 若有类内自调用的情况,可使用若有类内自调用的情况,可使用SelfStimulusSelfStimulus项进行表示。项进行表示。 重复步骤,至顺序图完成。重复步骤,
38、至顺序图完成。2022年6月6日第40页2.2 2.2 StarUMLStarUML 的交互图和状态机图的交互图和状态机图图图6 6展示了由以上步骤画出的简单顺序图图例。展示了由以上步骤画出的简单顺序图图例。值得注意的是,值得注意的是,StarUMLStarUML中没有提供表示返回值的图示。中没有提供表示返回值的图示。图图6 6 交互图图例交互图图例2022年6月6日第41页2.2 2.2 StarUMLStarUML 的交互图和状态机图的交互图和状态机图(2 2)通信图)通信图通信图的建立步骤如下。通信图的建立步骤如下。 确定交互的上下文。确定交互的上下文。 找出参与交互的对象类角色,把它们
39、作为图形的结点安置在通信图中。找出参与交互的对象类角色,把它们作为图形的结点安置在通信图中。最重要的对象安置在图的中央,与它有直接交互的对象安置在邻近。最重要的对象安置在图的中央,与它有直接交互的对象安置在邻近。 设置对象的初始性质。设置对象的初始性质。 说明对象之间的链接。首先给出对象之间的关联连接,然后给出其他连说明对象之间的链接。首先给出对象之间的关联连接,然后给出其他连接,并且给出必要的修饰,如构造型接,并且给出必要的修饰,如构造型globalgloballocallocal等。等。 从初始化交互的消息开始,在链接上安置相应的消息,给出消息的序号。从初始化交互的消息开始,在链接上安置相
40、应的消息,给出消息的序号。注意用箭头的形式区别同步消息和异步消息。根据通信图是属于说明层还是注意用箭头的形式区别同步消息和异步消息。根据通信图是属于说明层还是属于实例层,给出消息标签的内容,以及必要的构造型和约束。属于实例层,给出消息标签的内容,以及必要的构造型和约束。 处理一些特殊情况,如循环、自调用、回调、多对象等。处理一些特殊情况,如循环、自调用、回调、多对象等。通信图一般包括对象、链和消息。通信图一般包括对象、链和消息。2022年6月6日第42页2.2 2.2 StarUMLStarUML 的交互图和状态机图的交互图和状态机图创建通信图的步骤描述如下。创建通信图的步骤描述如下。 在模型
41、视图区域在模型视图区域ModelModel处单击鼠标右键,弹出显示菜单。处单击鼠标右键,弹出显示菜单。 将鼠标移至将鼠标移至Add DiagramAdd Diagram项,然后在子菜单中选择通信图项,然后在子菜单中选择通信图(StarUMLStarUML是基于是基于UML1.4UML1.4的,对应的,对应Collaboration DiagramCollaboration Diagram),),则在工作区域生成一个新的通信图界面;则在工作区域生成一个新的通信图界面; 在图例区域中选择在图例区域中选择ObjectObject项,然后在工作区域中点击鼠标左项,然后在工作区域中点击鼠标左键,则生成一
42、个对象类。键,则生成一个对象类。 在属性编辑区域对对象类的属性进行编辑。在属性编辑区域对对象类的属性进行编辑。2022年6月6日第43页2.2 2.2 StarUMLStarUML 的交互图和状态机图的交互图和状态机图 当创建两个及以上的对象类后,可选择当创建两个及以上的对象类后,可选择LinkLink项,然后单击起项,然后单击起始类的生命线并拖动至结束类的生命线,松开鼠标后,则生成始类的生命线并拖动至结束类的生命线,松开鼠标后,则生成一条链关系。一条链关系。 若有类自联系的情况,可使用若有类自联系的情况,可使用SelfLinkSelfLink项进行表示。项进行表示。 在图例区域中选择在图例区
43、域中选择ForwardStimulusForwardStimulus或或ReverseStimulusReverseStimulus项,项,然后点击步骤中生成的链,从而添加消息,其中然后点击步骤中生成的链,从而添加消息,其中ForwardStimulusForwardStimulus是正向的,是正向的,ReverseStimulusReverseStimulus是反向的。是反向的。 重复步骤,至通信图完成。重复步骤,至通信图完成。2022年6月6日第44页2.2 2.2 StarUMLStarUML 的交互图和状态机图的交互图和状态机图图图7 7展示了一个简单的通信图,其中对象一和对象二、对象
44、三之展示了一个简单的通信图,其中对象一和对象二、对象三之间有通信关系,对象三有自联系情况。间有通信关系,对象三有自联系情况。图图7 7 通信图图例通信图图例2022年6月6日第45页2.2 2.2 StarUMLStarUML 的交互图和状态机图的交互图和状态机图2 2状态图和活动图状态图和活动图 状态图和活动图都是描述一个类的对象所有可能的生命历程的状态图和活动图都是描述一个类的对象所有可能的生命历程的模型,通过对类对象的生存周期建立模型来描述对象随时间变模型,通过对类对象的生存周期建立模型来描述对象随时间变化的动态行为,也可以用于描述用例、通信和方法的动态行为,化的动态行为,也可以用于描述
45、用例、通信和方法的动态行为,是展示状态与状态转换的图。状态图用于对系统的动态方面建是展示状态与状态转换的图。状态图用于对系统的动态方面建模,主要用于表现一个对象从创建到销毁的整个生命史,用于模,主要用于表现一个对象从创建到销毁的整个生命史,用于对一个对象生存周期的离散阶段进行建模;而活动图则是一种对一个对象生存周期的离散阶段进行建模;而活动图则是一种特殊形式的状态机,用于对计算流程和工作流程建模。特殊形式的状态机,用于对计算流程和工作流程建模。 2022年6月6日第46页2.2 2.2 StarUMLStarUML 的交互图和状态机图的交互图和状态机图(1 1)状态图)状态图一般地,状态图的建
46、立步骤如下。一般地,状态图的建立步骤如下。 确定状态机的上下文,它可以是一个类、子系统或整个系统。确定状态机的上下文,它可以是一个类、子系统或整个系统。 选择初始状态和终结状态。选择初始状态和终结状态。 发现对象的各种状态。注意应当仔细找出对问题有意义的对发现对象的各种状态。注意应当仔细找出对问题有意义的对象状态属性,这些属性具有少量的值,且该属性的值的转换受象状态属性,这些属性具有少量的值,且该属性的值的转换受限制。对于状态属性值的组合,结合行为有关的事件和动作,限制。对于状态属性值的组合,结合行为有关的事件和动作,就可以确定具有特定的行为特征的状态。就可以确定具有特定的行为特征的状态。 确
47、定状态可能发生的转移。注意从一个状态可能转移到哪些确定状态可能发生的转移。注意从一个状态可能转移到哪些状态,对象的哪些行为可引起状态的转移并找出触发状态转移状态,对象的哪些行为可引起状态的转移并找出触发状态转移的事件。的事件。2022年6月6日第47页2.2 2.2 StarUMLStarUML 的交互图和状态机图的交互图和状态机图 把必要的动作加到状态或转移上。把必要的动作加到状态或转移上。 用超状态、子状态、分支、历史状态等概念组织和简化一个用超状态、子状态、分支、历史状态等概念组织和简化一个复杂的状态机。复杂的状态机。 分析状态的并发和同步情况。分析状态的并发和同步情况。 绘制状态图。绘
48、制状态图。 确认每一个状态在某个时间组合之下都是可到达的。确认没确认每一个状态在某个时间组合之下都是可到达的。确认没有一个死端状态,即对象不能从该状态转移出来。有一个死端状态,即对象不能从该状态转移出来。2022年6月6日第48页2.2 2.2 StarUMLStarUML 的交互图和状态机图的交互图和状态机图状态图中主要包含对象在生存周期中所经历的状态序列、诱发对象从一状态图中主要包含对象在生存周期中所经历的状态序列、诱发对象从一个状态转换到另一个状态的事件及状态改变所导致的动作个状态转换到另一个状态的事件及状态改变所导致的动作3 3个方面的内容。个方面的内容。在在StarUMLStarUM
49、L中创建一个状态图的步骤如下。中创建一个状态图的步骤如下。 在模型视图区域任一在模型视图区域任一ModelModel处单击鼠标右键,弹出显示菜单。处单击鼠标右键,弹出显示菜单。 将鼠标移至将鼠标移至Add DiagramAdd Diagram项,然后在弹出的子菜单中选择状态图项,然后在弹出的子菜单中选择状态图(StatechartStatechart Diagram Diagram),则在工作区域生成一个新的状态图界面。),则在工作区域生成一个新的状态图界面。 单击单击InitialStateInitialState,在工作区域中合适的位置单击鼠标左键,则生成,在工作区域中合适的位置单击鼠标左
50、键,则生成对象的初始状态点;以相同的方法放置对象的初始状态点;以相同的方法放置FinalStateFinalState可生成结束状态。可生成结束状态。 选择如选择如StateState等表示对象状态的图标,在相应地方单击生成相关状态,等表示对象状态的图标,在相应地方单击生成相关状态,并可以直接命名。并可以直接命名。 选择如选择如TransitionTransition、SelfTransitionSelfTransition等状态转换关系,在转换前状态等状态转换关系,在转换前状态上单击并拖动至转换后的状态,从而生成相应关系,并可直接命名。上单击并拖动至转换后的状态,从而生成相应关系,并可直接命