《1软件工程与UML概述.ppt》由会员分享,可在线阅读,更多相关《1软件工程与UML概述.ppt(91页珍藏版)》请在课桌文档上搜索。
1、1,软件工程与UML,Beyond Technology,2,第1章 软件工程与UML概述,3,第1章 软件工程与UML概述,1.1 软件工程概述1.3 UML语言概述,4,1.1 软件工程概述,1.1.1 软件工程的发展历史1.1.2 软件工程的生命周期,5,软件 定义,软件是程序、数据和相关文档的完整集合。程序:按照事先设计的功能和性能要求执行的指令序列;数据:程序能正常操纵信息的数据结构;文档:与程序开发和使用相关的各种图文资料,6,1.1.1 软件工程的发展历史,从20世纪60年代中期到70年代中期,软件业进入了一个发展时期。此时出现了所谓的软件公司。1968年,出现“软件工程(Sof
2、twareEngineering)”这一术语。30余年来,尽管软件的一些毛病仍然无法根治,但软件的发展速度却超过了任何传统工业,并未出现真正的软件危机,这的确是前人的先见之明。如今软件工程成了一门学科。,7,软件的发展历程,软件工程,“软件作坊”,个体化的软件环境,上世纪60年代中期,上世纪70年代,上世纪80年代,面向对象软件开发,软件规模小,编写者和使用者往往是同一个人,除程序清单外,无其它文档资料。,面向对象技术的应用改变了软件界的开发方式。,计算机应用领域越来越广,系统规模越来越大,逻辑越来越复杂,而且功能上需要不断更改和扩充。软件开发需要多个开发者一起开发,开发人员按各自的爱好和习惯
3、进行工作,没有统一的标准可以遵循,以手工艺的方式形成“软件作坊”来进行。,1968年,北大西洋公约组织的计算机科学家,在联邦德国召开国际会议,讨论软件危机问题。正式提出“软件工程”这个名词新兴工程学诞生了。用“工程化”的思想作指导,可以大大减少软件开发成本并提高软件开发质量,“工程化”为人们开辟了新的道路,“软件工程学”蓬勃发展起来。,8,软件危机,随着硬件成本的降低,电脑开始变得普及,人们对软件的需求越来越高,而这时候的软件行业还处于“手工作坊”阶段,软件的产量和质量远远不能满足人们的需要,于是出现了一系列严重问题,被称为“软件危机”,9,拉布雷阿的焦油坑(Mural of La Brea
4、Tar Pits),过去几十年的大型系统开发就犹如这样一个焦油坑,很多大型和强壮的动物在其中剧烈地挣扎。,10,软件危机的表现,用户需求不明确,变更过多软件成本日益增长开发进度难以控制软件质量差软件维护困难,11,软件危机 消除软件危机的途径,对计算机软件有一个正确的认识:软件程序软件程序数据文档,12,软件危机 消除软件危机的途径,必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。推广使用在实践中总结出来的开发软件的成功技术和方法。开发和使用更好的软件工具。,13,软件工程的产生,为了解决“软件危机”,于是出现了“软件工程
5、”学科,其目的是倡导以工程的原理、原则和方法进行软件开发。有众多专家学者致力于软件工程方法学的研究,并将研究结果应用于实践中进行检验,解决了软件开发中存在的各种问题,使得软件制造的质量大大提高。,14,软件工程 方法学,把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学。,15,软件工程 方法学,软件工程方法学包含3个要素:方法、工具和过程方法 完成软件开发的各项任务的技术方法,回答“怎样做”的问题;工具 为运用方法而提供的自动的或半自动的软件工程支撑环境;过程 为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。,16,软件工程:技术层次,17,软件工
6、程 基本原理,用分阶段的生命周期计划严格管理坚持进行阶段评审实行严格的产品控制采用现代程序设计技术结果应能清楚地审查开发小组的人员应该少而精承认不断改进软件工程实践的必要性,18,案例分析1:,A 组和B组都有共同的目标:十一期间到云南丽江旅游.A 组组员在组长带领下,制定了详细的出游计划,作好了准备.B组组员却什么都没有准备.通过分析,比较两个小组可能出现的结果.,19,原理1:用分阶段的生命周期计划严格管理,据统计,在不成功的软件项目中,50左右是由于计划不周造成的应该把软件生命周期划分成若干各阶段,并相应制定出切实可行的计划,然后严格地按照计划对软件的开发与维护工作进行管理,20,案例分
7、析2:,A组做了出游的计划如下表所示:,如果其中任何一个活动没有按照计划进行,将导致整个出游计划的失败如何解决?,21,原理2:坚持进行阶段评审,软件的质量保证工作不能等到编码阶段结束后再进行,在每个阶段都应进行严格的审查据Boehm等人统计,设计错误占软件错误的63,编码错误占37HP公司:有1/3以上的错误是由于不熟悉用户对界面的需求而引起的,通过建立大量的原型和设计评审计划,减少产品发布后的缺陷数,在公布的四次缺陷数据中,前两次发布后的缺陷占25,第三次降到10以下,第四次则为零,22,案例分析3:,A组做了出游的计划如下表所示:,在定票期间,由于负责定票的人Lily在没有通知大家的情况
8、下将返回学校的票定在10.7日,此时将造成什么影响?在整个活动中允许随意的变更吗?,23,原理3:实行严格的产品控制,加强配置管理建立严格的变更控制流程,24,原理4:采用现代程序设计技术,结构化分析(SA)结构化设计(SD)面向对象技术(OOA OOD)实践表明:采用先进的技术既可以提高软件开发的效率,又可以提高软件维护的效率。,25,原理5:结果应能清楚地审查,根据软件开发项目的总目标和完成期限,规定开发小组的责任、产品标准及完成日期,从而使得所得到的结果能够清楚地审查。,26,原理6:开发小组的人员应少而精,软件开发小组成员的素质要高,而人数则不宜过多。开发小组人员的素质和数量是影响软件
9、产品质量和开发效率的重要因素。,27,案例分析4:,丽江活动结束了,A 小组这时应该做些什么呢?,28,原理7:不断改进软件工程实践,不断改进软件工程的实践。软件工程不应该停留在已有的技术水平上,应该积极主动地采取或创造新的软件技术,要注意不断总结经验,收集工作量、进度、成本等数据,并运行出错类型和问题报告的统计。,29,人是有生命期的,那么软件呢?什么是软件生命周期?,30,概念:软件生命周期,软件生命周期表明从功能确定、设计到开发成功投入使用,并在使用中不断地修改、增补和完善,直到被新的需要所代替而停止使用该软件的全过程。,31,问题定义、可行性研究需求分析概要设计详细设计实现组装测试验收
10、测试使用和维护退役,1.1.2 软件生命周期的基本任务,软件定义过程,软件开发过程,运行维护过程,每个阶段都有需要完成的任务,32,案例分析,某电力公司A,希望软件公司B 为他们制造一种”电费结算系统”,该系统用于结算每一户电表1个月期间应该缴纳的电费。B 公司得到电力公司A的这个要求之后,开始进入制作“电费结算系统”软件的生命周期。,33,问题定义阶段,该阶段的关键任务是要明确:要解决的问题是什么?,思考:以下几个选项中,哪个是B公司得出的结论:A.要解决某小区用电总度数问题B.要解决某小区总收电费问题C.要解决电力公司A管辖范围内的所有电表每月每户电费结算问题D.要解决西南区域内电表结算问
11、题,34,可性行研究阶段,该阶段的关键任务是要明确:做不做用最小的代价在尽可能短的时间内从经济、技术、社会因素等方面论证解决方案的可行性,思考:B公司在可行性分析阶段应该做些什么事情,会得出什么结论?,35,需求分析阶段,该阶段的关键任务是要明确:做什么通过与客户不断的讨论、协商,对目标系统提出完整、准确、清晰、具体的要求.用正式的文档准确地记录对目标系统的需求,形成软件需求规格说明书(SRS),注意点,B公司在这个阶段应该对用户的要求进行详细的调研与分析,需要去了解电费结算中需要涉及到信息、结算电费的标准与公式、这个电费结算系统的产出文档是什么等内容,确定该系统需要实现的功能,例如:对使用电
12、表的用户进行管理,对1个用户1个月的电费计算,能够生成结算单。最后以文档的形式描述出需求规格。这些是指导B公司进行下一步工作的依据。,36,概要设计(总体设计)阶段,该阶段的关键任务是要明确:怎么做提出实现目标系统的几种方案,制定最佳方案的详细计划系统的体系结构设计阶段性成果:概要设计说明书、数据库或者数据结构说明书、组装测试计划等,根据上一 步得到的需求规格说明书,将需求功能进行模块化分,B公司的设计人员开始了对“电费结算系统”的设计。例如,系统管理模块,电费计算模块,生成结算单模块等。,37,详细设计阶段,该阶段的关键任务是要明确:具体做法 设计出程序的详细规格说明,即详细地设计每个模块,
13、确定实现模块功能所需要的算法和数据结构。阶段性成果:详细设计规格说明书和单元测试计划等,对每一个模块,设计它的实现算法和数据结构。例如,电费计算模块,需要根据计算公式进行电费的计算。B公司的设计人员开始了对“电费结算系统”的设计。,38,编码和单元测试阶段,该阶段的关键任务是编码和单元测试编写出正确的、易理解的、易维护的程序模块;仔细测试编写出的每一个模块阶段成果:经过单元测试后的代码,单元测试报告等。,B公司程序员们开始对每个模块进行分工,各自负责1个或者多个模块,然后写代码阿写代码,代码写好了,还需要对自己所写模块的代码进行测试,保证自己的正确性。,39,综合测试阶段,该阶段的关键任务是通
14、过各种类型的测试(及调试)使软件达到预定的要求组装测试:根据设计的软件结构,把经过单元测试检验的模块按某种策略装配起来,在装配过程中对程序进行必要的测试。验收测试:按照规格说明书的规定,由用户对目标系统进行验收,看其是否达到需求规格说明书中定义的全部功能和性能等方面的需求。验收测试结束后,经过评审的软件产品就可以交付投入使用了。,经过上面的几个步骤,B公司的人员终于拿出了“电费结算系统”,他们需要对该系统进行各种测试,包括集成测试,系统测试,用户环境测试,验收测试等等,确保该系统能够平稳的运行在A公司中。,40,软件维护阶段,该阶段的关键任务是通过各种必要的维护活动使系统持久地满足用户的要求。
15、改正性维护:诊断和改正在使用过程中发现的软件错误适应性维护:修改软件易适应环境的变化完善性维护:根据用户的要求改进或扩充软件使它更完善预防性维护:修改软件为将来的维护活动预先做准备,在电力公司A的实际使用当中,“电力结算系统”出现了一些问题,B公司需要派人员进行维护。此外,A公司对B公司所开发的系统比较满意,愿意继续让B公司对其进行其他方面功能的扩充,例如:分小区进行用电量和电费收益的统计分析等。,41,软件开发的这些阶段,是按什么样的顺序排列的呢?经过软件工程领域科学家在实际项目的基础上不断研究和发现,总结出了一些可以遵循的规律过程模型,42,1.1.2.4 软件开发模型,瀑布模型 快速原型
16、模型螺旋模型喷泉模型,43,过程模型的选择,首先,了解每一种过程模型的特点和适用性。其次,根据软件项目的特点选择合适的过程模型。值得注意的是,由于现实中项目的复杂性,通常会在一个项目中选择几种过程模型嵌套使用。,44,案例:,某个老师(T)想要考察一个同学(S)的学习情况和技术水平,于是交给该学生一个任务。T:我有一个朋友想要一个图象浏览软件,能够查看多种格式的图象,包括BMP、TIFF、JPG、PNG,并且能够支持一般的放大、缩小、漫游。你能做这样一个软件吗?S:就是类似ACDSEE这样的软件吗?T:差不多,不过不需要那么强大的功能,我这个朋友计算机是外行,最好能做的比较方便,傻瓜型的,例如
17、象ACDSEE自动翻页这种功能还是要的。S:我以前学过BMP和JPG的图象格式解析,我想没有问题 T:好的,给你30天时间,下周你再来一趟,跟我讲一下你的工作进度。这位同学非常明白老师的意图,回去后想了一下,并列出了一个清单,45,一 功能:1。读取、显示、另存四种格式图片(BMP、TIFF、JPG、PNG)2。放大、缩小、漫游 3。列出当前目录下所有四种格式图片文件名 4.PAGEUP(PAGEDOWN)自动调出当前目录上一张(下一张)图片 二 其它说明:1。界面尽量简介,容易操作 2。不要图片预览和打印 三 开发工具:VC 6 四 开发环境:普通PC机;Window2000/xp 五 工作
18、量:1.研究一下四种图片的格式 2.设计一个解析器类,解析这四种格式 3.设计一个文档类,实现读取、另存和目录浏览功能 4.设计一个视图类,实现显示、缩放、漫游功能,工作清单,46,PART ONE The Process,软件制造的八个阶段:,可行性分析,需求分析,概要设计,详细设计,编码,测试,交付,维护,对话过程,工作清单一、二,工作清单三、四、五,写代码前的思考过程,写代码,提交给老师检查,给老师朋友安装、讲解,修正问题、改进软件,47,PART ONE The Product and the Process,实际情况1一切顺利,学生S按期交付了软件,经过一两周的试用、修改、完善后,三
19、方都比较满意,该软件在老师的朋友那里成为一个得心应手的工具。,瀑布模型,48,瀑布模型,49,瀑布模型,优点:1)可强迫开发人员采用规范的开发方法;2)严格规定每个阶段必须提交的文档;3)要求每个阶段的提交工作产品都必须通过QA的验证。,缺点:缺乏灵活性,变动成本高。,适用于需求非常明确的情况。,50,实际情况2 一周后,学生去见老师,并提交了工作清单,他发现老师的这位朋友(C)和老师在一起。S:这是工作清单,我已经研究清楚了四种文件的格式,可以写代码了。T:很好,不过我这位朋友有一些新想法,你不妨听听。C:你好。我新买了一个扫描仪,你的程序可不可以直接扫描图片进来。S:你可以自己扫描呀,买扫
20、描仪的时候一般都会送正版软件的。C:是的,可是我一直不太会用,你知道我计算机水平不高,学一些新东西很累,也没有时间,如果你能直接链接扫描仪,我只要学会你的软件就行了,我愿意多支付一些费用,还有,我想建一个图片库,你知道,我工作时需要上百个图片,经常找不到,最好还带模糊查询。,PART ONE The Product and the Process,51,PART ONE The Product and the Process,实际情况2(续)S:.!C:还有一些,现在一时想不起来,我想起来的话会再跟 你联系,时间上可以长一些。S:.!T:要不这样吧,你先做一个样子出来给C看看,一边做,一边改。
21、C:这样最好,看见一个基本样子我就知道我想要什么了 事情就这样定下来了,S愤怒的撕掉了自己的工作清单.,回去后S花1天时间用DELPHI做了个样子,只能读BMP和JPG文件,做了些菜单和工具栏,用ACCESS建了一个图片库。就这个“假”的程序,S和C讨论了一天,S又修改了几次,又讨论了几次,一周后,这个“假”的程序表面看起来和真的一模一样。,52,实际情况2(续)于是S打算用VC重写这个程序,但是他很快发现继续用DELPHI写更方便,因为至少界面不用重做了,于是,两个月后,这个事情终于结束了。S顺利的完成了他的毕业设计JPG压缩优化算法设计,C一直使用这个软件管理他的图片,并庆幸花了这么少的钱
22、得到了这么有用的东西,而T,则正在考虑如何为他下一批学生分派任务。,PART ONE The Product and the Process,原型模型,53,PART ONE The Process,原型模型,54,PART ONE The Process,原型模型:一个反复修改的过程,原型不断的废弃,得不到用户的认可,需求总是确定不下来,花费掉大量的人力物力。,原型很快被接受,确认了用户的需求,可以开始进入设计阶段了。,55,原型模型,原型模型的开发途径1.仅仅模拟软件系统的人机界面和人机交互方式2.开发一个工作模型,实现软件系统中重要的或者容易产生误解的功能。3.利用一个或者几个类似的正在
23、运行的软件向用户展示软件系统的可见部分。,56,快速原型的本质是“快速”。开发人员应该尽可能快地建造出原型系统,以加速软件开发过程,节约软件开发成本。原型的用途是获知用户的真正需求。适用:主要适用于项目需求不太明确,项目组成员(需求分析人员,设计人员,程序员和用户)不能很好交流或者通信有困难的。,快速原型模型,57,螺旋模型,螺旋模型,基本思想:使用原型及其它方法来尽量降低风险。可看作是在每个阶段之前都增加了风险分析过程的快速原型模型。,58,喷泉模型,迭代是软件开发过程中普遍存在的一种内在属性。经验表明,软件过程各个阶段之间的迭代或一个阶段内各个工作步骤之间的迭代,在面向对象范型中比在结构化
24、范型中更常见。“喷泉”这个词体现了面向对象软件开发过程迭代和无缝的特性。,59,图2.8 喷泉模型,60,学以致用,辅导员张老师 为了方便管理学生,他委托学生小明帮助他开发一个学生管理系统,用来管理他所带的班级的学生信息,该系统仅供张老师一个人使用,系统功能不是很复杂。张老师对自己需要的系统功能有了明确的认识,并且他本身也对软件开发有一定程度的了解,与小明的沟通过程非常的顺利。在这种情况下,如果你是小明,你会选用哪种过程模型?,61,学以致用,张扬是某大学软件技术专业的学生,在寒假中,他为他的邻居开发了一个小型的超市管理系统。他的邻居从来不懂软件开发,也不知道超市管理系统应该是什么样的。那么你
25、建议张扬采用哪种过程模型呢?,62,1.3 UML语言概述,1.3.1 UML的历史1.3.2 UML的定义1.3.3 UML包含的内容1.3.4 UML的应用领域,63,为什么需要UML?,64,1.3.1 UML的历史,面向对象的分析与设计(OOA&OOD)方法的发展在20世纪80年代末至90年代中出现了一个高潮,UML是这个高潮的产物。它不仅统一了Booch、Rumbaugh和Jacobson的表示方法,而且对其做了进一步的发展,并最终统一为大众所接受的标准建模语言。公认的面向对象建模语言出现于20世纪70年代中期对象是问题域或实现域中某些事物的一个抽象。1996年6月和10月分别发布了
26、两个新的版本,即UML 0.9和UML 0.91,并将UM重新命名为UML(Unified Modeling Language)。UML的开发者倡议并成立了UML成员协会。,65,UML的诞生,创始人 Grady BoochGrady(IBM fellow)因其在软件架构、软件工程和软件建模方面的杰出贡献而在国际上享有盛名。自 Rational 于1981年创建以来,他就一直担任 IBM Rational 的首席科学家。Grady 于 2003 年 3 月荣获IBM 名士(IBM fellow)的称号。Booch方法的力量在于其丰富的符号体系,包括:.类图(类结构静态视图).对象图(对象结构静
27、态视图).状态转移图(类结构动态视图).时态图(对象结构动态视图).模块图(模块体系结构).进程图(进程体系结构),66,UML的诞生,创始人 Ivar JacobsonIvar Jacobson 博士是 Objectory 方法的发明者,也是瑞典 Objectory AB 公司的创始人。Jacobson 博士是两本影响深远的畅销书的主要作者:面向对象的软件工程一种用例驱动方法(1992年计算机语言生产力奖获得者)和 对象的优势采用对象技术的业务过程再工程。Jacobson将use case模型与其它五种系统模型关联:.领域对象模型。use case模型根据领域来表示。.分析模型。use ca
28、se模型通过分析来构造。.设计模型。use case模型通过设计来具体化。.实现模型。该模型依据具体化的设计来实现use case模型。.测试模型。用来测试具体化的use case模型。,67,UML的诞生,创始人 James Rumbaugh James Rumbaugh 博士是享誉全球的软件开发方法学家。Jim 一直是引导 UML 未来开发的领袖,他提出了许多有关 UML 的概念。他与 Rational 的其他软件领袖一起工作在各个领域,比如 Rational 统一过程和实时开发方法学。自从 2003 年 IBM 收购了 Rational 之后,Jim 就一直致力于推动 IBM 建模工具的
29、开发。Rumbaugh的OMT方法将开发过程分为四个阶段:.分析.系统设计.对象设计.实现,68,UML发展历史,69,1.3.2 UML的定义,UML适用于各种软件开发方法、软件生命周期的各个阶段、各种应用领域以及各种开发工具。2.UML由以下5类图来定义:第1类:用例图 第2类:静态图(包括类图、对象图和包图)第3类:行为图(包括状态图和活动图)第4类:交互图(包括时序图和协作图)第5类:实现图(包括组件图和配置图),70,1.3.3 UML包含的内容,作为一种建模语言,UML的定义包括UML语义和UML表示法两个部分。(1)UML语义 描述基于UML的精确元模型定义。元模型为UML的所有
30、元素在语法和语义上提供了简单、一致和通用的定义性说明,使开发者能在语义上取得一致,消除了因人而异的表达方法所造成的影响。此外UML还支持对元模型的扩展定义。(2)UML表示法 定义UML符号的表示法,为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准。这些图形符号和文字所表达的是应用级的模型,在语义上它是UML元模型的实例。,71,UML的组成,模型 是一个特定系统的完整描述。,72,模型和图,Use CaseDiagrams,Use CaseDiagrams,用例图,ScenarioDiagrams,ScenarioDiagrams,协作图,StateDiagrams,Stat
31、eDiagrams,构件图,ComponentDiagrams,ComponentDiagrams,部署图,StateDiagrams,StateDiagrams,对象图,ScenarioDiagrams,ScenarioDiagrams,状态图,Use CaseDiagrams,Use CaseDiagrams,顺序图,StateDiagrams,StateDiagrams,类图,活动图,模型库,73,小例子,用UML图来描述一台洗衣机。一台洗衣机应该具备的属性:品牌,比如海尔。模式,比如全自动,半自动。序列号,比如AS19980909容量,比如5L一台洗衣机操作包括:装入衣物装入洗衣粉开电
32、源关电源一台洗衣机的功能:浸泡,洗涤,漂洗,脱水人使用洗衣机来洗衣服。,74,类图,类(class):一类或一组具有类似属性和共同行为的事物。,类的图示,洗衣机类的图示,品牌,模式,序列号,装入衣物,装入洗衣粉,容量,开机,关机,75,对象图,对象名:类名,匿名对象,某台具体的洗衣机就是洗衣机类的一个对象。比如:小明家的海尔洗衣机,76,用例图,用例(use case):从用户的观点对系统行为的一个描述。用来从用户的观察角度收集系统需求。用例图表达系统的外部事物(参与者)与系统的交互,它表达了系统的功能,即系统所提供的服务。整个软件项目的开发可以采用Use Case 驱动的方式进行。,这个用例
33、图描述了用户使用洗衣机洗衣服。,77,状态图,在任一给定的时刻,一个对象总是处于某一特定的状态。状态图主要表现一个对象所经历的状态序列,引起状态或活动转移的事件,以及因状态或活动转移而伴随的动作。,浸泡,洗涤,漂洗,脱水,洗衣机的状态图,78,时序图的定义,在一个运行的系统中,对象之间要发生交互,并且这些交互要经历一定的时间。顺序图表达的正是这种基于时间的动态交互。重点是完成某个行为的对象类和这些对象类之间所传递的消息的时间顺序。,79,时序图,洗衣机的例子:定时器(timer)注水的进水管(water piper)装衣服的洗涤缸(drum),80,1浸泡定时,2注水,3储水,4停止注水,5洗
34、涤定时,6.反复旋转洗涤,7.排脏水,8.停止洗涤,9.漂洗定时,10.注水,11储水,12.反复旋转洗涤,14.停止漂洗,13.排脏水,15.脱水定时,16.顺时针旋转,17.停止脱水,81,协作图,协作图通过对象之间的连接和它们相互发送的消息来显示参与交互的对象。,82,协作图的图例,1,5,9,15由定时器完成,2,4,10由定时器调用注水管完成,2,10由注水管调用洗衣缸完成,6,7,8,12,13,14,16,17由定时器调用洗衣缸完成,83,交互图的应用,顺序图和协作图都是交互图,它们既是等价的,又是有区别的。顺序图和协作图都能等价的表现系统运行中对象通过消息发生的交互行为。顺序图
35、表示了时间的消息序列,便于分析交互的时序,但没有表示静态对象关系,顺序图可以有效地帮助人们观察系统的顺序行为。协作图着重表示一个协作中的对象之间的联系和消息。,84,活动图,活动图实质上是一种流程图,只不过表现的是从一个活动到另一个活动的控制流。活动图描述活动的序列,并且支持对带条件的行为和并发行为表达。,85,构件图,组件图代表系统的一个物理实现块,代表逻辑模型元素如类、接口的物理打包。,86,部署图,显示基于计算机系统的物理体系结构。,87,UML2.0中的新图,组成结构图(composite structure diagram)交互纵览图(interaction overview dia
36、gram)计时图(timing diagram),88,组成结构图,从类的内部来审视这个类。,89,交互纵览图,90,计时图,91,1.3.4 UML的应用领域,UML的目标是以面向对象图的方式来描述任何类型的系统。其中最常用的是建立软件系统的模型,但它同样可以用于描述非软件领域的系统,如机械系统、企业机构或业务过程,以及处理复杂数据的信息系统、具有实时要求的工业系统或工业过程等。UML模型可作为测试阶段的依据。系统通常需要经过单元测试、集成测试、系统测试和验收测试。不同的测试小组使用不同的UML图作为测试依据:单元测试使用类图和类规格说明;集成测试使用部件图和协作图;系统测试使用用例图来验证系统的行为;验收测试由用户进行,以验证系统测试的结果是否满足在分析阶段确定的需求。,