UML学习备忘录

UML学习备忘录

UML 全称是 Unified Modeling Language(统一建模语言),它以图形的方式来描述软件的概念。它的特点是简单、统一、图形化、能表达软件设计中的动态与静态信息。UML的本质就是为了交流。

UML的概念包括了UML语义(Semantics)和UML表示符(Notation)两个部分。

UML语义定义了静态模型和动态模型。

UML表示符为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准。

为什么需要 UML

一个软件项目要经历业务调研、立项、需求采集、架构设计、编码开发和测试验证等多个环节。

每个环节可能角色并不相同,同样的文档同样的话语越向后传递就越容易失真。因此就容易出现最终交付的产品不是客户真正想要的这种情况。

如何避免角色间信息传递的失真,保证信息能被准确的传达和准确的理解?一种好的办法就是大家使用标准化的语言。

统一建模语言(UML)就试图用标准化的语言来覆盖整个软件过程,让不同团队不同角色可以用相同的语言顺畅的沟通。

UML 的适用场景

UML 既可以描述某个问题领域,也可以表达构思中的软件设计,还可以描述已经完成的软件实现。

它适用于面向对象分析设计的整个过程。这个过程可以分为三个阶段,

第一个阶段是通过建模(modeling)将现实世界转为业务模型。

第二个阶段是对业务模型概念化,建立适合计算机理解和实现的模型,也就是概念(Conceptual)模型。

第三个阶段是对概念模型实例化,得到相对详细的设计(Design)模型。

参见下图:

 第三个阶段的定位:是系统实施中一个或多个对象的抽象,由此映射到实现代码,依赖于实施语言。主要工作是设计类结构:

“type(类型)”是对对象某一方面特征的归纳和抽象,映射到Java的 class。“attribute(属性)” 代表Java的 “field(字段)” 指类的成员变量; “operation(操作)” 代表Java的 “method(方法)指类的成员方法

UML图具体分类较多,UML图具体分类较多,UML图有很多种,但是并非必须掌握所有的UML图,才能完整系统分析和设计工作。一般说来,在UML图中,只要掌握类图、用例图、时序图的使用,就能完成大部分的工作。也就是说,掌握UML的20%,就能做80%的事情。对于程序员来说,最频繁使用的莫过于类图。

下面先看看类图。

类图(class Diagram)类图是面向对象建模的主要组成部分。类图以反映类的结构(属性、操作)以及类之间的关系为主要目的,描述了软件系统的结构,是一种静态建模方法。类图中的“类”与面向对象语言中的“类”的概念是对应的,是对现实世界中的事物的抽象。

 public class Employee {
  private String name;
  private int age;
  private String email;
  public void modifyInfo() {
    ......
  }
}

类的关系(Relationship)有泛化(Generalization)、实现(Realization)、依赖(Dependency)和关联(Association)。其中关联又分为一般关联关系、聚合关系(Aggregation)和组合关系(Composition)。

【此外还有只用于用例中的关系:扩展(extends)和包含(include)】

泛化(Generalization):继承的关系,实线带三角形箭头,指向父类。

实现(Realization):实现的关系,虚线带三角形箭头,指向接口。

关联(Association):拥有的关系,实线带普通箭头,指向被拥有者。

聚合(Aggregation):整体与部分的关系。实线带空心菱形,指向整体。

组合(Composition):整体与部分的关系,但不能离开整体而单独存在。实线实心菱形,指向整体。

依赖(Dependency):使用的关系,即一个类的实线需要另一个类的协助。虚线普通箭头,指向被使用者。

附、ProcessOn在线绘图网址 https://www.processon.com/

 进一步了解学习

什么是统一建模语言(UML)?

UML 入门指南 | 面向对象设计 | 类图 | 时序图 |(万字多图,非常干燥) - 知乎

一文掌握14种UML图 - 腾讯云开发者社区-腾讯云

UML Tutorial - Javatpoint

猜你喜欢

转载自blog.csdn.net/cnds123/article/details/129386289
今日推荐