软件工程与UML概述

上传人:无*** 文档编号:139016972 上传时间:2022-08-22 格式:PPT 页数:92 大小:5.80MB
收藏 版权申诉 举报 下载
软件工程与UML概述_第1页
第1页 / 共92页
软件工程与UML概述_第2页
第2页 / 共92页
软件工程与UML概述_第3页
第3页 / 共92页
资源描述:

《软件工程与UML概述》由会员分享,可在线阅读,更多相关《软件工程与UML概述(92页珍藏版)》请在装配图网上搜索。

1、IT Education&Training1软件工程与UMLBeyond TechnologyIT Education&Training2第1章 软件工程与UML概述IT Education&Training3第1章 软件工程与UML概述 1.1 软件工程概述1.3 UML语言概述IT Education&Training41.1 软件工程概述 1.1.1 软件工程的发展历史 1.1.2 软件工程的生命周期IT Education&Training5软件 定义软件是程序、数据和相关文档的完整集合。IT Education&Training61.1.1 软件工程的发展历史 从20世纪60年代中期

2、到70年代中期,软件业进入了一个发展时期。此时出现了所谓的软件公司。1968年,出现“软件工程(SoftwareEngineering)”这一术语。30余年来,尽管软件的一些毛病仍然无法根治,但软件的发展速度却超过了任何传统工业,并未出现真正的软件危机,这的确是前人的先见之明。如今软件工程成了一门学科。IT Education&Training7软件的发展历程软件工程软件工程“软件作坊软件作坊”个体化的软件环境个体化的软件环境上世纪上世纪60年代中期年代中期上世纪上世纪70年代年代上世纪上世纪80年代年代面向对象软件开发面向对象软件开发软件规模小,编写者和软件规模小,编写者和使用者往往是同一个

3、人使用者往往是同一个人,除程序清单外,无其,除程序清单外,无其它文档资料。它文档资料。面向对象技术的应用面向对象技术的应用改变了软件界的开发改变了软件界的开发方式。方式。计算机应用领域越来越广,系统规模越计算机应用领域越来越广,系统规模越来越大,逻辑越来越复杂,而且功能上来越大,逻辑越来越复杂,而且功能上需要不断更改和扩充。软件开发需要多需要不断更改和扩充。软件开发需要多个开发者一起开发,开发人员按各自的个开发者一起开发,开发人员按各自的爱好和习惯进行工作,没有统一的标准爱好和习惯进行工作,没有统一的标准可以遵循,以手工艺的方式形成可以遵循,以手工艺的方式形成“软件软件作坊作坊”来进行。来进行

4、。1968年,北大西洋公约组织的计算机科学家年,北大西洋公约组织的计算机科学家,在联邦德国召开国际会议,讨论软件危机,在联邦德国召开国际会议,讨论软件危机问题。正式提出问题。正式提出“软件工程软件工程”这个名词这个名词新新兴工程学诞生了。兴工程学诞生了。用用“工程化工程化”的思想作指导,可以大大减少的思想作指导,可以大大减少软件开发成本并提高软件开发质量,软件开发成本并提高软件开发质量,“工程工程化化”为人们开辟了新的道路,为人们开辟了新的道路,“软件工程学软件工程学”蓬勃发展起来。蓬勃发展起来。IT Education&Training8软件危机软件工程软件工程“软件作坊软件作坊”个体化的软

5、件环境个体化的软件环境上世纪上世纪60年代中期年代中期上世纪上世纪70年代年代上世纪上世纪80年代年代面向对象软件开发面向对象软件开发随着硬件成本的降低,电脑开始变得普及,人们对软件的需求越来越高,而这时候的软件行业还处于“手工作坊”阶段,软件的产量和质量远远不能满足人们的需要,于是出现了一系列严重问题,被称为“软件危机”IT Education&Training9拉布雷阿的拉布雷阿的焦油坑(Mural of La Brea Tar Pits)过去几十年的大型系统开发就犹如这样一个焦油坑,很多大型和强壮的动物在其中剧烈地挣扎。IT Education&Training10软件危机的表现 用户需

6、求不明确,变更过多 软件成本日益增长 开发进度难以控制 软件质量差 软件维护困难IT Education&Training11软件危机 消除软件危机的途径对计算机软件有一个正确的认识:软件程序软件程序数据文档IT Education&Training12软件危机 消除软件危机的途径必须充分认识到软件开发不是某种个体不是某种个体劳动的神秘技巧,而应该是一种组织良组织良好、管理严密、各类人员协同配合、共好、管理严密、各类人员协同配合、共同完成的工程项目同完成的工程项目。推广使用在实践中总结出来的开发软件的成功技术和方法。开发和使用更好的软件工具。IT Education&Training13软件工

7、程的产生 为了解决“软件危机”,于是出现了“软件工程”学科,其目的目的是倡导以工程的原理、原则和方法进行软件开发。有众多专家学者致力于软件工程方法学的研究,并将研究结果应用于实践中进行检验,解决了软件开发中存在的各种问题,使得软件制造的质量大大提高。IT Education&Training14软件工程 方法学把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学。IT Education&Training15软件工程 方法学软件工程方法学包含3个要素:方法、工具和过程 方法 完成软件开发的各项任务的技术方法,回答“怎样做”的问题;工具 为运用方法而提供的自动的或半自动的软件工程支撑环境

8、;过程 为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。IT Education&Training16 软件工程:技术层次软件工程:技术层次IT Education&Training17软件工程 基本原理 用分阶段的生命周期计划严格管理 坚持进行阶段评审 实行严格的产品控制 采用现代程序设计技术 结果应能清楚地审查 开发小组的人员应该少而精 承认不断改进软件工程实践的必要性IT Education&Training18案例分析1:A 组和B组都有共同的目标:十一期间到云南丽江旅游.A 组组员在组长带领下,制定了详细的出游计划,作好了准备.B组组员却什么都没有准

9、备.通过分析,比较两个小组可能出现的结果.IT Education&Training19原理1:据统计,在不成功的软件项目中,50左右是由于计划不周造成的应该把软件生命周期划分成若干各阶段,并相应制定出切实可行的计划,然后严格地按照计划对软件的开发与维护工作进行管理IT Education&Training20案例分析2:A组做了出游的计划如下表所示:活动时间订车票9.22-9.24联系丽江旅行社订房间9.22-9.24买路上吃的食品9.25出发到丽江10.1游玩10.2-10.5返回学校10.6如果其中任何一个活动没有按照计划进行,将导致整个出游计划的失败如何解决?IT Education&

10、Training21原理2:坚持进行阶段评审软件的质量保证工作不能等到编码阶段结束后再进行,在每个阶段都应进行严格的审查据Boehm等人统计,设计错误占软件错误的63,编码错误占37HP公司:有1/3以上的错误是由于不熟悉用户对界面的需求而引起的,通过建立大量的原型和设计评审计划,减少产品发布后的缺陷数,在公布的四次缺陷数据中,前两次发布后的缺陷占25,第三次降到10以下,第四次则为零IT Education&Training22案例分析3:A组做了出游的计划如下表所示:活动时间订车票9.22-9.24联系丽江旅行社订房间9.22-9.24买路上吃的食品9.25出发到丽江10.1游玩10.2-

11、10.5返回学校10.6在定票期间,由于负责定票的人Lily在没有通知大家的情况下将返回学校的票定在10.7日,此时将造成什么影响?在整个活动中允许随意的变更吗?IT Education&Training23原理3:实行严格的产品控制加强配置管理建立严格的变更控制流程IT Education&Training24原理4:采用现代程序设计技术 结构化分析(结构化分析(SASA)结构化设计(结构化设计(SDSD)面向对象技术(面向对象技术(OOA OODOOA OOD)实践表明:采用先进的技术既可以提高软件开发的效率,又可以提高软件维护的效率。IT Education&Training25原理5:

12、结果应能清楚地审查根据软件开发项目的总目标和完成期限,规定开发小组的责任、产品标准及完成日期,从而使得所得到的结果能够清楚地审查。IT Education&Training26原理6:开发小组的人员应少而精软件开发小组成员的素质要高,而人数则不宜过多。开发小组人员的素质和数量是影响软件产品质量和开发效率的重要因素。重要因素。IT Education&Training27案例分析4:丽江活动结束了,A 小组这时应该做些什么呢?IT Education&Training28原理7:不断改进软件工程实践不断改进软件工程的实践。软件工程不应该停留在已有的技术水平上,应该积极主动地采取或创造新的软件技术

13、,要注意不断总结经验,收集工作量、进度、成本等数据,并运行出错类型和问题报告的统计。IT Education&Training29人是有生命期的,那么软件呢?什么是软件生命周期?IT Education&Training30概念:软件生命周期 软件生命周期表明从功能确定、设计到开发成功投入使用,并在使用中不断地修改、增补和完善,直到被新的需要所代替而停止使用该软件的全过程。IT Education&Training31 问题定义、可行性研究 需求分析 概要设计 详细设计 实现 组装测试 验收测试 使用和维护 退役 1.1.2 软件生命周期的基本任务 软件定义过程软件开发过程运行维护过程每个阶段

14、都有需要完成的任务每个阶段都有需要完成的任务IT Education&Training32案例分析 某电力公司A,希望软件公司B 为他们制造一种”电费结算系统”,该系统用于结算每一户电表1个月期间应该缴纳的电费。B 公司得到电力公司A的这个要求之后,开始进入制作“电费结算系统”软件的生命周期。IT Education&Training33问题定义阶段该阶段的关键任务是要明确:要解决的问题是什么?思考:以下几个选项中,哪个是B公司得出的结论:A.要解决某小区用电总度数问题B.要解决某小区总收电费问题C.要解决电力公司A管辖范围内的所有电表每月每户电费结算问题D.要解决西南区域内电表结算问题IT

15、Education&Training34可性行研究阶段该阶段的关键任务是要明确:做不做用最小的代价在尽可能短的时间内从经济、技术、社会因素等方面论证解决方案的可行性 思考:B公司在可行性分析阶段应该做些什么事情,会得出什么结论?IT Education&Training35需求分析阶段该阶段的关键任务是要明确:做什么通过与客户不断的讨论、协商,对目标系统提出完整、准确、清晰、具体的要求.1.用正式的文档准确地记录对目标系统的需求,形成软件需求规格说明书(SRS)注意点 B公司在这个阶段应该对用户的要求进行详细的调研与分析,需要去了解电费结算中需要涉及到信息、结算电费的标准与公式、这个电费结算系

16、统的产出文档是什么等内容,确定该系统需要实现的功能,例如:对使用电表的用户进行管理,对1个用户1个月的电费计算,能够生成结算单。最后以文档的形式描述出需求规格。这些是指导B公司进行下一步工作的依据。IT Education&Training36概要设计(总体设计)阶段该阶段的关键任务是要明确:怎么做提出实现目标系统的几种方案,制定最佳方案的详细计划系统的体系结构设计1.阶段性成果:概要设计说明书、数据库或者数据结构说明书、组装测试计划等 根据上一 步得到的需求规格说明书,将需求功能进行模块化分,B公司的设计人员开始了对“电费结算系统”的设计。例如,系统管理模块,电费计算模块,生成结算单模块等。

17、IT Education&Training37详细设计阶段该阶段的关键任务是要明确:具体做法 设计出程序的详细规格说明,即详细地设计每个模块,确定实现模块功能所需要的算法和数据结构。阶段性成果:详细设计规格说明书和单元测试计划等 对每一个模块,设计它的实现算法和数据结构。例如,电费计算模块,需要根据计算公式进行电费的计算。B公司的设计人员开始了对“电费结算系统”的设计。IT Education&Training38编码和单元测试阶段该阶段的关键任务是编码和单元测试编写出正确的、易理解的、易维护的程序模块;仔细测试编写出的每一个模块1.阶段成果:经过单元测试后的代码,单元测试报告等。B公司程序员

18、们开始对每个模块进行分工,各自负责1个或者多个模块,然后写代码阿写代码,代码写好了,还需要对自己所写模块的代码进行测试,保证自己的正确性。IT Education&Training39综合测试阶段 该阶段的关键任务是通过各种类型的测试(及调试)使软件达到预定的要求组装测试:根据设计的软件结构,把经过单元测试检验的模块按某种策略装配起来,在装配过程中对程序进行必要的测试。验收测试:按照规格说明书的规定,由用户对目标系统进行验收,看其是否达到需求规格说明书中定义的全部功能和性能等方面的需求。1.验收测试结束后,经过评审的软件产品就可以交付投入使用了。经过上面的几个步骤,B公司的人员终于拿出了“电费

19、结算系统”,他们需要对该系统进行各种测试,包括集成测试,系统测试,用户环境测试,验收测试等等,确保该系统能够平稳的运行在A公司中。IT Education&Training40软件维护阶段该阶段的关键任务是通过各种必要的维护活动使系统持久地满足用户的要求。改正性维护改正性维护:诊断和改正在使用过程中发现的软件错误诊断和改正在使用过程中发现的软件错误适应性维护:适应性维护:修改软件易适应环境的变化修改软件易适应环境的变化完善性维护:完善性维护:根据用户的要求改进或扩充软件使它更完善根据用户的要求改进或扩充软件使它更完善预防性维护:预防性维护:修改软件为将来的维护活动预先做准备修改软件为将来的维护

20、活动预先做准备 在电力公司A的实际使用当中,“电力结算系统”出现了一些问题,B公司需要派人员进行维护。此外,A公司对B公司所开发的系统比较满意,愿意继续让B公司对其进行其他方面功能的扩充,例如:分小区进行用电量和电费收益的统计分析等。IT Education&Training41软件开发的这些阶段,是按什么样的顺序排列的呢?经过软件工程领域科学家在实际项目的基础上不断研究和发现,总结出了一些可以遵循的规律过程模型IT Education&Training421.1.2.4 软件开发模型 瀑布模型 快速原型模型 螺旋模型 喷泉模型IT Education&Training43过程模型的选择 首先

21、,了解每一种过程模型的特点和适用性。其次,根据软件项目的特点选择合适的过程模型。值得注意的是,由于现实中项目的复杂性,通常会在一个项目中选择几种过程模型嵌套使用。IT Education&Training44案例案例:某个老师(某个老师(T T)想要考察一个同学()想要考察一个同学(S S)的学习情况和技术水平,)的学习情况和技术水平,于是交给该学生一个任务。于是交给该学生一个任务。T:T:我有一个朋友想要一个图象浏览软件,能够查看多种格式的我有一个朋友想要一个图象浏览软件,能够查看多种格式的图象,包括图象,包括BMPBMP、TIFFTIFF、JPGJPG、PNGPNG,并且能够支持一般的放大

22、、缩小、,并且能够支持一般的放大、缩小、漫游。你能做这样一个软件吗?漫游。你能做这样一个软件吗?S S:就是类似:就是类似ACDSEEACDSEE这样的软件吗?这样的软件吗?T:T:差不多,不过不需要那么强大的功能,我这个朋友计算机是外差不多,不过不需要那么强大的功能,我这个朋友计算机是外行,最好能做的比较方便,傻瓜型的,例如象行,最好能做的比较方便,傻瓜型的,例如象ACDSEEACDSEE自动翻页这种功自动翻页这种功能还是要的。能还是要的。S S:我以前学过:我以前学过BMPBMP和和JPGJPG的图象格式解析,我想没有问题的图象格式解析,我想没有问题 T T:好的,给你:好的,给你3030

23、天时间,下周你再来一趟,跟我讲一下你的工作天时间,下周你再来一趟,跟我讲一下你的工作进度。进度。这位同学非常明白老师的意图,回去后想了一下,并列出了一个清这位同学非常明白老师的意图,回去后想了一下,并列出了一个清单单IT Education&Training45 一一 功能:功能:1。读取、显示、另存四种格式图片(。读取、显示、另存四种格式图片(BMP、TIFF、JPG、PNG)2。放大、缩小、漫游放大、缩小、漫游 3。列出当前目录下所有四种格式图片文件名。列出当前目录下所有四种格式图片文件名 4.PAGEUP(PAGEDOWN)自动调出当前目录上一张(下一张)图片)自动调出当前目录上一张(下

24、一张)图片 二二 其它说明:其它说明:1。界面尽量简介,容易操作。界面尽量简介,容易操作 2。不要图片预览和打印。不要图片预览和打印 三三 开发工具:开发工具:VC 6 四四 开发环境:普通开发环境:普通PC机;机;Window2000/xp 五五 工作量:工作量:1.研究一下四种图片的格式研究一下四种图片的格式 2.设计一个解析器类,解析这四种格式设计一个解析器类,解析这四种格式 3.设计一个文档类,实现读取、另存和目录浏览功能设计一个文档类,实现读取、另存和目录浏览功能 4.设计一个视图类,实现显示、缩放、漫游功能设计一个视图类,实现显示、缩放、漫游功能工作清单工作清单IT Educati

25、on&Training46PART ONE The Process软件制造的八个阶段软件制造的八个阶段:可行性分析需求分析概要设计详细设计编码测试交付维护对话过程对话过程工作清单一、二工作清单一、二工作清单三、四、五工作清单三、四、五写代码前的思考过程写代码前的思考过程写代码写代码提交给老师检查提交给老师检查给老师朋友安装、讲解给老师朋友安装、讲解修正问题、改进软件修正问题、改进软件IT Education&Training47PART ONE The Product and the ProcessThe Product and the Process实际情况1一切顺利,学生S按期交付了软件,

26、经过一两周的试用、修改、完善后,三方都比较满意,该软件在老师的朋友那里成为一个得心应手的工具。瀑布模型IT Education&Training48瀑布模型IT Education&Training49瀑布模型 优点:1)可强迫开发人员采用规范的开发方法;2)严格规定每个阶段必须提交的文档;3)要求每个阶段的提交工作产品都必须通过QA的验证。缺点:缺乏灵活性,变动成本高。适用于需求非常明确的情况。IT Education&Training50实际情况2 一周后,学生去见老师,并提交了工作清单,他发现老师的这位朋友(C)和老师在一起。S:这是工作清单,我已经研究清楚了四种文件的格式,可以写代码了

27、。T:很好,不过我这位朋友有一些新想法,你不妨听听。C:你好。我新买了一个扫描仪,你的程序可不可以直接扫描图片进来。S:你可以自己扫描呀,买扫描仪的时候一般都会送正版软件的。C:是的,可是我一直不太会用,你知道我计算机水平不高,学一些新东西很累,也没有时间,如果你能直接链接扫描仪,我只要学会你的软件就行了,我愿意多支付一些费用,还有,我想建一个图片库,你知道,我工作时需要上百个图片,经常找不到,最好还带模糊查询。PART ONE The Product and the ProcessThe Product and the ProcessIT Education&Training51PART O

28、NE The Product and the ProcessThe Product and the Process实际情况2(续)S:.!C:还有一些,现在一时想不起来,我想起来的话会再跟 你联系,时间上可以长一些。S:.!T:要不这样吧,你先做一个样子出来给C看看,一边做,一边改。C:这样最好,看见一个基本样子我就知道我想要什么了 事情就这样定下来了,S愤怒的撕掉了自己的工作清单.,回去后S花1天时间用DELPHI做了个样子,只能读BMP和JPG文件,做了些菜单和工具栏,用ACCESS建了一个图片库。就这个“假”的程序,S和C讨论了一天,S又修改了几次,又讨论了几次,一周后,这个“假”的程序

29、表面看起来和真的一模一样。IT Education&Training52实际情况2(续)于是S打算用VC重写这个程序,但是他很快发现继续用DELPHI写更方便,因为至少界面不用重做了,于是,两个月后,这个事情终于结束了。S顺利的完成了他的毕业设计JPG压缩优化算法设计,C一直使用这个软件管理他的图片,并庆幸花了这么少的钱得到了这么有用的东西,而T,则正在考虑如何为他下一批学生分派任务。PART ONE The Product and the ProcessThe Product and the Process原型模型原型模型IT Education&Training53PART ONE The

30、 Process原型模型原型模型询问用户,与用户沟通创建原型、修改原型让用户使用这个原型IT Education&Training54PART ONE The Process原型模型:一个反复修改的过程原型模型:一个反复修改的过程原型不断的废弃,得不到用户的认可,需求原型不断的废弃,得不到用户的认可,需求总是确定不下来,花费掉大量的人力物力。总是确定不下来,花费掉大量的人力物力。原型很快被接受,确认了用户的需求,可原型很快被接受,确认了用户的需求,可以开始进入设计阶段了。以开始进入设计阶段了。IT Education&Training55原型模型 原型模型的开发途径 1.仅仅模拟软件系统的人机

31、界面和人机交互方式 2.开发一个工作模型,实现软件系统中重要的或者容易产生误解的功能。3.利用一个或者几个类似的正在运行的软件向用户展示软件系统的可见部分。IT Education&Training56 快速原型的本质是“快速”。开发人员应该尽可能快地建造出原型系统,以加速软件开发过程,节约软件开发成本。原型的用途是获知用户的真正需求。适用:适用:主要适用于项目需求不太明确,项目组成员(需主要适用于项目需求不太明确,项目组成员(需求分析人员,设计人员,程序员和用户)不能很好交求分析人员,设计人员,程序员和用户)不能很好交流或者通信有困难的。流或者通信有困难的。快速原型模型IT Educatio

32、n&Training57螺旋模型螺旋模型基本思想:使用原型及其它方法来尽量降低风险。可看作是在每个阶段之前都增加了风险分析过程的快速原型模型。IT Education&Training58喷泉模型 迭代迭代是软件开发过程中普遍存在的一种内在属性。经验表明,软件过程各个阶段之间的迭代或一个阶段内各个工作步骤之间的迭代,在面向对象范型中比在结构化范型中更常见。“喷泉”这个词体现了面向对象软件开发过程迭代和无缝的特性。IT Education&Training59图2.8 喷泉模型IT Education&Training60学以致用 辅导员张老师 为了方便管理学生,他委托学生小明帮助他开发一个学生

33、管理系统,用来管理他所带的班级的学生信息,该系统仅供张老师一个人使用,系统功能不是很复杂。张老师对自己需要的系统功能有了明确的认识,并且他本身也对软件开发有一定程度的了解,与小明的沟通过程非常的顺利。在这种情况下,如果你是小明,你会选用哪种过程模型?IT Education&Training61学以致用 张扬是某大学软件技术专业的学生,在寒假中,他为他的邻居开发了一个小型的超市管理系统。他的邻居从来不懂软件开发,也不知道超市管理系统应该是什么样的。那么你建议张扬采用哪种过程模型呢?IT Education&Training621.3 UML语言概述1.3.1 UML的历史1.3.2 UML的定

34、义1.3.3 UML包含的内容1.3.4 UML的应用领域IT Education&Training63为什么需要UML?客户系统分析员其他人员开发人员UML模型IT Education&Training641.3.1 UML的历史 面向对象的分析与设计(OOA&OOD)方法的发展在20世纪80年代末至90年代中出现了一个高潮,UML是这个高潮的产物。它不仅统一了Booch、Rumbaugh和Jacobson的表示方法,而且对其做了进一步的发展,并最终统一为大众所接受的标准建模语言。公认的面向对象建模语言出现于20世纪70年代中期对象是问题域或实现域中某些事物的一个抽象。1996年6月和10月

35、分别发布了两个新的版本,即UML 0.9和UML 0.91,并将UM重新命名为UML(Unified Modeling Language)。UML的开发者倡议并成立了UML成员协会。IT Education&Training65UML的诞生创始人 Grady BoochGrady(IBM fellow)因其在软件架构、软件工程和软件建模方面的杰出贡献而在国际上享有盛名。自 Rational 于1981年创建以来,他就一直担任 IBM Rational 的首席科学家。Grady 于 2003 年 3 月荣获IBM 名士(IBM fellow)的称号。Booch方法的力量在于其丰富的符号体系,包括

36、:.类图(类结构静态视图).对象图(对象结构静态视图).状态转移图(类结构动态视图).时态图(对象结构动态视图).模块图(模块体系结构).进程图(进程体系结构)IT Education&Training66UML的诞生创始人 Ivar JacobsonIvar JacobsonIvar Jacobson 博士是 Objectory 方法的发明者,也是瑞典 Objectory AB 公司的创始人。Jacobson 博士是两本影响深远的畅销书的主要作者:面向对象的软件工程一种用例驱动方法(1992年计算机语言生产力奖获得者)和 对象的优势采用对象技术的业务过程再工程。Jacobson将use ca

37、se模型与其它五种系统模型关联:.领域对象模型。use case模型根据领域来表示。.分析模型。use case模型通过分析来构造。.设计模型。use case模型通过设计来具体化。.实现模型。该模型依据具体化的设计来实现use case模型。.测试模型。用来测试具体化的use case模型。IT Education&Training67UML的诞生创始人 James RumbaughJames Rumbaugh James Rumbaugh 博士是享誉全球的软件开发方法学家。Jim 一直是引导 UML 未来开发的领袖,他提出了许多有关 UML 的概念。他与 Rational 的其他软件领袖一

38、起工作在各个领域,比如 Rational 统一过程和实时开发方法学。自从 2003 年 IBM 收购了 Rational 之后,Jim 就一直致力于推动 IBM 建模工具的开发。Rumbaugh的OMT方法将开发过程分为四个阶段:.分析.系统设计.对象设计 .实现IT Education&Training68UML发展历史IT Education&Training691.3.2 UML的定义UML适用于各种软件开发方法、软件生命周期的各个阶段、各种应用领域以及各种开发工具。2.UML由以下5类图来定义:第1类:用例图 第2类:静态图(包括类图、对象图和包图)第3类:行为图(包括状态图和活动图)

39、第4类:交互图(包括时序图和协作图)第5类:实现图(包括组件图和配置图)IT Education&Training701.3.3 UML包含的内容 作为一种建模语言,UML的定义包括UML语义和UML表示法两个部分。(1)UML语义 描述基于UML的精确元模型定义。元模型为UML的所有元素在语法和语义上提供了简单、一致和通用的定义性说明,使开发者能在语义上取得一致,消除了因人而异的表达方法所造成的影响。此外UML还支持对元模型的扩展定义。(2)UML表示法 定义UML符号的表示法,为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准。这些图形符号和文字所表达的是应用级的模型,在语义

40、上它是UML元模型的实例。IT Education&Training71UML的组成模型模型 是一个特定系统的完整描述。视图模型图IT Education&Training72模型和图Use CaseDiagramsUse CaseDiagrams用例图用例图ScenarioDiagramsScenarioDiagrams协作图协作图StateDiagramsStateDiagrams构件图构件图ComponentDiagramsComponentDiagrams部署图部署图StateDiagramsStateDiagrams对象图对象图ScenarioDiagramsScenarioDiag

41、rams状态图状态图Use CaseDiagramsUse CaseDiagrams顺序图顺序图StateDiagramsStateDiagrams类图类图活动图活动图模型库模型库IT Education&Training73小例子用UML图来描述一台洗衣机。一台洗衣机应该具备的属性:品牌,比如海尔。模式,比如全自动,半自动。序列号,比如AS19980909 容量,比如5L 一台洗衣机操作包括:装入衣物 装入洗衣粉 开电源 关电源 一台洗衣机的功能:浸泡,洗涤,漂洗,脱水人使用洗衣机来洗衣服。IT Education&Training74类图 类(class):一类或一组具有类似属性和共同行为

42、的事物。类名属性名操作名类的图示洗衣机类的图示品牌模式序列号装入衣物装入洗衣粉容量开机关机IT Education&Training75对象图myWasher:WashingMachine:WashingMachine对象名:类名匿名对象某台具体的洗衣机就是洗衣机类的一个对象。比如:小明家的海尔洗衣机IT Education&Training76用例图 用例(use case):从用户的观点对系统行为的一个描述。用来从用户的观察角度收集系统需求。用例图表达系统的外部事物(参与者)与系统的交互,它表达了系统的功能,即系统所提供的服务。整个软件项目的开发可以采用Use Case 驱动的方式进行。u

43、serWash clothes这个用例图描述了用户使用洗衣机洗衣服。IT Education&Training77状态图在任一给定的时刻,一个对象总是处于某一特定的状态。状态图主要表现一个对象所经历的状态序列,引起状态或活动转移的事件,以及因状态或活动转移而伴随的动作。SoakingWashingRinsingSpinning起始状态中间状态结束状态开始结束浸泡洗涤漂洗脱水洗衣机的状态图IT Education&Training78时序图的定义在一个运行的系统中,对象之间要发生交互,并且这些交互要经历一定的时间。顺序图表达的正是这种基于时间的动态交互。重点是完成某个行为的对象类和这些对象类之间

44、所传递的消息的时间顺序。:活动者对象发送的消息自调用返回的消息IT Education&Training79时序图洗衣机的例子:定时器(timer)注水的进水管(water piper)装衣服的洗涤缸(drum)IT Education&Training80:Timer:WaterPipe:Drum1:timeSoak()2:sendWater()3:storeWater()4:stopFlow()5:timeWash()6:rotateBackAndForth()7:pumpWater()8:stopRotating()9:timeRinse()10:sendWater()11:storeW

45、ater()12:rotateBackAndForth()13:pumpWater()14:stopRotating()15:timeSpin()16:rotateClockwise()17:stopRotating()1浸泡定时2注水3储水4停止注水5洗涤定时6.反复旋转洗涤7.排脏水8.停止洗涤9.漂洗定时10.注水11储水12.反复旋转洗涤14.停止漂洗13.排脏水15.脱水定时16.顺时针旋转17.停止脱水IT Education&Training81协作图 协作图协作图通过对象之间的连接和它们相互发送的消息来显示参与交互的对象。:活动者对象类1:发送的消息 2:自调用3:返回的消息I

46、T Education&Training82协作图的图例:Timer:WaterPipe:Drum1:timeSoak()2:sendWater()3:storeWater()4:stopFlow()5:timeWash()6:rotateBackAndForth()7:pumpWater()8:stopRotating()9:timeRinse()10:sendWater()11:storeWater()12:rotateBackAndForth()13:pumpWater()14:stopRotating()15:timeSpin()16:rotateClockwise()17:stopR

47、otating()1,5,9,15由定时器完成2,4,10由定时器调用注水管完成2,10由注水管调用洗衣缸完成6,7,8,12,13,14,16,17由定时器调用洗衣缸完成IT Education&Training83交互图的应用顺序图和协作图都是交互图,它们既是等价的,又是有区别的。顺序图和协作图都能等价的表现系统运行中对象通过消息发生的交互行为。顺序图表示了时间的消息序列,便于分析交互的时序,但没有表示静态对象关系,顺序图可以有效地帮助人们观察系统的顺序行为。协作图着重表示一个协作中的对象之间的联系和消息。IT Education&Training84活动图 活动图实质上是一种流程图,只不

48、过表现的是从一个活动到另一个活动的控制流。活动图描述活动的序列,并且支持对带条件的行为和并发行为表达。开始初始化条件判断并发1并发2结束同步成功失败洗涤缸往返旋转15分钟排掉脏水洗涤缸停止旋转IT Education&Training85构件图 组件图代表系统的一个物理实现块,代表逻辑模型元素如类、接口的物理打包。NewComponentIT Education&Training86部署图 显示基于计算机系统的物理体系结构。NewDeviceIT Education&Training87UML2.0中的新图 组成结构图(composite structure diagram)交互纵览图(int

49、eraction overview diagram)计时图(timing diagram)IT Education&Training88组成结构图 从类的内部来审视这个类。IT Education&Training89交互纵览图IT Education&Training90计时图IT Education&Training911.3.4 UML的应用领域 UML的目标是以面向对象图的方式来描述任何类型的系统。其中最常用的是建立软件系统的模型,但它同样可以用于描述非软件领域的系统,如机械系统、企业机构或业务过程,以及处理复杂数据的信息系统、具有实时要求的工业系统或工业过程等。UML模型可作为测试阶段的依据。系统通常需要经过单元测试、集成测试、系统测试和验收测试。不同的测试小组使用不同的UML图作为测试依据:单元测试使用类图和类规格说明;集成测试使用部件图和协作图;系统测试使用用例图来验证系统的行为;验收测试由用户进行,以验证系统测试的结果是否满足在分析阶段确定的需求。个人观点供参考,欢迎讨论

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!