[高等教育]UML基础与应用.doc
《[高等教育]UML基础与应用.doc》由会员分享,可在线阅读,更多相关《[高等教育]UML基础与应用.doc(75页珍藏版)》请在三一办公上搜索。
1、UML 概 述面向对象技术出现于20世纪70年代末,它是软件工程领域中的重要技术。面向对象技术不仅是一种程序设计方法,还是一种对现实世界中问题的抽象方式。它的出现改变了人们对软件的认识和理解,同时人们也开始了相关技术的研究,其中最重要的是对面向对象建模技术的研究,主要成果就是统一建模语言UML。本章介绍UML的基本概念、UML的历史、UML的主要内容、软件过程的基本知识和主要的UML工具。通过本章的学习可以对UML有一个概括的了解,为学习后续的内容做必要准备。1.1什么是UMLUML(Unified Modeling Language)统一建模语言是用来设计软件蓝图的可视化建模语言。它支持面向
2、对象系统的分析、设计、实现和支付等各个环节,可以用于系统的理解、设计、浏览、维护和信息控制。UML是由世界著名的面向对象技术专家Grady Booch、James Rumbaugh和Ivar Jacobson发起,在著名的Booch方法、OMT方法、OOSE方法的基础上,广泛征求意见,集众家之长,几经修改而成的。UML并不是一种程序设计语言,而是一种描述程序设计思想的工具,不局限于某个开发平台或某种程序设计语言。UML的特点是使用图符和文档相结合的方式来描述现实世界中的问题及解决问题的方案。1. 模型简单地说,模型是对现实的简化。模型提供了系统的蓝图,包括了从高层次考虑总体系统规划,以及详细的
3、设计和实现。由于人们对复杂事物的理解能力有限,通过建立一个恰当的模型可以更好地理解一个复杂的系统。一个好的模型包括那些对系统有重要影响的主要因素,而忽略那些细枝末节。具体地说,模型主要有以下四个作用:(1)模型可以按照能够理解和接受的方式简单明了地表达一个实际的复杂系统。(2)模型可以帮助深入了解系统的结构和行为。(3)通过对模型的分析和理解,可以更好地实现这个系统。(4)模型可以帮助进行决策。建模是一项经过检验并广为接受的工程技术。这项技术广泛应用于建筑、制造、经济管理等各个行业,同样的软件项目开发中也需要建立模型。在实际应用中,每个项目都能从建模中受益。建立简明、准确的表示模型是把握复杂系
4、统的关键。随着时间的推移和软件技术的发展,所有的应用系统都变得越来越复杂,因此建模技术也越来越成为项目成败的关键。2面向对象的建模随着面向对象技术的广泛应用,面向对象的建模收到越来越多的重视。作为OMG(Object Management Group)标准的UML已经成为主要的面向对象建模语言,受到了计算机界的普遍欢迎,得到了许多科研机构和软件公司的支持。许多世界知名的软件公司都成为UML修订工作的核心小组成员,这些公司包括:Rational公司、HP公司、IBM公司等。UML不仅可以支持面向对象的分析和设计,更重要的是能够有力地支持从需求分析开始的软件开发全过程。使用UML可以对现实问题和需
5、要开发的系统进行可视化描述,以帮助用户和项目组成员理解系统,方便互相之间的交流;使用UML还可以描述一个系统的结构和行为;不同的UML模型图可以作为项目不同阶段的软件开发文档。使用UML可以方便地进行交流和沟通,减少了不同建模系统之间转换的成本。UML适合软件开发的各个阶段,从需求描述道系统完成后的支付。3为什么使用UML软件开发的最终目的就是得到可执行的软件,建模是为了更好地理解要实现的软件系统,设计软件系统的蓝图。在什么情况下需要使用UML?在软件开发过程中是否需要使用UML?可以从以下三个方面来考虑:(1)是否使用面向对象技术来开发软件。(2)软件的规模和复杂程度是否超出了用户的控制能力
6、。(3)是否是一个团队进行软件项目开发。如果满足以上三个方面,建议使用UML进行建模。使用UML进行建模可以学习和理解面向对象技术,有助于同领域专家进行交流,更好地理解全局。使用UML可以促进面向对象技术的学习。对于大多数人来说,学习一门面向对象语言并不难,难的是如何进行面向对象程序开发、如何发挥面向对象语言提供的优势。UML可以帮助理解面向对象技术,进行面向对象的设计。在理解用户需求方面,UML提供了专门的用例图,使用用例图可以方便有效地捕获用户需求。在描述系统的静态结构方面,UML提供了类图和包图。UML还提供了其他的图来描述系统的行为和构成。模式是重要的面向对象设计技术,使用UML还可以
7、有助于表述和学习模式。使用UML可以促进领域专家进行交流。软件开发面临的最大问题是如何在一个合理的费用前提下构造一个正确的系统,以满足用户的需求。这个问题主要表现在如何同用户进行有效的交流。软件开发人员有自己的专业和术语,用户同样也有自己的专业和术语,为了构建软件系统,软件开发人员需要了解用户的专业和术语,也就是了解用户领域的知识。向该领域的专家学习并同他们进行交流是学习领域知识很好的方法。UML提供了用例图用于了解用户需求。用例图强调系统的整体性,强调系统外在的功能,强调系统对使用者有什么帮助和好处,强调系统与外部的交互,辅以其他的UML模型图,可以很好的对咬开发的系统进行描述,为进一步构造
8、正确的系统打下坚实的基础。采用UML可以帮助理解全局。开发大型的软件项目时,经常会犯下只见树木不见森林的错误。这时开发人员系统能够从全局来了解和理解一个系统,UML提供了多种模型图用来从高层描述系统。通过使用这些图,可以方便地了解整个系统功能、结构和行为。在具体的软件项目开发中,使用UML可以建模不一定要用到UML中所有的模型图。不同的项目中,每种模型图的详细程度也可能不同。因此在使用UML进行建模时,用到哪些模型图,每张图的详细程度如何,这些主要取决于问题的复杂程度和软件开发的需要。1.2 UML发展历史在20世纪80年代初期开始,众多的方法学家都在尝试使用不同的方法进行面向对象的分析和设计
9、,其中比较成功的有OOA/D、Booch、OMT、CRC等。到1994年10月,James Rumbaugh和Grady Booch把各自独立发展的Booch和OMT方法合并起来,并于1995年成为“统一方法”(Unified Method)0.8版本。随后Ivar Jacobson加入,并引入了用例(User Case)思想,于1996年形成了“统一建模语言”0.9版本。1997年1月,UML1.0版本被提交到OMG组织,作为软件建模语言标准化的候选。1997年11月7日OMG正式采纳,并把UML作为业界标准。1998年OMG接管了UML标准的维护工作,推出了UML的1.3版、1.4版、1.
10、5版。后来又推出了2.0版。关于这些版本的详细文档可以登录OMG的网站查阅,网址是 http:/www.uml.org。1.3 UML主要内容 UML融合了Booch、OMT和OOSE方法中的基本概念,并扩展了原有方法的应用范围。作为一种建模语言,UML的定义包括UML语义和UML表示法两个部分。UML语义描述基于UML的精确元模型定义。元模型为UML的所有元素在语法和语义上提供了简单、一致、通用的定义性说明,使开发者能在语义上取得一致,消除了因人而异的最佳表达方法所造成的影响。此外,UML还支持对元模型的扩展定义。UML表示法定义了UML符号的表示法,为开发者或开发工具使用这些图形符号和文本
11、语法提供了标准,也为开发者对系统进行建模提供了统一的标准。这些图形符号和文字所表达的是应用级的模型,在语义上它是UML元模型的实例。1.3.1 UML模型图UML中定义了5类共计10中模型图。下面在介绍每种模型图时,给出一个简单的例子来加以说明。1.用例图用例图用来描述用户的需求,它从用户的角度描述系统的功能,并指出各功能的执行者。强调谁在使用系统,系统为执行者完成哪些功能。图1.1是一个学生使用计算机辅助教学系统进行自我测试的用例图。2.静态图静态图包括类图、对象图和包图。其中类图用于定义系统中的类,包括描述类的内部结构和类之间的关系,类图主要用于描述系统的静态机构。对象图是类图的一个实例,
12、它描述了系统在某一个具体的时间点上所包含的对象以及各对象之间的关系。包图是由包和类组成,主要表示包与包、包与类之间的关系。宝图用于描述系统的分层结构。图1.2(a)是一个“学生”类的图符,图1.2(b)是“学生”类的具体对象“张三”的对象图图符。学生学生:张三 (a)类图 (b)对象图图1.2 类图和对象图3行为图行为图主要是描述系统的动态模型和对象之间的交互关系,包括状态图和活动图。状态图用来描述类的对象所有可能的状态以及事件发生时状态的转移条件。通常,状态图是对类图的补充。活动图用来描述满足用例要求所要进行的活动以及活动间的约束关系,使用活动图有利于识别系统中的并行活动。图1.3(a)是一
13、个网卡启用状态图,图1.3(b)是启用网卡的活动图。选择网卡停用启用启动设备停止设备(a)状态图图1.3 状态图和活动图(b)活动图使用网卡4.交互图 交互图主要用来描述对象之间的交互关系,包括顺序图和合作图。顺序图用来描述对象之间的交互顺序,着重体现对象间消息传递的时间顺序,强调对象之间消息的发送顺序,同时也显示对象之间的交互过程。合作图描述对象之间的合作关系,更侧重于说明哪些对象之间有消息的传递。两个图之间可以相互转化。例如,图1.4(a)是张三解答试卷并查看结果的顺序图,图1.4(b)是张三解答试卷并查看结果的合作图。张三试卷系统选择试卷生成试卷系统1:选择试卷4:查看结果2:生成试卷图
14、1.4 顺序图和合作图(b):合作图3:答案试卷张三(a)顺序图查看结果答案5.实现图 实现图包括构件图和部署图。构件图用来描述代码构建的物理结构以及各构件之间的依赖关系。一个构件可能是一个资源文件、一个二进制文件或一个可执行文件。部署图定义了系统中硬件的物理体系结构,用来描述实际的物理设备以及他们的连接关系。物理设备用节点表示,在节点内部放置可执行的构件和对象,用来显示节点与可执行软件单元之间的对应关系。 这5类10种模型图从不同的方面对系统进行了描述,把他们有机地结合到一起就可以分析和构造一个一致的系统。本书从第2章开始,用5章的内容分别介绍了UML的5类模型图1.3.2 UML在软件开发
15、各个阶段的应用 从应用的角度上看,采用面向对象技术设计软件系统时,使用用例图来描述用户需求;使用类图、对象图、包图、构件图、和部署图这5种静态图来描述系统的静态结构;使用顺序图、合作图、活动图和状态图这4种图来描述系统动态行为。在软件开发的各个阶段使用不同的UML图对系统进行描述。(1)需求:UML的用例图可以用来描述客户的需求,通过用例建模,可以找出谁与系统打交道、系统的主要功能、系统和外部是如何进行交互的,并进一步分许这个交互的过程。通过对商业过程和用户要构建的系统进行分析,可以准确把握用户的需求,保证最终的软件系统完全符合用户的需要。(2)分析:分析阶段主要对用户的需求进一步的分析,明确
16、要解决问题的细节。使用UML的类图来描述系统的静态结构,使用顺序图、合作图、活动图和状态图来描述系统的行为。(3)设计:根据对系统的分析提出解决问题的方案。使用UML的类图、包括把分析类和分析包转化成设计类和设计包。对类的接口和实现进行设计。(4)实现:在实现阶段,把设计阶段的类转换成某种面向对象程序设计语言的代码。根据UML中详细设计的类图进行实际编码。(5)集成与交付:在系统的集成和交付阶段主要应用了UML的构件图、包图和部署图来进行系统的集成与部署。(6)测试:根据类图对实现的每个单元进行单元测试,然后对每个类和包的接口进行集成测试,最后对整个软件进行系统测试。单元测试使用类图和类的规格
17、说明书,集成测试使用类图、包图、构件图和合作图。系统测试使用用例图来确认系统的功能和行为。在软件开发的不同阶段可能会用到相同的模型图来描述,但每个阶段描述的重点和详细程度不同。例如,在软件分析、设计和实现阶段都用到类图。在分析阶段侧重类的概念描述;在设计阶段侧重类的接口描述;在实现阶段侧重类的实现的描述。很多相同的问题可以用不同的模型图来描述。例如,描述对象之间的关系,可以使用对象图、顺序图、合作图和活动图,但是每个图描述的侧重点不同。1.3.3 UML的应用领域 UML是以图形的方式来描述任何类型的系统,具有很宽的应用领域。UML可以用于描述非软件领域的系统,如机械系统、企业机构或业务过程,
18、以及处理复杂数据的信息系统、具有实时要求的工业系统或过程控制系统等,其中最常用的是建立软件系统的模型。一般来说,UML适合各种软件系统的建模。主要的软件系统包括: (1) 信息管理系统:利用数据库技术,实现用户对所需信息的存储、检索、计算、转换和提交等操作。(2) 电子商务(政务)系统:以互联网络为基础,实现商务运作和行政办公的数字化。(3) ERP(Enterprise Resource Planning):实现企业从计划、生产到商务运作的信息管理数字化。(4) 实时控制系统:采集和检测企业生产过程中的各项技术指标,并根据这些指标的变化情况实施控制。随着计算机网络的普及,在实际应用中大多数系
19、统都不是某一方面的单一系统,而是一种或多种系统的结合。UML具有描述这种综合系统的能力。1.4 软件过程UML是一种建模语言,在实际的软件项目开发中,他要和具体的软件开发过程结合起来才能更好的发挥作用。每一个软件开发组织在进行软件项目开发时,都有自己的软件开发过程,只是有些组织没有把它抽取出来形成公司规范。目前国际上许多研究机构和公司都在研究软件过程。为此,在本节简单介绍一下软件过程。1.4.1 软件过程描述软件过程研究工作开始于20世纪70年代。软件组织为了提高软件产品的质量和用户满意程度,开始研究软件生产过程。通过逐步规范和改进软件的生产过程来控制软件产品的质量,保证产品的质量。目前世界上
20、关于软件过程的研究主要有三个体系:美国的CMM/TSP/PSP、ISO9000系列以及ISO/SPICE标准。ISO9000系列是国际标准化组织于1987年公布的一组标准。他强调通过过程管理来保证产品的质量。具体体现在事前计划、严格按照计划实施、事后检查和分析并采取相应的改进措施,使影响软件产品质量的全部因素在生产过程中始终处于受控状态。其中1994年公布的ISO9001是针对软件行业的质量标准,它是软件组织推行质量认证的一个基础标准,该标准从20个方面提出质量要求。CMM模型包括5个成熟度等级,这5个成熟度等级,分别是:初始级、可重复级、已定义级、已管理级和优化级。除初始级外,其他每个等级包
21、括多个关键领域。如表1.1所示,共计18个关键过程域。表1.1 CMM关键过程域级别焦点关键过程域(KPA)5.优化级持续过程改进缺陷预防技术变更管理过程变更管理4.已管理级产平和过程质量定量过程管理软件质量管理3.已定义级工程过程组织过程焦点组织过程定义培训计划集成软件管理软件产品工程组间协调同行评审2.可重复级项目管理需求管理软件项目计划软件项目跟踪和监督软件质量保证软件配置管理软件子合同管理1.初始级无无初始级软件过程的特点是随意,有时甚至有点混乱,很少有经过定义的过程,成功依靠优秀个人的努力。可重复级软件过程的特点是建立了基本的项目管理过程,可以跟踪项目的进度、花费和功能。已经建立必须
22、的过程规范,成功的经验可以用于相似的项目中。已定义级软件过程的特点是描述软件管理活动和软件工程活动的软件过程都已经文档化和标准化,并纳入组织的标准软件过程中。所有的项目使用经过认可和裁剪的组织内的标准软件过程中。所有的项目使用经过认可和裁剪的组织内的标准软件过程来开发和维护软件。已管理软件过程的特点是收集软件过程质量和产品质量的详细度量数据,定量管理和控制软件过程和产品质量。优化级软件过程的特点是根据过程反馈的定量数据能够进行持续的过程改进。除了上述过程体系外,还有须多软件过程在实际的软件开发中也得到了广泛的应用,这些过程主要有Rational公司的统一软件过程(RUP),极限编程(xp)等。
23、其中统一软件过程把Rational公司的case工具、面向对象思想融合到其中,是目前在业界得到广泛应用的软件过程。Rational公司推出的case工具包中包含了软件开发中常用的case工具,其中最主要的工具就是Rose,该工具支持标准的UML。1.4.2 统一软件过程软件开发过程是一个将用户需求转化为软件系统所需活动的集合。统一软件过程既是一个软件过程,更是一个软件过程框架。它可以适合不同规模、不同类型的软件项目开发。在实际的应用过程中可以根据自己的需要对这个标准过程进行裁减。统一软件软件过程把UML建模语言有机地结合到一起,非常适合采用面向对象软件技术进行软件项目开发。1. 统一软件过程的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高等教育 UML 基础 应用
链接地址:https://www.31ppt.com/p-4562766.html