当前位置: 首页 > article >正文

【设计模式】UML、RUP、元素、关系、视图

1、UML

UML全称是Unified Modeling Language,直译是“统一建模语言”
统一:就像秦始皇统一语音和度量衡,为了让人人都能看懂。对于软件项目就是,无论是项目经理、QA、CM、程序员(又分C、C++、java、python等各种程序员)都能看懂的一种语言。还可以理解为,可以让人和机器都能读懂的一种语言。

2、RUP

RUP全称是Rational Unified Process,译为“统一过程”。
统一过程是一种采用面向对象思想、使用UML设计语言、并且结合项目管理、质量管理等等的软件方法。因此RUP包含了UML。

RUP包含了四个阶段和九个核心工作流程。

四个阶段:启动(初始)阶段、精化(细化)阶段、构建阶段、产品化阶段;
九个核心:业务建模、需求、分析设计、实施、测试、部署、配置和变更管理、项目管理、软件开发环境

3、UML核心元素

3.1 主角

主角,也叫参与者,注意并不是所有的“参与”了业务流程的都是参与者,只有处于系统边界之外的才是,为了防止混淆,最好称为主角,系统边界之内的人,可以视为“配角”。

3.2 业务主角

业务主角是一种特殊的主角,确定了业务范围(业务模型),就可以称为业务主角。

3.3 业务工人

系统边界之内的人,可以理解为配角,称为业务工人,他不主动向系统发起动作,是为主角服务。

3.4 用户

用户是主角之一,并不是所有的主角都是用户,但是一个用户可以代理多个主角。他是直接使用系统的主角,并不是所有的主角都会直接使用系统。

3.5 角色

角色是一个抽象的概念,它是从主角的职责中抽象出来相同的一部分,并命名为角色。一个角色代表系统中的一类职责。
角色、主角、用户的关系:

一个用户可以代理多个主角,因此一个用户可以拥有多个职责,也就是说可以被抽象成多个角色。

3.6 用例

用例:Use Case
用例必须有主角发起,做了一个有意义的、完整的事,一般用一个动宾短语描述。
比如:“人喝水”是一个完成的用例,“人喝”“喝水”都不是一个完成的用例。

用例的粒度:不同阶段,选择不同的粒度,随着项目的进展,粒度不断细化;
用例和功能的区别:描述功能时不需要主角参与,因此可以这个功能可能会和主角的愿景有差异,就是这个功能可能不是客户想要的。

3.7 业务用例

业务用例专用于业务建模,业务建模的一个关键点是,描述时可以没有计算机参与,比如不使用计算机,用笔算、打算盘也能输出结果。对应的是业务主角和业务边界,与系统建模(详细设计)的边界有区别。

3.8 系统用例

系统用例即我们平时所说的用例,可以直接称为用例。用例是连接系统模型和软件实现之间的桥梁。

3.9 边界

什么是边界?其实就是需求的集合,在需求没有整理出来之前,假定有这么一个边界。

3.10 业务实体

业务实体也是一种类的别称,具有类的所有性质,包括属性和方法。

3.11 包

包是一种容器,可以容纳其他元素,主要用途是为了分类元素

3.12 分析类

分析类用于从需求分析到系统实现的“第一步”;
分析类有三种:边界类、控制类、实体类;

边界类:用于系统内外的交互(例如接口,可以认为就是接口类);
控制类:用于分析用例的操作、行为、限制动词之类的;从架构角度来说,控制类位于业务逻辑层;
实体类:描述实体对象,从架构角度来说,实体类位于数据持久层;

分析类高于设计实现(不考虑设计方法)、高于语言实现(不考虑使用哪种编程语言)、高于实现方式(不考虑实现方式)

3.13 设计类

设计类是系统实施(代码实现)中一个或多个对象的抽象,直接使用于编程语言相同的语言来描述。

3.14 组件

组件是系统中一部分物理实施,表示软件的一组功能,有一套标准接口,可以被替代。

3.15 节点

一个服务器、工作站或客户机都可以称为一个节点。

4、关系

关联:用一条直线表示,静态关系,强关联关系;
依赖:用一条带箭头的虚线表示,临时性关系,弱关系,在一定场景下才成立,最终代码提现是类的构造或方法的传入参数;
扩展:用一条带箭头的虚线+<< extends>>表示,在基本用例上扩展,可选非必须;
包含:用一条带箭头的虚线+<< include>>表示,是基本用例必须的,没有它,基本用例将不完整;
实现:用一条带空心箭头的虚线表示,基本用例描述一个业务目标,该目标有多种实现的可能;
精化:用一条带箭头的虚线+<< refine>>表示,基本用例细化、精化而来的用例;
泛化:用一条带空心箭头的实线表示,继承关系;
聚合:用一条带空心菱形箭头的直线表示,表示整体和部分的关系,并且不是强依赖的,即整体不存在了,部分依然存在;
组合:用一条带实心菱形箭头的直线表示,表示整体和部分的关系,并且是强依赖的,即整体不存在了,部分也将不存在;

5、UML核心视图

元素是UML的基本词汇,视图是UML的基本语法,UML通过视图将基本元素组织在一起,形成有意义的句子。
核心视图包括:用例图、类图、包图、活动图、状态图、时序图、协作图


http://www.kler.cn/a/2031.html

相关文章:

  • Oracle 数据库函数的用法(一)
  • 在安卓Android应用中实现二维码图像的保存与条形码文本合并
  • 基于微信小程序的乡村旅游系统
  • 新版国标GB28181设备端Android版EasyGBD支持国标GB28181-2022,支持语音对讲,支持位置上报,开源在Github
  • 使用 Docker 打包和运行 Vue 应用
  • python\shell\c++语法对比
  • 二分查找法
  • 经典七大比较排序算法 · 下 + 附计数和基数排序
  • 如何用matlab工具箱训练一个SOM神经网络
  • synchronized 加锁 this 和 class 的区别
  • QT | 编写一个简单的上位机
  • GEC6818开发板JPG图像显示,科大讯飞离线语音识别包Linux_aitalk_exp1227_1398d7c6运行demo程序,开发板实现录音
  • 思维导图模板怎么制作?提供几种思路
  • chatgpt3.5和chatgpt4的区别
  • GPT4论文翻译 by GPT4 and Human
  • 网络安全之防火墙
  • Vue2项目总结-电商后台管理系统
  • 软件测试拿了几个20K offer,分享一波面经
  • “工作三年,跳槽要求涨薪50%”,合理吗?
  • LeetCode:35. 搜索插入位置
  • 【洛谷刷题】蓝桥杯专题突破-深度优先搜索-dfs(4)
  • 100天精通Python(可视化篇)——第80天:matplotlib绘制不同种类炫酷柱状图代码实战(簇状、堆积、横向、百分比、3D柱状图)
  • python网上选课系统django-PyCharm
  • 新闻稿的写作格式
  • 【国产FPGA】国产FPGA搭建图像处理平台
  • 【YOLOv8/YOLOv7/YOLOv5/YOLOv4/Faster-rcnn系列算法改进NO.59】引入ASPP模块