基于任务驱动模式的软件工程与UML建模技术项目七认识UML课件.ppt
-
资源ID:91528755
资源大小:2.79MB
全文页数:75页
- 资源格式: PPT
下载积分:12金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
基于任务驱动模式的软件工程与UML建模技术项目七认识UML课件.ppt
项目七 认识UML 项目七 认识UML 任务一 认识UML 的发展 任务二 认识UML 的结构 任务三 认识UML 的视图 项目七 认识UML 任务一 认识UML 的发展软件工程领域在1995年至1997年取得了前所未有的进展,其成果超过软件工程领域过去15年来的成就总和。其中最重要的、具有划时代重大意义的成果之一就是统一建模语言UML(UnifiedModelingLanguage)的出现。在世界范围内,至少在未来10年内,UML 将是面向对象技术领域内占主导地位的标准建模语言。项目七 认识UML 操作一 UML 的发展历程1UML 的定义UML 是软件界第一个统一的建模语言,该方法结合了Booch、OMT 和OOSE 方法的优点,统一了符号体系,并从其它的方法和工程实践中吸收了许多经过实际检验的概念和技术。它是一种标准的表示,已成为国际软件界广泛承认的标准。UML 是第三代面向对象的开发方法,是一种基于面向对象的可视化的通用(General)建模语言,为不同领域的用户提供了统一的交流标准UML 图。UML 应用领域很广泛,可用于软件开发建模的各个阶段及商业建模(BusinessModeling),也可用于其它类型的系统。项目七 认识UML 2模型的定义模型是一个系统的完整的抽象。人们对某个领域特定问题的求解及解决方案,对它们的理解和认识都蕴涵在模型中。通常,开发一个计算机系统是为了解决某个领域特定问题,问题的求解过程,就是从领域问题到计算机系统的映射(见图7-1)。UML 作为一种可视化的建模语言,提供了丰富的基于面向对象概念的模型元素及其图形表示元素。图7-1 解决问题域过程项目七 认识UML 项目七 认识UML 显,UML 的开发者得到了来自公众的正面反应,并倡导成立了UML 成员协会,以完善、加强和促进UML 定义工作。1997年1月公布了UML1.0 版本。1997年7月,在征求了合作伙伴的意见之后,公布了UML1.1 版本。自此UML 已基本上完成了标准化的工作。1997年11 月,OMG(对象管理组织)采纳UML1.1 作为面向对象技术的标准建模语言,UML 成为可视化建模语言事实上的工业标准,已稳占面向对象技术市场的85%的份额。图7-3 所示为UML 的发展史。项目七 认识UML 图7-2UML 创始人项目七 认识UML 图7-3UML 的发展史项目七 认识UML 项目七 认识UML UML 的应用贯穿在系统开发的五个阶段。1需求分析该阶段可使用用例图来捕获用户的需求,用例图从用户的角度来描述系统的功能,表示操作者与系统的一个交互过程。通过用例建模,描述对系统感兴趣的外部角色和他们对系统的功能要求。2系统分析分析阶段主要关心问题域中的主要概念,如对象、类以及它们之间的关系等,需要建立系统的静态模型,可用类图来描述。为了实现用例,类之间需要协作,可以用动态模型的状态图、顺序图和合作图来描述。在分析阶段,只考虑问题域中的对象建模,通过静态模型和动态模型来描述系统结构和系统行为。项目七 认识UML 3系统设计在分析阶段建立分析模型的基础上,考虑定义软件系统中的技术细节用到的类,如引入处理用户交互的接口类、处理数据的类、处理通信和并行性的类。因此,设计阶段为实现阶段提供了更详细的设计说明。4构造实现阶段的任务是使用面向对象程序设计语言,将来自设计阶段的类转换成源程序代码,用构件图来描述代码构件的物理结构以及构件之间的关系,用配置图来描述和定义系统中软硬件的物理体系结构。项目七 认识UML 项目七 认识UML 操作三 UML 的特点(1)统一标准。UML 统一了Booch、OMT 和OOSE 等方法中的基本概念,已成为OMG 的正式标准,提供了标准的面向对象的模型元素的定义和表示。(2)面向对象。UML 吸取了面向对象技术领域中其他流派的长处。UML 的符号表示考虑了各种方法的图形表示,删掉了大量易引起混乱的、多余的和极少使用的符号,也添加了一些新符号。(3)可视化、表示能力强。系统的逻辑模型或实现模型都能用UML 模型清晰地表示,可用于复杂软件系统的建模。项目七 认识UML 项目七 认识UML 任务二 认识UML 的结构 操作一 UML 的主要内容UML 的定义包括UML 语义和UML 表示法两个部分。1UML 语义UML 语义描述基于UML 的精确元模型(Meta-Model)定义。元模型为UML 的所有元素在语法和语义上提供了简单、一致、通用的定义性说明,使开发者能在语义上取得一致,消除了因人而异的表达方法所造成的影响。此外UML 还支持对元模型的扩展定义。UML 支持各种类型的语义,如布尔、表达式、列表、阶、名字、坐标、字符串和时间等,还允许用户自定义类型。项目七 认识UML 2UML 表示法UML 表示法是定义UML 符号的表示法,为开发者或开发工具使用。这些图形符号和文本语法为系统建模提供了标准。这些图形符号和文字所表达的是应用级的模型,在语义上它是UML 元模型的实例。操作二 UML 的构成作为建模语言,UML 由以下几部分构成(见图7-4):基本语言组成:语言的构成成分,包括要素、关系、图。语义规则:语言的语法和语义规则。公共机制:规范说明、语言扩展等。项目七 认识UML 项目七 认识UML UML 语言的构成成分包括要素、关系、图。1UML 的要素1)结构事物结构事物是模型中的静态部分,用以呈现概念或实体的表现元素,是软件建模中最常见的元素,共有7种。(1)类(Class):类是指具有相同属性、方法、关系和语义的对象的集合。类如图7-5 所示。图7-5 类项目七 认识UML(2)接口(Interface):接口是指类或组件所提供的服务(操作),描述了类或组件对外可见的活动。接口如图7-6所示。(3)协作(Collaboration):协作描述合作完成某个特定任务的一组类及其关联的集合,用于对使用情形的实现建模,协作如图7-7 所示。图7-6 接口图7-7 协作项目七 认识UML(4)用例(UseCase):用例定义了参与者(在系统外部与系统交互的人或系统)和被考虑的系统之间的交互来实现的一个业务目标。用例如图7-8 所示。图7-8 用例项目七 认识UML(5)活动类(ActiveClass):活动类的对象有一个或多个进程或线程。活动类和类很相像,只是它的对象代表的元素的行为和其他的元素是同时存在的。活动类如图7-9 所示。图7-9 活动类项目七 认识UML(6)组件(Component):组件是物理的、可替换的部分,包含接口的集合,例如COM+、JavaBean 等。组件如图7-10所示。图7-10 组件项目七 认识UML 项目七 认识UML 2)行为事物行为事物指的是UML 模型中的动态部分,代表语句里的“动词”,表示模型里随着时空不断变化的部分,包含以下两类:(1)消息:一组对象之间为完成某一项任务而进行的一系列消息交换的行为说明。消息如图7-12 所示。图7-12 消息项目七 认识UML(2)状态:一个对象或一个交互在生命期内响应事件所经历的状态序列。状态如图7-13 所示。图7-13 状态项目七 认识UML 3)分组事物可以把分组事物看成一个“盒子”,模型可以在其中被分解。目前只有一种分组事物,即包(Package,一个用于组织其它模型元素的通用模型元素)。结构事物、行为事物甚至分组事物都有可能放在一个包中。包纯粹是概念上的,只存在于开发阶段。包如图7-14 所示。图7-14 包项目七 认识UML 项目七 认识UML 2UML 的关系UML 模型是由各种事物及这些事物之间的各种关系构成的。关系是指支配、协调各种模型元素存在并相互使用的规则。UML 中主要包含4种关系,分别是关联、依赖、泛化和实现。1)关联关系只要两个类之间存在某种关系,我们就认为两个类之间存在关联。关联是人们赋予事物之间的联系,即只要我们认为两个事物之间有某种联系,就认为事物之间存在关联。实现关系、泛化关系、扩展关系和依赖关系都属于关联关系,是更具体的关联关系。关联关系是最高层次的关系。在所有关系中,关联的语义最弱。在UML 中,使用一条实线来表示关联关系,如图7-16 所示。项目七 认识UML 图7-16 关联关系项目七 认识UML 项目七 认识UML(2)组合关系。如果发现“部分”类的存在是完全依赖于“整体”类的,那么就应使用“组合”关系来描述。组合关系是一种非常强的对象间关系,就像树和树叶之间的关系一样。树和它的叶子紧密联系在一起,叶子完全依赖树,它们不能被其他的树所分享,并且当树死去时,叶子也会随之死去这就是组合。在组合关系中,部分依赖于整体而存在。组合是一种较强的聚合关系,它的表示方法如图7-17(b)所示。图7-17 表示聚合关系和组合关系的UML 符号项目七 认识UML 2)泛化关系泛化关系描述了从特殊事物到一般事物之间的关系,也就是子类到父类之间的关系,或者子接口到父接口的关系。表示泛化关系的符号是从子类指向父类的带空心箭头的实线,如图7-18 所示。从父类到子类的关系则是特化关系。图7-18 表示泛化关系的UML 符号项目七 认识UML 3)实现关系实现关系用来规定接口与实现接口的类之间的关系。接口是操作的集合,这些操作声明了类或组件所提供的服务。表示实现关系的符号是从类指向接口的带空心箭头的虚线,如图7-19 所示。图7-19 表示实现关系的UML 符号项目七 认识UML 4)依赖关系假设有两个元素X、Y,如果元素X 的值发生变化,就会引起元素Y 的值发生变化,则称元素Y 依赖(Dependency)于元素X。表示依赖关系的UML 符号如图7-20 所示。如果两个元素是类,则类间的依赖现象有多种,如一个类向另一个类发消息,一个类是另一个类的数据成员,一个类是另一个类的某个方法的参数等。图7-20 表示依赖关系的UML 符号项目七 认识UML 3UML 的图元素符号代表了简单事物,简单事物通过一定关系组合成复杂事物,图就是用来表示复杂事物的。每个图是由代表简单事物的元素符号和代表事物关系的关系符号构成的。从使用的角度来看,可以将UML 的9种图分为结构模型(也称为静态模型)和行为模型(也称为动态模型)两大类(见图7-21)。图7-21UML 图的组成项目七 认识UML 1)结构图结构图描绘系统中事物的组成及结构关系。结构图又分为以下5种:类图;组件图;对象图;部署图;包图。项目七 认识UML(1)类图:用来表示系统中的类以及类与类之间的关系,它是对系统静态结构的描述。类用来表示系统中需要处理的事物。类与类之间有很多连接方式,比如关联、依赖、泛化或打包。类与类之间的这些关系都体现在类图的内部结构之中,通过类的属性和操作反映出来。在系统的生命周期中,类图所描述的静态结构在任何情况下都是有效的。一个典型的系统中通常有若干个类图。一个类图不一定包含系统中的所有类,一个类还可以加到几个类图中。类图如图7-22 所示。项目七 认识UML 图7-22 类图项目七 认识UML(2)组件图:又叫作构件图,它用来反映代码的物理结构。代码的物理结构用代码组件表示。组件可以是源代码、二进制文件或可执行文件的组件。组件图包含了逻辑类或逻辑类的实现信息,因此逻辑视图与组件图之间存在着映射关系。组件之间也存在依赖关系,利用这种依赖关系可以方便地分析一个组件的变换给其他的组件带来怎样的影响。组件图如图7-23 所示。项目七 认识UML 图7-23 组件图项目七 认识UML(3)对象图:可以展示系统中的一组对象,它是系统在某一时刻的快照,也可以说对象图是类图在某一时刻的快照。对象图中使用的图示符号与类图几乎完全相同,只不过对象图中的对象名加了下划线。对象图没有类图重要,对象图通常用来示例一个复杂的类图,通过对象图反映真正的实例是什么,它们之间可能具有什么样的关系,帮助对类图的理解。对象图也可以用在协作图中作为其一个组成部分,以反映一组对象之间的动态协作关系。对象图如图7-24 所示。项目七 认识UML 图7-24 对象图项目七 认识UML(4)部署图:用来显示系统中软件和硬件的物理架构。通常部署图中显示实际的计算机和设备,以及各个结点之间的关系。每个结点内部显示的可执行的组件和对象清晰地反映出哪个软件运行在哪个结点上。部署图如图7-25 所示。图7-25 部署图项目七 认识UML(5)包图:用于描绘包之间的依赖关系。包图如图7-26所示。图7-26 包图项目七 认识UML 2)行为图行为图描绘系统中事物间的交互行为。行为图分为以下5种:(1)用例图:用于显示若干角色以及这些角色与系统提供的用例之间的连接关系。用例描述了系统的工作方式,以及系统能提供的服务。用例图描述了系统外部参与者如何使用系统提供的服务,也就是站在系统外部查看系统功能,它并不描述系统内部对该功能的具体操作方式。用例图定义系统的功能需求。用例图如图7-27 所示。项目七 认识UML 图7-27 用例图项目七 认识UML(2)活动图:用于显示系统内部的活动控制流程。通常需要使用活动图描述不同的业务过程。活动图由各种动作状态构成,每个动作状态包含可执行动作的规范说明。当某个动作执行完毕,该动作的状态就会随着改变,这样,动作状态的控制就从一个状态流向另一个与之相连的状态。活动图如图7-28 所示。项目七 认识UML 图7-28 活动图项目七 认识UML(3)状态图:用于显示对象从一种状态迁移到其他状态的转换过程。状态图是一个动态视图,对事件驱动的行为建模尤其重要。例如可以利用状态图描述一个电话路由系统中交换机的状态,不同的事件可以令交换机转移至不同的状态,用状态图对交换机建模有助于理解交换机的动态行为。在UML2.0 中,状态图被称为状态机图(StateMachineDiagram)。状态图如图7-29 所示。项目七 认识UML 图7-29 状态图项目七 认识UML(4)顺序图:用来反映若干个对象之间的动态协作关系(即随着时间的流逝,对象之间的交互关系),它强调一个系统中对象之间相互作用时消息的时间顺序。顺序图由若干个对象组成,每个对象用一个垂直的虚线表示,每个对象的正下方有一个矩形条,它与垂直的虚线相叠,矩形条表示该对象随着时间流逝的过程,对象之间传递的消息用消息箭头表示,它们位于表示对象的垂直线条之间。顺序图如图7-30 所示。项目七 认识UML 图7-30 顺序图项目七 认识UML(5)协作图:协作图和顺序图的作用一样,反映的也是动态协作。由于协作图和顺序图都反映对象之间的交互,所以建模者可以任意选择一种反映对象间的协作。如果强调时间和序列,最好选择顺序图;如果强调上下文相关,最好选择协作图。协作图与对象图画法一样,图中有若干个对象及它们之间的关系,对象之间流动的消息用箭头表示,箭头中间用标签标识消息被发送的序号、条件、迭代方式、返回值等等。协作图如图7-31 所示。项目七 认识UML 图7-31 协作图项目七 认识UML 操作三 UML 语义规则UML 语义规则指语言的语法和语义规则。在UML 中,代表事物的元素符号在使用时应遵守一系列规则,每个元素必须遵守的3种语义规则如下所述。名称:每个元素应该有一个名字,即事物、关系和图都应该有一个名字。和任何语言一样,名字即是一个标识符。例如:student 为一个类的名字。范围:每个元素起作用的范围,相当于程序设计语言中变量的“作用域”。例如:属性name:string。项目七 认识UML 可见性:我们知道,UML 元素可能属于一个类或包,因此所有元素都具有可见属性。例如:public:公共+protected:保护#private:私有-操作四 UML 的公共机制在UML 中共有4种贯穿于整个统一建模语言并且一致地应用的公共机制,这4种机制分别是规格说明、修饰、通用划分和扩展机制。其中扩展机制可以再划分为构造型、标记值和约束。项目七 认识UML 1.规格说明如果把模型元素当成一个对象来看待,那么模型元素本身也应该具有很多的属性,这些属性用于维护属于该模型元素的数据值。如图7-32 所示,在左边的方框中有3个用图形符号表示的用例,分别是存款、取款和转账;在右边的方框中,分别对每个图形符号表示的用例进行了详细的文字描述,即规格说明。项目七 认识UML 图7-32 图形符号与对应的规格描述项目七 认识UML 2.修饰在UML 中,每个元素符号对事物的主要属性提供了可视化表示,而若想将事物的细节表示出来,则必须对元素符号加以修饰。例如,用斜体字表示抽象类,用+、-符号表示元素的访问级别,这些都是通过修饰符号来表示事物的细节。所谓修饰,就是增加元素符号的内涵,为被修饰的元素提供更多的信息。例如:矩形框表示一个类,有类名、属性、操作等,但也可增加“可视性”等修饰,如图7-33 所示。项目七 认识UML 图7-33 修饰项目七 认识UML 3通用划分UML 通用划分,即对UML 元素进行分组,包括两组:类与对象、接口与实现。(1)类与对象:类是对对象共同特征的描述,是对象的模板,而对象则是类的实例。(2)接口与实现:接口是一种声明、一个合同、一组方法的集合,而实现则是完成一个合同、实现接口中的声明。在UML 中,用例就是一种对功能的声明和定义,是对事物功能的抽象描述,协作则是实现用例声明的功能,操作名是声明服务的,而方法体则是实现服务的。因此,用例与协作、操作名与方法体之间就是接口与实现的关系。项目七 认识UML 4扩展机制由于UML 中定义的元素符号不能表示所有的事物,因此需要通过一些方法对元素符号进行扩展,主要的扩展机制有:构造型、标记值和约束。1)构造型构造型就是指分析师自己定义一种新的UML 元素符号,给这种新的元素符号赋予特别的含义。例如,分析师可以定义一个元素符号“”,用该元素符号代表“中断”。表示同一构造型元素符号的方法有3种,图7-34 所示就是用3种不同方式来表示设备“中断”这种构造型,其中假设Equipment(设备)是类名称。项目七 认识UML 图7-34 构造型的3种表示方法项目七 认识UML 第一种表示方法:创建一种新的UML 元素符号“”,表示“中断”,在构造元素符号右边放置一个图标。构造符号“”与图标一起代表“中断”。第二种表示法:创建一种新的UML 元素符号“”,表示“中断”,这是一种标准表示方法。第三种表示方法:直接用一个图标表示新的构造元素符号,该符号的语义是“中断”。项目七 认识UML 2)标记值标记值是用来为事物(元素符号)添加新特征的,其表示方法是用格式如“标记信息”的字符串表示。标记信息通常是一个字符串,它由名称、分隔符和值3个部分组成。例如,标记信息:name=“李小平”。在这个标记信息中,名称是name;分隔符是=;标记值是“李小平”。其中,名称表示了事物的属性,标记值表示了事物的属性值。项目七 认识UML 3)约束约束是用来标识元素之间约束条件、增加新的语义或改变已存在规则的一种机制(通过文本和OCL两种方法表示约束)。约束的表示方法和标记值的表示方法类似,都是使用花括号括起来的字符串来表示,不过不能够把它放在元素中,而是要放在相关的元素附近。项目七 认识UML 任务三 认识UML 的视图 操作一:UML 视图的作用给复杂的系统建模是一件困难和耗时的事情。从理想化的角度来说,整个系统像是一张图画,这张图画清晰而又直观地描述了系统的结构和功能,既易于理解又易于交流。但事实上,要画出这张图画几乎是不可能的,因为一个简单的图画并不能完全反映出系统中需要的所有信息。项目七 认识UML 描述一个系统涉及许多方面,比如功能性方面(它包括静态结构和动态交互)、非功能性方面(定时需求、可靠性、展开性等)和组织管理方面(工作组、映射代码模块等)。完整地描述系统,通常的做法是用一组视图反映系统的各个方面,每个视图代表完整系统描述中的一个抽象,显示这个系统中的一个特定的方面。每个视图由一组图构成,图中包含、强调系统中某一方面的信息。视图与视图之间有时会产生轻微的重叠,从而使得一个图实际上可能是多个视图的一个组成部分。如果从不同的视图观察系统,则每次只集中地观察系统的一个方面,而如果使用所有的视图来观察系统,则应该可以看到系统的各个侧面(包括动态和静态的)。视图中的图应该简单,易于交流,且与其他的图和视图有关联关系。项目七 认识UML UML 中的视图包括用例视图(UseCaseView)、逻辑视图(LogicalView)、组件视图(ImplementationView)、并发视图(ProcessView)、部署视图(DeploymentView)等,这5个视图被称做“4+1”视图,如图7-35 所示。图7-35UML 的视图项目七 认识UML 操作二:UML 的各种视图1用例视图用例视图用于描述系统应该具有的功能集。用例视图是从系统的外部用户角度出发,对系统的抽象表示。用例视图所描述的系统功能依靠于外部用户或由另一个系统触发激活,为用户或另一个系统提供服务,实现用户或另一个系统与系统的交互。系统实现的最终目标是提供用例视图中描述的功能。用例视图中可以包含若干个用例,用例用来表示系统能够提供的功能(系统用法),一个用例是系统用法(功能请求)的一个通用描述。项目七 认识UML 用例视图是其他四个视图的核心和基础。其他视图的构造和发展依赖于用例视图中所描述的内容。因为系统的最终目标是提供用例视图中描述的功能,同时附带一些非功能性的性质,因此用例视图影响着所有其他的视图。用例视图还可以用于测试系统是否满足用户的需求和验证系统的有效性。用例视图主要为用户、设计人员、开发人员和测试人员而设置。用例视图静态地描述系统功能,以便动态地观察系统功能,也可以使用活动图对用例进行描述。项目七 认识UML 2逻辑视图逻辑视图可以揭示系统内部的设计和协作状况。逻辑视图用来显示系统内部的功能是怎样设计的,它利用系统的静态结构和动态行为来刻画系统功能。静态结构描述类、对象和它们之间的关系等。动态行为主要描述对象之间的动态协作,当对象之间彼此发送消息给给定的函数时具有动态协作、一致性和并发性等性质,以及接口和类的内部结构都要在逻辑视图中定义。在UML 中,静态结构由类图和对象图进行描述,动态行为用状态图、顺序图、协作图和活动图描述。项目七 认识UML 3并发视图并发视图用来显示系统的并发工作状况。并发视图将系统划分为进程和处理机方式,通过划分引入并发机制,利用并发高效地使用资源、并行执行和处理异步事件。除了划分系统为并发执行的控制线程外,并发视图还必须处理通信和这些线程之间的同步问题。并发视图所描述的方面属于系统中的非功能性质方面。并发视图供系统开发者和集成者使用。它由动态图(状态图、顺序图、协作图、活动图)和执行图(组件图、部署图)构成。项目七 认识UML 4组件视图组件视图用来显示代码组件的组织方式。它描述了系统的实现模块和它们之间的依赖关系。组件视图由组件图构成。组件是代码模块,不同类型的代码模块形成不同的组件,组件按照一定的结构和依赖关系呈现。组件的附加信息(如为组件分配资源)或其他管理信息(如进展工作的进展报告)也可以加入到组件视图中。组件视图主要供开发者使用。项目七 认识UML 5部署视图部署视图用来显示系统的物理架构,即系统的物理部署情况,如,计算机和设备以及它们之间的联接方式,其中计算机和设备称为结点。部署视图还包括一个映射,该映射显示在物理架构中组建是怎样部署的。比如,在每台独立的计算机上,哪一个程序或对象在运行。部署视图供开发者、集成者和测试者使用。