UML图与数据流图
文章平均质量分 87
UML图与数据流图
zhousenshan
现在的一切都是为将来的梦想编织翅膀,让梦想在现实中展翅高飞
展开
-
AAA UML用例图(Use Case Diagram)
参与者与用例、参与者之间、用例之间的联系。用例场景详细描述的模板如下表。为每个标记的功能开发用例。随着与用户更多地交流,一组用例描述的系统或。转载 2024-09-16 10:37:14 · 59 阅读 · 0 评论 -
AAA UML协作图(Collaboration Diagram)
协作图按时间和空间的顺序描述系统元素之间的交互和关系,侧重于描述消息的组成关系。转载 2024-09-16 10:17:50 · 54 阅读 · 0 评论 -
详解UML(统一建模语言)中的类图、用例图、活动图、状态图、顺序图
UML是非专利的第三代建模和规约语言 是用于说明 可视化 构建和编写一个正在开发的 面向对象的 软件密集系统的制品的开放方法。状态图 用来描述一个特定的对象所有可能的状态 以及由于各种事件的发生而引起的状态之间的转移和变化。顺序图是一种用来显示对象之间的关系 并强调对象之间消息的顺序 同时显示对象之间的关系的动态模型图。一个合并有【两个带条件的入转换】和【一个出转换】 合并表示从对应的分支开始的条件行为的结束。在泳道上方可以给出泳道的名字或对象/对象类的名字 该对象/对象类负责泳道内的全部活动。转载 2023-10-15 16:14:15 · 4552 阅读 · 0 评论 -
AAA UML–活动图详解
活动图活动图(aeivwtiy diaeram)是 UML 中一种重要的用于 表达系统动态特性的图。活动图的作用是描达一-系列具休动态过程的执行逻辑,展现活动和话动之问转移的控制流;并且它采用一种着重逻辑过程的方式来叙述。读者在初看活动图的时候可能会认为这只是流程图的一种,但事实上活动图是在流相图的基础上添加了大量软件工程术语而形成的改进版。具体地说,活动图的表达能力包括了逻镇判断、分支甚至并发,所以活动图的表达能力要远高于流程图。转载 2024-09-15 23:27:41 · 57 阅读 · 0 评论 -
AAA 数据流图
加工是用于处理数据流的,所以要补充加工名,可以把该加工涉及到的数据流,在说明中标识出来,再在数据流名称所在的句子中,找。说明中的每一句话,都能与图中有对应关系,当把说明中的实体与数据流标识出来之后,容易缩小对应范围,找出纰漏。(2)检查图中每个加工,是否存在只有入没有出,或只有出没有入,或根据输入的数据无法产生对应的输出的情况。如:生成报告、发出通知、批改作业、记录分数,当然这只是普遍情况,也有例外,如物流跟踪、用户管理。存储的文字方面特征:“**文件”、“**表”、“**库”、“**清单”、“**档案”转载 2024-05-04 16:27:28 · 94 阅读 · 0 评论 -
AAA数据流图常见错误
数据流图。转载 2024-05-18 08:00:48 · 172 阅读 · 0 评论 -
泳道图手把手快速上手(附带软件)
vision画泳道图需要用到跨职能流程图和UML活动图2个,跨职能流程图可以通过分隔符对X Y 进行划分阶段1.添加跨职能流程图形状在这里插入图片描述2.添加基本流程图文档形状3.把这个泳道拖到空白处在这里插入图片描述4.新增泳道:拖动到平行处转载 2024-07-19 22:54:33 · 82 阅读 · 0 评论 -
Spring Boot + URule 实现可视化规则引擎,太优雅了!
当然,还有其他的概念和功能,这里也不一一介绍了,因为上面说的已经是最常用的了,想了解的可以自行去了解。当然,类似于变量库,常量库也可以实现和系统中的枚举相互映射,这样做的好处可以避免我们手动输入,防止输入错误。上面说过,规则都是可视化配置的。在配置规则的过程中,就需要引入各种已经定义好的库文件,再结合业务需求,从而配置出符合业务场景的业务规则,所以哪里都有库文件的身影。再聊下决策表,其实它就是规则集的另一种展示形式,比较相对规则集,我更喜欢用决策表去配置规则,应为它呈现的更加直观,更便于理解。转载 2024-06-29 17:18:22 · 125 阅读 · 0 评论 -
项目终于用上了Spring状态机,非常优雅!
我们通常所说的状态机是有限状态机,也就是被描述的事物的状态的数量是有限个,例如自动门的状态就是两个 open 和 closed。插播一条,如果你近期准备面试跳槽,建议在ddkk.com在线刷题,涵盖 1万+ 道 Java 面试题,几乎覆盖了所有主流技术面试题,还有市面上最全的技术栈500套,精品系列教程,免费提供。插播一条,如果你近期准备面试跳槽,建议在ddkk.com在线刷题,涵盖 1万+ 道 Java 面试题,几乎覆盖了所有主流技术面试题,还有市面上最全的技术栈500套,精品系列教程,免费提供。转载 2024-06-23 16:57:35 · 64 阅读 · 0 评论 -
面向状态机编程:复杂业务逻辑应对之道
*** 未操作*/INIT(0, "未操作"),/*** 任务下发中*/TASK_DELIVERY(1, "任务下发中"),/*** 下发失败*/DELIVERY_FAIL(2, "下发失败"),/*** 复核中*/RECHECKING(3, "复核中"),/*** 已复核*/RECHECKED(4, "已复核"),/*** 自行联系供应商*/CONCAT_SUPPLIER(5, "自行联系供应商"),/*** 挂起*/转载 2024-06-23 16:48:25 · 42 阅读 · 0 评论 -
AAA时序图概念,组件的详解与归纳
时序图(Sequence Diagram),亦称为序列图、循序图或顺序图,是一种UML交互图。它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。可以展示交互顺序时间顺序并发进程时序图分两个方向:横向(对象),纵向(时间轴) 中间的实线与虚线箭头代表在各个对象之间传递的消息,调用方法。消息在各对象之间横向传递,依照时间顺序纵向排列。转载 2024-06-22 16:30:31 · 62 阅读 · 0 评论 -
浅谈UML学习笔记动态图之状态图和活动图
初始状态是一个伪状态(一个和普通状态有连接的假状态),对象不可能保持在初始状态,必须要有一个输出的无触发转换(没有事件触发器的转换)。对象可以保持在终止状态,但是终止状态不可能有任何形式的和触发转换,它的目的就是为了激发封装状态上的转换过程的结束。简单状态是指在语义上不可分解的、对象保持一定属性值的状况,简单状态不包含其他状态:而组成状态是指内部嵌套有子状态的状态,在组成状态的嵌套状态图部分包含的就是此状态的子状态。在UML的状态建模机制中,转换用带箭头的直线表示,一端连接源状态,箭头指向目标状态。转载 2024-06-10 16:57:26 · 277 阅读 · 0 评论 -
UML之序列图
序列图是对对象之间传送消息的时间顺序的可视化表示。序列图的主要用途是把用例表达的需求,转化为进一步、更加正式层次的精细表达。用例常常被细化为一个或者更多的序列图。同时序列图更有效地描述如何分配各个类的职责以及各类具有相应职责的原因。描述了对象之间传递消息的时间顺序,它用来表示用例的行为顺序,是强调时间顺序的交互图。转载 2024-06-10 16:26:54 · 77 阅读 · 0 评论 -
UML图例之状态图
也就是说,当对象调用另一对象的操作时,控制就从发送者传送到接收者,该事件触发转换,完成操作后,接收者转换到一个新的状态,控制返还给发送者。初始状态为待采样,如果点位采集到了样品,则变更点位状态到已采样,点位存在无法采样情况,可以取消采样,变更状态到无效,点位存在当前不可以采样,可以变更状态到待补采,采集的样品交接完毕,点位变更状态到已完成,采样活动结束。所有对象都具有状态,状态是对象执行了一系列活动的结果,当某个事件发生后,对象的状态发生变化。事件是对一个时间和空间上占有一定位置的有意义的事情的规格说明。转载 2024-06-10 10:17:46 · 213 阅读 · 0 评论 -
AAA UML-状态机图(状态图)
状态机图描述了一个对象在其生命周期内所经历的各种状态,以及引起对象状态变化的原因。状态机用于对一个模型元素建立行为模型,该模型元素通常是一个类/对象,也可以是一个 Use Case ,甚至是整个系统。状态机图的两种类型应用:对对象生命周期建模:主要描述对象能够响应的事件、对这些事件的响应及过去对当前行为的影响。对反应型对象建模:主要描述对象可能处于的稳定状态、从一个状态到另一个状态之间的转换所需的触发事件,以及每个状态改变时发生的动作。注意:一个状态机图只针对一个实体描述其状态转换。转载 2024-06-10 08:54:37 · 443 阅读 · 0 评论 -
产品之路-UML时序图
时序图(Sequence Diagram),又名序列图、循序图,是一种UML交互图。它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。让我们来看一看visio2016对时序图的的解释。转载 2024-06-10 08:34:57 · 42 阅读 · 0 评论 -
UML顺序图(序列图、时序图)
用例是一个系统提供给参与者的外部接口,代表着一系列交互步骤,最终目标是要实现参与者的目标。用例的表达有条简洁至上的原则,即越朴素越好,越不涉及代码知识越好,而且用例很难与类、接口等元素一一对应。因此,为了方便开发人员统筹和协调各个类和对象顺序图用于描述系统功能的各个不同角色之间相互协作、传递消息的顺序关系。顺序图也被称作序列图、时序图)是按时间顺序显示对象交互的图,具体来说,它显示了参与交互的对象和所交换信息的先后顺序,用来表示用例中的行为,并将这些行为建模成信息交换。转载 2024-06-10 08:21:17 · 712 阅读 · 0 评论 -
UML时序图简析[drawio]
定义:时序图(Sequence Diagram),又名序列图、循序图,是一种UML交互图。它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。它可以表示用例的行为顺序,当执行一个用例行为时,其中的每条消息对应一个类操作或状态机中引起转换的触发事件。上述定义来源于百度百科,从定义中可以看出,时序图就是用来描述系统内部多个对象之间交互过程的。转载 2024-06-08 20:29:01 · 876 阅读 · 0 评论 -
Spring Boot 整合 Camunda 实现工作流
Camunda是一个灵活的工作流和流程自动化框架。其核心是一个运行在Java虚拟机内部的原生BPMN 2.0流程引擎。它可以嵌入到任何Java应用程序和任何运行时容器中。官网网站: https://www.camunda.org/入门文档: https://docs.camunda.org/get-started/转载 2024-01-13 09:21:46 · 587 阅读 · 0 评论 -
springboot启动项目自动动态加载数据库的groovy脚本
保存在数据库中,页面支持动态增删改查,启动springboot项目时,从数据库中读取groovy配置表,然后编译脚本,项目中就可以直接调用使用脚本。开发环境:springboot+MybatisPlus。脚本实体类:Func.java。//用于计算的表达式。* 使用预编译函数进行计算。* 使用动态表达式计算。转载 2024-01-07 09:10:13 · 215 阅读 · 0 评论 -
规则引擎groovy
规则引擎选型重量级方案:Acitivities、drools,适合复杂业务场景的规则引擎。轻量级方案:groovy脚本。groovy特点:动态性单纯的java语言是不具有动态性的,groovy恰恰弥补了这一缺憾,有了groovy你可以在程序运行时任意修改代码逻辑,不需要重新发布。语法糖groovy在语法上兼具java 语言和脚本语言特点,大大简化了语法。优点:学习曲线平缓,有丰富的语法糖,对于Java开发者非常友好;技术成熟,功能强大,易于使用维护,性能稳定,被业界看好;和转载 2024-01-07 08:58:45 · 828 阅读 · 0 评论 -
Groovy的规则脚本引擎实例解读
1.Groovy适合在业务变化较多、较快的情况下进行一些可配置化的处理2.它容易上手:其本质上也是运行在jvm的java代码,我们在使用时需了解清楚它的类加载机制,对于内存存储的基础烂熟于心,并通过缓存解决一些潜在的问题同时提升性能3.适合规则数量相对较小的且不会频繁更新规则的规则引擎。转载 2023-12-24 11:07:40 · 641 阅读 · 0 评论 -
Groovy模板引擎 API 构建动态脚本
目录。转载 2023-12-24 11:05:45 · 248 阅读 · 0 评论 -
Groovy编写规则引擎学习
GroovyScriptEngine从您指定的位置(文件系统,URL,数据库,等等)加载Groovy脚本,并且随着脚本变化而重新加载它们。因此我们可以通过将spring的bean预设到GroovyShell运行环境中,在groovy动态脚本中直接调用spring容器中bean来调用其方法。(3)维护一个HashTable,用于存放~~<expression,Script>~~ 的映射关系,这样就可以重复利用已经实例化过的Script的实例。用来标识用于绑定到GroovyShell的类。转载 2023-12-24 10:58:33 · 400 阅读 · 0 评论 -
spring动态注册bean
BeanPostProcessor,可以在spring容器实例化bean之后,在执行bean的初始化方法前后,添加一些自己的处理逻辑。Spring 通过一个 BeanPostProcessor 对 @Autowired 进行解析,所以要让 @Autowired 起作用必须事先在 Spring 容器中声明 AutowiredAnnotationBeanPostProcessor Bean。实现该接口,可以在spring的bean创建之前,修改bean的定义属性。转载请注明出处----by 王雁。转载 2023-12-24 10:13:02 · 68 阅读 · 0 评论 -
熬了7天,总结出来了Java中动态规则的实现方式
最后欢迎大家关注微信公众号【Java程序员聚集地】获取最新技术知识。作者:程序员麦冬链接:https://juejin.cn/post/6874446545316478990来源:稀土掘金著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。转载 2023-12-24 09:35:13 · 359 阅读 · 0 评论 -
利用Spring管理热加载的Groovy对象
最近做的项目属于数据分析类型,要求数据分析功能做到快速上线。该项目当前使用的语言是Java + Groovy。使用Groovy的原因很简单,因为 Groovy 脚本支持热加载功能。项目中,简单的数据分析工作,如一些统计、排序、过滤等,都放在Groovy里完成。需要上线新的数据分析功能时,只需要编写一个新的脚本,并热加载到JVM中即可。现在希望将一些数据源访问、数据预处理的工作也放到 Groovy 脚本中完成,并具有这样的功能:项目在线上稳定运行期间,可以通过修改数据库中的脚本来完成新产品的上线。转载 2023-12-24 09:33:14 · 66 阅读 · 0 评论 -
SpringBoot整合Groovy脚本,实现动态编程
也就是在方法的最后调用一次clearCache方法,这样可以清除掉GroovyShell、Script等实例,但是还是不够。导致OOM的原因并不止GroovyShell、Script等实例过多,经过查阅资料得知,如果脚本中的Java代码也创建了对象或者new了实例,即使销毁了GroovyShell也不会销毁脚本中的对象。例如下面这个脚本,会创建一个ArrayList对象。这个对象不会随着GroovyShell、Script等实例的消失而消失,所以还是会有问题。groovy复制代码。转载 2023-12-24 09:30:19 · 641 阅读 · 0 评论 -
Spring中集成Groovy的四种方式
优点:实时读取DB里的脚本,当脚本更改时,可以直接修改DB,对代码无侵入缺点:每次都要查询DB,反射调用代码写死了优点:项目初始化的时候,就把DB里的groovy脚本读取到,放进本次缓存里,并交给Spring管理,减少与DB的交互次数;没有硬编码,扩展性更好。缺点:当DB里的groovy脚本文件需要修改时,我们改完之后不能立即生效,需要重启工程或者刷新本次缓存,再次放进Spring容器里才行Spring中集成Groovy的四种方式_-CSDN博客作者: Java枫。转载 2023-12-24 09:27:23 · 250 阅读 · 0 评论 -
if 判断泛滥?试一试规则执行器,太香了
规则执行器的优点和缺点优点:比较简单,每个规则可以独立,将规则,数据,执行器拆分出来,调用方比较规整;我在 Rule 模板类中定义 convert 方法做参数的转换这样可以能够,为特定 rule 需要的场景数据提供拓展。缺点:上下 rule 有数据依赖性,如果直接修改公共传输对象 dto 这样设计不是很合理,建议提前构建数据。转载 2023-11-26 11:28:30 · 128 阅读 · 0 评论 -
十分钟搞定 SpringBoot 集成 ChatGPT,实战附源码!
我向 ChatGPT 提出了这个问题,看看它会产生什么反应。ChatGPT 是一种生成式人工智能,允许用户输入提示并接收类似人类的图像、文本或视频形式的输出,所有这些都是由人工智能生成的。ChatGPT 目前使用 GPT-3.5 模型,通过微调过程改进算法。然而,增强版本 ChatGPT Plus 包含了 GPT-4 模型。此升级版本拥有更快的响应时间,支持互联网插件,并展示了处理图像描述、图像标题生成等复杂任务的改进功能。OpenAI 将 GPT-4 描述为比其前身 GPT-3.5 先进十倍。转载 2023-11-26 11:27:28 · 513 阅读 · 0 评论 -
SpringBoot+Flowable 完美结合,优雅实现工作流!
在程序员工作中,或多或少都会遇见审批流程类型的业务需求。一个审批流程可能包含开始->申请->领导审批->老板审批->结束等多个阶段,如果我们用字段去定义每一个流程阶段(0->开始 1->申请 2->领导审批 3->老板审批 4->结束),虽然可以实现流程运行逻辑,但这样业务代码逻辑复杂。如果审批流程还有驳回操作,则还需要加一个是否驳回字段,显然这样实现,成本太大,且不利于维护。为了解决上述用代码逻辑硬写审批流程而导致的成本大,不利用维护的缺点,工作流因此而生。转载 2023-11-26 11:26:19 · 3586 阅读 · 1 评论 -
一种基于动态代理的通用研发提效解决方案
消息最终需要存储在diamond,在diamond进行如下设计:归属应用: 对应场景切点归属应用内容:一个应用的一个插件对应一个diamond配置,以切点作为diamond内容的key,方案定义列表作为value。转载 2023-11-19 09:10:32 · 50 阅读 · 0 评论 -
海康威视SDK二次开发JAVA(SpringBoot)
System.out.println("hksdk(视频)-退出状态" + hcNetSDK.NET_DVR_GetLastError());System.out.println("hksdk(视频)-登录海康录像机信息,状态值:" + hcNetSDK.NET_DVR_GetLastError());System.out.println("hksdk(视频)-下载失败" + hcNetSDK.NET_DVR_GetLastError());转载 2023-10-29 15:36:17 · 5400 阅读 · 3 评论 -
借助pf4j实现基于spring-boot的插件化开发
等Java实现的Web应用都有插件体系,一般来说都是先从插件市场下载一个插件,然后系统要求重启(某些功能可以不用重启),插件功能就能在页面上出现,并且还能实时禁用、启用、删除插件。是一个非常好的工具,不管是集成还是功能都有较好的表现,核心原理是通过自定义ClassLoader动态加载和卸载插件,并且提供了插件管理工具。实现的web应用,在某一个业务功能上提供扩展点,用户可以基于SDK实现功能扩展,要求可以管理插件,并且能够在业务功能扩展点处动态加载功能。转载 2023-10-22 15:06:22 · 1198 阅读 · 1 评论 -
为什么 MyBatis 源码中,没有我那种 if···else
通过梳理,MyBatis大约运用了10种左右设计模式。可以说,复杂且优秀的ORM 框架源码在设计和实现的过程中都会使用大量的设计模式。在解决复杂场景的问题时,需要采用分治、抽象的方法,运用设计模式和设计原则等相关知识,把问题合理切割为若干子问题,以便加以理解和解决。学习源码远不是只是为了应付面试,更重要的是学习优秀框架在复杂场景下的解决方案。通过学习这些优秀的方案技术,可以提高对技术设计和实现的理解,扩展编码思维,积累落地经验。只有经过这样长期的积累,我们才更有可能成为优秀的高级工程师和架构师。转载 2023-10-22 14:22:34 · 34 阅读 · 0 评论 -
如何使用@component-scan排除不需要的类
以上都是通过实现排除不需要类的方式,如果是反向操作,需要添加需要的类,则将上面的关键字替换为就好了。如果是配置文件的实现则。转载 2023-10-13 22:32:53 · 1206 阅读 · 0 评论 -
流程编排引擎 TinyFlow
授权协议:GPL 开发语言:Java 操作系统:跨平台 软件首页:http://www.tinygroup.org 软件文档:http://my.oschina.net/tinyframework/blog/199515软件介绍一般的时候,我们都采用编程式开发,编程式开发的好处非常明显:直接、高效、自由,当然其缺点也是有的,与其优点刚好相对,因为直接,所以有些变化都要进行代码上的修改;因为高效,所以一旦出问题,导致的结果也比较严重,因为自由,所以带来的修改风险也比较大。这也就是许...转载 2021-07-18 15:23:49 · 1660 阅读 · 0 评论 -
一文教会你如何写复杂业务代码
作者 | 张建飞 阿里巴巴高级技术专家了解我的人都知道,我一直在致力于应用架构和代码复杂度的治理。这两天在看零售通商品域的代码。面对零售通如此复杂的业务场景,如何在架构和代码层面进行应对,是一个新课题。针对该命题,我进行了比较细致的思考和研究。结合实际的业务场景,我沉淀了一套“如何写复杂业务代码”的方法论,在此分享给大家。我相信,同样的方法论可以复制到大部分复杂业务场景。一个复杂业务的处理过程业务背景简单的介绍下业务背景,零售通是给线下小店供货的 B2B 模式,我们希望通过数字化重.转载 2021-07-25 16:58:30 · 1007 阅读 · 0 评论 -
基于中台思想的物流系统设计(五):设计可扩展的产品服务平台
1、引言在前面四篇文章中,我们把物流中台的基础能力层构建了起来,接下来,我们就可以在这些基础能力之上构建我们的产品服务,从而支撑各条业务线。基础能力层主要关注的是稳定可用的原子接口,因此在设计的时候重点关注了很多高并发高可用的技术。产品服务层主要是为了支撑不断创新的业务,因此在设计的时候需要关注业务流程的可扩展性。下面我们会先从整体上设计出一套抽象模型,然后针对模型的各个模块深入介绍。1、整体设计写过业务代码的同学一定知道,我们的系统往往是由service层、manager层和远程服务层转载 2021-07-18 10:01:59 · 268 阅读 · 0 评论