ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:243.86KB ,
资源ID:11581743      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11581743.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(论UML在程序开发中的重要作用.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

论UML在程序开发中的重要作用.docx

1、论UML在程序开发中的重要作用经典的软件工程思想将软件开发分成5个阶段:需求分析系统分析与设计;系统实现测试及维护五个阶段。序言如果想搭一个狗窝,备好木料、钉子与一些基本工具(如锤子、锯与卷尺)之后,就可以开始工作了。从制定一点初步计划到完成一个满足适当功能的狗窝,可能不用别人帮助,在几个小时内就能够实现。只要狗窝够大且不太漏水,狗就可以安居。如果未能达到希望的效果,返工总就是可以的,无非就是让狗受点委屈。如果您要建造一座高层办公大厦,若还就是先备好木料、钉子与一些基本工具就开始工作,那将就是非常愚蠢的。因为您所使用的资金可能就是别人的,她们会对建筑物的规模、形状与风格做出要求。同时,她们经常

2、会改变想法,甚至就是在工程已经开工之后。由于失败的代价太高了,因此必须要做详尽的计划。负责建筑物设计与施工的就是一个庞大的组织机构,您只就是其中的一部分。这个组织将需要各种各样的设计图与模型,以供各方相互沟通。只要得到了合适的人员与工具,并对把建筑概念转换为实际建筑的过程进行积极的管理,将会建成这座满足使用要求的大厦。如果想继续从事建筑工作,那么一定要在使用要求与实际的建筑技术之间做好平衡,并且处理好建筑团队成员们的休息问题,既不能把她们置于风险之中,也不能驱使她们过分辛苦地工作以至于精疲力尽。奇怪的就是,很多软件开发组织开始想建造一座大厦式的软件,而在动手处理时却好像她们正在仓促地造一个狗窝

3、。有时您就是幸运的。如果在恰当的时间有足够的合适人员,并且其她一切事情都很如意,您的团队有可能(仅就是可能)推出一个令用户眼花缭乱的软件产品。然而,一般的情况下,不可能所有人员都合适(合适的人员经常供不应求),时间并不总就是恰当的(昨天总就是更好),其她的事情也并不尽如人意(常常由不得自己)。现在对软件开发的要求正在日益增加,而开发团队却还就是经常单纯地依靠她们唯一真正知道如何做好的一件事编写程序代码。英雄式的编程工作成为这一行业的传奇,人们似乎经常认为更努力地工作就是面对开发中出现的各种危机的正常反应。然而,这未必能产生正确的程序代码,而且一些项目就是非常巨大的,无论怎样延长工作时间,也不足

4、以完成所需的工作。如果真正想建造一个相当于房子或大厦类的软件系统,问题可不就是仅仅编写许多软件。事实上,关键就是要编出正确的软件,并考虑如何少写软件。要生产合格的软件就要有一套关于体系结构、过程与工具的规范。即使如此,很多项目开始瞧起来像狗窝,但随后发展得像大厦,原因很简单,它们就是自己成就的牺牲品。如果对体系结构、过程或工具的规范没有作任何考虑,总有一天狗窝会膨胀成大厦,并会由于其自身的重量而倒塌。狗窝的倒塌可能使您的狗恼怒;同理,不成功的大厦则将对大厦的租户造成严重的影响。不成功的软件项目失败的原因各不相同,而所有成功的项目在很多方面都就是相似的。成功的软件组织有很多成功的因素,其中共同的

5、一点就就是对建模的采用。一、 项目开发中模型就是什么以及建模的重要性。那么,模型就是什么?简单地说:模型就是对现实的简化。模型提供了系统的蓝图。模型既可以包括详细的计划,也可以包括从很高的层次考虑系统的总体计划。一个好的模型包括那些有广泛影响的主要元素,而忽略那些与给定的抽象水平不相关的次要元素。每个系统都可以从不同的方面用不同的模型来描述,因而每个模型都就是一个在语义上闭合的系统抽象。模型可以就是结构性的,强调系统的组织。它也可以就是行为性的,强调系统的动态方面。为什么要建模?一个基本理由就是:建模就是为了能够更好地理解正在开发的系统。通过建模,要达到4个目的:(1)模型有助于按照实际情况或

6、按照所需要的样式对系统进行可视化。(2)模型能够规约系统的结构或行为。(3)模型给出了指导构造系统的模板。(4)模型对做出的决策进行文档化。 建模并不只就是针对大的系统。甚至像狗窝那样的软件也能从一些建模中受益。然而,可以明确地讲,系统越大、越复杂,建模的重要性就越大,一个很简单的原因就是:因为不能完整地理解一个复杂的系统,所以要对它建模。人对复杂问题的理解能力就是有限的。通过建模,缩小所研究问题的范围,一次只着重研究它的一个方面,即把一个困难问题划分成一系列能够解决的小问题;解决了这些小问题也就解决了这个难题。此外,通过建模可以增强人的智力。一个适当选择的模型可以使建模人员在较高的抽象层次上

7、工作。每个项目都能从一些建模中受益。即使在一次性的软件开发中由于可视化编程语言的支持,可以轻而易举地扔掉不适合的软件。建模也能帮助开发组更好地对系统计划进行可视化,并帮助她们正确地进行构造,使开发工作进展得更快。如果根本不建模,项目越复杂,就越有可能失败或者构造出错误的东西。所有实用系统都有一个自然趋势:随着时间的推移变得越来越复杂。虽然今天可能认为不需要建模,但随着系统的演化,终将会对这个决定感到后悔,但那时为时已晚。在项目开发中如何建模,接下来我将详细讲解一下建模工具UML。二、 UML介绍UML( Unified Modeling Language )又称统一建模语言或标准建模语言,就是

8、始于1997年一个OMG标准,它就是一个支持模型化与软件系统开发的图形化语言,为软件开发的所有阶段提供模型化与可视化支持,包括由需求分析到规格,到构造与配置。UML就是一种功能强大的,面向对象的可视化系统分析的建模语言,它的各个模型可以帮助开发人员更好地理解业务流程,建立更可靠,更完善的系统模型、从而使用户与开发人员对问题的描述达到相同的理解,以减少语义差异,保障分析的正确性。 UML建模分为需求建模与设计建模,需求建模的目的就是确定系统边界并明确系统需要实现的功能。而设计建模主要目的就是用于开发团队中的设计思想交流;以及后续程序设计的依据;后续测试与验收程序的依据。)三、 UML应用领域UM

9、L的目标就是以面向对象图的方式来描述任何类型的系统,具有很宽的应用领域。其中最常用的就是建立软件系统的模型,但它同样可以用于描述非软件领域的系统,如机械系统、企业机构或业务过程,以及处理复杂数据的信息系统、具有实时要求的工业系统或工业过程等。总之,UML就是一个通用的标准建模语言,可以对任何具有静态结构与动态行为的系统进行建模。此外,UML适用于系统开发过程中从需求规格描述到系统完成后测试的不同阶段。在需求分析阶段,可以用用例来捕获用户需求。通过用例建模,描述对系统感兴趣的外部角色及其对系统(用例)的功能要求。分析阶段主要关心问题域中的主要概念(如抽象、类与对象等)与机制,需要识别这些类以及它

10、们相互间的关系,并用UML类图来描述。为实现用例,类之间需要协作,这可以用UML动态模型来描述。在分析阶段,只对问题域的对象(现实世界的概念)建模,而不考虑定义软件系统中技术细节的类(如处理用户接口、数据库、通讯与并行性等问题的类)。这些技术细节将在设计阶段引入,因此设计阶段为构造阶段提供更详细的规格说明。编程(构造)就是一个独立的阶段,其任务就是用面向对象编程语言将来自设计阶段的类转换成实际的代码。在用UML建立分析与设计模型时,应尽量避免考虑把模型转换成某种特定的编程语言。因为在早期阶段,模型仅仅就是理解与分析系统结构的工具,过早考虑编码问题十分不利于建立简单正确的模型。UML模型还可作为

11、测试阶段的依据。系统通常需要经过单元测试、集成测试、系统测试与验收测试。不同的测试小组使用不同的UML图作为测试依据:单元测试使用类图与类规格说明;集成测试使用部件图与合作图;系统测试使用用例图来验证系统的行为;验收测试由用户进行,以验证系统测试的结果就是否满足在分析阶段确定的需求。总之,标准建模语言UML适用于以面向对象技术来描述任何类型的系统,而且适用于系统开发的不同阶段,从需求规格描述直至系统完成后的测试与维护。四、 UML图形种类介绍UML从考虑系统的不同角度出发,定义了用例图、类图、对象图、状态图、活动图、序列图、协作图、构件图、部署图等9种图,按其特点可分成五大类,1、用例图;2、

12、静态图:(类图、对象图);3、行为图:(活动图、状态图);4、交互图:(顺序图、协作图);5、实现图:(构件图、部署图)。这些图从不同的侧面对系统进行描述。系统模型将这些不同的侧面综合成一致的整体,便于系统的分析与构造。1、用例图描述角色以及角色与用例之间的连接关系。说明的就是谁要使用系统,以及她们使用该系统可以做些什么。一个用例图包含了多个模型元素,如系统、参与者与用例,并且显示了这些元素之间的各种关系,如泛化、关联与依赖。2、类图类图就是描述系统中的类,以及各个类之间的关系的静态视图。能够让我们在正确编写代码以前对系统有一个全面的认识。类图就是一种模型类型,确切的说,就是一种静态模型类型。

13、3、对象图与类图极为相似,它就是类图的实例,对象图显示类的多个对象实例,而不就是实际的类。它描述的不就是类之间的关系,而就是对象之间的关系。4、活动图描述用例要求所要进行的活动,以及活动间的约束关系,有利于识别并行活动。能够演示出系统中哪些地方存在功能,以及这些功能与系统中其她组件的功能如何共同满足前面使用用例图建模的商务需求。5、状态图描述类的对象所有可能的状态,以及事件发生时状态的转移条件。可以捕获对象、子系统与系统的生命周期。她们可以告知一个对象可以拥有的状态,并且事件(如消息的接收、时间的流逝、错误、条件变为真等)会怎么随着时间的推移来影响这些状态。一个状态图应该连接到所有具有清晰的可

14、标识状态与复杂行为的类;该图可以确定类的行为,以及该行为如何根据当前的状态变化,也可以展示哪些事件将会改变类的对象的状态。状态图就是对类图的补充。6、序列图(顺序图)序列图就是用来显示您的参与者如何以一系列顺序的步骤与系统的对象交互的模型。顺序图可以用来展示对象之间就是如何进行交互的。顺序图将显示的重点放在消息序列上,即强调消息就是如何在对象之间被发送与接收的。7、协作图与序列图相似,显示对象间的动态合作关系。可以瞧成就是类图与顺序图的交集,协作图建模对象或者角色,以及它们彼此之间就是如何通信的。如果强调时间与顺序,则使用序列图;如果强调上下级关系,则选择协作图;这两种图合称为交互图。8、构件

15、图(组件图)描述代码构件的物理结构以及各种构建之间的依赖关系。用来建模软件的组件及其相互之间的关系,这些图由构件标记符与构件之间的关系构成。在组件图中,构件时软件单个组成部分,它可以就是一个文件,产品、可执行文件与脚本等。9、部署图(配置图)就是用来建模系统的物理部署。例如计算机与设备,以及它们之间就是如何连接的。部署图的使用者就是开发人员、系统集成人员与测试人员。以上图形中由于类图之间的关系相对比较复杂,所以对于类图之间的关系进行一个大致的讲解。其关系种类有关联、聚合、组合、泛化、依赖。1、泛化(Generalization)【泛化关系】:就是一种继承关系,表示一般与特殊的关系,它指定了子类

16、如何特化父类的所有特征与行为、例如:老虎就是动物的一种,即有老虎的特性也有动物的共性、【箭头指向】:带三角箭头的实线,箭头指向父类2、实现(Realization)【实现关系】:就是一种类与接口的关系,表示类就是接口所有特征与行为的实现、【箭头指向】:带三角箭头的虚线,箭头指向接口3、关联(Association)【关联关系】:就是一种拥有的关系,它使一个类知道另一个类的属性与方法;如:老师与学生,丈夫与妻子关联可以就是双向的,也可以就是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。【代码体现】:成员变量【箭头及指向】:带普通箭头(或实心三角形箭头)的实心线,指向被拥有者

17、上图中,老师与学生就是双向关联,老师有多名学生,学生也可能有多名老师。但学生与某课程间的关系为单向关联,一名学生可能要上多门课程,课程就是个抽象的东西她不拥有学生。4、聚合(Aggregation)【聚合关系】:就是整体与部分的关系,且部分可以离开整体而单独存在、如车与轮胎就是整体与部分的关系,轮胎离开车仍然可以存在、聚合关系就是关联关系的一种,就是强的关联关系;关联与聚合在语法上无法区分,必须考察具体的逻辑关系。【代码体现】:成员变量【箭头及指向】:带空心菱形的实心线,菱形指向整体5、组合(Composition)【组合关系】:就是整体与部分的关系,但部分不能离开整体而单独存在、如公司与部门

18、就是整体与部分的关系,没有公司就不存在部门、组合关系就是关联关系的一种,就是比聚合关系还要强的关系,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期【代码体现】:成员变量【箭头及指向】:带实心菱形的实线,菱形指向整体6、依赖(Dependency)【依赖关系】:就是一种使用的关系,即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖、【代码表现】:局部变量、方法的参数或者对静态方法的调用【箭头及指向】:带箭头的虚线,指向被使用者各种关系的强弱顺序:泛化=实现组合聚合关联依赖UML图形实例由于开发的项目复杂程度不一,所以在真正的开发上以上九类图形并不就是都会用上,一般

19、情况下使用频率最高的就三种图形:用例图、类图、时序图。接下来实例也只列出此三种图形实例1类图:2、用例图:、3、时序图: UML建模工具Powerdesign rose附录:2、对象图:描述一组对象之间的关系,就是具有具体属性值与行为的一个具体事物,其就是类图中所建事物实例的静态快照,其与类图的主要区别就是一个就是抽象的,而对象图就是具体的。如下图(摘自网络):协作图:5、状态图:展示了一个状态机,由状态、转换、事件与活动组成。强调事件行为的顺序。如下图(摘自网络):6、活动图:就是一种特殊的状态图,实现一个活动到另一个活动的流程。如下图(摘自网络):7、构件图与部署图:构件图展示一组构件之间的组织与依赖关系,并以全局的模型展示出来。部署图就是构件的配置及描述系统如何在硬件上部署。如下图(摘自网络):

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1