UML快速入门.docx
- 文档编号:26678924
- 上传时间:2023-06-21
- 格式:DOCX
- 页数:74
- 大小:600.70KB
UML快速入门.docx
《UML快速入门.docx》由会员分享,可在线阅读,更多相关《UML快速入门.docx(74页珍藏版)》请在冰豆网上搜索。
UML快速入门
UML快速入门引言
时间:
2012-2-1421:
12:
32 作者:
未知 来源:
网络转载 查看:
5 评论:
0
-
内容摘要:
UML是一种定义良好、易于表达、功能强大且普遍适用的建模语言。
它溶入了软件工程领域的新思想、新方法和新技术。
它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。
UML适用于以面向对象技术来描述任何类型的系统,而且适用于系统开发的不同阶段,...
UML是一种定义良好、易于表达、功能强大且普遍适用的建模语言。
它溶入了软件工程领域的新思想、新方法和新技术。
它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。
UML适用于以面向对象技术来描述任何类型的系统,而且适用于系统开发的不同阶段,从需求规格描述直至系统完成后的测试和维护。
目前,在多数大型企业的正规化开发流程中,开发人员普遍使用UML进行模型的建立。
作为一名软件开发人员,我们必须学会UML。
不理解UML,作为软件设计统一王国的国民,将是艰难而痛苦的。
上一篇:
UML快速入门1为什么要用UML建模-建模的重要性
下一篇:
没有了
UML快速入门1为什么要用UML建模-建模的重要性
时间:
2012-2-1421:
13:
01 作者:
未知 来源:
网络转载 查看:
3 评论:
0
-
内容摘要:
一、建模的重要性为什么要用UML建模之建模的重要性2006-07-03 08:
00作者:
蒋涛出处:
CSDN责任编辑:
方舟 如果想搭一个狗窝,备好木料、钉子和一些基本工具(如锤子...
一、建模的重要性
为什么要用UML建模之建模的重要性
2006-07-0308:
00作者:
蒋涛出处:
CSDN责任编辑:
方舟
如果想搭一个狗窝,备好木料、钉子和一些基本工具(如锤子、锯和卷尺)之后,就可以开始工作了。
从制定一点初步计划到完成一个满足适当功能的狗窝,可能不用别人帮助,在几个小时内就能够实现。
只要狗窝够大且不太漏水,狗就可以安居。
如果未能达到希望的效果,返工总是可以的,无非是让狗受点委屈。
如果想为家庭建造一所房子,备好木料、钉子和一些基本工具之后,也能开始工作,但这将需要较长的时间,并且家庭对于房子的需求肯定比狗对于狗窝的需求要多。
在这种情况下,除非曾经多次建造过房子,否则就需要事先制定出一些详细的计划,再开始动工,才能够成功。
至少应该绘制一些表明房子是什么样子的简图。
如果想建造一所能满足家庭的需要并符合当地建筑规范的合格房屋,就需要画一些建筑图,以便能想清楚房间的使用目的以及照明、取暖和水管装置的实际细节问题。
做出这些计划后,就能对这项工作所需的时间和物料做出合理的估计。
尽管自己也可能建造出这样的房屋,但若有其他人协作,并将工程中的许多关键部分转包出去或购买预制的材料,效率就会高得多。
只要按计划行事,不超出时间和财务的预算,家庭多半会对这新房感到满意。
如果不制定计划,新房就不会完全令人满意。
因此,最好在早期就制定计划,并谨慎地处理好所发生的变化。
如果你要建造一座高层办公大厦,若还是先备好木料、钉子和一些基本工具就开始工作,那将是非常愚蠢的。
因为你所使用的资金可能是别人的,他们会对建筑物的规模、形状和风格做出要求。
同时,他们经常会改变想法,甚至是在工程已经开工之后。
由于失败的代价太高了,因此必须要做详尽的计划。
负责建筑物设计和施工的是一个庞大的组织机构,你只是其中的一部分。
这个组织将需要各种各样的设计图和模型,以供各方相互沟通。
只要得到了合适的人员和工具,并对把建筑概念转换为实际建筑的过程进行积极的管理,将会建成这座满足使用要求的大厦。
如果想继续从事建筑工作,那么一定要在使用要求和实际的建筑技术之间做好平衡,并且处理好建筑团队成员们的休息问题,既不能把他们置于风险之中,也不能驱使他们过分辛苦地工作以至于精疲力尽。
奇怪的是,很多软件开发组织开始想建造一座大厦式的软件,而在动手处理时却好像他们正在仓促地造一个狗窝。
有时你是幸运的。
如果在恰当的时间有足够的合适人员,并且其他一切事情都很如意,你的团队有可能(仅是可能)推出一个令用户眼花缭乱的软件产品。
然而,一般的情况下,不可能所有人员都合适(合适的人员经常供不应求),时间并不总是恰当的(昨天总是更好),其他的事情也并不尽如人意(常常由不得自己)。
现在对软件开发的要求正在日益增加,而开发团队却还是经常单纯地依靠他们唯一真正知道如何做好的一件事——编写程序代码。
英雄式的编程工作成为这一行业的传奇,人们似乎经常认为更努力地工作是面对开发中出现的各种危机的正常反应。
然而,这未必能产生正确的程序代码,而且一些项目是非常巨大的,无论怎样延长工作时间,也不足以完成所需的工作。
如果真正想建造一个相当于房子或大厦类的软件系统,问题可不是仅仅编写许多软件。
事实上,关键是要编出正确的软件,并考虑如何少写软件。
要生产合格的软件就要有一套关于体系结构、过程和工具的规范。
即使如此,很多项目开始看起来像狗窝,但随后发展得像大厦,原因很简单,它们是自己成就的牺牲品。
如果对体系结构、过程或工具的规范没有作任何考虑,总有一天狗窝会膨胀成大厦,并会由于其自身的重量而倒塌。
狗窝的倒塌可能使你的狗恼怒;同理,不成功的大厦则将对大厦的租户造成严重的影响。
不成功的软件项目失败的原因各不相同,而所有成功的项目在很多方面都是相似的。
成功的软件组织有很多成功的因素,其中共同的一点就是对建模的采用。
建模是一项经过检验并被广为接受的工程技术。
建立房屋和大厦的建筑模型,能帮助用户得到实际建筑物的印象,甚至可以建立数学模型来分析大风或地震对建筑物造成的影响。
建模不只适用于建筑业。
如果不首先构造模型(从计算机模型到物理风洞模型,再到与实物大小一样的原型),就装配新型的飞机或汽车,那简直是难以想像的。
新型的电气设备(从微处理器到电话交换系统)需要一定程度的建模,以便更好地理解系统并与他人交流思想。
在电影业,情节串联板是产品的核心,这也是建模的一种形式。
在社会学、经济学和商业管理领域也需要建模,以证实人们?
?
的理论或用最小限度的风险和代价试验新的理论。
那么,模型是什么?
简单地说:
模型是对现实的简化。
模型提供了系统的蓝图。
模型既可以包括详细的计划,也可以包括从很高的层次考虑系统的总体计划。
一个好的模型包括那些有广泛影响的主要元素,而忽略那些与给定的抽象水平不相关的次要元素。
每个系统都可以从不同的方面用不同的模型来描述,因而每个模型都是一个在语义上闭合的系统抽象。
模型可以是结构性的,强调系统的组织。
它也可以是行为性的,强调系统的动态方面。
为什么要建模?
一个基本理由是:
建模是为了能够更好地理解正在开发的系统。
通过建模,要达到4个目的:
(1)模型有助于按照实际情况或按照所需要的样式对系统进行可视化。
(2)模型能够规约系统的结构或行为。
(3)模型给出了指导构造系统的模板。
(4)模型对做出的决策进行文档化。
【第2章讨论UML如何完成这4件事情。
】
建模并不只是针对大的系统。
甚至像狗窝那样的软件也能从一些建模中受益。
然而,可以明确地讲,系统越大、越复杂,建模的重要性就越大,一个很简单的原因是:
因为不能完整地理解一个复杂的系统,所以要对它建模。
人对复杂问题的理解能力是有限的。
通过建模,缩小所研究问题的范围,一次只着重研究它的一个方面,这就是EdsgerDijkstra几年前讲的“分而治之”的基本方法,即把一个困难问题划分成一系列能够解决的小问题;解决了这些小问题也就解决了这个难题。
此外,通过建模可以增强人的智力。
一个适当选择的模型可以使建模人员在较高的抽象层次上工作。
任何情况下都应该建模的说法并没有落到实处。
事实上,一些研究指出,大多数软件组织没有做正规的建模,即使做了也很少。
按项目的复杂性划分一下建模的使用情况,将会发现:
项目越简单,采用正规建模的就越少。
这里强调的是“正规”这个词。
实际上,开发者甚至对非常简单的项目也要做一些建模工作,虽然很不正规。
开发者可能在一块黑板上或一小片纸上勾画出他的想法,以对部分系统进行可视化表示,或者开发组可能使用CRC卡片描述一个场景或某种机制的设计。
使用任何一种这样的模型都没有什么错。
如果它能行得通,就可以使用。
然而,这些非正规的模型经常是太随意了,它没有提供一种容易让他人理解的共同语言。
建筑业、电机工程业和数学建模都有通用的建模语言,在软件开发中使用一种共同的建模语言进行软件建模也能使开发组织获益匪浅。
每个项目都能从一些建模中受益。
即使在一次性的软件开发中——由于可视化编程语言的支持,可以轻而易举地扔掉不适合的软件。
建模也能帮助开发组更好地对系统计划进行可视化,并帮助他们正确地进行构造,使开发工作进展得更快。
如果根本不建模,项目越复杂,就越有可能失败或者构造出错误的东西。
所有实用系统都有一个自然趋势:
随着时间的推移变得越来越复杂。
虽然今天可能认为不需要建模,但随着系统的演化,终将会对这个决定感到后悔,但那时为时已晚
上一篇:
UML快速入门1为什么要用UML建模-建模原理
下一篇:
UML快速入门引言
UML快速入门1为什么要用UML建模-建模原理
时间:
2012-2-1421:
13:
33 作者:
未知 来源:
网络转载 查看:
2 评论:
0
-
内容摘要:
二、建模原理为什么要用UML建模之建模原理2006-07-04 04:
00作者:
蒋涛出处:
csdn责任编辑:
方舟 各种工程学科都有其丰富的建模运用历史。
这些经验形成了建模的四项...
二、建模原理
为什么要用UML建模之建模原理
2006-07-0404:
00作者:
蒋涛出处:
csdn责任编辑:
方舟
各种工程学科都有其丰富的建模运用历史。
这些经验形成了建模的四项基本原理,现分别叙述如下。
第一,选择要创建什么模型,对如何动手解决问题和如何形成解决方案有着意义深远的影响。
换句话说,就是要好好地选择模型。
正确的模型将清楚地表明最棘手的开发问题,提供不能轻易地从别处获得的洞察力;错误的模型将使人误入歧途,把精力花在不相关的问题上。
暂时先把软件问题放在一边,假设现在正试图解决量子物理学上的一个问题。
诸如光子在时空中的相互作用问题,其中充满了令人惊奇的难解的数学问题。
选择一个不同的模型,所有的复杂问题一下子就变得可行了(虽然不容易解决)。
在这个领域中,这恰恰是Feynmann图的价值,它提供了对非常复杂问题的图形表示。
类似地,在一个完全不同的领域里,假设正在建造一座新建筑,将会关心疾风对它的影响。
如果建立了一个物理模型,并拿到风洞中去实验,虽然小模型没有精确地反映出大的实物,但也可以从中找出一些有趣的东西。
因此,如果正在建立一个数学模型,然后去模拟,将知道一些不同的东西;与使用物理模型相比,也可能获得更多新的场景。
通过对模型进行严格的持续的实验,将更信任已经建模的系统,事实上,它在现实世界中将像期望的那样工作得很好。
对于软件而言,所选择的模型将在很大程度上影响对领域的看法。
如果以数据库开发者的观点建造一个系统,可能会注意实体—联系模型,该模型把行为放入触发器和存储过程中。
如果以结构化开发者的观点建造一个系统,可能得到以算法为中心的模型,其中包含从处理到处理的数据流。
如果以面向对象开发者的观点建造一个系统,将可能得到这样一个系统:
它的体系结构以一组类和交互模式(指出类如何一起工作)为中心。
可执行的模型对测试有很大帮助。
上述的任何一种方法对于给定的应用系统和开发文化都可能是正确的,经验表明,在构建有弹力的体系结构中面向对象的方法表现得更为出众,即使对使用大型数据库或计算单元的系统也是如此。
尽管事实如此,但要强调一点,不同的方法将导致不同种类的系统,并且代价和收益也是不同的。
第二,可以在不同的精度级别上表示每一种模型。
如果正在建造一座大厦,有时需要从宏观上让投资者看到大厦的样子,感觉到大厦的总体效果。
而有时又需要认真考虑细节问题,例如,对复杂棘手的管道的铺设,或对少见的结构件的安装等。
对于软件模型也是如此。
有时一个快速简洁且是可执行的用户界面模型正是所需要的,而有时必须耐着性子对付比特,例如,描述跨系统接口或解决网络瓶颈问题就是如此。
在任何情况下,最好的模型应该是这样的:
它可以让你根据谁在进行观察以及为什么要观察选择它的详细程度。
分析人员或最终用户主要考虑“做什么”的问题,开发人员主要考虑“怎样做”的问题。
这些人员都要在不同的时间以不同的详细程度对系统进行可视化。
第三,最好的模型是与现实相联系的。
如果建筑的物理模型不能以与真实的建筑相同的方式做出反应,则它的价值是很有限的;飞机的数学模型,如果只是假定了理想条件和完美制造,则可能掩盖真实飞机的一些潜在的、致命的现实特征。
最好是有能够清晰地联系实际的模型,而当联系很薄弱时能够精确地知道这些模型怎样与现实脱节。
所有的模型都对现实进行了简化;但有一点要记住,关键是简化不要掩盖掉任何重要的细节。
软件领域中结构化分析的致命弱点是在分析模型和系统设计模型之间没有基本的联系。
随着时间的推移,这个不可填充的裂缝会使系统构思阶段和实施阶段出现不一致。
在面向对象的系统中,可以把各个几乎独立的系统视图连结成一个完整的语义整体。
第四,单个模型或视图是不充分的。
对每个重要的系统最好用一小组几乎独立的模型从多个视角去逼近。
如果正在建造一所建筑物,会发现没有任何一套单项设计图能够描述该建筑的所有细节。
至少需要楼层平面图、立面图、电气设计图、采暖设计图和管道设计图。
并且,在任何种类的模型中都需要从多视角来把握系统的范围(例如不同楼层的蓝图)。
在这里的重要短语是“几乎独立的”。
在这个语境中,它意味着各种模型能够被分别进行研究和构造,但它们仍然是相互联系的。
如同建造建筑物一样,既能够单独地研究电气设计图,但也能看到它如何映射到楼层平面图中,以及它与管道设计图中的管子排布的相互影响。
面向对象的软件系统也如此。
为了理解系统的体系结构,需要几个互补和连锁的视图:
用况视图(揭示系统的需求)、设计视图(捕获问题空间和解空间里的词汇)、交互视图(展示系统各部分之间以及系统与环境之间的联系)、实现视图(描述系统的物理实现)和部署视图(着眼于系统的工程问题)。
每一种视图都可能有结构方面和行为方面。
这些视图一起从整体上描绘了软件蓝图。
根据系统的性质,一些模型可能比另一些模型要重要。
例如,对于数据密集型系统,表达静态设计视图的模型将占主导地位;对于图形用户界面密集型系统,静态和动态的用况视图就显得相当重要;在硬实时系统中,动态进程视图尤为重要;最后,在分布式系统中,例如Web密集型的应用,实现模型和部署模型是最重要的。
上一篇:
UML快速入门1为什么要用UML建模-面向对象建模
下一篇:
UML快速入门1为什么要用UML建模-建模的重要性
UML快速入门1为什么要用UML建模-面向对象建模
时间:
2012-2-1421:
14:
39 作者:
未知 来源:
网络转载 查看:
2 评论:
0
-
内容摘要:
三、面向对象建模为什么要用UML建模之面向对象建模2006-07-04 10:
52作者:
蒋涛出处:
CSDN责任编辑:
方舟 土木工程师构造了很多种模型。
通常这些模型能帮助人们可视...
三、面向对象建模
为什么要用UML建模之面向对象建模
2006-07-0410:
52作者:
蒋涛出处:
CSDN责任编辑:
方舟
土木工程师构造了很多种模型。
通常这些模型能帮助人们可视化并说明系统的各部分以及这些部分之间的相互关系。
根据业务或工程中所着重关心的内容(例如为了帮助研究地震时的结构行为)工程师也可以建立动态模型。
各种模型的组织是不同的,各有自己的侧重点。
对于软件,有几种建模的方法。
最普通的两种方法是从算法的角度建模和从面向对象的角度建模。
传统的软件开发是从算法的角度进行建模。
按照这种方法,所有的软件都用过程或函数作为其主要构造块。
这种观点导致开发人员把精力集中于控制流程和对大的算法进行分解。
这种观点除了倾向于产生脆弱的系统之外没有其他本质上的害处。
当需求发生变化(总会变化的)以及系统增长(总会增长的)时,用这种方法建造的系统就会变得很难维护。
现代的软件开发采用面向对象的观点进行建模。
按照这种方法,所有软件系统都用对象或类作为其主要构造块。
简单地讲,对象通常是从问题空间或解空间的词汇中抽取出来的东西;类是对具有共同性质的一组对象(从建模者的视角)的描述。
每一个对象都有标识(能够对它命名,以区别于其他对象)、状态(通常有一些数据与它相联系)和行为(能对该对象做某些事,它也能为其他对象做某些事)。
例如,可考虑把一个简单的计账系统的体系结构分成3层:
用户界面层、业务服务层和数据库层。
在用户界面层,将找出一些具体的对象,如按钮、菜单和对话框。
在数据库层,将找出一些具体的对象,例如描述来自问题域实体的表,包括顾客、产品和订单等。
在中间层,将找出诸如交易、业务规则等对象,以及顾客、产品和订单等问题实体的高层视图。
可以肯定地说,面向对象方法是软件开发方法的主流部分,其原因很简单,因为事实已经证明,它适合于在各种问题域中建造各种规模和复杂度的系统。
此外,当前的大多数程序语言、操作系统和工具在一定的方式上都是面向对象的,并给出更多按对象来观察世界的理由。
面向对象的开发为使用构件技术(如J2EE或.NET)装配系统提供了概念基础。
选择以面向对象的方式观察世界,会产生一系列的问题:
什么是好的面向对象的体系结构?
项目会创造出什么样的制品?
谁创造它们?
怎样度量它们?
对面向对象系统进行可视化、详述、构造和文档化正是统一建模语言(UML)的目的。
上一篇:
UML快速入门2UML基础讲座-第一讲:
基本慨念
下一篇:
UML快速入门1为什么要用UML建模-建模原理
UML快速入门2UML基础讲座-第一讲:
基本慨念
时间:
2012-2-1421:
14:
54 作者:
未知 来源:
网络转载 查看:
3 评论:
0
-
内容摘要:
统一建模语言UML轻松入门之基本概念2006-06-10 07:
00作者:
宋宝华出处:
天极软件责任编辑:
方舟 20 世纪80 年代,随着面向对象技术成为研究的热点,先后出...
统一建模语言UML轻松入门之基本概念
2006-06-1007:
00作者:
宋宝华出处:
天极软件责任编辑:
方舟
20世纪80年代,随着面向对象技术成为研究的热点,先后出现了几十种面向对象的软件开发方法。
其中,Booch、OMT和OOSE等方法得到了广泛的认可。
然而,采用不同方法进行建模不利于开发者之间的交流。
而UML则统一了Booch、OMT和OOSE的表示方法,而且对其作了进一步的发展。
1997年,UML被国际对象组织OMG采纳为面向对象的建模语言的国际标准,它溶入了软件工程领域的新思想、新方法和新技术。
UML不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。
数年来,UML凭借其简洁明晰的表达方式、超凡脱俗的表达能力,一路杀将出来,为业界所广泛认同!
目前,在多数大型企业的正规化开发流程中,开发人员普遍使用UML进行模型的建立。
作为一名软件开发人员,我们必须学会UML。
因为UML就是那个统一的"文字",统一的"度"、"量"、"衡",不理解UML,作为软件设计统一王国的国民,将是艰难而痛苦的。
作曲家会将其脑袋中的旋律谱成乐曲,建筑师会将其设计的建筑物画成蓝图,这些乐曲、蓝图就是模型(Model),而建构这些模型的过程就称为建模(Modeling)。
软件开发如同音乐谱曲及建筑设计,其过程中也必须将需求、分析、设计、实现、布署等各项工作流程的构想与结果予以呈现,这就是软件系统的建模。
那么为什么要建模呢?
经典答案是:
建立大厦和建立狗窝的区别是建设狗窝不需要设计,要生产合格的软件就要有一套关于体系结构、过程和工具的规范。
OMG官方发布的UML的当前最高版本为2.0,可以从http:
//www.uml.org/上下载。
UML由图和元模型组成,图是语法,元模型是语义。
UML主要包括三个基本构造块:
事物(Things)、关系(Relationships)和图(Diagrams)。
本次连载我们将对UML的这些基本组成部分及UML工具和应用进行介绍,使读者对UML形成初步的整体印象。
在其后的几次连载里,再以数个实例对这些内容逐步展开。
1.1UML的基本构造块
1.1.1事物
事物是是实体抽象化的最终结果,是模型中的基本成员,UML中包含结构事物、行为事物、分组事物和注释事物。
(1)结构事物(Structuralthings)
结构事物是模型中的静态部分,用以呈现概念或实体的表现元素,是软件建模中最常见的元素,共有以下七种:
类(Class):
类是指具有相同属性、方法、关系和语义的对象的集合;
接口(Interface):
接口是指类或组件所提供的服务(操作),描述了类或组件对外可见的动作;
协作(Collaboration):
协作描述合作完成某个特定任务的一组类及其关联的集合,用于对使用情形的实现建模;
用例(UseCase):
用例定义了执行者(在系统外部和系统交互的人)和被考虑的系统之间的交互来实现的一个业务目标;
活动类(ActiveClass):
活动类的对象有一个或多个进程或线程。
活动类和类很相象,只是它的对象代表的元素的行为和其他的元素是同时存在的;
组件(Component):
组件是物理的、可替换的部分,包含接口的集合,例如COM+、JAVABEANS等;
结点(Node):
结点是系统在运行时存在的物理元素,代表一个可计算的资源,通常占用一些内存和具有处理能力。
(2)行为事物(Behavioralthings)
行为事物指的是UML模型中的动态部分,代表语句里的"动词",表示模型里随着时空不断变化的部分,包含两类:
交互(ineraction):
交互是由一组对象之间在特定上下文中,为达到特定的目的而进行的一系列消息交换而组成的动作;
状态机(statemachine):
状态机由一系列对象的状态组成。
(3)分组事物(Groupingthings)
可以把分组事物看成是一个"盒子",模型可以在其中被分解。
目前只有一种分组事物,即包(package)。
结构事物、动作事物甚至分组事物都有可能放在一个包中。
包纯粹是概念上的,只存在于开发阶段,而组件在运行时存在。
(4)注释事物(Annotationalthings)
注释事物是UML模型的解释部分。
1.1.2关系
关系是将事物联系在一起的方式,UML中定义了四种关系:
(1)依赖(Dependencies):
两个事物之间的语义关系,其中一个事物发生变化会影响另一个事物的语义;
(2)关联(Association):
一种描述一组对象之间连接的结构关系,如聚合关系(描述了整体和部分间的结构关系);
(3)泛化(Generalization):
一种一般化-特殊化的关系;
(4)实现(Realization):
类之间的语义关系,其中的一个类指定了由另一个类保
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- UML 快速 入门