《UML设计技术》PPT课件.ppt
《《UML设计技术》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《UML设计技术》PPT课件.ppt(240页珍藏版)》请在三一办公上搜索。
1、统一建模语言(Unified Modeling Language,UML)是一种整合多种模型的语言,由Rumbaugh、Booch和Jacobson三位大师提出。是第三代用来 为面向对象开发系统的产品进行说明、可视化和编制文档的方法。,UML(统一建模语言)设计技术,UML得发展历程,什么是UML,UML是一种标准的图形化建模语言,它是面向对象分析与设计的一种标准表示。它:不是一种可视化的程序设计语言,而是一种可视化的建模语言;不是工具或知识库的规格说明,而是一种建模语言规格说明,是一种表示的标准;不是过程,也不是方法,但允许任何一种过程和方法使用它;,UML的目标,易于使用、表达能力强,进行
2、可视化建模;与具体的实现无关,可应用于任何语言平台和工具平台;与具体的过程无关,可应用于任何软件开发的过程;简单并且可扩展,具有扩展和专有化机制,便于扩展,无需对核心概念进行修改;为面向对象的设计与开发中涌现出的高级概念(例如协作、框架、模式和组件)提供支持,强调在软件开发中,对架构、框架、模式和组件的重用;与最好的软件工程实践经验集成;可升级、具有广阔的适用性和可用性;有利于面对对象工具的市场成长。,UML的架构,UML是由图和元模型组成的。图是UML的语法,而元模型则给出的图的意思,是UML的语义。UML的语义是定义在一个四层(或四个抽象级)建模概念框架中的,这四层分别是:元元模型(met
3、a-metamodel)层,组成UML最基本的元素“事物(Thing)”,代表要定义的所有事物;元模型(metamodel)层,组成了UML的基本元素,包括面向对象和面向组件的 概念。这一层的每个概念都是元元模型中“事物”概念的实例(通过版类化);,UML的架构,模型(model)层,组成了UML的模型,这一层中的每个概念都是元模型层中概念的一个实例(通过版类化),这一层的模型通常叫做类模型(class model)或类型模型(type model);用户模型(user model)层,这层中的所有元素都是UML模型的例子。这一层中 的每个概念都是模型层的一个实例(通过分类),也是元模型层的一
4、个实例通(过版类化)。这一层的模型通常叫做对象模型(object model)或实例模型(instance model)。,UML的模型、视图、图与系统架构建模,UML是用来描述模型的,它用模型来描述系统的结构或静态特征、以及行为或动态特征。它从不同的视角为系统的架构建模形成系统的不同视图view包括:用例视图(use case view),强调从用户的角度看到的或需要的系统功能,这种视图也叫做用户模型视图(user model view)或想定视图(scenario view);逻辑视图(logical view),展现系统的静态或结构组成及特征,也称为结构模型视图(structural m
5、odel view)或静态视图(static view);,UML的模型、视图、图与系统架构建模,并发视图(concurrent view),体现了系统的动态或行为特征,也称为行为模型视图(behavioral model view)、过程视图(process view)协作视图(collaborative)、动态视图(dynamic view);组件视图(component view),体现了系统实现的结构和行为特征,也称为实现模型视图(implementation model view)和开发视图(development view);展开视图(deployment view),体现了系统实
6、现环境的结构和行为特征,也称为环境模型视图(implementation model view)或物理视图(physical view);,UML与面向对象的软件分析与设计(OOA&D),标准的表示方法 UML是一种建模语言,是一种标准的表示,而不是一种方法(或方法学)。方法是一种把人的思考和行动结构化的明确方式,方法需要定义软件开发的步骤、告诉人们做什么,如何做,什么时候做,以及为什么要这么做。而UML只定义了一些图以及它们的意义,它的思想是与方法无关。因此,我们会看到人们将用各种方法来使用UML,而无论方法如何变化,它们的基础是UML的图,这就是UML的最终用途-为不同领域的人们提供统一的
7、交流标准。,与软件开发的成功经验集成,在众多成功的软件设计与实现的经验中,最突出的两条:一是注重系统架构的开发,一是注重过程的迭代和递增性。尽管UML本身没有对过程有任何定义,但UML对任何使用它的方法(或过程)提出的要求是:支持用例驱动(use-case driven)、以架构为中(architecture-centric)以及递增(incremental)和迭代(iterative)地开发。,与软件开发的成功经验集成,注重架构意味着不仅要编写出大量的类和算法,还要设计出这些类和算法之间简单而有效地协作。所有高质量的软件中似乎大量是这类的协作,而近年出现的软件设计模式也正在为这些协作起名和分
8、类,使它们更易于重用。最好的架构就是“概念集成(conceptual integration)”,它驱动整个项目注重开发模式并力图使它们简单。迭代和递增的开发过程反映了项目开发的节奏。,UML的应用领域,在不同类型系统中的应用:UML的目标是用面向对象的方式描述任何类型的系统。最直接的是用UML为软件系统创建模型,但UML也可用来描述其它非计算机软件的系统或者是商业机构或过程。以下是UML常见的应用:信息系统(Information System):向用户提供信息的储存、检索、转换和提交。处理存放在关系或对象数据库中大量具有复杂关系的数据;技术系统(Technical System):处理和控
9、制技术设备,如电信设备、军事系统或工业过程。它们必须处理设计的特殊接口,标准软件很少。技术系统通常是实时系统;,嵌入式实时系统(Embedded Real-Time System):在嵌入到其它设备如移动电话、汽车、家电上的硬件上执行的系统。通常是通过低级程序设计进行的,需要实时支持;分布式系统(Distributed System):分布在一组机器上运行的系统,数据很容易从一个机器传送到另一台机器上。需要同步通信机制来确保数据完整性,通常是建立在对象机制上的,如CORBA,COM/DCOM,或Java Beans/RMI上;,系统软件(System Software):定义了其它软件使用的技
10、术基础设施。操作系统、数据库和在硬件上完成底层操作的用户接口等,同时提供一般接口供其它软件使用;商业系统(Business System):描述目标、资源(人,计算机等),规则(法规、商业策略、政策等)和商业中的实际工作(商业过程)。要强调的是,通常大多数系统都不是单纯属于上面的某一种系统,而是一种或多种的结合。例如,现在许多信息系统都有分布式和实时的需要。,在软件开发的不同阶段中的应用,UML的应用贯穿在系统开发的五个阶段,它们是:需求分析。UML的用例视图可以表示客户的需求。通过用例建模,可以对外部的角色以及它们所需要的系统功能建模。角色和用例是用它们之间的关系、通信建模的。每个用例都指定
11、了客户的需求:他或她需求系统干什么。不仅要对软件系统,对商业过程也要进行需求分析;分析。分析阶段主要考虑所要解决的问题,可用 UML的逻辑视图和动态视图来描述:类图描述系统的静态结构,协作图、状态图、序列图、活动图和状态图描述系统的动态特征。在分析阶段,只为问题领域的类建模-不定义软件系统的解决方案的细节(如用户接口的类、数据库等);,设计。在设计阶段,把分析阶段的结果扩展成技术解决方案。加入新的类来提供技术基础结构-用户接口,数据库操作等。分析阶段的领域问题类被嵌入在这个技术基础结构中。设计阶段的结果是构造阶段的详细的规格说明;构造。在构造(或程序设计阶段),把设计阶段的类转换成某种面向对象
12、程序设计语言的代码。在对 UML表示的分析和设计模型进行转换时,最好不要直接把模型转化成代码。因为在早期阶段,模型是理解系统并对系统进行结构化的手段。测试。对系统的测试通常分为单元测试、集成测试、系统测试和接受测试几个不同级别。单元测试是对几个类或一组类的测试,通常由程序员进行;集成测试集成组件和类,确认它们之间是否恰当地协作;系统测试把系统当作一个“黑箱”,验证系统是否具有用户所要求的所有功能;接受测试由客户完成,与系统测试类似,验证系统是否满足所有的需求。,UML设计技术Prof.Guifa Teng,UML语言概述,UML由视图(Views)、图(Diagrams)、模型元素(Model
13、 Elements)和通用机制(General Mechanism)等几个部分构成,UML语言概述,视图用来表示被建模系统的各个方面(从不同的目的出发建立,为系统建立多个模型,这些模型都反映同一个系统,且具有一致性)。视图由多个图(Diagrams)构成,它不是 一个图片(graph),而是在某一个抽象层上,对系统的抽象表示。如果要为系统建立一个完整的模型图,只需定义一定数量的视图,每个视图表示系统的一个特殊的方面就可以了。另外,视图还把建模语言和系统开发时选择的方法或过程连接起来。UML中的视图包括:用例视图(Use-case view)、逻辑视图(Logical view)、组件视 图(c
14、oopponent view)、并发视图(Concurrency view)展开视图(Deployment view)、等五种。能够使用的其他视图还有静态-动态视图、逻辑-物理视图工作流程(workflow)等视图 但UML语言中并不使用这些视图 它们是UML语言的设计者意 识中的视图 因此在未来的大多数CASE工具中有可能包含这些视图。,图由各种图片(graph)构成,用来描述一个视图的内容。UML语言定义了9种不同的图的类型,把它们有机地结合起来就可以描述系统的所有视图。模型元素代表面向对象中的类、对象、消息和关系等概念,是构成图的最基本的常用概念。一个模型元素可以用在多个不同的图中,无论
15、怎样使用,它总是具有相同的含义和相同的符号表示。通用机制用于表示其他信息,比如注释、模型元素的语义 等。另外,它还提供扩展机制,使UML语言能够适应一个特殊的方法(或过程)或扩充至一个组织或用户。,用例视图,用例视图(Use-case view)用于描述系统应该具有的功能集。它是从系统的外部用户角度出发,对系统的抽象表示。用例视图中可以包含若干个用例(use-case)。用例用来表示系统能够提供的功能(系统用法),一个用例是系统用法(功能请求)的一个通用描 述。用例视图主要为用户、设计人员、开发人员和测试人员而设置。用例视图静态地描述系统功能,为了动态地观察系统功能,偶尔也用活动图(activ
16、ity diagram)描述。,逻辑视图,逻辑视图(Logical view)用来显示系统内部的功能是怎样设计的,它利用系统的静态结构和动态行为来刻画系统功能。静态结构描述类、对象和它们之间的关系等。动态行为主要描述对象之间的动态协作,当对象之间彼此发送消息给给定的函数时产生动态协作,一致性(persistence)和并发性(concurrency)等性质,以及接口和类的内部结构都 要在逻辑视图中定义。,组件视图,组件视图(Component view)用来显示代码组件的组织方式它描述了实现模块(implementation module)和它们之间的依赖关系。组件视图由组件图构成。组件是代码
17、模块,不同类型的代码模块形成不同的组件,组件按照一定的结构和依赖关系呈现。组件的附加信息(比如,为组件分配资源)或其他管理信息(比如,进展工作的进展报告)也可以加入到组件视图中。组件视图主要供开发者使用。,并发视图,并发视图(Concurrency View)用来显示系统的并发工作状况。并发视图将系统划分为进程和处理机方式,通过划分引入并发机制,利用并发高效地使用资源、并行执行和处理异步事件。除了划分系统为并发执行的控制线程外,并发视图还必须处理通信和这些线程之间的同步问题。并发视图所描述的方面属于系统中的非功能性质方面。并发视图供系统开发者和集成者(integrator)使用它由动态图(状态
18、图、序列图、协作图、活动图)和执行图(组件图、展开图)构成。,展开视图,展开视图(Deployment View)用来显示系统的物理架构,即系统的物理展开。比如,计算机和设备以及它们之间的联接方式。其中计算机和设备称为结点(node)。它由展开图表示。展开视图还包括一个映射,该映射显示在物理架构中组件是怎样展开的。比如,在每台独立的计算机上哪一个程序或对象在运行。展开视图提供给开发者、集成者和测试者。,图,图(diagram)由图片(graph)组成,图片是模型元素的符号化。把这些符号有机地组织起来形成的图表示了系统的一个特殊部分或某个方面。一个典型的系统模型应有多个各种类型的图。图是一个具体
19、视图的组成部分,在画一个图时,就相当于把这个图分配给某个视图了。依据图本身的内容,有些图可能是多个视图的一部分。UML中包含用例图、类图、对象图、状态图、序列图、协作图、活动图、组件图、展开图共九 种。,用例图,用例图(use-case diagram)用于显示若干角色(actor)以及这些角色与系统提供的用例之间的连接关系,如下图所示。用例是系统提供的功能(即系统的具体用法)的描述。通常一个实际的用例采用普通的文字描述,作为用例符号的文档性质。当然,实际的用例图也可以用活动图描述。用例图仅仅从角色(触发系统功能的用户等)使用系统的角度描述系统中的信息,也就是站在系统外部察看系统功能,它并不描
20、述系统内部对该功能的具体操作方式。用例图定义的是系统的功能需求。以后对用例图的图示方法、含义将进一步介绍。,用例图示例,签定保险单,销售统计资料,客户数据资料,客户,销售保险员,cases,actors,actors,用例图示例,类图,类图(class diagram)用来表示系统中的类和类与类之间的关系,它是对系统静态结构的描述,如下图所示。类用来表示系统中需要处理的事物。类与类之间有多种连接方式(关系),比如:关联(彼此间的连接)、依赖(一个类使用另一个类)、通用化(一个类是另一个类的特殊化)或打包(packaged)(多个类聚合成一个基本元素)。类与类之间的这些关系都体现在类图的内部结构
21、之中,通过类的属性(attribute)和操作(operation)这些术语反映出来。在系统的生命周期中,类图所描述的静态结构在任何情况下都是有效的。后面再详细讨论。,类图示例,客户,1 拥有,1.*,有价证券,1.*,处理 1,交易员,仪器工具,含有,0.*,0.*,债券,股票,股票选择,金融贸易类图示例,对象图,对象图是类图的变体。两者之间的差别在于对象图表示的是类的对象实例,而不是真实的类。对象图是类图的一个范例(example),它及时具体地反映了系统执行到某处时,系统的工作状况。对象图中使用的图示符号与类图几乎完全相同,只不过对象图中的对象名加了下划线,而且类与类之间关系的所有实例也
22、都画了出来,如下图所示。图(a)的类图抽象 地显示各个类及它们之间的关系,图(b)的对象图则是图(a)类图的一个实例表示。,对象图与类图示例,对象图没有类图重要,对象图通常用来示例一个复杂的类图,通过对象图反映真正的 实例是什么,它们之间可能具有什么样的关系,帮助对类图的理解。对象图也可以用在协作图中作为其一个组成部分,用来反映一组对象之间的动态协作关系。,1.*,作家,姓名:string,年龄:integer,计算机,名称:string,内存:integer,丁一:作家,(a)类图,0.1 使用,姓名=丁一年龄=30,丁一办公室中的pc:,计算机,名称=Dell 466,内存=64,丁一家里
23、的pc:,计算机,名称=长城 p II MMX内存=64,(b)对象图,状态图,状态图是对类所描述事物的补充说明,它显示了类的所有对象可能具有的状态,以及引起状态变化的事件,如下图所示,事件可以是给它发送消息的另一个对象 或者某个任务执行完毕(比如,指定时间到)。状态的变化称作转移(transition)。一个转移可以有一个与之相连的动作(action),这个动作指明了状态转移时应该做些什么。并不是所有的类都有相应的状态图。状态图仅用于具有下列特点的类:具有若干个确定的状态,类的行为在这些状态下会受到影响且被不同的状态改变。另外,也可以为系统描绘整体状态图。关于状态图将进一步的讨论。,状态图示
24、例,大楼的一层,上升楼层,向上升,到达一层,移到一层,向下升,到达楼层,下降楼层,超时,空闲,上升楼层,电梯的状态图示例,序列图,序列图用来反映若干个对象之间的动态协作关系,也就是随着时间的流逝,对象之间是如何交互的,如下图所示。序列图主要反映对象之间已发送消息的先后次序,说明对象之间的交互过程,以及系统执行过程中,在某一具体位置将会有什么事件发生。序列图由若干个对象组成,每个对象用一个垂直的虚线表示(线上方是对象名),每个对象的正下方有一个矩形条,它与垂直的虚线相叠,矩形条表示该对象随时间流逝的过程(从上至下),对象之间传递的消息用消息箭头表示,它们位于表示对象的垂直线条之间。时间说明和其他
25、的注释作为脚本放在图的边缘。对序列图的讨论将在以后介绍。,序列图示例,打印(文件),计算机,打印服务器,打印机,打印(文件),打印机空闲打印(文件),打印机忙存储(文件),队列,序列图示例,协作图,协作图和序列图的作用一样,反映的也是动态协作。除了显示消息变化(称为交互)外,协作图还显示了对象和它们之间的关系(称为上下文有关)。由于协作图或序列图都反映对象之间的交互,所以建模者可以任意选择一种反映对象间的协作。如果需要强调时间和序列,最好选择序列图;如果需要强调上下文相关;最好选择协作图。协作图与对象图的画法一样,图中含有若干个对象及它们之间的关系(使用对象图或 类图中的符号),对象之间流动的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- UML设计技术 UML 设计 技术 PPT 课件
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-5577278.html