软件开发工具StarUML及其应用课件

上传人:29 文档编号:242602935 上传时间:2024-08-29 格式:PPT 页数:128 大小:2.09MB
返回 下载 相关 举报
软件开发工具StarUML及其应用课件_第1页
第1页 / 共128页
软件开发工具StarUML及其应用课件_第2页
第2页 / 共128页
软件开发工具StarUML及其应用课件_第3页
第3页 / 共128页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,2024年8月29日,第,1,页,软件开发工具,StarUML,及其应用,本章内容结构,本章引言,学习目标,教学内容,本章小结,思考和练习,课堂讨论,2023年9月5日第1页软件开发工具StarUML及其应用本,本章引言,StarUML,(简称,SU,)是一款开放源码的,UML,开发工具,本身具有发展快、灵活、可扩展性强等特点,是当前应用范围较广的软件建模工具之一。,StarUML,可以读取,Rational Rose,生成的文件,让原先,Rose,的用户可以转而使用免费的,StarUML,。,本章主要介绍,StarUML,环境对面向对象分析与设计过程的支持和,UML,图形描述。本章最后通过一个教学管理系统的系统分析设计过程,描述,StarUML,工具在系统分析与设计中的使用。,2024年8月29日,第,2,页,本章引言StarUML(简称SU)是一款开放源码的UML 开,2024年8月29日,第,3,页,学习目标,熟悉并掌握,StarUML,工具的用法,理解和掌握,StarUML,工具用于分析、设计的用法,掌握面向对象分析、设计的方法,2023年9月5日第3页学习目标熟悉并掌握StarUML工具,2024年8月29日,第,4,页,教学内容,1,软件开发工具,StarUML,概述,2 StarUML,环境下的,UML,图形建模,3,一个简易教学管理系统的分析和设计,4,本章小结和习题,2023年9月5日第4页教学内容1 软件开发工具StarU,2024年8月29日,第,5,页,1,软件开发工具,StarUML,概述,当前,业界使用最广泛的,UML,建模工具包括,Rational Rose,、,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 StarUML,的主要功能,2023年9月5日第5页1 软件开发工具StarUML 概,2024年8月29日,第,6,页,1.1 StarUML,的安装及使用,StarUML,是完全开放源码的软件,不仅免费自由下载,连代码都免费开放,官方网站为:, :, IntelPentium233MHz,或更高。,Windows2000,,,Windows XP,,或更高版本。,Microsoft Internet Explorer5.0,或更高版本。,128 MB RAM,(推荐,256MB,)。,110 MB,硬盘空间(推荐,150MB,空间)。,SVGA,或更高分辨率(推荐,1024768,)。, 鼠标或其他指引设备。,2023年9月5日第6页1.1 StarUML 的安装及使用,1.1 StarUML,的安装及使用,2,StarUML,的安装步骤(此处省略安装过程界面), 单击,StarUML,安装包,弹出欢迎界面(此处省略欢迎界面)。, 单击,Next,按钮,点击“,I accept the agreement”,同意安装协议,再点击,Next,按钮。, 设置,StarUML,安装的路径后,单击,Next,按钮,则开始安装过程。, 单击,Finish,,完成安装并退出。,2024年8月29日,第,7,页,1.1 StarUML 的安装及使用2StarUML 的安,1.1 StarUML,的安装及使用,3,StarUML,的使用,StarUML,工具是个菜单驱动的应用程序,具有非常友好的图形用户界面。与常规应用程序的启动方法类似,,StarUML,可以从“开始”“所有程序”中选择,StarUML,文件夹下的,StarUML,启动,或者在安装过程中建立快捷方式,直接点击快捷方式启动,StarUML,。,2024年8月29日,第,8,页,1.1 StarUML 的安装及使用3StarUML 的使,2024年8月29日,第,9,页,1.2 StarUML,的主要功能,1,StarUML,的主菜单窗口及使用,StarUML,应用程序界面窗口包括工具栏区域、,UML,图例区域、工作区域、模型视图区域、属性编辑区域及状态信息栏,6,大区域,参见图,2,。,2023年9月5日第9页1.2 StarUML 的主要功能1,1.2 StarUML,的主要功能,2024年8月29日,第,10,页,图,2 StarUML,应用程序窗口,1.2 StarUML 的主要功能2023年9月5日第10页,1.2 StarUML,的主要功能,工具栏区域包括菜单栏及标准工具栏两个部分。菜单栏用于显示当前可供使用的菜单项,包括文件(,File,)、编辑(,Edit,)、格式(,Format,)、模型(,Model,)、视图(,View,)、工具(,Tools,)、帮助(,Help,),7,个项目,其内容随当前正在操作的模型图而有所不同;标准工具栏位于菜单栏下,沿着应用程序窗口的顶部展开,包含一系列可以简化常用操作的图标,与打开的模型图窗口无关。另外,用户可以通过工具栏帮助使用常用特性。,StarUML,对不同的图显示不同的工具栏,除了工具栏和菜单外,,StarUML,还有相关的弹出菜单,可以用右键单击来进行项目访问。例如,鼠标右键单击类图中的类,弹出一个菜单,其中的选项包括增加类的属性或操作、浏览和编辑类规范、产生类的代码和浏览产生的代码等。,2024年8月29日,第,11,页,1.2 StarUML 的主要功能工具栏区域包括菜单栏及标准,1.2 StarUML,的主要功能,UML,图例区域中包括了适用于当前模型图的各种组成成分,模型图就是通过选择图例区域中的模型在工作区域中设计而成的。每种模型图都有各自对应的工具箱。,工作区域是建立和修改当前模型图的主操作区,区域左上角的图标表示当前正在被操作的图的名称,图中绘制的每个模型元素都会显示在工作区域中,用户可以通过对模型元素的控制来达到成功绘制图形的目的。其中工作区域右下角的 图标表示综览窗口标识,用于显示模型图当前区域在整个模型中的位置。,模型视图区域是一个层次结构的导航工具,通过它可以快速查看顺序图、类图、用例图、状态图、活动图和部署图的名称及其中的模型元素和其他许多模型元素。,2024年8月29日,第,12,页,1.2 StarUML 的主要功能UML图例区域中包括了适用,1.2 StarUML,的主要功能,属性编辑区域是对图中各个组成成分、成分之间的关系,甚至图本身的属性进行编辑的工具,其中包括许多预定义及自定义的属性设置,其中一些设置会直观地在工作区域中的图上表示出来。另外,描述文档编辑区域在默认情况下是和属性编辑区域放在一起的,用户可以通过单击下方,Document,选项进行切换。,状态信息栏用于显示执行某些命令和操作之后的进展情况、结果和错误提示。,2024年8月29日,第,13,页,1.2 StarUML 的主要功能属性编辑区域是对图中各个组,2024年8月29日,第,14,页,2 StarUML,环境下的,UML,图形建模,StarUML,模型是问题陈述域与软件系统表示的联系纽带,软件系统的所有工作可以从,StarUML,模型的建立开始。在默认情况下,,StarUML,模型都以扩展名为,.uml,的文件进行保存,一个项目包含并管理模型(,Model,)、子系统(,Subsystem,)和包(,Package,)等子元素。模型是由图形和相关的说明组成的,,StarUML,共提供了类图、用例图、顺序图、顺序图(角色)、协作图(,UML2.0,中修改为通信图)、协作图(角色)、状态图、活动图、构件图、部署图、组合结构图,11,种模型图的绘制方法。,2023年9月5日第14页2 StarUML 环境下的UM,2 StarUML,环境下的,UML,图形建模,2.1 StarUML,的用例图、类图和包图,2.2 StarUML,的交互图和状态机图,2.3 StarUML,的构件图与部署图,2.4 StarUML,的正向工程和逆向工程,2024年8月29日,第,15,页,2 StarUML 环境下的UML 图形建模2.1 Sta,2024年8月29日,第,16,页,2.1 StarUML,的用例图、类图和包图,用例图主要用于对系统、子系统或类的行为进行建模,与具体的实现细节无关,它只说明系统实现什么功能,而不必说明如何实现,表示从系统外部用户的观点看系统应具有的功能。类图用于对系统的静态结构建模,是逻辑视图的重要组成部分,涉及具体的实现细节,不仅定义系统中的类,表示类的内部结构(属性和操作),还表示系统中类之间的关系,包括关联、依赖及聚集等,类之间的这种复杂关联关系在,UML2.0,中也可定义为组合结构图。,2023年9月5日第16页2.1 StarUML 的用例图,2.1 StarUML,的用例图、类图和包图,1,用例图(,Use Case Diagram,),在软件开发的生存周期中,用例图主要用在系统需求分析阶段和系统设计阶段。在系统需求分析阶段,用例图用来获取系统的需求,帮助理解系统应当如何工作;在系统设计阶段,用例图可以用来规定系统要实现的行为。一般地,每个用例图都应包含三个方面的内容:一个(或一组)用例、参与者、参与者与系统中的用例之间的交互及用例之间的关系。在使用,StarUML,绘制用例图之前,一般地应该已经有过对系统的建模过程。用例图是系统的外部行为视图,在确定了参与者和相关用例的基础上,通过绘制用例图可以更清晰地理解系统的行为。,2024年8月29日,第,17,页,2.1 StarUML 的用例图、类图和包图1用例图(U,2.1 StarUML,的用例图、类图和包图,一般地,用例图的建立步骤如下。, 找出系统外部的参与者和外部系统,确定系统的边界和范围。, 确定每一个参与者所希望的系统行为。, 把这些系统行为命名为用例。, 把一些公共的系统行为分解为一批新的用例,供其他的用例引用,把一些变更的行为分解为扩展用例。, 编制每一个用例的脚本。, 绘制用例图。, 区分主业务流和例外情况的事件流。可以把表达例外情况的事件流的用例图画成一个单独的子用例图。, 精化用例图,简化用例中的对话序列。用例图可以有不同的层次,高层次系统的用例可以分解为若干个下属子系统中的子用例,2024年8月29日,第,18,页,2.1 StarUML 的用例图、类图和包图一般地,用例图,2.1 StarUML,的用例图、类图和包图,下面给出在,StarUML,中创建用例图的各组成元素的方法描述。,(,1,)用例图中的各个组成成分在,StarUML,工具中的画法描述,StarUML,在建立新项目(,New Project,)后会默认生成一个主用例图,Main,。而在,StarUML,中创建新用例图的方法如下:, 在模型视图区域的,Use Case Model,标题上单击鼠标右键,显示出弹出菜单(其他,Model,亦允许添加);, 选择,Add DiagramUse Case Diagram,,一个新的用例图出现在,Use Case Model,之下;, 直接将新用例图更名为设计的名字。,2024年8月29日,第,19,页,2.1 StarUML 的用例图、类图和包图下面给出在St,2.1 StarUML,的用例图、类图和包图,在,StarUML,中创建参与者,actors,的方法如下:, 在图例模型区域中选中,Actor,模型;, 在工作区域中单击鼠标左键,则生成一个新的,actor,;, 可对,actor,的,Name,、,Visibility,、,Attribute,和,Operation,进行编辑。,在,StarUML,中创建用例,UseCase,的方法如下:, 在图例模型区域中选中,UseCase,模型;, 在工作区域中单击鼠标左键,则生成一个新的,UseCase,;, 可对,UseCase,的,Name,、,Visibility,、,Attribute,和,Operation,进行编辑。,2024年8月29日,第,20,页,2.1 StarUML 的用例图、类图和包图在StarUM,2.1 StarUML,的用例图、类图和包图,(,2,),StarUML,工具中确定用例图中各组成成分之间关系的画法描述:, 在用例图的工具栏上单击相应的关系图标。,StarUML,中提供了,Association,、,DirectedAssociation,、,Generalization,、,Dependency,、,Include,、,Extend 6,类用例图中涉及的关系。, 在相应的起始组成单位上单击并拖动到结束组成单位上。, 选中生成的关系,在属性编辑区域编辑该关系的,Name,、,Stereotype,、,Visibility,等相关属性。,(,3,),StarUML,工具中为用例图、组成成分及关系添加摘要描述的方法, 在模型视图区域或工作区域选中相应用例图、成分及关系。, 在属性编辑区域底端单击,Documentation,,属性编辑区替换为摘要描述编辑区。, 在编辑区中键入相关描述。,在,StarUML,中为图、成分及关系添加摘要描述的方法与以上介绍的方法完全相同,下文中不再赘述。,2024年8月29日,第,21,页,2.1 StarUML 的用例图、类图和包图(2)Star,2.1 StarUML,的用例图、类图和包图,图,3,展示了在,StarUML,中包含一个,actor,、一个,usecase,的用例图的描述示例。,2024年8月29日,第,22,页,图,3,用例图示例,2.1 StarUML 的用例图、类图和包图图3展示了在S,2.1 StarUML,的用例图、类图和包图,2,类图,类图在系统的整个生存周期中都是有效的,它是项目组的良好设计工具,有助于开发人员在用具体的编程语言实现系统之前显示和计划系统结构,保证系统设计和开发的一致性。在系统分析阶段,类图主要用于显示角色和提供系统行为的实体的职责;在系统设计阶段,类图主要用于捕捉组成系统体系结构的类结构;在系统编码阶段,类图提供系统功能实现的依据。类图是用类和它们之间的关系描述系统的一种图示,是从静态角度表示系统的,属于一种静态模型。类图是构建其他图的基础,没有类图,就没有状态图、通信图等其他图,也就无法表示系统的其他各个方面。,2024年8月29日,第,23,页,2.1 StarUML 的用例图、类图和包图2类图202,2.1 StarUML,的用例图、类图和包图,一般地,对象类图的建立步骤如下:, 研究分析问题领域,确定系统的需求。, 从需求描述中发现对象和对象类,明确它们的含义和责任,确定属性和操作。, 从需求描述中发现类之间的静态联系。着重分析找出对象类之间的一般和特殊关系,部分与整体关系,研究类的继承性和多态性,把类之间的静态联系用关联、泛化、聚集、组合、依赖等联系表达出来。虽然对象类图表达的是系统的静态结构特征,但是应当把对系统的静态分析与动态分析结合起来,更能准确地了解系统的静态结构特征。, 设计类与联系。调整和精化已得到的对象类和类之间的联系,解决诸如命名冲突、功能重复等问题。, 绘制对象类图并编制相应的说明。,2024年8月29日,第,24,页,2.1 StarUML 的用例图、类图和包图一般地,对象类,2.1 StarUML,的用例图、类图和包图, 研究分析问题领域,确定系统的需求。, 从需求描述中发现对象和对象类,明确它们的含义和责任,确定属性和操作。, 从需求描述中发现类之间的静态联系。着重分析找出对象类之间的一般和特殊关系,部分与整体关系,研究类的继承性和多态性,把类之间的静态联系用关联、泛化、聚集、组合、依赖等联系表达出来。虽然对象类图表达的是系统的静态结构特征,但是应当把对系统的静态分析与动态分析结合起来,更能准确地了解系统的静态结构特征。, 设计类与联系。调整和精化已得到的对象类和类之间的联系,解决诸如命名冲突、功能重复等问题。, 绘制对象类图并编制相应的说明。,2024年8月29日,第,25,页,2.1 StarUML 的用例图、类图和包图 研究分析问,2.1 StarUML,的用例图、类图和包图,(,3,)在,StarUML,中创建类间关系的方法如下:, 在模型区域点击相应的关系图标,,StarUML,中提供了,Association,、,DirectedAssociation,、,Aggregation,、,Composition,、,Generalization,、,Dependency,、,Realization,、,Link 8,种类图中涉及的关系;, 在相应的起始组成单位上单击并拖动到结束组成单位上;, 选中生成的关系,在属性编辑区域编辑该关系的,Name,、,Stereotype,、,Visibility,等相关属性。,2024年8月29日,第,26,页,2.1 StarUML 的用例图、类图和包图(3)在Sta,2.1 StarUML,的用例图、类图和包图,图,4,展示了具有两个,Class,和一个接口的类图图例。其中,Class1,与,Class2,的关系为,DirectedAssociation,,,Class1,与,Interface,是,Realization,关系,,Class2,与,Interface,是,Dependency,关系。,2024年8月29日,第,27,页,2.1 StarUML 的用例图、类图和包图图4 展示了具,2.1 StarUML,的用例图、类图和包图,3,包图,包是一种组合机制,把各种各样的模型元素通过内在的语义连在一起,成为一个整体就叫做包,构成包的模型元素称为包的内容。包通常用于对模型的组织管理,因此有时又将包称为子系统(,Subsystem,)。包拥有自己的模型元素,包与包之间不能共用相同的模型元素。包的实例没有任何语义,只有在模型执行期间,包才有意义。,包能够引用来自其他包的模型元素。当一个包从另一个包中引用模型元素时,这两个包之间就建立了关系。包与包之间允许建立的关系有依赖、精化和通用化,但需注意,只能在包中的类型之间建立关系,而不能在实例之间建立关系,因为包的实例没有语义。,2024年8月29日,第,28,页,2.1 StarUML 的用例图、类图和包图3包图 20,2.1 StarUML,的用例图、类图和包图,包是用来说明元素组或者子系统的机制。一个包可以是任何种类的一组模型元素,如一组类、一组用例、一组协作图(通信图)或者其他的包(嵌套包)。整个系统都可以被认为是包含在一个最顶层的包中,System,(系统)包。一个包定义了一个嵌套的名字空间,因此同名元素在不同的包内可能需要被复制。,一般地,需要按照下列原则将元素组织成包:将提供通用服务(或者一组相关服务集)的元素组织成一个包,这些元素之间具有高耦合度和密切的协作关系。,包在某种程度上应该被视为具有高聚合度,它所承担的职责相互之间密切关联。相比之下,不同包中的元素之间的耦合和合作关系应该比较松散。,2024年8月29日,第,29,页,2.1 StarUML 的用例图、类图和包图包是用来说明元,2.1 StarUML,的用例图、类图和包图,包图的建立步骤如下。,(,1,)分析系统模型元素(通常是对象类),把概念上或语义上相近的模型元素纳入一个包。,注意可以从类的功能的相关性来确定纳入包中的对象类。以下几点可作为分析对象类的功能相关性的参考。, 如果一个类的行为和,/,或结构的变更要求另一个相应的变更,则这两个类是功能相关的。, 如果删除一个类后,另一个类便变成是多余的,则这两个类是功能相关的,这说明该剩余的类只为那个被删除的类所使用,它们之间有依赖关系。,2024年8月29日,第,30,页,2.1 StarUML 的用例图、类图和包图包图的建立步骤,2.1 StarUML,的用例图、类图和包图, 如果两个类之间有大量的频繁交互或通信,则这两个类是功能相关的。, 如果两个类之间有一般,/,特殊关系,则这两个类是功能相关的。, 如果一个类激发创建另一个类的对象,则这两个类是功能相关的。, 如果两个类不涉及同一个外部活动,则这两个类不应放在同一个包中。, 一个包应当具有高内聚性,包中的对象类应该是功能相关的。,2024年8月29日,第,31,页,2.1 StarUML 的用例图、类图和包图 如果两个类,2.1 StarUML,的用例图、类图和包图,(,2,)对于每一个包,标出其模型元素的可视性:公共、保护或私有。,(,3,)确定包与包之间的依赖关系,特别是输入依赖。,(,4,)确定包与包之间的泛化关系,确定包元素的多态性和重载。,(,5,)绘制包图。,(,6,)包图精化。,2024年8月29日,第,32,页,2.1 StarUML 的用例图、类图和包图(2)对于每一,2.1 StarUML,的用例图、类图和包图,在,StarUML,中创建包图的方法如下。,(,1,)包图可以直接在,Class Diagram,中建立。点击图例区域中的,Package,图例,然后在工,作区域中单击鼠标左键,即生成一个包。,(,2,)选中生成包,在属性编辑区域中对包属性进行编辑。,(,3,)将需要放在一个包中的对象拖到对应包中。,(,4,)当创建两个及以上的包后,可选择,Dependency,项等关系,然后单击起始包并拖动至,结束包,松开鼠标后,则生成一条关系。,(,5,)重复步骤(,1,)(,3,),至包图完成。,2024年8月29日,第,33,页,2.1 StarUML 的用例图、类图和包图在StarUM,2.1 StarUML,的用例图、类图和包图,图,5,展示了一个基本的包图画法示例。,2024年8月29日,第,34,页,图,5,包图示例,2.1 StarUML 的用例图、类图和包图图5展示了一个,2024年8月29日,第,35,页,2.2 StarUML,的交互图和状态机图,交互图包括顺序图和通信图(,UML1.0,中称为协作图),通常由一组对象和它们之间的关系组成,包括它们之间可能传递的消息。多数情况下,交互图包括对类、接口、构件和结点的具体的或原型化的实例,以及它们之间传递的消息进行建模。交互图除了可以用于对一个用例的事件流程进行建模外,也可以单独使用,用于可视化、详述、构造和文档化一个特定对象群体的动态方面,主要由一组对象和它们之间的关系构成包括需要什么对象、对象相互之间发送什么消息、什么角色启动消息及消息按照什么顺序发送等。,2023年9月5日第35页2.2 StarUML 的交互图,2024年8月29日,第,36,页,2.2 StarUML,的交互图和状态机图,状态机通过对类对象的生存周期建立模型来描述对象随时间变化的动态行为,也可以用来描述用例、协作和方法的动态行为,包括状态图和活动图。状态图是状态结点通过转移连接的图,描述一个特定对象的所有可能状态,以及由于各种事件的发生而引起的状态之间的转移。活动图是一种表述过程机理、业务过程及工作流的技术,是,UML,用于对系统的动态行为建模的一种常用工具,描述活动的顺序,展现从一个活动到另一个活动的控制流,与常用的软件流程图类似,从本质上说,活动图是一类流程图。,2023年9月5日第36页2.2 StarUML 的交互图,2024年8月29日,第,37,页,2.2 StarUML,的交互图和状态机图,1,顺序图和通信图,顺序图强调消息发送的时间顺序,而通信图则强调接收和发送消息的对象的组织结构,显示对象、对象之间的连接及对象之间的消息,还可以显示当前模型中的简单类实例。在图形上,顺序图是一张表,其中显示的对象沿横轴排列,从左到右分布在图的顶部,消息则沿纵轴按时间顺序排列;而通信图则表现为顶点和弧的集合。,2023年9月5日第37页2.2 StarUML 的交互图,2024年8月29日,第,38,页,2.2 StarUML,的交互图和状态机图,(,1,)顺序图,建立顺序图的步骤如下。, 确定交互的上下文。, 找出参与交互的对象类角色,把它们横向排列在顺序图的顶部,最重要的对象安置在最左边,交互密切的对象尽可能相邻。在交互中创建的对象在垂直方向应安置在其被创建的时间点处。, 对每一个对象设置一条垂直向下的生命线。, 从初始化交互的信息开始,自顶向下在对象的生命线之间安置信息。注意用箭头的形式区别同步消息和异步消息。根据顺序图是属于说明层还是属于实例层,给出消息标签的内容,以及必要的构造型与约束。, 在生命线上绘出对象的激活期,以及对象创建或销毁的构造型和标记。, 根据消息之间的关系,确定循环结构及循环参数和出口条件。,2023年9月5日第38页2.2 StarUML 的交互图,2024年8月29日,第,39,页,2.2 StarUML,的交互图和状态机图,在,StarUML,中创建顺序图的方法如下。, 在模型视图区域,Model,处单击鼠标右键,弹出显示菜单。, 将鼠标移至,Add Diagram,项,然后在子菜单中选择顺序图(,Sequence Diagram,),则在工作区域生成一个新的顺序图界面。, 在图例区域中选择,Object,项,然后在工作区域中点击鼠标左键,则生成一个对象类。, 可在属性编辑区域对对象类的属性进行编辑。, 当创建两个及以上的对象类后,可选择,Stimulus,项,然后单击起始类的生命线并拖动至结束类的生命线,松开鼠标后,则生成一条调用关系。, 若有类内自调用的情况,可使用,SelfStimulus,项进行表示。, 重复步骤,至顺序图完成。,2023年9月5日第39页2.2 StarUML 的交互图,2024年8月29日,第,40,页,2.2 StarUML,的交互图和状态机图,图,6,展示了由以上步骤画出的简单顺序图图例。,值得注意的是,,StarUML,中没有提供表示返回值的图示。,图,6,交互图图例,2023年9月5日第40页2.2 StarUML 的交互图,2024年8月29日,第,41,页,2.2 StarUML,的交互图和状态机图,(,2,)通信图,通信图的建立步骤如下。, 确定交互的上下文。, 找出参与交互的对象类角色,把它们作为图形的结点安置在通信图中。最重要的对象安置在图的中央,与它有直接交互的对象安置在邻近。, 设置对象的初始性质。, 说明对象之间的链接。首先给出对象之间的关联连接,然后给出其他连接,并且给出必要的修饰,如构造型,globallocal,等。, 从初始化交互的消息开始,在链接上安置相应的消息,给出消息的序号。注意用箭头的形式区别同步消息和异步消息。根据通信图是属于说明层还是属于实例层,给出消息标签的内容,以及必要的构造型和约束。, 处理一些特殊情况,如循环、自调用、回调、多对象等。,通信图一般包括对象、链和消息。,2023年9月5日第41页2.2 StarUML 的交互图,2024年8月29日,第,42,页,2.2 StarUML,的交互图和状态机图,创建通信图的步骤描述如下。, 在模型视图区域,Model,处单击鼠标右键,弹出显示菜单。, 将鼠标移至,Add Diagram,项,然后在子菜单中选择通信图(,StarUML,是基于,UML1.4,的,对应,Collaboration Diagram,),则在工作区域生成一个新的通信图界面;, 在图例区域中选择,Object,项,然后在工作区域中点击鼠标左键,则生成一个对象类。, 在属性编辑区域对对象类的属性进行编辑。,2023年9月5日第42页2.2 StarUML 的交互图,2024年8月29日,第,43,页,2.2 StarUML,的交互图和状态机图, 当创建两个及以上的对象类后,可选择,Link,项,然后单击起始类的生命线并拖动至结束类的生命线,松开鼠标后,则生成一条链关系。, 若有类自联系的情况,可使用,SelfLink,项进行表示。, 在图例区域中选择,ForwardStimulus,或,ReverseStimulus,项,然后点击步骤中生成的链,从而添加消息,其中,ForwardStimulus,是正向的,,ReverseStimulus,是反向的。, 重复步骤,至通信图完成。,2023年9月5日第43页2.2 StarUML 的交互图,2024年8月29日,第,44,页,2.2 StarUML,的交互图和状态机图,图,7,展示了一个简单的通信图,其中对象一和对象二、对象三之间有通信关系,对象三有自联系情况。,图,7,通信图图例,2023年9月5日第44页2.2 StarUML 的交互图,2024年8月29日,第,45,页,2.2 StarUML,的交互图和状态机图,2,状态图和活动图,状态图和活动图都是描述一个类的对象所有可能的生命历程的模型,通过对类对象的生存周期建立模型来描述对象随时间变化的动态行为,也可以用于描述用例、通信和方法的动态行为,是展示状态与状态转换的图。状态图用于对系统的动态方面建模,主要用于表现一个对象从创建到销毁的整个生命史,用于对一个对象生存周期的离散阶段进行建模;而活动图则是一种特殊形式的状态机,用于对计算流程和工作流程建模。,2023年9月5日第45页2.2 StarUML 的交互图,2024年8月29日,第,46,页,2.2 StarUML,的交互图和状态机图,(,1,)状态图,一般地,状态图的建立步骤如下。, 确定状态机的上下文,它可以是一个类、子系统或整个系统。, 选择初始状态和终结状态。, 发现对象的各种状态。注意应当仔细找出对问题有意义的对象状态属性,这些属性具有少量的值,且该属性的值的转换受限制。对于状态属性值的组合,结合行为有关的事件和动作,就可以确定具有特定的行为特征的状态。, 确定状态可能发生的转移。注意从一个状态可能转移到哪些状态,对象的哪些行为可引起状态的转移并找出触发状态转移的事件。,2023年9月5日第46页2.2 StarUML 的交互图,2024年8月29日,第,47,页,2.2 StarUML,的交互图和状态机图, 把必要的动作加到状态或转移上。, 用超状态、子状态、分支、历史状态等概念组织和简化一个复杂的状态机。, 分析状态的并发和同步情况。, 绘制状态图。, 确认每一个状态在某个时间组合之下都是可到达的。确认没有一个死端状态,即对象不能从该状态转移出来。,2023年9月5日第47页2.2 StarUML 的交互图,2024年8月29日,第,48,页,2.2 StarUML,的交互图和状态机图,状态图中主要包含对象在生存周期中所经历的状态序列、诱发对象从一个状态转换到另一个状态的事件及状态改变所导致的动作,3,个方面的内容。在,StarUML,中创建一个状态图的步骤如下。, 在模型视图区域任一,Model,处单击鼠标右键,弹出显示菜单。, 将鼠标移至,Add Diagram,项,然后在弹出的子菜单中选择状态图(,Statechart Diagram,),则在工作区域生成一个新的状态图界面。, 单击,InitialState,,在工作区域中合适的位置单击鼠标左键,则生成对象的初始状态点;以相同的方法放置,FinalState,可生成结束状态。, 选择如,State,等表示对象状态的图标,在相应地方单击生成相关状态,并可以直接命名。, 选择如,Transition,、,SelfTransition,等状态转换关系,在转换前状态上单击并拖动至转换后的状态,从而生成相应关系,并可直接命名。, 重复步骤、至状态图完成。,2023年9月5日第48页2.2 StarUML 的交互图,2024年8月29日,第,49,页,2.2 StarUML,的交互图和状态机图,图,8,表示一个简单的状态图例子。,图,8,状态图图例,2023年9月5日第49页2.2 StarUML 的交互图,2024年8月29日,第,50,页,2.2 StarUML,的交互图和状态机图,(,2,)活动图,活动图的建立步骤如下。, 找出负责实现工作流的业务对象。这些对象可以是现实业务领域中的实体,也可以是一种抽象的概念或事物。为每一个重要的业务对象建立一条泳道(,UML2.0,中称为分区,Partition,)。, 确定工作流的初始状态和终结状态,明确工作流的边界。, 从工作流的初始状态开始,找出随时间而发生的活动和动作,把它们表示成活动状态或动作状态。, 对于复杂的动作或多次重复出现的一组动作,可以把它们组成一个活动状态,并且用另外一个活动图来展开表示。, 给出连接活动和动作的转移(动作流)。首先处理顺序动作流,然后处理条件分支。最后处理分叉和汇合。, 在活动图中给出与工作流有关的重要对象,并用虚箭头线把它们与活动状态或动作状态相连接。,2023年9月5日第50页2.2 StarUML 的交互图,2024年8月29日,第,51,页,2.2 StarUML,的交互图和状态机图,在,StarUML,中创建活动图的步骤如下。, 在模型视图区域任一,Model,处单击鼠标右键,弹出显示菜单。, 将鼠标移至,Add Diagram,项,然后在弹出的子菜单中选择活动图(,Activity Diagram,),则在工作区域生成一个新的活动图界面。, 单击,InitialState,,在工作区域中合适的位置单击鼠标左键,则生成对象的初始状态点;以相同的方法放置,FinalState,可生成结束状态。, 选择如,ActionState,等表示活动状态的图标和,Decision,等活动图标,在相应地方单击生成相关状态,并可以直接命名。, 选择如,Transition,、,SelfTransition,等状态转换关系,在转换前状态上单击并拖动至转换后的状态,从而生成相应关系,并可直接命名。, 重复步骤、至状态图完成。,2023年9月5日第51页2.2 StarUML 的交互图,2024年8月29日,第,52,页,2.2 StarUML,的交互图和状态机图,图,9,展示了一个简单的活动图。,图,9,活动图图例,2023年9月5日第52页2.2 StarUML 的交互图,2024年8月29日,第,53,页,2.3 StarUML,的构件图与部署图,构件与部署图都用于对面向对象软件系统物理方面的建模。构件图提供当前模型物理视图,对系统的静态实现视图进行建模,而部署图描述的是系统运行时结点、构件实例及其对象的部署。而构件包中包含的是一组逻辑相关的构件或者系统的主要构件,可以在建模时将系统的物理模型分成几个便于组织管理的部分。,2023年9月5日第53页2.3 StarUML 的构件图,2024年8月29日,第,54,页,2.3 StarUML,的构件图与部署图,1,构件图,构件图对系统的静态实现视图进行建模,显示一个系统的构件在物理设计过程中所映射的类和对象的配置。一个构件图可以表示一个系统全部或部分的组建体系。,从组织内容看,构件图显示软件的组织及构件之间的依赖关系。构件图中,构件之间的调用表示为一个构件与另一个构件之间的依赖关系。一个软件系统中,可以创建一个或多个构件图来描述构件视图顶层的构件包和构件,或者描述每个构件包中的具体内容。构件图属于它们各自所描述的构件包。构件、构件包的属性及它们之间的关系都可以通过修改图标或者编辑规范来改动。,2023年9月5日第54页2.3 StarUML 的构件图,2024年8月29日,第,55,页,2.3 StarUML,的构件图与部署图,一般地,构件图的建立步骤如下。, 确定构件。首先要分解系统,考虑有关系统的组成管理、软件的重用和物理结点的部署等因素,把关系密切的可执行程序和对象库分别归入组构件,找出相应的对象类、接口等模型元素。, 对构件加上必要的构造型。可以使用,UML,的标准构造型,executable,、,library,、,table,、,file,、,document,,或自定义新的构造型,说明构件的性质。, 确定组构件之间的联系。最常见的构件之间的联系是通过接口依赖。一个构件使用某个接口,另一个构件实现该接口。, 必要时把构件组织成包。构件和对象类、协作图(通信图)等模型元素一样可以组织成包。, 绘制构件图。,2023年9月5日第55页2.3 StarUML 的构件图,2024年8月29日,第,56,页,2.3 StarUML,的构件图与部署图,在,StarUML,中创建构件图的操作步骤如下。, 在模型视图区域,Model,处单击鼠标右键,弹出显示菜单。, 将鼠标移至,Add Diagram,项,然后在子菜单中选择构件图(,Component Diagram,),则在工作区域生成一个新的构件图界面。, 在图例区点击构件(,Component,)等组成成分,然后在工作区域单击鼠标左键,生成相应组成成分。, 在图例区点击依赖(,Dependency,)等关系,然后单击起始成分并拖动至结束成分,松开鼠标后,则生成一条关系。, 选定相应成分或关系,在属性编辑区域对其属性进行编辑。, 重复步骤,至构件图完成。,2023年9月5日第56页2.3 StarUML 的构件图,2024年8月29日,第,57,页,2.3 StarUML,的构件图与部署图,图,10,显示了一个按上述步骤画出的简单构件图。,图,10,简单构件图,2023年9月5日第57页2.3 StarUML 的构件图,2024年8月29日,第,58,页,2.3 StarUML,的构件图与部署图,2,部署图,部署图表示系统的实际布局情况,与系统的逻辑结构不同,它描述系统在网络上的物理部署。部署图可以显示计算结点的拓扑结构和通信路径、结点上运行的软件、软件包含的逻辑单元(对象、类等)。特别是对于分布式系统,部署图可以清楚地描绘硬件设备的部署、通信及在各设备上软件和对象的部署。,2023年9月5日第58页2.3 StarUML 的构件图,2024年8月29日,第,59,页,2.3 StarUML,的构件图与部署图,一般地,部署图的建立步骤如下。, 确定结点。注意:标示系统中的硬件设备,包括大型主机、服务器、前端机、网络设备、输入,/,输出设备等。一个处理机是一个结点,它具有处理功能,能够执行一个构件;一个设备也是一个结点,它没有处理功能,但它是系统和现实世界的接口。, 对结点加上必要的构造型。可以使用,UML,的标准构造型或自定义新的构造型,说明结点的性质。, 确定联系。这是关键步骤。部署图中的联系包括结点与结点之间的联系,结点与构件之间的联系,构件相互之间的联系,可以使用标准构造型或自定义新的构造型说明联系的性质。把系统的构件如可执行程序、动态连接库等分配到结点上,并确定结点与结点之间,结点与组构件之间,构件相互之间的联系,以及它们的性质。, 绘制部署图。,2023年9月5日第59页2.3 StarUML 的构件图,2024年8月29日,第,60,页,2.3 StarUML,的构件图与部署图,在,StarUML,中创建部署图的操作步骤如下。, 在模型视图区域,Model,处单击鼠标右键,弹出显示菜单。, 将鼠标移至,Add Diagram,项,然后在子菜单中选择部署图(,Deployment Diagram,),则在工作区域生成一个新的部署图界面。, 在图例区点击结点(,Node,)等组成成分,然后在工作区域单击鼠标左键,生成相应组成成分。, 在图例区点击链接(,Association,)等关系,然后单击起始成分并拖动至结束成分,松开鼠标后,则生成一条关系。, 选定相应成分或关系,在属性编辑区域对其属性进行编辑。, 重复步骤至部署图完成。,2023年9月5日第60页2.3 StarUML 的构件图,2024年8月29日,第,61,页,2.3 StarUML,的构件图与部署图,图,11,展示了一个基本的部署图图例。,图,11,部署图图例,2023年9月5日第61页2.3 StarUML 的构件图,2024年8月29日,第,62,页,2.4 StarUML,的正向工程和逆向工程,图,2.3,库存管理系统的系统流程图,StarUML,支持,UML,模型与编程语言之间的相互转换,即既可以根据模型生成框架代码(,Java,、,C+,等),该过程也称为正向工程,然后由开发人员对生成的代码进行完善;也可以分析代码的改动,对模型进行相应的修改,构建出与代码相对应的更好的,UML,模型,这个过程也就是逆向工程。,2023年9月5日第62页2.4 StarUML 的正向工,2024年8月29日,第,63,页,2.4 StarUML,的正向工程和逆向工程,1,代码生成,在使用,StarUML,进行从模型到代码的生成时,需要明确两个问题:代码生成时需要进行哪些操作及这些操作步骤的顺序如何安排?,StarUML,能够生成什么样的代码?在代码生成过程中,各种语言对转换的操作步骤要求不尽相同,通常,StarUML,按下列,5,个操作步骤进行。, 检查模型:目的是查找模型中的问题和不一致性,以确保生成代码的正确性。, 创建构件:目的是创建用来保存类的构件。构件的种类很多,包括源代码文件、可执行文件、运行库,,ActiveX,构件等。,2023年9月5日第63页2.4 StarUML 的正向工,2024年8月29日,第,64,页,2.4 StarUML,的正向工程和逆向工程, 将类映射到构件:目的是在生成代码之前,将类映射到相应的源代码构件。, 设置代码生成属性:目的是确定生成代码的具体细节,由于模型元素(包括类、属性、构件等)有多种代码生成属性可供选择,而,StarUML,只提供常用的代码生成属性的默认设置,因此在生成代码之前,最好先检查代码生成属性并做必要的修改,以免影响生成的语言代码的框架。, 选择要进行代码转换的类、构件和包:目的是选择要进行代码转换的指定模型或模型元素,这一步是将模型转换到具体的代码过程中的最后一步准备工作。,2023年9月5日第64页2.4 StarUML 的正向工,2.4 StarUML,的正向工程和逆向工程,经过前述,5,个步骤的准备工作后,便可以开始执行代码生成的工作了。但需要说明的是:,任何工具都不能自动创建完整的应用程序,,StarUML,也不例外。,StarUML,强大的代码生成能力在于它能收集各种模型和视图中的相关信息,依据模型元素的规范及为模型元素指定的代码生成语言的属性,生成相关的大量框架代码。框架代码生成后,用户还需要在相应的编程语言环境下,进一步精化系统的程序实现。在,StarUML,生成的代码框架的基础上,用户需要进行的后续工作主要是编写每个类的操作(方法实现)和设计图形用户界面(,GUI,)。,2024年8月29日,第,65,页,2.4 StarUML 的正向工程和逆向工程经过前述5个步,2024年8月29日,第,66,页,2.4 StarUML,的正向工程和逆向工程,使用,StarUML,的代码生成功能实现的内容主要包括:,类:生成模型中的所有类、每个类的属性(包括可见性、数据类型和默认值)、操作声明及其参数、参数数据类型和返回值;,关系:模型中的部分关系可以在代码生成时产生;,构件:生成实现每个构件的相应源代码文件。,2023年9月5日第66页2.4 StarUML 的正向工,2024年8月29日,第,67,页,2.4 StarUML,的正向工程和逆向工程,StarUML,中代码生成的具体操作步骤(以,C+,为例):, 单击,StarUML,中的,Tools,工具栏,在下拉菜单中选择,Add-In Manager,选项,弹出选择对话框;, 勾选“,C+ Add-In”,选项,单击“,OK”,按钮退出;, 选择,Model,工具栏,再选择,Profiles,选项;, 选择“,C+ Profile”,,单击,Include,,将,C+,添加进到所包含的,Profile,中;, 右键单击想要生成代码的图或相关成分,选择“,C+”,选项,单击“单击,Generate Code”,选项;, 按照提示步骤对相关内容进行设置,最后点击“,Finish”,按钮,则成功生成图所对应的,C+,代码框架。,StarUML,中对,Java,的代码生成步骤与,C+,的相似,值得注意的是目前常用的,StarUML V5.0.2.1570,仅支持,JDK1.4,及以下的环境。,2023年9月5日第67页2.4 StarUML 的正向工,2.4 StarUML,的正向工程和逆向工程,2,逆向工程,进行系统开发时,开发小组有可能是在一个旧版本系统的完整源代码的基础上进行升级,这时就可以利用,StarUML,的逆向工程功能从源代码创建或更新,StarUML,模型,然后再进行迭代式的增量开发过程。,StarUML,逆向工程就是利用源代码中的信息创建或更新,StarUML,模型,通过,ANSI C+,、,VC+,、,Visual BASIC,、,Java,等语言插件的支持,,StarUML,支持多种语言的逆向工程。在逆向工程转出代码的过程中,,StarUML,从源代码中寻找类、属性和操作、关系、包、构件等逆向工程的源代码信息,,StarUML,对它们进行模型化处理后,创建出一个新的模型或对原有模型进行更新。,如果源代码文件包含类,则逆向工程创建,StarUML,模型中相应的类,类中的每个属性和操作表现为新建的,StarUML,模型中对应类的属性和操作。此外,,StarUML,还会收集可见性、数据类型、默认值等信息,并在模型中显示出来。源代码中两个类之间的关系、包和构件的信息在,StarUML,逆向工程中也会体现到,StarUML,模型中。,2024年8月29日,第,68,页,2.4 StarUML 的正向工程和逆向工程2逆向工程,2.4 StarUML,的正向工程和逆向工程,StarUML,中逆向工程生成的操作步骤:, 在空模型上建立一个包,用于存放逆向后的工程;, 右键单击包,选择“,C+”,,然后在子菜单中单击“,Reverse Engineer”,;, 单击,Next,按钮,然后在左端的,Directory,中选择需要进行逆向工程的相应文件夹;, 在右端的,C+ source file,中选择需要的头文件,然后单击“,Add”,进行添加;, 单击,Next,按钮,来到逆向工程条件设置界面,设置好之后,单击,Next,按钮,则
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!