uml是啥?? 用处大吗??

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了uml是啥?? 用处大吗??相关的知识,希望对你有一定的参考价值。

统一建模语言UML

软件工程领域在1995年至1997年取得了前所未有的进展,其成果超过软件工程领域过去15年来的成就总和。其中最重要的、具有划时代重大意义的成果之一就是统一建模语言(UML:Unified Modeling Language)的出现。

在世界范围内,至少在近10年内,UML将是面向对象技术领域内占主导地位的标准建模语言。采用UML作为我国统一的建模语言是完全必要的:首先,过去数十种面向对象的建模语言都是相互独立的,而UML可以消除一些潜在的不必要的差异,以免用户混淆;其次,通过统一语义和符号表示,能够稳定我国的面向对象技术市场,使项目根植于一个成熟的标准建模语言,从而可以大大拓宽所研制与开发的软件系统的适用范围,并大大提高其灵活程度。

统一建模语言(UML)是用来对软件密集系统进行描述、构造、视化和文档编制的一种语言。

首先,也是最重要的一点,统一建模语言融合了Booch、OMT和OOSE方法中的概念,它是可以被上述及其他方法的使用者广泛采用的一门简单、一致、通用的建模语言。

其次,统一建模语言扩展了现有方法的应用范围。特别值得一提的是,UML的开发者们把并行分布式系统的建模作为UML的设计目标,也就是说,UML具有处理这类问题的能力。

第三,统一建模语言是标准的建模语言,而不是一个标准的开发流程。虽然UML的应用必然以系统的开发流程为背景,但根据我们的经验,不同的组织,不同的应用领域需要不同的开发过程。举个例子来说,开发错综复杂的软件是非常有趣的工作,但开发这种软件与构造严格实时的航空电子系统是大不一样的,后者是性命攸关的大事。因此我们首先把精力集中在设计通用的元模型上(统一不同方法的语义),其次是建立通用的表示法(提供对这些语义的形象化的表达)。虽然UML的开发者们将继续倡导从用例驱动到体系结构为中心最后反复改进、不断添加的软件开发过程,但实际上设计标准的开发流程并不是非常必要的。

UML是一种定义良好、易于表达、功能强大且普遍适用的建模语言。它溶入了软件工程领域的新思想、新方法和新技术。它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。

面向对象技术和UML的发展过程可用上图来表示,标准建模语言的出现是其重要成果。在美国,截止1996年10月,UML获得了工业界、科技界和应用界的广泛支持,已有700多个公司表示支持采用UML作为建模语言。1996年底,UML已稳占面向对象技术市场的85%,成为可视化建模语言事实上的工业标准。1997年11月17日,OMG采纳UML 1.1作为基于面向对象技术的标准建模语言。UML代表了面向对象方法的软件开发技术的发展方向,具有巨大的市场前景,也具有重大的经济价值和国防价值。

标准建模语言UML的内容

首先,UML融合了Booch、OMT和OOSE方法中的基本概念,而且这些基本概念与其他面向对象技术中的基本概念大多相同,因而,UML必然成为这些方法以及其他方法的使用者乐于采用的一种简单一致的建模语言;其次,UML不仅仅是上述方法的简单汇合,而是在这些方法的基础上广泛征求意见,集众家之长,几经修改而完成的,UML扩展了现有方法的应用范围;第三,UML是标准的建模语言,而不是标准的开发过程。尽管UML的应用必然以系统的开发过程为背景,但由于不同的组织和不同的应用领域,需要采取不同的开发过程。

作为一种建模语言,UML的定义包括UML语义和UML表示法两个部分。

(1) UML语义 描述基于UML的精确元模型定义。元模型为UML的所有元素在语法和语义上提供了简单、一致、通用的定义性说明,使开发者能在语义上取得一致,消除了因人而异的最佳表达方法所造成的影响。此外UML还支持对元模型的扩展定义。

(2) UML表示法 定义UML符号的表示法,为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准。这些图形符号和文字所表达的是应用级的模型,在语义上它是UML元模型的实例。

标准建模语言UML的重要内容可以由下列五类图(共9种图形)来定义:

·第一类是用例图,从用户角度描述系统功能,并指出各功能的操作者。

·第二类是静态图(Static diagram),包括类图、对象图和包图。其中类图描述系统中类的静态结构。不仅定义系统中的类,表示类之间的联系如关联、依赖、聚合等,也包括类的内部结构(类的属性和操作)。类图描述的是一种静态关系,在系统的整个生命周期都是有效的。对象图是类图的实例,几乎使用与类图完全相同的标识。他们的不同点在于对象图显示类的多个对象实例,而不是实际的类。一个对象图是类图的一个实例。由于对象存在生命周期,因此对象图只能在系统某一时间段存在。包由包或类组成,表示包与包之间的关系。包图用于描述系统的分层结构。

·第三类是行为图(Behavior diagram),描述系统的动态模型和组成对象间的交互关系。其中状态图描述类的对象所有可能的状态以及事件发生时状态的转移条件。通常,状态图是对类图的补充。在实用上并不需要为所有的类画状态图,仅为那些有多个状态其行为受外界环境的影响并且发生改变的类画状态图。而活动图描述满足用例要求所要进行的活动以及活动间的约束关系,有利于识别并行活动。

·第四类是交互图(Interactive diagram),描述对象间的交互关系。其中顺序图显示对象之间的动态合作关系,它强调对象之间消息发送的顺序,同时显示对象之间的交互;合作图描述对象间的协作关系,合作图跟顺序图相似,显示对象间的动态合作关系。除显示信息交换外,合作图还显示对象以及它们之间的关系。如果强调时间和顺序,则使用顺序图;如果强调上下级关系,则选择合作图。这两种图合称为交互图。

·第五类是实现图( Implementation diagram )。其中构件图描述代码部件的物理结构及各部件之间的依赖关系。一个部件可能是一个资源代码部件、一个二进制部件或一个可执行部件。它包含逻辑类或实现类的有关信息。部件图有助于分析和理解部件之间的相互影响程度。

配置图定义系统中软硬件的物理体系结构。它可以显示实际的计算机和设备(用节点表示)以及它们之间的连接关系,也可显示连接的类型及部件之间的依赖性。在节点内部,放置可执行部件和对象以显示节点跟可执行软件单元的对应关系。

从应用的角度看,当采用面向对象技术设计系统时,首先是描述需求;其次根据需求建立系统的静态模型,以构造系统的结构;第三步是描述系统的行为。其中在第一步与第二步中所建立的模型都是静态的,包括用例图、类图(包含包)、对象图、组件图和配置图等五个图形,是标准建模语言UML的静态建模机制。其中第三步中所建立的模型或者可以执行,或者表示执行时的时序状态或交互关系。它包括状态图、活动图、顺序图和合作图等四个图形,是标准建模语言UML的动态建模机制。因此,标准建模语言UML的主要内容也可以归纳为静态建模机制和动态建模机制两大类。
参考技术A 这个吗。还是很方便的啊。不过你首先要精通面向对象思想
然后在uml建模的时候才会有感觉。
UML
统一建模语言(UML是 Unified Modeling Language的缩写)是用来对软件密集系统进行可视化建模的一种语言。UML为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言。

统一建模语言 (UML)是非专利的第三代建模和规约语言。 UML是在开发阶段,说明,可视化,构建和书写一个面向对象软件密集系统的制品的开放方法。UML展现了一系列最佳工程实践,这些最佳实践在对大规模,复杂系统进行建模方面,特别是在软件架构层次已经被验证有效。

UML可以贯穿软件开发周期中的每一个阶段。被OMG采纳作为业界的标准。

UML最适于数据建模,业务建模,对象建模,组件建模。

UML作为一种模型语言,它使开发人员专注于建立产品的模型和结构,而不是选用什么程序语言和算法实现。当模型建立之后,模型可以被UML工具转化成指定的程序语言代码。

IBM的Rational Rose和MS的Visio都是UML工具。

【超线程用处大吗】;‘;

【超线程用处大吗】

我一个朋友给我一个 CPU是 P4 2.40G的 超线程的

我家里也有一个 P4 .2.40G 但不是超线程的 区别大吗?

超线程的作用明显吗?

“超线程”(HyperthreadingTechnology)技术是通过采用特殊的硬件指令,可以把两个逻辑内核模拟成两个物理超线程芯片,在单处理器中实现线程级的并行计算,同时大幅提高运行效能,从而实现在单处理器上模拟双处理器的效能。
如果我们CPU将一件工作,分成10份,由10个人来分别完成,只有10个人全完成了,这个工作才算全完成,可以理解为10跳流水线共同完成完这项工作的所有部分,CPU才可以进行下一件工作。
一件工作分得越细致,需要的人越多,流水线就越长,效率(CPU频率)越高,就像工厂里的生产线一样。然而可能分给每个人(每条流水线)的任务不尽相同,有的先完成了,有的后完成了,先完成的必须等待后完成的做完了才可以进行CPU下一工作。
这样就造成了空闲。流水线做的越长(工作分得越细致、共同完成这个工作的人越多)这种情况越严重。因此超线程技术就诞生了,超线程技术实际上是虚拟一个CPU,让已经完成自己任务的,进入等待状态的流水线(那个分配的任务比较轻的,干活比较快的人),提前进行下一任务。理论上这样可以提高效率。
参考技术A 一、线程的定义

程序是一组编译代码,可以执行相关的数据计算与操作,这些代码由一条条的指令组成,每一个代码组就是一条线程。在电脑中,无论做任何操作,都需要动用到线程,即使按一按键盘,电脑响应输入信号,也有相关的指令在运行。

现有主流电脑使用x86架构,每次只能执行一条线程,即单线程系统。单芯片计算环境中,在执行指令的时候,CPU先找出相应指令所在的内存位置,执行下一条指令,再转换到另一个位置,在同一时间内CPU只能对应一个指令。线程可以中断,并把中间结果暂存在另一个特殊位置(堆栈),不同的线程可以交叉运行,实现多任务,但每次运行的线程仍然仅有一条,千万不要把多任务和多线程混淆了。

既然一个CPU是多线程,那么两个CPU自然就可以双线程啦,如此类推,就会出现四路、八路系统。多CPU系统有利也有弊,利处是整体性能提升,弊处也有很多:

一,价格昂贵,无论是CPU还是主板,都必须是特殊的产品,很难用普通销售的单CPU组成多处理器系统,必须购买专用的MP类型芯片;

二、资源共享,多个处理器抢占总线带宽,普通的主板带宽无法应付,必须用带宽增加的主板。某些产品甚至共享CPU的总线,对处理器的速度造成很大影响;

三、支持较少,一般的操作系统和应用软件按照单线程来设计,多线程系统需要专门的版本。总总限制,压抑了多处理器的速度提升幅度,双处理器系统的性能并不能达到单处理器的两倍,通常只有33%的性能增益。很明显,单物理CPU的工作效率低下,在多处理器中表现更明显。为了提高多处理器的性能,必须先从单处理器做起。

超线程是一种特殊的多线程技术,它可以充分利用CPU的效率,发挥单个物理CPU的潜力。它不是代替多处理器,而是为了让多处理器的实力发挥得更加完美。

二、CPU工作效率 CPU由许多部分组成,新型芯片通常有多个执行单元,这些执行单元无法同时工作,大多数时间有一半执行单元是空闲状态。Office等商业软件使用整数运算和读写/存储单元,不涉及浮点运算单元,3D渲染软件使用浮点运算单元,不涉及整数运算单元,很明显,此种设计做成很大的浪费。如奔腾四有7个执行单元,每个时钟周期内,约有两个执行单元工作,它们共执行2次操作,那么,其它五个单元完全没有用到。若是认为奔腾四较复杂,可以换成一个简单的例子。假设一个虚拟CPU,有整数运算、浮点运算、读写/存储三个单元,每个时钟周期进行一次操作,3个单元都接到各自的任务。指令如下:

1+1

10+1 难怪英特尔说IA-32的x86指令,无法发挥奔腾四的威力,效率只有35%。三个执行单元的CPU已经如此,更不要提7个执行单元的奔腾四,其中有多少运算时间被浪费了。

为了解决这个问题,高端电脑采用了ILP(Instruction Level Parallelism,指令级平行运算)技术,可以同时执行多条指令,提高单CPU的效率。然而,x86架构限于设计的复杂性,无法加入如此高难度的算法,只好从硬件上解决问题,采用TLP(Thread-Level Parallelism,线程级并行),让多个CPU来执行不同的线程。虽然软件花费较ILP为少,硬件花费又增加了,双方扯平,人们必须重新想办法。

三、超线程 软件不行硬件补,是业界发展的规律,反之亦然。一般情况下,厂商采用增加工作频率和缓存容量的方法来提升速度,这是治标不治本的方法,CPU只提高了全面速度,其内在潜力依然未能完全发挥。既然CPU的执行单元没有被充分利用,就针对这一方面下手,暂时不理会如何突破总线和内存的带宽,加入两个逻辑处理单元,同时操纵CPU的全部资源,直接提高CPU内核的工作效率。在很早之前,Alpha已经引入了这种概念,称为SMT(Simultaneous multithreading,同步多线程),利用特殊的硬件指令,把两个逻辑内核模拟成两个物理芯片,从而兼容多线程操作系统和软件。

英特尔的HTT(Hyper-Threading Technology,超级线程技术)研发代码为Jackson,是SMT的改良型。软件的多个线程可以同时运行于一个处理器上,复制每个处理器上的体系结构状态(即逻辑处理器),共享一组处理器执行资源。体系结构状态指跟踪程序或线程的流动,HTT芯片有两个体系结构状态,执行资源是处理器上完成加、乘、负载等操作的单元,HTT芯片与传统CPU相同,只有一个执行资源。

在旧式结构中,执行资源的控制是由一个体系结构状态来完成,内存的速度比CPU慢,不能及时发送信息给CPU,CPU有时难免要处于等待状态,浪费了执行资源的工作时间。如果有两个体系结构状态,当第一个体系结构状态在等待数据的时候,由第二个体系结构状态来进行其它工作,充分利用执行资源。在没有增加执行单元数目的前提下,也能提高工作效率。 虽然逻辑处理器有独立的寄存器,可以同时进行获取、解码操作,不过,从实用角度来说,这种工作太复杂了,与其同时获取、解码两个线程的指令,不如轮流获取、解码两个线程的指令,再同时执行,那么,每个执行单元都能充分发挥其功效,整体效率将有所提升,实际值达到30%之多,真是项激动人心的技术。

如果把两个HTT芯片再组成双处理器系统,性能同样会得到增加。操作系统把它们认为是4个逻辑处理器,为其分配不同的线程,单个物理CPU的利用率提升,作用于双处理器上,等于性能增益再次加倍。

现有的奔腾四、至强都拥有HTT技术,只须在主板BIOS中打开即可,当然,只有工作站和服务器主板拥有这种能力,台式机的主板现时无法做到。这并非英特尔为了商业销售而做出的策略,而是超线程本身的问题,它只适合不同操作的并行运算,相同操作的并行运算增益很少。回到上面的例子,现在两个线程争用资源,效率的提升会极有限,尽管不至于性能倒退,也是够悲惨的啦。因此,相同类型指令的并行运算在HTT中行不通,只有不同类型指令的交叉执行,效率才有大幅度提升。我们必须清楚地知道,HTT让每个处理器的资源利用率都得到大幅度提高,而提高程度要视每个应用使用线程的方式和处理器内的资源而定。

台式机的软件通常是多种重复工作,如文字处理和媒体播放,都是一系列类似指令组成的。由于超线程中存在线程冲突,有10%的性能增益已经算不错了。至于工作站系统,3D实时渲染和媒体处理,同样使用类似指令,性能增益约为15%。只有多种操作同时执行的服务器芯片,不同的线程可以并行使用不同资源,比如:给一个逻辑处理器上安排整数计算密集型任务, 而在另一个服务器上运行浮点计算,可以减少冲突现象,大大提高性能。

为了充分发挥超线程的用处,不浪费奔腾四里面的HTT内核,可以利用双重ALU(Arithmetic Logic Unit,算术逻辑单元)。奔腾四里面就有两个运算器,分别执行指令,就能实现双线程。不过,采用两个ALU,成本又会增加,现在英特尔还不打算用这种方法。同时执行两个类似操作的线程,操作包括加、读取和存储,蓝色是线程1的指令,绿色是线程2的指令,红色是两个线程使用同一单元时造成的冲突,灰色是空转周期。
参考技术B 在pentium 4 上,多任务处理性能可以提高10%左右~~

如果线程比较少的程序性能的提高也就1%左右~~~

另外还有一点,pentium 4 2。4g ht应该是2004~2005年推出的版本(核心不知道是什么),而你的不带ht的pentium 2.4貌似是2002的北木核心,是不是核心上也有一点区别把,这个要注意,可能不仅仅是ht的问题

以上是关于uml是啥?? 用处大吗??的主要内容,如果未能解决你的问题,请参考以下文章

UML是啥?

uml图是啥

UML是啥?

uml的特点是啥

uml是啥意思

02《火球——UML大战需求分析》阅读笔记之二