UML概述 不做没有设计的小作坊
面向对象技术不仅是一种程序设计方法,更重要的是,它是一种
对真实世界的抽象思维方式。
抽象是人类处理复杂事物的基本手段之一,
模型是对事物的一种抽象。随着软件的复杂程度不断提高,项目失败的可能性也相应增加,人们愈来愈深刻地认识到,建立简明准确的表示模型是把握复杂系统的关键。
模型可以使人们从全局上把握系统的全貌及其相关部件之间的关系。可以防止人们过早地陷入各个模块的细节。因此,面向对象的分析和设计应该从建模开始。当然,建模需要一种大家都认可的描述语言,他就是
UML(Unified Modeling Language)。
UML是一种定义良好,易于表达,功能强大,且普遍适用的建模语言。它融入了软件工程领域的新思想,新方法和新技术。它不仅可以支持面向对象的分析和设计,更重要的是能够有力地
支持从需求分析开始的软件开发的全过程。
与实物相比,任何抽象都不是完全的和准确无误的。但这并不影响抽象的价值,建模时,
不必追求绝对的真实和完全,而只需从希望达到的目的角度看其是否充分。一个好的模型应当刻画问题的关键方面,而略去其他相对次要的因素。
一般而言,我们可以从以下几种常用的视角来描述一个系统:
(1) 系统的使用实例:从系统外部的操作者角度描述系统的功能。
(2) 系统的逻辑结构:描述系统内部的静态结构和动态行为,即从内部描述如何设计实现系统功能。
(3) 系统的构成:描述系统由哪些程序构建所组成。、
(4) 系统的并发特性:描述系统并发性,强调并发系统中存在的各种通信和同步问题。、
(5) 系统的配置:描述系统的软件和各种硬件设备之间的配置关系。
为了能支持从不同角度来考察系统,标准建模语言UML定义了下列
5类,共10中模型图:
第一类是
用例图,它从用户角度描述系统的功能,并指出各功能的操作者。描述了“谁使用哪个用例”。
第二类是静态图,包括
类图,对象图和包图。
其中类图用于定义系统中的类,包括描述类之间的联系(如关联,依赖,聚合等)以及类的内部结构,即类的属性和操作。类图适用于软件开发的各个阶段,层次不同细化程度也不同。
对象图是类图的一种变形,除了对象名下面要加下划线以外,所使用的表示符号与类图几乎完全相同。他们的不同点在于对象图只是显示类的对象实例,一个对象图是类图的一个实例。
包图由包或类组成,主要表示包与包,包与类之间的关系,用于描述系统的分层结构,是比类图更高层次的抽象。
第三类是行为图,描述系统的动态模型和组成对象间的交互关系。
一种是状态图,它描述一类对象的多有可能的状态以及事件发生时状态的转移条件。
通常状态图是对类图的补充,它展示此类对象所具有的可能的状态以及某些事件发生时其状态的转移情况。
另一种称作活动图,它描述为满足用例要求所要进行的活动以及活动之间的约束关系。活动图通常用来描述一个操作中所要进行的各项活动的执行流程。
第四类是交互图,描述对象间的交互关系。
一种称之为
顺序图,用以显示对象之间的动态合作关系,它强调对象之间消息发送(或调用)的顺序,同时也显示对象之间的交互过程。
另一种是
合作图,与顺序图的作用相同,它着重描述对象间的协作关系。如果强调时间和顺序应当使用顺序图,如果强调通信关系,则可以选择合作图。
第五类是实现图,包括
构件图和配置图。
构件图描述代码部件的物理结构以及各部件之间的依赖关系。一个部件可能是一个资源代码部件,一个二进制部件或一个可执行部件。
配置图定义系统中软硬件的物理体系结构。它可以显示实际的计算机和设备以及他们之间的连接关系,也可以显示连接的类型以及部件之间的依赖性。
从应用的角度看,当采用面向对象技术设计系统时,(1)首先是描述需求,(2)然后根据需求建立系统的静态模型,以构造系统的结构,(3)最后是描述系统的行为。其中第一步与第二部中所建立的模型都是静态的,包括用例图,类图(包括包图),对象图,构件图和配置图等6种图。第三步中所建立的模型或者可以执行或者表示执行时的时序状态或交互关系,它包括状态图,活动图,顺序图和合作图等4种图。因此,标准建模语言UML的主要内容也可以归纳为静态建模机制和动态建模机制两大类。
画uml工具一般就是rational rose和enterprise architect和staruml了,前面两个功能很齐全,但是比较大,是商业版,个人电脑安装尤其推荐staruml,小巧好用。