UML 基础认识

UML : Unified Modeling language 统一建模语言

向大家推荐一款非常优秀的UML建模软件:Visual Paradigm for UML 是收费的,但也有免费版和试用版,用于学习足以。http://www.visual-paradigm.com 还提供了其他有助于软件开发的图形化设计开发软件。

8:36 2011/7/8 阅读《标准建模MUL教程》

用例图、类图、包图、交互图、状态图、活动图、构件图和配置图

面向对象技术不仅是一种程序设计方法,更重要的是,它是一种对真实世界的抽象思维方式。模型可以使人们从全局上把握系统的全貌及相关部件之间的联系,可以防止人们过早地陷入各个模块的细节。因此,面向对象的分析和设计应该从建模开始,建模语言一直是面向对象技术的研究重点。

UML是由世界著名的面向对象技术专家Grady Booch ,Jim Rumbaugh 和 Ivar Jacobson发起,在著名的Booch方法、OMT方法和OOSE方法的基础上,广泛征求意见,集重家之长,几经修改而完成的。

需要说明的是,UML是一种建模语言,而不是一种方法。在原理上,任何方法都应由建模语言和建模过程两部分所构成。其中建模语言提供的这种方法中用于表示设计的符号(通常是图形符号);建模过程则描述进行设计所需要遵循的步骤。标准建模语言UML统一了面向对象建模的基本概念、术语及其图形符号,为人们建立了便于交流的共同语言。然而,人们可以根据所开发软件的类型、环境和条件,选用不同的建模过程。

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

4:04 2011/7/9
表示法和元模型

UML表示法定义了UML的表示符号,为建模者和建模支持工具的开发者提供了标准的图形符号和正文语法。

UML采用的是一种图形表示法,是一种可视化的图形建模语言。UML定义了建模语言的文法,例如,类图中定义了诸如类、关联、多重性等概念在模型中是如何表示的。

简单地讲,元模型是用来定义符合文法(即语法正确)的模型。

应当把重点放在逐步深刻地理解那些基本概念,掌握UML表示法,学会在实际系统的分析、设计与实现的过程中,有效地运用标准建模语言UML建立系统模型。

从不同角度来考察系统,标准建模语言UML定义了下列5类、共10种模型图:

5类10种:用例图、静态图(类图、对象图、包图)、行为图(状态图、活动图)、交互图(顺序图、合作图)、实现图(构件图、配置图)

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

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

第三类,行为图:描述系统的动态模型和组成对象间的交互关系。一种是状态图,它描述一类对象的所有可能的状态以及事件发生时状态的转移条件。通常状态图是对类图的补充。实际上我们并不需要为所有的类绘制状态图,而只需要为那些有多个状态、并且其行为受外界环境的影响而发生改变的类绘制状态图。另一种称作活动图,它描述为满足用例要求所要进行的活动以及活动间的约束关系。使用活动图可以很方便地表示并行活动。

第四类,交互图:描述对象间的交互关系。一种称之为顺序图,用以显示对象之间的动态合作关系。它强调对象之间消息发送的顺序,同时也显示对象之间的交互过程。另一种是合作图,它着重描述对象的协作关系。合作图和顺序图相似,显示对象间的动态合作关系。除了显示信息交换外,合作图还显示对象以及它们之间的关系。如果强调时间和顺序,应当使用顺序图;如果强调通信关系,则可以选择合作图。这两种图合成为交互图。

第五类,实现图:包括构件图和配置图。构件图描述代码部件的物理结构以及各个部件之间的依赖关系。一个部件可能是一个资源代码部件、一个二进制部件或一个可执行部件。它包含逻辑类或实现类的有关信息。构件图有助于分析和理解部件之间的相互影响程度。配置图定义系统中软硬件的物理体系结构。它可以显示实际的计算机和设备(用节点表示)以及它们之间的连接关系,也可以显示连接的类型及部件之间的依赖性。在节点内部,放置可执行部件和对象,以及显示节点跟可执行软件单元之间的对应关系。简单说,实现图是分别用构件图和配置图描述系统实现体的构成及其在硬件环境中的配置情况。


·从应用的角度看,当采用面向对象技术设计系统时,首先是描述需求,次之根据需求建立系统的静态模型,以构造系统的结构,第三步是描述系统的行为。其中在第一步与第二步中所建立的模型都是静态的,包括用例图、类图(包括包图)、对象图、构件图和配置图等六种。这些图构成了标准建模语言UML的静态建模机制。第三步中所建立的模型或者可以执行或者表示执行时的时序状态或交互关系,它包括状态图、活动图、顺序图和合作图等四种图。这些图构成了标准建模语言UML的动态建模机制。因此,标准建模语言UML的主要内容也可以归纳为静态建模机制和动态建模机制两大类。

4:12 2011/7/9
标准建模语言UML的主要特点:
与Booch,OMT,OOSE等其他方法相比,UML具有表达力更强、更清晰和一致的优点。
1,UML统一了Booch,OMT和OOSE等方法中的基本概念;
2,UML吸取了面向对象技术领域中其他流派的长处;
3,在演变过程中UML还提出了一些新的概念。


4:18 2011/7/9
使用UML的目的是什么?
对于大多数人来讲,学习如何使用一种面向对象语言进行编程并不难,难的是如何充分利用面向对象语言所提供的优势。
充分了解用户希望得到什么,用例图有助于不断取得用户的反馈信息,而类图,应将每个类图对应于用户心中的一个概念呢,并使用用户的语言来命名和定义这个类。

1,学习面向对象技术
2,和领域专家的交流
3,理解全局

4:33 2011/7/9
类-职责-协作(CRC)卡片便是一种非常有效的面向对象技术。CRC面向对象并不是标准UML的组成部分,它的出现是为了教会人们如何使用面向对象的方法进行工作。这种技术完全不同于传统的设计技术,其特点在于强调对角色-职责的分析和简单明快的表示形式。

4:47 2011/7/9
标准建模语言UML的应用领域:


UML的目标是以面向对象图的方式来描述任何类型的系统,具有很宽的应用领域。其中最常用的是建立软件系统的模型。但它还可以用于描述不带任何软件的机械系统、一个企业的机构或企业过程等。总之,UML是一个通用的标准建模语言,可以对任何具有静态结构和动态行为的系统进行建模。

在用UML建立分析和设计模型时,应尽量避免考虑把模型转换成某种特定的编程语言。因为在早期阶段,模型仅仅是理解和分析系统结构的工具,过早考虑编码问题十分不利于建立简单正确的模型。

UML模型还是测试阶段的依据。系统通常需要经过单元测试、集成测试、系统测试和验收测试。不同的测试小组使用不同的UML图作为测试依据:单元测试使用类图和类规格说明;集成测试使用部件图和合作图;系统测试使用用例图来验证系统的行为。验收测试由用户进行,以验证系统测试的结构是否在分析阶段确定的需求。

总之,标准建模语言UML适用于以面向对象技术来描述任何类型的系统,而且适用于系统开发的不同阶段,从需求规格描述直至系统完成后的测试和维护。

5:06 2011/7/9
·为什么说标准建模语言UML是一种语言而不是一种方法呢?
UML融合了Booch,OMT和OOSE方法中的基本概念。
UML扩展了现有方法的应用范围。
UML是标准的建模语言,而不是标准的开发过程。尽管UML的应用必然以系统的开发过程为背景,但是对于不同的组织和不同的应用领域,UML的使用者可以采取不同的开发过程。
UML是一种建模语言,而不是一种方法。在原理上,任何方法都应由建模语言和建模过程两部分所构成。其中建模语言提供的这种方法中用于表示设计的符号(通常是图形符号);建模过程则描述进行设计所需要遵循的步骤。标准建模语言UML统一了面向对象建模的基本概念、术语及其图形符号,为人们建立了便于交流的共同语言。然而,人们可以根据所开发软件的类型、环境和条件,选用不同的建模过程。

3:19 2011/8/4
补充:
UML中聚合和组合的关系(来自互联网):
聚合:指的是整体与部分的关系。通常在定义一个整体类后,再去分析这个整体类的组成结构。从而找出一些组成类,该整体类和组成类之间就形成了聚合关系。例如一个航母编队包括海空母舰、驱护舰艇、舰载飞机及核动力攻击潜艇等。需求描述中“包含”、“组成”、“分为…部分”等词常意味着聚合关系。

组合:也表示类之间整体和部分的关系,但是组合关系中部分和整体具有统一的生存期。一旦整体对象不存在,部分对象也将不存在。部分对象与整体对象之间具有共生死的关系。

聚合和组合的区别在于:聚合关系是“has-a”关系,组合关系是“contains-a”关系;聚合关系表示整体与部分的关系比较弱,而组合比较强;聚合关系中代表部分事物的对象与代表聚合事物的对象的生存期无关,一旦删除了聚合对象不一定就删除了代表部分事物的对象。组合中一旦删除了组合对象,同时也就删除了代表部分事物的对象。

我们用浅显的例子来说明聚合和组合的区别。“国破家亡”,国灭了,家自然也没有了,“国”和“家”显然也是组合关系。而相反的,计算机和它的外设之间就是聚合关系,因为它们之间的关系相对松散,计算机没了,外设还可以独立存在,还可以接在别的计算机上。在聚合关系中,部分可以独立于聚合而存在,部分的所有权也可以由几个聚合来共享,比如打印机就可以在办公室内被广大同事共用。

 

ps: composition :组合     aggregation :聚合

你可能感兴趣的:(编程,UML,vp for uml)