【UML】NO.1 UML简介

目录

一、什么是UML

二、UML和软件工程

三、UML的诞生

四、UML的基本构成


从今天开始,开一个新的话题,把UML梳理一遍。

一、什么是UML

UML(Unified Modeling Language,UML)是一个通用的可视化建模语言标准,用于对软件进行描述、可视化处理、构造和建立软件系统制品的文档。

UML不是一门程序设计语言,而是一种可视化的建模语言。

UML(Unified Modeling Language,统一建模语言)被认为是一门语言的原因如下:

  1. 它是一种标准化的表示法:UML为面向对象系统的产品提供了说明、可视化和文档编制的标准语言,使得不同的人员和团队能够使用共同的理解和符号进行沟通。
  2. 它具有丰富的表现力:UML提供了多种图形表示法,如类图、时序图、用例图等,可以描述系统的静态结构和动态行为,从而帮助人们更好地理解和分析复杂的系统。
  3. 它是一种建模工具:UML本质上是一种用于对软件密集系统进行可视化建模的工具,支持面向对象的分析与设计。通过UML,人们可以从不同的视角对系统进行建模,从而更好地理解系统的结构和行为。
  4. 它独立于具体的程序设计语言:UML是一种通用的建模语言,可以与各种编程语言进行映射和转换。因此,无论使用哪种编程语言,都可以使用UML进行建模和分析。
  5. 它广泛应用于软件工程领域:UML已成为软件工程领域广泛使用的一种语言和工具,被应用于企业信息系统、银行金融服务系统、通信系统、交通系统等各种领域。

UML作为一门语言,具有标准化的表示法、丰富的表现力、建模工具的特性、独立于具体的程序设计语言以及广泛的应用领域等特点。

二、UML和软件工程

UML与软件工程有着密切的联系,并在软件工程领域发挥着重要作用。以下是UML与软件工程之间的联系及其对软件工程的作用:

  1. 建模工具:UML是一种用于对软件密集系统进行可视化建模的工具,它是软件工程中最常用的建模语言之一。通过UML,软件工程师可以使用一组丰富的图形表示法来描述系统的静态结构和动态行为,从而更好地理解和分析复杂的软件系统。

  2. 需求分析和设计:UML在软件工程的早期阶段起着重要作用,特别是在需求分析和设计阶段。通过绘制用例图、类图、时序图等,项目团队可以在项目早期明确梳理系统需求和业务流程,为开发人员提前确定目标和工作范围,避免后期需求变更带来的成本和风险。UML图可以帮助团队成员更好地理解和管理复杂系统,从而提高开发效率和质量。

  3. 沟通与合作:UML提供了一种通用的表示方法,使得软件工程师、项目经理、系统分析师等不同角色的人员能够使用共同的理解和符号进行沟通。通过UML图,团队成员可以更快速地了解项目的整体情况,包括系统的结构、功能、交互等,从而提高沟通效率和协作能力。

  4. 文档编制:UML图可以作为软件系统的文档,用于记录系统的设计、实现和测试过程。这些文档可以帮助团队成员回顾和理解系统的历史和设计决策,也可以作为与系统利益相关者(如客户、测试人员等)沟通的桥梁。

  5. 工具支持:许多软件工程工具和集成开发环境(IDE)都提供了对UML的支持,包括自动生成代码、逆向工程、代码与模型同步等功能。这些工具可以帮助软件工程师更高效地使用UML进行建模和开发工作。

通过使用UML进行建模和分析,软件工程师可以更好地理解和管理系统复杂性,提高沟通效率和协作能力,明确系统需求并降低风险,从而提高软件开发的效率和质量。

三、UML的诞生

UML的诞生过程可以追溯到20世纪90年代初,当时面向对象编程和软件工程领域正在快速发展。不同的建模语言和方法论纷纷涌现,如Booch、Rumbaugh的OMT和Jacobson的OOSE等。然而,这些方法之间存在差异,导致用户难以根据应用特点选择合适的建模语言,引发了所谓的"方法大战"。

为了解决这一问题,1994年,Grady Booch、Jim Rumbaugh和Ivar Jacobson这三位面向对象方法领域的先驱者开始合作,试图整合他们的方法,以形成一个统一的标准建模语言。他们的合作得到了Object Management Group(OMG,对象管理组织)的支持。OMG是一个国际性的非营利组织,致力于推动对象技术的标准化。

经过一段时间的努力,1997年,OMG正式发布了UML 1.0版本,标志着UML的诞生。UML提出了一套IT专业人员期待多年的统一的标准建模符号,通过使用UML,这些人员能够阅读和交流系统架构和设计规划。UML迅速得到了业界的广泛接受和应用,并逐渐发展成为软件工程领域最重要的建模语言之一。

UML的成功得益于其标准化、易于理解和使用的特点,以及OMG的持续推广和支持。如今,UML已经广泛应用于各种领域,包括企业信息系统、银行金融服务系统、通信系统、交通系统等,成为软件工程领域不可或缺的一部分。

四、UML的基本构成

UML的构成主要包括以下几个部分:

  1. 视图(Views):UML提供了多种视图来描述系统的不同方面。常见的视图包括用例图、类图、时序图、活动图等。每个视图都侧重于系统的某个特定方面,例如用例图用于描述系统的功能需求,类图用于描述系统的静态结构,时序图用于描述系统对象之间的交互等。通过不同视图的组合使用,可以全面地理解和描述系统的全貌。

  2. 图(Diagrams):UML中的图是指用于可视化建模的具体图形表示法。每种图都有其特定的符号和布局规则,用于表示系统中的不同元素和关系。例如,类图中的类、属性和方法使用特定的符号进行表示,时序图中的对象、消息和时间顺序也有其独特的表示方式。通过绘制不同类型的图,可以清晰地表达系统的结构、行为和交互。

  3. 模型元素(Model Elements):UML中包含了许多模型元素,用于描述系统中的实体、关系和属性。这些模型元素包括类、接口、对象、关联、泛化、聚合、依赖等。每个模型元素都有其特定的含义和用途,在建模过程中起着重要作用。通过对模型元素的定义和组合,可以构建出具有丰富语义的UML模型。

  4. 通用机制(General Mechanisms):UML还提供了一些通用机制,用于增强模型的表达能力和灵活性。这些通用机制包括注释、约束、扩展机制等。注释用于在模型中添加解释性文本,约束用于定义模型元素的规则和限制,扩展机制用于自定义UML的符号和语义。通过使用这些通用机制,可以根据具体需求对UML进行扩展和定制。

我们已经讨论过UML与软件工程的关系以及对软件工程的作用。UML作为一种建模语言,可以帮助软件工程师更好地理解和管理系统复杂性,提高沟通效率和协作能力,明确系统需求并降低风险,从而提高软件开发的效率和质量。通过使用UML的视图、图、模型元素和通用机制,软件工程师可以构建出具有丰富语义的UML模型,用于描述和分析软件系统。

很多建模工具,都支持通过UML图生成代码。

现在UML绘制最流行的工具包括以下几种:

  1. Visual Paradigm:是一款功能强大的UML工具,支持多种UML图和模型元素的绘制,具有丰富的模板和符号库,可以帮助用户快速创建专业的UML模型。

  2. StarUML:是一款广泛使用的开源UML工具,具有直观的用户界面和强大的功能,支持多种UML图和模型元素的绘制,以及代码生成和逆向工程等功能。

  3. Enterprise Architect:是一款功能齐全的商业UML工具,提供了丰富的UML建模功能,包括需求管理、系统设计、数据库建模、测试等,可以帮助企业快速构建高质量的软件系统。

  4. Rational Rose:是一款历史悠久的UML工具,具有完善的建模功能和广泛的支持,可以用于大型复杂系统的建模和分析,支持多种编程语言和平台。

  5. UML Designer:是一款基于Eclipse插件的UML工具,提供了轻量级的UML建模功能,支持多种UML图和模型元素的绘制,以及代码生成和文档生成等功能。

我最早绘制UML使用的就是Rose,很多UML教程中的黄底红线的图,都是出自Rose。

我个人觉得,UML最大的作用,就是在你不知道如何思考的时候,给你一个方向。

当然,UML本身也确实越来越复杂,甚至比要设计的软件本身还要复杂,这个其实没关系,灵活应用就好了。UML毕竟提供了一系列的抽象方法,让你对纷繁复杂的各种逻辑,做更理智的分析。

你可能感兴趣的:(学习笔记,项目管理,uml)