UML概述-程序员宅基地

技术标签: 经验分享  uml  软件工程&UML  

一、UML简介

(一)UML (Unified Modeling Language)为面向对象软件设计提供统一的、标准的、可视化的建模语言。适用于描述以用例为驱动,以体系结构为中心的软件设计的全过程。

(二)UML的定义包括UML语义和UML表示法两个部分。

  1.     UML语义:UML对语义的描述使开发者能在语义上取得一致认识,消除了因人而异的表达方法所造成的影响;
  2.     UML表示法:UML表示法定义UML符号的表示法,为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准


二、UML模型图的构成

(一)事物[Things] (4种):UML模型中最基本的构成元素,是具有代表性的成分的抽象

        1. 构件事物:UML模型的静态部分,描述概念或物理元素

:具有相同属性相同操作相同关系相同语义的对象的描述
接口:描述元素的外部可见行为,即服务集合的定义说明
协作:描述了一组事物间的相互作用的集合
用例:代表一个系统或系统的一部分行为,是一组动作序列的集合
构件:系统中物理存在,可替换的部件
节点:运行时存在的物理元素

        另外,参与者、信号应用、文档库、页表等都是上述基本事物的变体

​         2. 行为事物:UML模型图的动态部分,描述跨越空间和时间的行为

交互:实现某功能的一组构件事物之间的消息的集合,涉及消息、动作序列、链接
状态机:描述事物或交互在生命周期内响应事件所经历的状态序列

        3.分组事物:UML模型图的组织部分,描述事物的组织结构

包:把元素组织成组的机制

​         4.注释事物:UML模型的解释部分,用来对模型中的元素进行说明、解释

注解:对元素进行约束或解释的简单符号
 

(二)关系[Relationships]:关系把事物紧密联系在一起

  1. 依赖[depedency]是两个事物之间的语义关系,其中一个事物(独立事物)发生变化,会影响到  另一个事物(依赖事物)的语义
  2. 关联[association]是一种结构关系,它指明一个事物的对象与另一个事物的对象间的联系
  3. 泛化[generalization]是一种特殊/一般的关系。也可以看作是常说的继承关系
  4. 实现[realization]是类元之间的语义关系,其中的一个类元指定了由另一个类元保证执行的契约


(三)图[Diagrams]:图是事物和关系的可视化表示

        1. 用例图[Use Case Diagram]:用例图是从用户角度描述系统功能, 是用户所能观察到的系统功能的模型图,用例是系统中的一个功能单元 

         2.类图[Class Diagram]:

(1)类图描述系统中类的静态结构。不仅定义系统中的类,表示类之间的联系如关联、依赖、聚合等,也包括类的内部结构(类的属性和操作);

(2)类图是以类为中心类组织的,类图中的其他元素或属于某个类或与类相关联


        3.对象图[Object Diagram]:对象图是类图的实例,几乎使用与类图完全相同的标识。他们的不同点在于对象图显示类的多个对象实例,而不是实际的类

        4.顺序图[Sequence Diagram]:

  1. 顺序图显示对象之间的动态合作关系,他强调对象之间消息发送的顺序,同时显示对象之间的交互;
  2. 顺序图的一个用途是用来表示用例中的行为顺序。当执行一个用例行为时,顺序图中的每条消息对应了一个类操作或引起状态转换的触发事件

        5.协作图[Collaboration Diagram]:

  1. 协作图描述对象间的协作关系,协作图跟顺序图相似,显示对象间的动态合作关系。除显示信息交换外,协作图还显示对象以及他们之间的关系
  2. 协作图的一个用途是表示一个类操作的实现


        6.状态图[State Chart Diagram]:状态图是一个类对象所可能经历的所有历程的模型图。
   状态图由对象的各个状态和连接这些状态的转换组成

 

        7.活动图[Activity Diagram]:

  1. 活动图是状态图的一个变体,用来描述执行算法的工作流程中涉及的活动    
  2. 活动图描述了一组顺序的或并发的活动


        8.构件图[Component Diagram]:构件图描述系统的构件模型以及各构件之间的依赖关系,以便通过这些依赖关系来估计对系统构件的修改给系统可能带来的影响

        9.部署图[Deployment Diagram]:部署视图描述位于节点实例上的运行构件实例的安排。
  节点是一组运行资源,如计算机、设备或存储器。这个视图允许评估分配结果和资源分配

 


(四)各UML图的关系

5类UML图的分类法:
用例图:对系统提供提供功能的描述
静态图:描述系统的静态结构,包括 类图 对象图
行为图:描述系统的动态行为和组成系统的对象间的交互关系,包括 状态图 活动图
交互图:描述对象间的交互关系,包括 顺序图 协作图
实现图:提供关于系统实现方面的信息,包括 构件图 部署图

三、UML语法描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zhaxun/article/details/124017566

智能推荐

Struts2之前台表单传值到后台Action方法总结_struts2后台的对象数据变了,前端表单数据能改变吗-程序员宅基地

文章浏览阅读1.5w次,点赞9次,收藏12次。在正式讲解之前,先交代一下项目版本,Struts2的版本是struts-2.3.30稳定版本,至于如何快速搭建以及正确的选择Struts2必要的Jar文件,以struts-2.3.30为例,首先建议大家直接从官网直接下载struts-2.3.30.zip文件,解压缩后,会得到如下所示目录结构:在apps目录里面有五个Struts2官方的项目案例,既然是官方案例,肯定是能够正常运行的,找_struts2后台的对象数据变了,前端表单数据能改变吗

python——json数据格式的转换_python json转换-程序员宅基地

文章浏览阅读3.1k次。python——json数据格式的转换_python json转换

picpick尺子像素大小精度不够准确_光栅尺精度与分辨率有什么关系吗?-程序员宅基地

文章浏览阅读1.1k次。光栅尺通过摩尔条纹原理,通过光电转换,以数字方式表示线性位移量的高精度位移传感器。光栅尺线性位移有二个关键参数:精度与分辨率。精度,指使用同种备用样品进行重复测定所得到的结果之间的重现性。测量度(也常简称精度)高,是指偶然误差与系统误差都比较小,这时测量数据比较集中在真值附近。虽然测量度高可说明准确度高,但的结果也可能是不准确的。误差是准确度的表示,是实测值与真实值偏离程度,而偏差是精密度的表示,..._picpick中的px单位和实际的不符合

用python寻找莫尼森数_编写判断素数的函数并找出前n个默尼森数。p是素数且m也是素数,并且满足等式m=2p --程序员宅基地

文章浏览阅读2.6k次,点赞2次,收藏6次。P是素数且M也是素数,并且满足等式M=2**P-1,则称M为默尼森数。例如,P=5,M=2**P-1=31,5和31都是素数,因此31是默尼森数。from math import sqrtdef isprime(x): '''判断x是否为质数''' if x == 1: return False k = int(sqrt(x)) for i ..._编写判断素数的函数并找出前n个默尼森数。p是素数且m也是素数,并且满足等式m=2p -

Linux下载文件_linux 下载北京智源文件-程序员宅基地

文章浏览阅读1.8k次。linux下载_linux 下载北京智源文件

RxJava2.x 操作符之 compose_rxjava2 compose-程序员宅基地

文章浏览阅读339次。compose 操作符可以和 Transformer 结合使用,一方面可以让代码看起来更加简洁,另一方面能够提高代码的复用性,因为 RxJava 提倡链式调用,我们可以合理的使用 compose 操作符来防止链式调用被打破。compose 操作符能够从数据流中得到原始的被观察者,当创建被观察者时,compose 操作符会立即执行,而不像其他的操作符需要在 onNext() 调用后才能执行。我们可以用 compose 操作符来进行线程的切换,一般用在网络请求的地方。好了,今天的分享就到这里了。_rxjava2 compose

随便推点

基于文本内容理解的中医药数据基础研究——中医药文献语料库的建设_中医基础数据模型设计方案-程序员宅基地

文章浏览阅读1k次。http://journal.shouxi.net/html/qikan/zgyx/zgzyyxxzz/20079149/zyyxxx/20100108093937831_500494.html【关键词】 中医药文献;语料库;中文信息库“中医药文献语料库系统”是汉语语料库建设中的一个分支,是在北京大学计算机语言所开发的“汉语文本切分与词性标注工具”的基础上,利用中医药专业切分词典再次加工而成,是为面向中医药文本内容理解的需要而设计研制的。其中中医药文献语料库_中医基础数据模型设计方案

蓝牙BLE ATT剖析(一)_att 蓝牙名称-程序员宅基地

文章浏览阅读7.5k次。一.概述The attribute protocol allows a device referred to as the server to expose a set of attributes and their associated values to a peer device referred to as the client. These attributes expose_att 蓝牙名称

MySQL:关于MGR中监控的两个重要指标简析_mysql mgr member_state-程序员宅基地

文章浏览阅读905次。欢迎来到 GreatSQL社区分享的MySQL技术文章,如有疑问或想学习的内容,可以在下方评论区留言,看到后会进行解答转载声明:以下文章来源于MySQL学习 ,作者八怪(高鹏)一、两个重要的指标这两个指标就是 replication_group_member_status 视图中的 COUNT_TRANSACTIONS_IN_QUEUE :等待冲突验证的队列数量,实际上是进行pipeline处理的队列数量(内部表示m_transactions_waiting_certification),单位._mysql mgr member_state

机器学习开发框架_什么是机器学习框架-程序员宅基地

文章浏览阅读5.7k次,点赞4次,收藏18次。目录1.什么使机器学习开发框架2.机器学习框架和深度学习框架的关系3.常见深度学习框架1.什么使机器学习开发框架机器学习开发框架本质上是一种编程库或工具,目的是能够让开发人员更容易、更快速地构建机器学习模型。机器学习开发框架封装了大量的可重用代码,可以直接调用,目的是避免“重复造轮子”,大幅降低开发人员的开发难度,提高开发效率。机器学习开发框架是涵盖用于分类,回归,聚类,异常检测和数据准备的各种学习方法,并且其可以或可以不包括神经网络方法。2.机器学习框..._什么是机器学习框架

Android开发小技巧:怎样在 textview 前面加上一个小图标。_android开发textview中文字前面加一个小图标-程序员宅基地

文章浏览阅读7.8k次,点赞4次,收藏4次。 <TextView android:drawableLeft="@mipmap/icon_unhook_time" android:drawablePadding="5dp" android:id="@+id/tv..._android开发textview中文字前面加一个小图标

android中的权限,了解一下_android 权限 authenticate_accounts用途-程序员宅基地

文章浏览阅读317次。android中的权限程序执行需要读取到安全敏感项必需在androidmanifest.xml中声明相关权限请求。属性说明android.permission.ACCESS_CHECKIN_PROPERTIES允许读写访问 "properties"表在checkin数据库中,改值可以修改上传android.pe_android 权限 authenticate_accounts用途

推荐文章

热门文章

相关标签