热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

002.UML图

1.前言软件开发里,设计先行的理念非常重要,我自己也很菜,这也是听大佬们说的,实测确实可以提高效率,所以在正

1.前言

软件开发里,设计先行的理念非常重要,我自己也很菜,这也是听大佬们说的,实测确实可以提高效率,所以在正式进入Java之前,先学学UML图,至少把类图画清楚。本文肯定不可能详细,不懂的位置请自行百度。


2.概述

UML目前是2.0版本,总共13种图,其中包图也许可以被忽略,另外三个新增模型是啥玩意我也不知道,结合实际开发,类图和时序图相对来说比较重要。结合书本,后期会补画7个图。

13种图分为静态图动态图。

静态图包括:类图,对象图,用例图,组件图,部署图,包图,复合结构图

动态图包括:时序图(顺序图),通信图(协作图),状态机图,活动图,定时图,交互概观图

工具是Enterprise Architect,自行百度破解版和教程(比较新一点版本的教程很少)


3.画图

--------------------------------------------静态图---------------------------------------------


3.1 用例图

用例图描述系统(完整程序)的各个功能,每个用例代表一个功能模块。主要目的就是帮助开发人员以一种可视化的方式理解系统的需求功能,对具体实现不做任何说明。

组成:用例,角色,角色-用例关系,用例-用例关系。

图:


3.2 类图

类图表示系统中应该包含哪些实体,各实体之间的关系。其中关系主要是三种:关联(组合,聚合),泛化(继承),依赖。

组成:实体(属性,方法),实体-实体关系

图:


3.3 组件图

组件图提供系统的物理视图,目的是显示系统中软件对其他软件组件(如各种库函数)的依赖关系。

组成:组件,接口,端口。组件图中无法描述形状的就是组件,实心圆就是接口,边界上的矩形就是端口(Port)


3.4 部署图

部署图用于描述软件系统如何部署到硬件环境中,用途是显示软件系统不同的组件在何处物理运行,以及它们之间的通信。

组成:组件图组成部分,节点。三维立方体表示节点。

节点是各种计算机资源的通用名称,主要包括处理器(具有计算能力,能够执行程序)和设备(不具有计算能力)两类。

--------------------------------------------动态图---------------------------------------------


3.5 时序图

时序图表示不同对象之间的调用关系,同时还可以显示对不用对象的不同调用。描述了对象之间的交互,重点在于描述“消息”及其时间顺序。

垂直维度和水平维度

总结:绘制时序图主要是帮助开发者对某个用例的内部执行清晰化,当需要考察某个用例内部对象行为时,使用时序图。时序图擅长表现出对象之间的协作顺序,不擅长表现行为的精准定义。(摘自《疯狂JAVA》)(具体看图,暂无)


3.6 活动图

用于描述用例内部的活动或者方法的流程,如果去掉活动图中的并行活动描述(并发),它就变成流程图。

活动图和状态机图都被称为演化图,演化图有5个要素(重要组成部分):


  1. 状态 2.事件 3.动作 4.活动 5.条件

对于引起状态改变的事件主要有两类:内部事件,调用;外部事件,键鼠操作。

圆角矩形表示活动,带箭头实线表示事件,菱形框表示条件

总结:以活动为中心,只有一个开始活动,可以有多个结束活动。具体看图(暂无)


3.7 状态机图

状态机表示某个对象所处的不同状态和该类的状态信息转换信息。只有在系统活动期间具有三个以上的潜在状态的某个对象才需要考虑使用状态机图进行描述。

结合演化图,具体有5个基本元素(元素要素别深究,没意义,都是代表组成部分)


  1. 初始状态  实心圆
  2. 状态之间的转换 带箭头的线段
  3. 状态 圆角矩形
  4. 判断点 空心圆
  5. 一个或多个终止点 包含实心圆的圆

总结:只描述单个对象,只有一个初始状态,可以有多个终结状态。状态要表示对象的关键快照(快照意思就是比较稳定的一个瞬间记录),有重要意义。事件方法要明确。状态机图擅长表现单个对象的跨用例行为。


4.总结

图片暂无,学会用EA,有项目,再来补图。003写注释。


推荐阅读
  • 本文深入探讨了HTML5中十五个重要的新特性,为开发者提供了详细的指南。 ... [详细]
  • 本文档提供了详细的MySQL安装步骤,包括解压安装文件、选择安装类型、配置MySQL服务以及设置管理员密码等关键环节,帮助用户顺利完成MySQL的安装。 ... [详细]
  • 本教程旨在指导开发者如何在Android应用中通过ViewPager组件实现图片轮播功能,适用于初学者和有一定经验的开发者,帮助提升应用的视觉吸引力。 ... [详细]
  • 酷家乐 Serverless FaaS 产品实践探索
    本文探讨了酷家乐在 Serverless FaaS 领域的实践与经验,重点介绍了 FaaS 平台的构建、业务收益及未来发展方向。 ... [详细]
  • 本文探讨了Android系统中联系人数据库的设计,特别是AbstractContactsProvider类的作用与实现。文章提供了对源代码的详细分析,并解释了该类如何支持跨数据库操作及事务处理。源代码可从官方Android网站下载。 ... [详细]
  • 本文探讨了一个Web工程项目的需求,即允许用户随时添加定时任务,并通过Quartz框架实现这些任务的自动化调度。文章将介绍如何设计任务表以存储任务信息和执行周期,以及如何通过一个定期扫描机制自动识别并加载新任务到调度系统中。 ... [详细]
  • Mac环境下Java与Ant自动化构建环境搭建指南
    本文详细介绍了如何在Mac操作系统上为测试工程师搭建Java和Ant开发环境,包括环境变量配置等关键步骤。 ... [详细]
  • J2EE平台集成了多种服务、API和协议,旨在支持基于Web的多层应用开发。本文将详细介绍J2EE平台中的13项关键技术规范,涵盖从数据库连接到事务处理等多个方面。 ... [详细]
  • 本文介绍了如何在Spring框架中配置和使用定时任务,包括初始化配置和动态启动定时器的方法。通过示例代码展示了如何利用Spring的TaskScheduler接口来创建和管理定时任务。 ... [详细]
  • Spring Boot 初学者指南(第一部分)
    本文介绍了Spring Boot框架的基础知识,包括其设计理念、主要优势以及如何简化传统的J2EE开发流程。 ... [详细]
  • 本文介绍了JSP的基本概念、常用标签及其功能,并通过示例详细说明了如何在JSP页面中使用Java代码。 ... [详细]
  • CSS技巧:创建带有背景图的按钮
    本文详细探讨了使用CSS创建带有背景图片的按钮的方法,并提供了具体的实例代码,帮助开发者解决实际开发中的相关问题。 ... [详细]
  • 择要:Fundebug的JavaScript毛病监控插件同步支撑Vue.js异步毛病监控。Vue.js从降生至今已5年,尤大在本年2月份宣布了严重更新,即Vue2.6。更新包含新增 ... [详细]
  • GCC(GNU Compiler Collection)是GNU项目下的一款功能全面且高效的多平台编译工具,广泛应用于Linux操作系统中。本文将详细介绍GCC的特点及其基本使用方法。 ... [详细]
  • 本文详细介绍了Java API中文文档的位置、用途及其查看方法,帮助开发者更高效地利用这一资源。 ... [详细]
author-avatar
mobiledu2402851377
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有