【UML图】实践出真知

2024-08-26 02:32
文章标签 实践 uml 真知

本文主要是介绍【UML图】实践出真知,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        关于UML,视频、课本都看了一遍,总结也总了,博客也博了,提起UML的时候,自我感觉也能说上那么一两句,本以为画个图就能say goodbye了,结果就是图让我又把视频笔记找了找,课本翻了翻,博客瞅了又瞅。下面是我画图时候的一些问题和感受。

一、知识补充

  1、用例图中的关系:关联、泛化、包含、扩展

包含(include):使用包含用例来疯长一组跨越多个用例的相似动作(行为片                                断),以便多个基用例复用。基用例控制与包含用例的关系,以及被                        包含用例的事件流是否会插入到用例的事件流中。基用例可以依赖包                        含用例执行的结果,但是双方都不能访问对方的属性。简单来说,所                        谓包含是指当一个用例的实现需要以另一个用例的实现为前提时,这                        两个用例间的关系就是包含。

                       (由基本用例指向被包含用例)

扩展(extend):将基用例中一段相对独立并且可选的动作,用扩展用例加以封                                    装,再让它从基用例中声明的扩展点上进行扩展,从而使基用例                              行为更简练。简单说就是,扩展指的是当一个用例执行时出现某                             种特定条件时,激活另一个用例,这里的一定条件称为扩展点,                                 被激活的用例称为扩展用例。                           

                          (由扩展用例指向基础用例)

  2、泛化和继承

         好多人都说泛化即继承,查师哥师姐的博客也都是直接用继承代表继承,但是还是感觉泛化跟继承不一样,虽然继承和泛化都是表示子类可以使用父类的属性和方法,都是为了实现多态

泛化:泛化关系是类元的一般描述和具体描述之间的关系,具体描述建立在一般             描述的基础之上,并对其进行了扩展。具体描述完全拥有一般描述的特             性、成员和关系,并且包含补充的信息。

继承:继承是一种机制,通过该机制类的对象的描述从类及其祖先的声明部分聚            集起来。

       说白了就是,香蕉继承水果,水果泛化香蕉,泛化是从子到父的抽象过程,继承是从父到子的过程。

3、对象图和类图

          对象图是类的实例,几乎使用与类图完全相同的标识,区别在于对象图显示类的多个对象实例,而不是实际的类,对象图存在生命周期,所以对象图表示某一时间类的实例。


4、图和文档

     UML图和文档不是一一对应的,除了几个核心图,例如用例图,类图,其它图都是可以酌情在任何文档中出现的.

     需求分析阶段,主要是用例图来填充,是面向程序员、分析员和用户的;

     设计阶段是UML图的主要载体,即概要设计和详细设计说明书,用到类图、活动               图、状态图、顺序图等,面向分析人员和编程人员;

     实现阶段用到部署图和组件图。

     其他没有特殊要求,整图或者部分图,酌情处理。知道每个图是干什么的给谁看的,知道每个文档是干什么的给谁看的,一一对应就好。


二、小结

开始画图的时候,仅仅知道用例图很重要,类图很重要,包图很重要,时序图很重要,嗯,然后就开始画了。但是开画的时候,感觉满脑子的机房系统和UML理论,就是死活画不出来啊,于是乎,死的书,活得人,博客、笔记各种交流借鉴,貌似有那么点儿意思了,对错不说,师傅验了再说吧。光说不练假把式,像高中老师说的,有些知识你会了不一顶能说出来,能说出来不一定能做对题,做对题不一定能得高分。UML图,能说又会画才是硬道理。


这篇关于【UML图】实践出真知的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1107291

相关文章

Spring WebFlux 与 WebClient 使用指南及最佳实践

《SpringWebFlux与WebClient使用指南及最佳实践》WebClient是SpringWebFlux模块提供的非阻塞、响应式HTTP客户端,基于ProjectReactor实现,... 目录Spring WebFlux 与 WebClient 使用指南1. WebClient 概述2. 核心依

MyBatis-Plus 中 nested() 与 and() 方法详解(最佳实践场景)

《MyBatis-Plus中nested()与and()方法详解(最佳实践场景)》在MyBatis-Plus的条件构造器中,nested()和and()都是用于构建复杂查询条件的关键方法,但... 目录MyBATis-Plus 中nested()与and()方法详解一、核心区别对比二、方法详解1.and()

Spring Boot @RestControllerAdvice全局异常处理最佳实践

《SpringBoot@RestControllerAdvice全局异常处理最佳实践》本文详解SpringBoot中通过@RestControllerAdvice实现全局异常处理,强调代码复用、统... 目录前言一、为什么要使用全局异常处理?二、核心注解解析1. @RestControllerAdvice2

Spring事务传播机制最佳实践

《Spring事务传播机制最佳实践》Spring的事务传播机制为我们提供了优雅的解决方案,本文将带您深入理解这一机制,掌握不同场景下的最佳实践,感兴趣的朋友一起看看吧... 目录1. 什么是事务传播行为2. Spring支持的七种事务传播行为2.1 REQUIRED(默认)2.2 SUPPORTS2

Java中的雪花算法Snowflake解析与实践技巧

《Java中的雪花算法Snowflake解析与实践技巧》本文解析了雪花算法的原理、Java实现及生产实践,涵盖ID结构、位运算技巧、时钟回拨处理、WorkerId分配等关键点,并探讨了百度UidGen... 目录一、雪花算法核心原理1.1 算法起源1.2 ID结构详解1.3 核心特性二、Java实现解析2.

MySQL 中 ROW_NUMBER() 函数最佳实践

《MySQL中ROW_NUMBER()函数最佳实践》MySQL中ROW_NUMBER()函数,作为窗口函数为每行分配唯一连续序号,区别于RANK()和DENSE_RANK(),特别适合分页、去重... 目录mysql 中 ROW_NUMBER() 函数详解一、基础语法二、核心特点三、典型应用场景1. 数据分

深度解析Spring AOP @Aspect 原理、实战与最佳实践教程

《深度解析SpringAOP@Aspect原理、实战与最佳实践教程》文章系统讲解了SpringAOP核心概念、实现方式及原理,涵盖横切关注点分离、代理机制(JDK/CGLIB)、切入点类型、性能... 目录1. @ASPect 核心概念1.1 AOP 编程范式1.2 @Aspect 关键特性2. 完整代码实

MySQL 用户创建与授权最佳实践

《MySQL用户创建与授权最佳实践》在MySQL中,用户管理和权限控制是数据库安全的重要组成部分,下面详细介绍如何在MySQL中创建用户并授予适当的权限,感兴趣的朋友跟随小编一起看看吧... 目录mysql 用户创建与授权详解一、MySQL用户管理基础1. 用户账户组成2. 查看现有用户二、创建用户1. 基

Spring Boot 实现 IP 限流的原理、实践与利弊解析

《SpringBoot实现IP限流的原理、实践与利弊解析》在SpringBoot中实现IP限流是一种简单而有效的方式来保障系统的稳定性和可用性,本文给大家介绍SpringBoot实现IP限... 目录一、引言二、IP 限流原理2.1 令牌桶算法2.2 漏桶算法三、使用场景3.1 防止恶意攻击3.2 控制资源

springboot项目中整合高德地图的实践

《springboot项目中整合高德地图的实践》:本文主要介绍springboot项目中整合高德地图的实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一:高德开放平台的使用二:创建数据库(我是用的是mysql)三:Springboot所需的依赖(根据你的需求再