`

画UML类图时所查阅的相关信息

    博客分类:
  • UML
阅读更多

 

1UMLUnified Modeling Language(统一建模语言)的缩写,是使用面向对象概念进行系统分析设计的工具,它主要是用一些规范、形象的图形来描述业务或系统也就是称之为建立业务模型或系统模型,用UML建模,既是用UML建立业务模型和系统模型。

2、业务模型是指用UML描述业务,即画出业务(business)用例图,当然,这里说画用例图,不应仅仅理解为画出图形,用例图应附有详细的业务说明。

2.1、业务用例如下所示(注意:在Rational Rose中业务人员和业务用例和系统用例在图形上有所不同,业务用例用一个椭圆加一斜杠表示。)。


2.2、一般说来,业务建模只需要画出业务用例图即可。在判断一项业务的复杂程度和大小规模时,常常可根据业务用例数量来判断,因此,在业务建模时,每个业务用例应合理分解,得到的业务用例应在业务复杂程度,规模大小方面相差不多,以便于对业务的评估和进行系统开发。

 3、系统模型是指用UML描述系统,系统模型是在分析业务模型后得到的,通常,系统模型用用例图、类图、时序图三种图来描述即可,如果功能较为复杂,也可以用活动图和状态图来对某一部分功能进行特别描述。

    3.1、系统用例图是从软件功能的角度去描述软件系统,因此和业务用例是不同的,表示如下:


    3.2、系统用例图不是必须的,但它能帮助我们理解系统模型。

4、类图是系统模型中最重要的图形,是UML中唯一能产生程序代码的图形,类图描述了对象的属性和方法,如下入所示:

   


 

 

    4.1、类图示系统建模必不可少的图形,如果做得好,可由类图生成程序的结构,然后由程序员按照类图生成的程序结构去细化程序,实现功能。

5、时序图是对类图的补充,它描述了对象的方法的调用情况,时序图和类图的联系最为紧密,在时序图中添加一个消息(我一直不明白为什么要称之为消息),如下图中的inputStudents() ,则会在消息所指向的对象类图中的类—Register 自动生成一个方法inputStudents()(但在时序图中删除一个消息,则不会自动删除类图中对应的方法)。


    5.1、时序图虽不能生成程序,但它对系统功能的操作能较为清楚地描述,相对类图(类图称为静态模型)而言,它是一种动态的描述,因此称为动态模型。

    5.2、有一种和时序图相同功能的图叫做协作图,在Rational Rose 可以用F5键自动转换这两个图。

   

总结,建模分为业务建模和系统建模,其中:

    1、业务建模即建立业务模型业务用例图;

    2、系统建模即建立系统模型用例模型(用例图)、静态模型(类图)、动态模型(时序图)。

 

UML图形中英文对照(Rational Rose软件):

1  用例图—Use Case Diagram

2    —Class Diagram

3  时序图—Sequence Diagram

4  协作图—Collaboration Diagram

5  状态图—Statechart Diagram

6  活动图—Activity Diagram

7  组件图—Component Diagram

8  配置图—Deployment Diagram

 

一些相关的定义:

抽象:只定义你想要的属性和操作,不相关的可以省去不写.

继承:类之间的特性传承

多态性:类的名字不同,但有相同的操作名

封装:非公开的属性和操作,这样可以降低类之间的耦合

消息传递:类之间协作的方式

关联:类之间发生关系时的术语.两个类之间可以有多种关联.

多重性:一个类和多个类之间有关联.

聚集:1个类包含N个类,那么主和子之间就有聚集关系.

组成:聚集的加强版,即组成的每个成员都必须存在,缺一不可.

 

类的可视化例子:

类名:WashingMachine

包名:有包的情况下,可能要把包名写在类名前面,比如:PackageName::WashingMachine

属性: brandName , 更全的例子是 + brandName:String = "TNND"

对象名:myWasher:WashingMachine

操作: +addClothes(C:String)void

职责:写在类图的最下面,记述这个类它要做什么

约束:{}的格式写在类国的边上,指定个别属性的取值范围.

 

关系:

关联:A要在类B中发挥什么作用时,就用带方向的关联来表示,关联相关的概念:关联名,角色名,关联上的约束,多重性.

关联类:A和类B之间的关联,是通过类C来体现的,那么类C就是关联类.

:相对于类,对象之间的关系叫链.

多重性: 可能1个类A对应N个类B. 例子有 1 1・・* 0,1

限定关联:在多重关联时,A可能要通过一个指定的属性来识别类B.此时那个属性,就叫做限定符

自身关联:一个类可能同时代表多种角色,那在类图中就可能表现为自已和自己关联

继承:子类继承父类, 用实线空三角形指向父类.用――――――――△(这个三角要右转90度)来表示

相关概念:基类,根类,叶类,单继承,多继承.

依赖:当类A的操作里用到类B,就说类A依赖类B 用------->来表示

聚集:上面讲过了.图示为: 部分类 ―――――◇ 总的类

组成:同上.图示为: 部分类 ―――――◆ 总的类

接口:听说有两种:1)在类图的类名上面写<<interface>>, 2)把类名写成IClassName的格式.

实现:是说类和接口之间的关系,用-------△(这个三角要右转90度)来表示。另外,接口可以简化成一个圆圈.

可见性: + 公有 # 保护 - 私有

 

有点搞的地方:

1,关联和依赖:简单的说,关联是指把类B定义成类A的属性. 依赖是指,A的一个方法,用到了类B.

2,聚集和组成:聚集,少几个没问题. 组成,少一个不成. // 其实还是不知道两者有什么实际意义,感觉还是一回事.

 

UML类图的画法:

关联 association:直线

依赖 dependency:带箭头的虚线

继承/泛化 generalization:带三角箭头的实线

实现 realization:带三角箭头的虚线

聚合 aggregation:带空心菱形的虚线

组合 composition:带实心菱形的虚线

 

其中聚合和组合的区别,别人的说法是:聚合——如果整个单元消失了,被聚合的类仍然作为它本身存在下去;组合——如果整个单元消失了,被组合的类也一同消失。

 

有人举例说明:聚合,就是一台电脑和它各部件的关系。组合,就是一个人和这个人的各个器官的关系。

 

不过觉得有些偏差。人死了,器官仍然可以移植给别人用吧?虽然会有排斥反应,器官的DNA也是死去那个人唯一的。

 

从实际编程考虑的话,个人觉得,聚合用于这样的场合——有一个类,它引用了一个其他的类作为它的属性;组合——有一个类,它里面写了内部类。

这么理解可能片面了。没理解到根上。不过应该还算说得通吧。

  • 大小: 6.4 KB
  • 大小: 3.9 KB
  • 大小: 15.2 KB
  • 大小: 20.2 KB
分享到:
评论

相关推荐

    eclipse导出UML类图插件

    1. **Java类图生成**:ModelGoon可以扫描并解析Eclipse项目中的Java源代码,根据类、接口、继承关系、方法等信息,快速生成直观的UML类图。这对于理解和管理复杂代码库非常有帮助。 2. **包依赖分析**:除了生成...

    UML类图

    - 文档生成:UML类图可以自动生成为文档,供团队成员查阅和理解代码结构。 - 代码生成:某些工具可以从UML类图生成Python代码,加速开发过程。 4. 工具支持 - PlantUML:一个开源工具,可以将简单的文本描述转换...

    详解UML图之类图

    由于提供的文件信息中缺少具体内容,故以上内容为基于类图在UML中的通用知识点,覆盖了类图的主要概念、结构和元素,以及类图在软件工程中的重要性。如果需要更加详尽的实例说明,建议查阅UML教程或官方文档,以获得...

    MyEclipse_UML_建模

    - **正向工程-UML类图生成Java代码**:MyEclipse支持从UML类图自动生成Java源代码,这对于快速搭建项目的初始架构非常有用。 - **反向工程-Java代码生成UML类图**:能够从现有的Java源代码生成UML类图,有助于理解...

    startuml.zip

    这意味着你可以从已有的源代码自动生成UML类图,或者反过来,根据UML图生成代码。这对于理解和维护复杂的代码结构非常有帮助。例如,通过导入".java"或".cpp"文件,StartUML能自动解析并显示相应的类图。 此外,...

    UML2工具箱(强烈建议UML玩家看看)

    3. **类图和对象图**:作为UML中最重要的图表之一,类图用于描绘类与类之间的关系,包括继承、实现、关联、聚合和组合等。对象图则展示特定时刻的对象实例及其关系。书中将详细讲解如何绘制和理解这两种图,以帮助...

    mac下的UML建模工具 argoUML

    它提供了创建、编辑和管理UML模型的功能,支持多种UML版本,如UML 1.4和部分2.0,是开发者和系统分析师进行软件设计时的得力助手。 **二、安装与启动** 1. **下载**: 首先,你需要从官方网站或者可靠的源下载Argo...

    植物大战僵尸源代码,java

    4. **培养解决问题的能力**:遇到问题时,学会查阅文档、调试代码等方法,这对于成长为一名优秀的程序员至关重要。 综上所述,“植物大战僵尸”的源代码不仅是一份珍贵的学习资料,更是一个引导初学者进入软件开发...

    eclipse下生成Java类图和时序图

    在软件开发过程中,UML(统一建模语言)是一种重要的工具,它可以帮助开发者直观地理解、设计和交流系统结构。本文将详细介绍如何在Eclipse集成开发环境中生成Java类图和时序图,以及如何利用提供的资源来实现这一...

    uml programing guide(uml建模指南)

    此外,书中可能还会涉及UML的扩展机制,如 stereotype( Stereotypes )用于自定义元模型,注解(Annotations)用于添加额外信息,以及规约(Constraints)和操作(Operations)等概念。 通过《UML编程指南》,读者...

    UML用户手册中英文版含第二版 - UML用户指南英文版

    "UML Reference Manual - EN.pdf" 和 "UML参考手册.pdf" 是UML的详细参考资源,包含所有UML图的语法和语义,是深入学习和查阅UML的必备资料。 总的来说,这些文件提供了一个全面的UML学习平台,涵盖了从基础概念到...

    uml用户操作指南 最新版本

    本指南详细介绍了UML的各种图表绘制方法、工具应用以及相关功能,旨在帮助用户更好地理解和运用这一强大的建模工具。 1. **UML简介**:UML是一种标准化的通用、可视化的建模语言,用于软件系统的设计和分析。它包括...

    UML用户指南(CHM格式)

    **UML用户指南**,作为一本由UML(统一建模语言)的创始人编写的经典教程,是理解和掌握这一建模语言的宝贵资源。UML是一种标准化的、通用的建模语言,它为软件开发提供了可视化建模工具,用于描述、构建和文档化...

    UML 2.0 in a Nutshell

    通过阅读《UML 2.0 in a Nutshell》并结合书中附带的.chm文件,学习者可以方便地查阅各种UML元素的详细信息,以及如何在实际项目中应用这些知识。无论是初学者还是经验丰富的专业人士,都能从中受益,提升自己的建模...

    C++程序员UML实务手册

    《C++程序员UML实务手册》是一本专为C++开发者设计的教程,旨在帮助他们理解和应用统一建模语言(UML)进行软件...通过深入学习和实践书中所涵盖的UML图型和方法,程序员能够更好地设计、分析和理解复杂的软件系统。

    UML用户指南(第2版)_书签版

    《UML用户指南(第2版)_书签版》是一本深入探讨统一建模语言(Unified Modeling Language,简称UML)的专业书籍,尤其适合初学者和有经验的软件开发人员。UML是一种图形化规范,用于系统分析和设计,它为软件开发提供...

    基于UML的BBS论坛系统

    - **文章查询**:无论是否注册,所有用户均能查询并阅读已有的文章,通过文章标题获取相关信息及其详细内容链接。 - **会员管理**:系统支持对注册用户的管理,如资料维护、身份确认等,特定用户(如版主)还拥有...

    UML精粹(第三版)标准对象建模语言简明指南

    - 本书内页提供的快速参考表是读者查找UML常用表示法的便捷工具,能够帮助快速定位所需信息。 5. **其他图类型**: - 除了类图和顺序图外,书中还介绍了物件图、包图、配置图等多种图类型。这些图各自具有独特的...

    UML-详解建模实例

    - 在实际项目中,UML模型通常与数据库设计密切相关。类图中的属性对应数据库表的字段,关联则映射为表间的关系。书中提供的"SQL代码.txt"可能是为了展示如何将UML模型转化为数据库实体,以及如何在数据库层面实现...

    UML面向对象建模基础(徐锋著)答案

    在学习UML时,我们需要理解以下几个关键概念: - **用例图(Use Case Diagram)**:展示了系统与用户或外部实体之间的交互,通过用例来描述系统功能,并定义了参与者与用例之间的关系。 - **类图(Class Diagram)...

Global site tag (gtag.js) - Google Analytics