1、UML是Unified
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
分享到:
相关推荐
1. **Java类图生成**:ModelGoon可以扫描并解析Eclipse项目中的Java源代码,根据类、接口、继承关系、方法等信息,快速生成直观的UML类图。这对于理解和管理复杂代码库非常有帮助。 2. **包依赖分析**:除了生成...
- 文档生成:UML类图可以自动生成为文档,供团队成员查阅和理解代码结构。 - 代码生成:某些工具可以从UML类图生成Python代码,加速开发过程。 4. 工具支持 - PlantUML:一个开源工具,可以将简单的文本描述转换...
由于提供的文件信息中缺少具体内容,故以上内容为基于类图在UML中的通用知识点,覆盖了类图的主要概念、结构和元素,以及类图在软件工程中的重要性。如果需要更加详尽的实例说明,建议查阅UML教程或官方文档,以获得...
- **正向工程-UML类图生成Java代码**:MyEclipse支持从UML类图自动生成Java源代码,这对于快速搭建项目的初始架构非常有用。 - **反向工程-Java代码生成UML类图**:能够从现有的Java源代码生成UML类图,有助于理解...
这意味着你可以从已有的源代码自动生成UML类图,或者反过来,根据UML图生成代码。这对于理解和维护复杂的代码结构非常有帮助。例如,通过导入".java"或".cpp"文件,StartUML能自动解析并显示相应的类图。 此外,...
3. **类图和对象图**:作为UML中最重要的图表之一,类图用于描绘类与类之间的关系,包括继承、实现、关联、聚合和组合等。对象图则展示特定时刻的对象实例及其关系。书中将详细讲解如何绘制和理解这两种图,以帮助...
它提供了创建、编辑和管理UML模型的功能,支持多种UML版本,如UML 1.4和部分2.0,是开发者和系统分析师进行软件设计时的得力助手。 **二、安装与启动** 1. **下载**: 首先,你需要从官方网站或者可靠的源下载Argo...
4. **培养解决问题的能力**:遇到问题时,学会查阅文档、调试代码等方法,这对于成长为一名优秀的程序员至关重要。 综上所述,“植物大战僵尸”的源代码不仅是一份珍贵的学习资料,更是一个引导初学者进入软件开发...
在软件开发过程中,UML(统一建模语言)是一种重要的工具,它可以帮助开发者直观地理解、设计和交流系统结构。本文将详细介绍如何在Eclipse集成开发环境中生成Java类图和时序图,以及如何利用提供的资源来实现这一...
此外,书中可能还会涉及UML的扩展机制,如 stereotype( Stereotypes )用于自定义元模型,注解(Annotations)用于添加额外信息,以及规约(Constraints)和操作(Operations)等概念。 通过《UML编程指南》,读者...
"UML Reference Manual - EN.pdf" 和 "UML参考手册.pdf" 是UML的详细参考资源,包含所有UML图的语法和语义,是深入学习和查阅UML的必备资料。 总的来说,这些文件提供了一个全面的UML学习平台,涵盖了从基础概念到...
本指南详细介绍了UML的各种图表绘制方法、工具应用以及相关功能,旨在帮助用户更好地理解和运用这一强大的建模工具。 1. **UML简介**:UML是一种标准化的通用、可视化的建模语言,用于软件系统的设计和分析。它包括...
**UML用户指南**,作为一本由UML(统一建模语言)的创始人编写的经典教程,是理解和掌握这一建模语言的宝贵资源。UML是一种标准化的、通用的建模语言,它为软件开发提供了可视化建模工具,用于描述、构建和文档化...
通过阅读《UML 2.0 in a Nutshell》并结合书中附带的.chm文件,学习者可以方便地查阅各种UML元素的详细信息,以及如何在实际项目中应用这些知识。无论是初学者还是经验丰富的专业人士,都能从中受益,提升自己的建模...
《C++程序员UML实务手册》是一本专为C++开发者设计的教程,旨在帮助他们理解和应用统一建模语言(UML)进行软件...通过深入学习和实践书中所涵盖的UML图型和方法,程序员能够更好地设计、分析和理解复杂的软件系统。
《UML用户指南(第2版)_书签版》是一本深入探讨统一建模语言(Unified Modeling Language,简称UML)的专业书籍,尤其适合初学者和有经验的软件开发人员。UML是一种图形化规范,用于系统分析和设计,它为软件开发提供...
- **文章查询**:无论是否注册,所有用户均能查询并阅读已有的文章,通过文章标题获取相关信息及其详细内容链接。 - **会员管理**:系统支持对注册用户的管理,如资料维护、身份确认等,特定用户(如版主)还拥有...
- 本书内页提供的快速参考表是读者查找UML常用表示法的便捷工具,能够帮助快速定位所需信息。 5. **其他图类型**: - 除了类图和顺序图外,书中还介绍了物件图、包图、配置图等多种图类型。这些图各自具有独特的...
- 在实际项目中,UML模型通常与数据库设计密切相关。类图中的属性对应数据库表的字段,关联则映射为表间的关系。书中提供的"SQL代码.txt"可能是为了展示如何将UML模型转化为数据库实体,以及如何在数据库层面实现...
在学习UML时,我们需要理解以下几个关键概念: - **用例图(Use Case Diagram)**:展示了系统与用户或外部实体之间的交互,通过用例来描述系统功能,并定义了参与者与用例之间的关系。 - **类图(Class Diagram)...