标准建模语言uml.ppt
《标准建模语言uml.ppt》由会员分享,可在线阅读,更多相关《标准建模语言uml.ppt(181页珍藏版)》请在三一办公上搜索。
1、第6章 统一建模语言UML,戴立红,第6章 统一建模语言UML,6.1 UML概述6.2 UML世界的构成、视图、图6.3 用 例 建 模6.4 类和对象建模6.5 动 态 建 模6.6 物理体系结构建模6.7 UML建模工具ROSE的使用,6.1 UML概述,6.1.1 UML与模型一、什么是UMLUML(Unified Modeling Language)统一建模语言是用来设计软件蓝图的可视化建模语言。UML是一种基于面向对象的可视化建模语言。UML提供了丰富的基于面向对象概念的模型元素和图形表示元素。规定了严格的语法、语义和构架规则。,6.1.1 UML与模型,二、模型及其作用1、模型在
2、解决问题之前必须首先理解所要解决的问题。对问题理解得越透彻,就越容易解决它。为了更好地理解问题,人们常常采用建立问题模型的方法。所谓模型,就是为了理解事物而对事物作出的一种抽象。2、模型的作用(1)模型可以按照易于理解的方式提供了对复杂系统的简明描述。(2)模型为项目参与者之间提供了交流的手段。,6.1.1 UML与模型,三、为什么使用UML(1)是否使用面向对象技术来开发软件。(2)软件的规模和复杂程度是否超出了用户的控制能力。(3)是否是一个团队进行软件项目开发。,6.1.2 UML工具,UML工具是帮助软件开发人员方便使用UML的软件。它的主要功能包括:支持各种UML模型图的输入、编辑和
3、存储;支持正向工程和逆向工程;提供与其他开发工具的接口。UML工具有很多,各种工具提供的功能不同。下面介绍主要的UML工具。,6.1.2 UML工具,一、主要的UML工具介绍1、Rational公司推出的Rose是目前最好的基于UML的工具。Rose具有正向工程、逆向工程和对象模型更新等功能。用户修改模型后可以直接反映到代码上,同样用户对代码框架的修改也可以反映到模型上。同时它还提供对多种程序设计语言的支持,包括常见的C+、Java、Visual Basic等。2、Together Soft 公司的Together将建模工具和Java集成开发环境有机地结合到一起。它的主要特点是符合UML规范的
4、建模工具,提供程序开发人员使用的源码编辑器。支持Java和C+。3、微软公司的Visio Professional 2000提供内建的UML支持。如果考虑Visio绘图工具同时提供绘制多种图形的功能,这是一个相当有价值的工具。,6.1.2 UML工具,二、如何选择UML工具从技术方面考虑,选择UML工具应考虑以下方面。1、支持UML1.3。工具至少应该支持以下UML模型图:用例图、类图、协作图、顺序图、包图和状态图。2、支持项目组的协同开发。对于一个大项目,开发人员之间可以共享设计模型图是必需的。UML工具应该允许从另一个模型只引入所需要的组件而不必引入整个模型。这样方便一个项目的协作开发。3
5、、支持双向工程。支持正向工程和逆向工程是一项复杂的需求。正向工程是从模型产生代码,这样可以节省编程时间。逆向工程是从代码产生模型,它在重新同步模型和代码时非常有用。,6.1.2 UML工具,二、如何选择UML工具4、HTML文档化。建模工具应能产生HTML文档。以便开发者可以通过浏览器迅速查询模型中的各个图形,而不需要加载建模工具本身。5、打印支持。建模工具应允许一张大图能够准确地用多个页面打印出来,并提供打印预览和缩放功能。6、健壮性。软件的健壮性是一个基本的要求,必须防止设计期间,模型没有备份的情况下,工具崩溃。7、开发平台。UML工具应该与应用系统保持平台一致。8、提供XML支持。XML
6、将成为各种工具之间数据交换的标准格式。提供与其他开发工具的接口。,6.2 UML世界的构成、视图、图,6.2.1 UML世界的构成 对于UML而言,其建模要素主要包括三个方面:1、基本构造块:即建模元素,是模型的主体。2、UML规则:即支配基本构造块如何放在一起的规则。3、公用机制:运用于整个UML模型中的公共机制、扩展机制。,6.2.1 UML世界的构成,一、UML基本构造块,6.2.1 UML世界的构成,二、UML建模规则UML的模型图不是UML基本图素的简单堆砌,它必须按特定规则有机地组合而成,从而构成一个完整的UML模型图。UML建模规则包括以下方面:1、命名:任何一个UML基本图素和
7、模型图(统称UML成员)都必须命名。2、作用域:UML成员所定义的内容起作用的上下文环境,如类名受所属包的约束。3、可见性:UML成员能被其它成员引用的方式。4、完整性:UML成员之间互相关联的合法性和一致性。5、运行属性:UML成员在运行时的特性,如进程、线程、同步等。,6.2.1 UML世界的构成,三、公用机制:规格描述、修饰、通用划分、扩展机制。1、规格描述(规格说明)UML不仅仅是一种图形语言,在图形表示法的每个部分后面都有一个规格描述,用来对构造块的语法和语义进行文字叙述。就是非图形的文档。2、修饰为了使建模的表述可视化和容易理解,UML提供了有选择地公开相关细节的方式。如表示的类的
8、属性和方法的可见性。UML模型中类的成分带“-”表示私有的(Private),带“+”表示公开的(Public),其他类可以访问,带“#”表示受保护的(Protected)。,6.2.1 UML世界的构成,三、公用机制:规格描述、修饰、通用划分、扩展机制。3、通用划分(1)类和对象的划分。类是一种抽象,对象是一个具体的实例;类定义了基本的属性,每个对象则具有不同的属性值。(2)接口和实现的分离。接口是一种声明,是一个契约,也是服务的入口;实现负责实施接口提供的契约。4、扩展机制(extensibility mechanisms)当使用UML的基本图素难以有效地表达复杂事物时,就需要对UML进行
9、某种形式的扩充,以描述各种新事物。UML提供了这种扩充机制。UML 包含三种主要的扩展组件:约束、构造型和标记值。,6.2.1 UML世界的构成,三、公用机制:规格描述、修饰、通用划分、扩展机制。4、扩展机制(1)约束是对语义的扩展,用于增加和修改规则。用某种形式化语言或自然语言表达的文字说明。约束信息约束可以附加在表元素、依赖关系,或注释上。如图所示的约束,对剧目类的约束保证了剧目具有唯一的名称。,6.2.1 UML世界的构成,4、扩展机制(2)构造型用于增加新的模型元素,但是这个模型元素要建立在 UML 已定义的模型元素基础上。构造型用双尖括号内的文字字符串表示。构造型关键字构造型可以放在
10、表示基本模型元素的符号的里边或旁边。可以为特殊的构造型创建一个符号,来替代原来的基本模型元素的符号。,6.2.1 UML世界的构成,4、扩展机制(3)标记值用于为模型元素添加新的特性。附加到任何模型元素上的信息块。用形如标记信息的字符串表示。其中标记信息通常由标记名称、分隔符(=)和值三部分组成。标记是建模者想要记录的一些特性的名字,而值是给定元素的特性的值。标记值直接放在UML元素中。如图所示Scheduling 包中的标记值。说明 Frank Martin 要在年底世纪前完成计划的制定。,6.2.2 UML的视图和图,UML中用一组视图(View)反映系统的各个方面。每个视图说明了系统的一
11、个特殊侧面。若干个不同的视图可以完整地描述所建造的系统。视图是由若干幅图(Diagram)组成的一种抽象。一幅图包含了系统某一特殊方面的信息,它阐明了系统的一个特定部分或方面。一幅图由若干个模型元素组成。模型元素表示图中的类、对象、用例、节点、包、注解、构件、关系等概念。对视图的划分带有一定的随意性。,6.2.2 UML的视图和图,一、用例视图(Use Case View)二、静态视图(Static View)三、行为视图(Behavior View)四、交互视图(Interactive View)五、实现视图(Implementation View),6.2.2 UML的视图和图,一、用例视
12、图(Use Case View)强调从用户角度看到的或需要的系统功能,并指出各功能的操作者。包括用例图。用例图用来描述系统功能。用例视图是中心,因为它的内容决定了其他视图的开发。用例视图还可用于确认和最终验证系统,用户根据用例视图来确认所建造的系统是否是他所想要的,开发者用用例视图测试系统是否完成了指定的功能。,6.2.2 UML的视图和图,二、静态视图(Static View)展现系统的静态或结构组成及特征。包括类图、对象图和包图。1、类图(Class Diagram):描述系统中类的静态结构。不仅定义系统中的类,表示类之间的联系如关联、聚合、泛化、依赖等,也包括类的内部结构类的属性和操作。
13、类图描述的是一种静态关系,在系统的整个生命周期都是有效的。2、对象图(Object Diagram):对象图描述系统在某个时刻的静态结构。对象是类的实例。由于对象存在生命周期,因此对象图只能在系统某一时间段存在。3、包图(Package Diagram):由包或类组成。主要显示类的包以及这些包之间的依赖关系、继承关系和组成关系。包图用于描述系统的分层结构。,6.2.2 UML的视图和图,三、行为视图(Behavior View)描述系统的动态行为。包括状态图和活动图。1、状态图(State Diagram):用来描述一个特定对象的所有可能状态及其引起状态转移的事件。通常,状态图是对类图的补充。
14、在实用上并不需要为所有的类画状态图,仅为那些有多个状态其行为受外界环境的影响并且发生改变的类画状态图。2、活动图(Activity Diagram):活动图用来描述完成一个操作所需要的活动,或者是一个用例实例(场景)的活动。活动图有利于识别并行活动。,6.2.2 UML的视图和图,四、交互视图(Interactive View)描述对象间的交互关系。包括顺序图和协作图。1、顺序图(Sequence Diagram):也称顺序图、序列图。显示对象之间的动态合作关系,它强调对象之间消息发送的顺序,同时显示对象之间的交互。2、协作图(Collaboration Diagram):描述对象间的协作关系
15、,显示对象间的动态合作关系。除显示信息交换外,协作图还显示对象以及它们之间的关系。也称合作图。3、区别如果强调时间和顺序,则使用顺序图。如果强调上下级关系,则选择协作图。,6.2.2 UML的视图和图,五、实现视图(Implementation View)包括构件图和部署图。1、构件图(Component Diagram):也称组件图。描述代码部件的物理结构及各部件之间的依赖关系。一个部件可能是一个资源代码部件、一个二进制部件或一个可执行部件。2、部署图(Deployment Diagram):也称配置图或实施图。用来描述系统运行时软件和硬件的物理配置。其中硬件配置包含硬件节点(如计算机和设备
16、)及其连接关系,软件配置包含各构件在硬件节点上的分布情况。,UML中的模型和图,6.2.2 UML的视图和图,顺序图、协作图、活动图和状态图四种动态图的运用 为帮助理解类而画它的状态图。状态图描述跨越多个用例的单个对象的行为,而不适合描述多个对象间的行为合作。顺序图和协作图适合描述单个用例中几个对象的交互行为。顺序图突出对象间交互的顺序,而协作图描述交互对象间静态的连接关系。当行为较为简单时,顺序图和合作图是最好的选择。当行为比较复杂时,想显示跨越多用例或多线程的复杂行为,可考虑使用活动图。顺序图和协作图仅适合描述对象之间的合作关系,而不适合对行为进行精确定义,如果想描述跨越多个用例的单个对象
17、的行为,应当使用状态图。,6.2.3 UML用于软件开发,一、面向对象方法学、UML和统一开发过程1、方法学、语言和过程方法学定义了语言和过程。语言定义了使用的模型和表示这些模型的表示法。过程定义了如何以及何时产生各种不同的模型。2、面向对象方法、UML和统一开发过程UML是一种基于面向对象的可视化建模语言。使用面向对象开发软件可以使用UML。软件开发过程的各个阶段可以使用UML进行建模。,6.2.3 UML用于软件开发,二、UML在软件开发各个阶段的应用UML常用于建立软件系统的模型,适用于系统开发的不同阶段。1.用户需求该阶段可使用用例图来捕获用户的需求,用例图从用户的角度来描述系统的功能
18、。通过用例建模,描述对系统感兴趣的外部角色和他们对系统的功能要求。2.系统分析分析阶段主要对用户的需求进行进一步的分析,建立问题域的模型。使用UML的类图来描述系统的静态结构,使用顺序图、协作图、活动图和状态图开描述系统的动态行为。,6.2.3 UML用于软件开发,3.系统设计在分析模型基础上,考虑定义软件系统中的技术细节用到的类,如引入处理用户交互的接口类、处理数据的类、处理通信和并行性的类。主要使用类图。此阶段可使用包图对类进行分组,帮助对整个系统的框架进行理解。4.系统实现实现阶段的任务是使用面向对象程序设计语言,将来自设计阶段的类转换成源程序代码,用构件图来描述代码构件的物理结构以及构
19、件之间的关系。用部署图来描述和定义系统中软硬件的物理体系结构。5.测试UML建立的模型也是测试阶段的依据。可使用类图进行单元测试,使用构件图、协作图进行集成测试,使用用例图进行确认测试,以验证测试结果是否满足用户的需求。,6.3 用 例 建 模,用例建模是用于描述一个系统应该做什么的建模技术。用例模型包括用于描述一个系统的所有用例图和用例描述。用例图包括用例、参与者、用例和参与者之间的关系和系统。用例描述是一个关于参与者与系统如何交互的规格说明。系统:代表的是一部机器或一个业务活动等等,而并不是真正实现的软件系统。,6.3.1 用例图,一幅用例图包含的模型元素有系统、参与者、用例、参与者和用例
20、之间的关系以及用例之间的不同关系。图中的方框代表系统。系统的边界用来说明被构建的用例模型的应用范围。被看作是一个提供用例的黑盒。系统的边界定义了系统所具有的功能。系统边界的确定实质上就是系统责任的确定。描述该系统功能的用例置于方框内,描述外部实体的参与者置于其外。,6.3.2 参与者,参与者是指与系统交互的人、设备和其他系统。“与系统交互”是指参与者向系统发送消息,或从系统那里接收消息,或与系统交换信息。简单地说,参与者执行用例。特殊的参与者系统时钟。特殊的参与者系统时钟。有时候我们需要在系统内部定时地执行一些操作,如检测系统资源使用情况、定期地生成统计报表等等。如图所示。参与者代表一种角色,
21、而不是具体的某个人。例如,张三要向保险公司投保,我们要创建的是投保人这个角色,而不是张三这个人。参与者可以分为主动参与者和被动参与者。主动参与者启动一个用例,而被动参与者从不启动用例。,6.3.2 参与者,二、寻找参与者可以通过回答下列问题来确定参与者:(1)谁使用系统的主要功能?(2)谁需要从系统中得到对日常工作的支持?(3)谁需要维护、管理和维持系统的日常运行?(4)系统需要控制哪些硬件设备?(5)需要与系统交互的其他系统有哪些?(6)系统产生的结果感兴趣的人或其他系统。,6.3.2 参与者,三、参与者之间的关系泛化关系因为参与者属于类。参与者之间也可以存在泛化关系。把某些参与者的共同行为
22、抽取出来表示成通用行为,且把它们描述称为父类。用一个三角箭头从子类参与者指向父类参与者。参与者之间的泛化关系如图所示。,6.3.3 用例,用例(Use Case):用例代表的是一个完整的功能。表示系统所提供的服务。在UML中,用例定义为:给特定参与者一个可观察的结果值的系统所完成的一系列动作。一、用例的特征(1)用例总是被参与者启动的。用例所代表的功能必须由参与者激活,而后才能执行。(2)用例向参与者提供值,这些值必须是可识别的;(3)用例是完整的,一个用例必须是一个完整的描述。一种不适当的用法是把一个用例分成几个小的用例。这些小的用例像程序设计语言中的函数一样相互调用,而事实上,在最终的值产
23、生前,这些小的用例是不完整的。,6.3.3 用例,二、用例和参与者之间的关系用例和参与者之间也有连接关系,用例和参与者之间的关系属于关联,又称作通信关联。这种关联表明哪个参与者能与该用例通信。,6.3.3 用例,三、寻找用例可以通过让每个参与者回答以下问题来寻找用例:(1)参与者需要系统提供哪些功能?参与者需要做什么?(2)参与者需要读、创建、删除或储存系统中的信息有哪些?(3)参与者是否要被系统中的事件提醒,或者参与者是否要提醒系统中的某些事情?从功能观点看,这些事件表示什么?(4)参与者的日常工作是否因为系统的新功能(尤其是目前尚未自动化的功能)而被简化或提高了效率?对同一个项目,不同的开
24、发者选取的用例数是不一样的。要在项目规模和用例数之间保持平衡。,6.3.3 用例,四、用例之间的关系 1、泛化关系如果两个或更多用例在行为、结构和目的方面存在共性,可以使用用例的一般特殊关系,即泛化关系。子用例继承父用例的所有结构、行为和关系。,6.3.3 用例,四、用例之间的关系 2、包含关系当在两个或多个独立用例重复自已并希望避免重复时,使用包含关系。关键字为include。3、扩展关系表达某些可选或只在特定条件下才执行的系统行为的用例,称为扩展用例。关键字为extent,由扩展用例指向基本用例。,6.3.3 用例,五、用例的描述图形化表示的用例本身不能提供该用例所具有的全部信息,因此还必
25、须描述用例不可能反映在图形上的信息。通常用文字描述不能反映在图形上的信息。用例的描述其实是一个关于参与者与系统如何交互的规格说明。1、用例描述的主要内容:用例名称、用例简要说明、参与者、基本事件流、备选事件流、前置条件、后置条件等。,6.3.3 用例,五、用例的描述事件流:描述了一个用例在执行时执行者与系统之间的交互过程。基本事件流:对用例中常规和预期路径的描述。备选事件流:由于受其他一些条件的影响,可能执行了其他的路径,这种路径称为备选事件流。前置条件(Pre-Condition):是该用例执行的前提条件。一般用参与者或系统的状态来表示。后置条件(Post-Condition):用例结束时系
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 标准 建模 语言 uml
链接地址:https://www.31ppt.com/p-6137106.html