面向对象软件工程与UML 第7章 统一建模语言(UML)2.ppt
《面向对象软件工程与UML 第7章 统一建模语言(UML)2.ppt》由会员分享,可在线阅读,更多相关《面向对象软件工程与UML 第7章 统一建模语言(UML)2.ppt(73页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、面向对象软件工程与UML第7章 统一建模语言UML面向对象软件工程与UMLv面向对象方法面向对象方法v统一建模语言统一建模语言UMLUMLvUMLUML模型中模型中9 9种类型的图种类型的图v面向对象的分析与设计过程面向对象的分析与设计过程 主要内容面向对象软件工程与UML 面面向向对对象象方方法法与与结结构构化化方方法法相相比比,突突出出的的优优势势体现在以下几个方面。体现在以下几个方面。(1 1)对问题空间的理解更直接,更符合人们认识客)对问题空间的理解更直接,更符合人们认识客观事物的思维规律。观事物的思维规律。结构化方法把现实世界映射成数据流和加工,结构化方法把现实世界映射成数据流和加工
2、,但它把数据流和控制流分开讨论,二者有时难以统但它把数据流和控制流分开讨论,二者有时难以统一,而且数据流方法主要构造的还是过程模型,它一,而且数据流方法主要构造的还是过程模型,它描述数据结构的能力仍然很弱,一般还需要另外使描述数据结构的能力仍然很弱,一般还需要另外使用诸如用诸如E-RE-R图之类的工具来建立数据的逻辑模型,造图之类的工具来建立数据的逻辑模型,造成了过程和数据的分离。成了过程和数据的分离。一、面向对象方法一、面向对象方法面向对象软件工程与UML 而面向对象方法把二者统一于对象内部,而面向对象方法把二者统一于对象内部,加工过程映射为对象的操作,数据映射为对象加工过程映射为对象的操作
3、,数据映射为对象的属性,任何数据和与这些数据相关的过程都的属性,任何数据和与这些数据相关的过程都是与相关的对象共同生存的,这样增强了模型是与相关的对象共同生存的,这样增强了模型的一致性和准确性。的一致性和准确性。面向对象软件工程与UML(2 2)系统分析和系统设计使用同一模型,不存在过)系统分析和系统设计使用同一模型,不存在过渡困难。渡困难。结构化方法的另一个主要问题是从分析过渡到结构化方法的另一个主要问题是从分析过渡到设计有双重负担,一是构造方法的转换;一是添加设计有双重负担,一是构造方法的转换;一是添加实施细节。实施细节。而在面向对象方法中,从分析到设计使用相同而在面向对象方法中,从分析到
4、设计使用相同的基本表示,对象模型是整个开发过程中的一个统的基本表示,对象模型是整个开发过程中的一个统一的表示工具。好处不仅是减少了各个阶段模型之一的表示工具。好处不仅是减少了各个阶段模型之间的转换,较好地支持模型到代码的正向工程及代间的转换,较好地支持模型到代码的正向工程及代码到模型的逆向工程,而且可以使需求的变化较为码到模型的逆向工程,而且可以使需求的变化较为容易地同步到模型和代码中。容易地同步到模型和代码中。面向对象软件工程与UML(3 3)开发出来的信息系统从本质上具有更强的生)开发出来的信息系统从本质上具有更强的生命力。需求的不断变化是我们不得不接受的事实。命力。需求的不断变化是我们不
5、得不接受的事实。结构化方法基于功能分析与功能分解,而用户结构化方法基于功能分析与功能分解,而用户的需求变化往往是功能或流程的变化,因此开发出的需求变化往往是功能或流程的变化,因此开发出来的系统是不稳定的。来的系统是不稳定的。而问题空间的对象最稳定,它们对潜在变化最而问题空间的对象最稳定,它们对潜在变化最不敏感。面向对象方法使代表共性的对象稳定下来,不敏感。面向对象方法使代表共性的对象稳定下来,而把不稳定的东西隐藏起来。这样可避免增加复杂而把不稳定的东西隐藏起来。这样可避免增加复杂性,系统对环境的适应和应变能力也随之增强。性,系统对环境的适应和应变能力也随之增强。面向对象软件工程与UML(4 4
6、)维护成本降低。)维护成本降低。采用结构化方法开发出来的系统是模块层次结采用结构化方法开发出来的系统是模块层次结构的,而模块的划分具有随意性,不同的开发人员构的,而模块的划分具有随意性,不同的开发人员可能分解成不同的软件结构。这样的系统维护工作可能分解成不同的软件结构。这样的系统维护工作相当困难相当困难 。面向对象方法中的类是更理想的模块机制,其面向对象方法中的类是更理想的模块机制,其独立性好,类对外的接口设计好后,类内部的修改独立性好,类对外的接口设计好后,类内部的修改不会影响到其他类。不会影响到其他类。面向对象软件工程与UML “工欲善其势,必先利其器工欲善其势,必先利其器”。2020世纪
7、世纪8080年代末,一些方法论学者、研究人员和年代末,一些方法论学者、研究人员和专家就开始提出面向对象的表示符号和方法。专家就开始提出面向对象的表示符号和方法。其中具有代表性的有科德一约顿(其中具有代表性的有科德一约顿(CoadCoad-YourdonYourdon)的)的OOAOOAOODOOD、格雷迪格雷迪布奇(布奇(Grady Grady BoochBooch)的的 BoochBooch 方法、吉姆方法、吉姆朗姆恩(朗姆恩(Jim Jim RumbaughRumbaugh)的对象建模技术(的对象建模技术(OMTOMT)、)、艾瓦艾瓦雅格布雅格布森(森(IvarIvar Jacobson
8、Jacobson)的面向对象软件工程(的面向对象软件工程(OOSOOS)等等 。二、统一建模语言UML面向对象软件工程与UML UMLUML统一了面向对象建模的基本概念、术语及统一了面向对象建模的基本概念、术语及其图形符号,为不同领域的人员提供一个交流的标其图形符号,为不同领域的人员提供一个交流的标准,它不仅可以应用于软件开发从分析到测试的各准,它不仅可以应用于软件开发从分析到测试的各个阶段,还可以支持多种领域的建模,如信息系统、个阶段,还可以支持多种领域的建模,如信息系统、嵌人式实时系统、机械系统、商业系统等。嵌人式实时系统、机械系统、商业系统等。就像数据流图作为结构化分析的建模语言,模就像
9、数据流图作为结构化分析的建模语言,模块结构图作为结构化总体设计的建模语言一样,块结构图作为结构化总体设计的建模语言一样,UMLUML是面向对象的系统分析与设计的建模语言,不要将是面向对象的系统分析与设计的建模语言,不要将它理解为一种方法论或是一种开发过程。它理解为一种方法论或是一种开发过程。面向对象软件工程与UML UMLUML定定义义了了以以下下几几种种视视图图,从从不不同同角角度度反反映映系系统:统:n用例视图(用例视图(use case viewuse case view)描描述述系系统统的的功功能能需需求求,是是最最终终用用户户、分分析析人人员员和测试人员看到的系统行为。和测试人员看到
10、的系统行为。该该视视图图的的静静态态方方面面(即即系系统统要要实实现现的的功功能能)由由用用例例图图(use use case case diagramdiagram)表表现现;动动态态方方面面(即即功功能能实实现现的的过过程程)由由交交互互图图(interaction interaction diagramdiagram)、状状态态图图(state state chart chart diagramdiagram)和和活动图(活动图(activity diagramactivity diagram)表现。表现。面向对象软件工程与UMLn设计视图(设计视图(design viewdesign
11、view)表表达达系系统统的的基基本本逻逻辑辑结结构构,描描述述问问题题以以及及问问题题的的逻逻辑辑解解决决方方案案,包包含含了了类类、接接口口和和协协作作。该该视视图图的的静静态态方方面面采采用用类类图图(class class diagramdiagram)和和对对象象图图(object object diagramdiagram)表表现现,动动态态方方面面由由交交互互图、状态图和活动图表现。图、状态图和活动图表现。面向对象软件工程与UMLn进程视图(进程视图(process viewprocess view)包含了形成系统并发与同步机制的线程和进包含了形成系统并发与同步机制的线程和进程,
12、该视图用于系统性能、可伸缩性和吞吐量的程,该视图用于系统性能、可伸缩性和吞吐量的设计。在设计。在UMLUML中,对进程视图的静态方面和动态方中,对进程视图的静态方面和动态方面的表现与设计视图相同,但注重描述线程和进面的表现与设计视图相同,但注重描述线程和进程的主动类。程的主动类。面向对象软件工程与UMLn实现视图(实现视图(deployment viewdeployment view)表达软件成分的组织结构,包含用于装配与表达软件成分的组织结构,包含用于装配与发布发布 物理系统的构件和文件。该视图主要用于物理系统的构件和文件。该视图主要用于系统发布的配置管理,其中静态方面由构件图系统发布的配置
13、管理,其中静态方面由构件图(component diagramcomponent diagram)表现,动态方面由交互表现,动态方面由交互图、状态图和活动图表现。图、状态图和活动图表现。面向对象软件工程与UMLn实施视图(实施视图(deployment viewdeployment view)包含了形成系统硬件拓扑结构的节点。这包含了形成系统硬件拓扑结构的节点。这种视图主要描述组成物理系统的部件的分布、种视图主要描述组成物理系统的部件的分布、交付和安装。该视图主要由实施图交付和安装。该视图主要由实施图(deployment diagramdeployment diagram)表现。表现。面向对
14、象软件工程与UML三、UML模型中9种类型的图 1 1用例图用例图 用例实际上就是从用户的角度去定义具有交用例实际上就是从用户的角度去定义具有交互过程的系统功能。每个功能与一个或多个参与互过程的系统功能。每个功能与一个或多个参与者(者(actoractor)相连接。参与者是指处于系统之外,相连接。参与者是指处于系统之外,需要使用用例的人或事物。一个系统的用例一般需要使用用例的人或事物。一个系统的用例一般有多个,用例图就是用来组织这些用例的。有多个,用例图就是用来组织这些用例的。面向对象软件工程与UML 下面用例图描述了一个录像租赁系统的主要用例。下面用例图描述了一个录像租赁系统的主要用例。店员
15、是参与者,主要用例有:购买货品、出租货品、店员是参与者,主要用例有:购买货品、出租货品、归还货品、报废货品。归还货品、报废货品。面向对象软件工程与UML2 2类图类图 类图用来表示系统中的类和类之间的关系。类类图用来表示系统中的类和类之间的关系。类由属性和操作共同组成。在一个大的系统中,可以由属性和操作共同组成。在一个大的系统中,可以根据某种分类方式将类组织在多个类图中。根据某种分类方式将类组织在多个类图中。下图是一个简化的租赁系统的类图。该图列出了下图是一个简化的租赁系统的类图。该图列出了7 7个类及它们的关系。租赁公司将库存货品清单记载个类及它们的关系。租赁公司将库存货品清单记载在库存目录
16、中,货品分为录像带和录像机两大类,它在库存目录中,货品分为录像带和录像机两大类,它们有不同的属性信息。目录中的货品在库存中可能存们有不同的属性信息。目录中的货品在库存中可能存有多份副本(货品实物),每份独立登记,使用不同有多份副本(货品实物),每份独立登记,使用不同的序号标识,称为项目。的序号标识,称为项目。面向对象软件工程与UML类图的类图的模型元素模型元素面向对象软件工程与UML面向对象软件工程与UML3 3对象图对象图 对象反映了一个类的实例。对象图表示系统对象反映了一个类的实例。对象图表示系统在某个特定时刻各个类可能的具体内容,帮助对在某个特定时刻各个类可能的具体内容,帮助对类图的理解
17、。类图的理解。下图是上述类图的部分对象图,表示在处理第下图是上述类图的部分对象图,表示在处理第00120012号租赁业务的特定时刻各个对象的具体内容,号租赁业务的特定时刻各个对象的具体内容,即对象当前的属性值。该时刻即对象当前的属性值。该时刻1 1号会员正在登记号会员正在登记00120012号租赁记录,产品中的第号租赁记录,产品中的第001001号录像带选中并号录像带选中并租出。租出。面向对象软件工程与UML面向对象软件工程与UML4 4状态图状态图 如果一个类的对象具有多种状态,而且这些如果一个类的对象具有多种状态,而且这些状态在系统运行中发挥着重要的作用,那么就可状态在系统运行中发挥着重要
18、的作用,那么就可以使用状态图。状态图用来描述一个特定对象的以使用状态图。状态图用来描述一个特定对象的所有可能状态及其引起状态转移的事件,常用于所有可能状态及其引起状态转移的事件,常用于对系统动态方面建模。对系统动态方面建模。面向对象软件工程与UML在状态图中定义的状态有:在状态图中定义的状态有:(1 1)初初态态。是是状状态态图图的的起起始始点点,表表示示对对象象的的初初始始状状态态,初初态态只有一个,用实心圆表示。只有一个,用实心圆表示。(2 2)终态。是状态图的终点,表示一个对象完成必要操作后终态。是状态图的终点,表示一个对象完成必要操作后的最终状态,终态可能有多个,或者没有终态(如电梯的
19、工的最终状态,终态可能有多个,或者没有终态(如电梯的工作状态)。用实心圆外加一个圆圈表示终态。作状态)。用实心圆外加一个圆圈表示终态。(3 3)中间状态。处于初态和终态之间的状态。)中间状态。处于初态和终态之间的状态。(4 4)子状态。嵌套在另一个状态中的状态,含有子状态的状)子状态。嵌套在另一个状态中的状态,含有子状态的状态被称做复合状态。态被称做复合状态。面向对象软件工程与UML 上图是租赁商店的货品项目的状态转移图。一个新购货品进人商店库上图是租赁商店的货品项目的状态转移图。一个新购货品进人商店库存,这就是初态;该货品经过租出事件后,进人租出状态,而租出状态存,这就是初态;该货品经过租出
20、事件后,进人租出状态,而租出状态中又分为正常和超期两种子状态;在租出状态的货品归还后,又回到店中又分为正常和超期两种子状态;在租出状态的货品归还后,又回到店内;货品经过报废处理后,其生命周期结束,即为终态。内;货品经过报废处理后,其生命周期结束,即为终态。面向对象软件工程与UML5 5活动图活动图 活动图显示从活动到活动的控制流。它的应用非常广泛,活动图显示从活动到活动的控制流。它的应用非常广泛,既可用来描述操作(类的方法)的行为,也可以描述用例和既可用来描述操作(类的方法)的行为,也可以描述用例和对象内部的工作过程。对象内部的工作过程。活动图提供以下丰富的描述手段:活动图提供以下丰富的描述手
21、段:(1 1)起起点点和和终终点点。活活动动仅仅有有一一个个起起始始点点(用用实实心心圆圆表表示示),但可以有多个结束点,用实心圆外加一个圆圈来表示。但可以有多个结束点,用实心圆外加一个圆圈来表示。(2 2)转转换换。当当一一个个动动作作和和活活动动结结束束时时,控控制制流流会会马马上上传传递递给下一个动作或活动,使用转换来说明流的路径。给下一个动作或活动,使用转换来说明流的路径。面向对象软件工程与UML(3 3)分支。活动图中使用一个菱形的判断标志来表)分支。活动图中使用一个菱形的判断标志来表达分支路径。达分支路径。(4 4)并发。使用一个称为同步条的水平粗线可以将)并发。使用一个称为同步条
22、的水平粗线可以将一条转换分为多个并发执行的分支,或将多个转换一条转换分为多个并发执行的分支,或将多个转换汇合为一个转换。汇合时,并发的控制流必须都执汇合为一个转换。汇合时,并发的控制流必须都执行到汇合处,取得同步后,才会触发转换,进而执行到汇合处,取得同步后,才会触发转换,进而执行后面的活动。行后面的活动。(5 5)泳道。泳道用于对一个活动图中的活动进行分)泳道。泳道用于对一个活动图中的活动进行分组表示。组表示。面向对象软件工程与UML 活动图的一个示例:它描述了顾客在归还租用活动图的一个示例:它描述了顾客在归还租用物品时的工作流。首先会员提出归还,店员检查损物品时的工作流。首先会员提出归还,
23、店员检查损坏情况,然后针对不同损坏情况对该租赁项目进行坏情况,然后针对不同损坏情况对该租赁项目进行不同的处理,如果严重损坏做报废处理,从库存中不同的处理,如果严重损坏做报废处理,从库存中删除该项目,否则将项目状态设置为在店内,最后删除该项目,否则将项目状态设置为在店内,最后记录该租赁记录的归还日期并进行结算,会员付款,记录该租赁记录的归还日期并进行结算,会员付款,活动结束。活动结束。面向对象软件工程与UML面向对象软件工程与UML6.6.顺序图顺序图 用来描述为实现一个用例,多个对象之间动态的用来描述为实现一个用例,多个对象之间动态的交互关系,着重体现对象间消息传递的时间顺序,交互关系,着重体
24、现对象间消息传递的时间顺序,图中自上至下的箭头位置对应消息传递和响应的先图中自上至下的箭头位置对应消息传递和响应的先后顺序。后顺序。面向对象软件工程与UML 下图是出租货品的顺序图,该用例一共涉及了四下图是出租货品的顺序图,该用例一共涉及了四个对象和一个参与者。从顺序上看,首先建立一个新个对象和一个参与者。从顺序上看,首先建立一个新的租赁记录,其次为该租赁记录创建一个空的租赁条的租赁记录,其次为该租赁记录创建一个空的租赁条项,而后在库存中进行选择录像带并获取名称,再提项,而后在库存中进行选择录像带并获取名称,再提取具体租借的录像带的序号进行登记(租借多个录像取具体租借的录像带的序号进行登记(租
25、借多个录像带则重复多次该过程),最后确认本次租赁记录完成,带则重复多次该过程),最后确认本次租赁记录完成,先计算总租金并登记预付款,后修改库存和项目有关先计算总租金并登记预付款,后修改库存和项目有关信息。信息。面向对象软件工程与UML面向对象软件工程与UML7 7协作图协作图 协作图用来描述为实现一个用例多个对象之间的协作关协作图用来描述为实现一个用例多个对象之间的协作关系,与顺序图不同,它着重体现的是对象间消息的连接关系。系,与顺序图不同,它着重体现的是对象间消息的连接关系。面向对象软件工程与UML8 8构件图构件图 现在的软件远不是从前只需要一个现在的软件远不是从前只需要一个EXEEXE文
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向对象软件工程与UML 第7章 统一建模语言UML2 面向 对象 软件工程 UML 统一 建模 语言
限制150内