当前位置:网站首页>软考 ----- UML设计与分析(上)
软考 ----- UML设计与分析(上)
2022-08-01 21:05:00 【想写程序的毛毛虫】
一、UML设计与分析
1.1 概念
UML 又称统一建模语言或标准建模语言,是一个支持模型化和软件系统开发的图形化语言,它的作用域不仅仅支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程;
1.2 建模的意义
模型是对现实的简化,建模是为了更好地理解系统:
- 模型帮助我们按照实际情况或需求对系统可视化;
- 模型允许我们详细说明系统的结构行为;
- 模型给出了一个构造系统的模板;
- 模型对我们作出的决策进行文档化;
1.3 UML 的特点
- 统一的标准,已经被 OMG 接受为标准建模语言;
- 面向对象,支持面向对象开发;
- 可视化,表示能力强;
- 独立于开发过程,可以适用于不同的软件过程;
- 概念明确,表示清晰、结构清晰、容易掌握;
1.4 UML 的结构
1.4.1 基本构造块
- 事物(元素)thing :模型中最具有代表性成分的抽象;
- 关系 relationship :事物之间的联系;
- 图 diagram :相关事物的集合;
用例图( use case diagram ):描述一组用例、参与者以及它们之间的联系,用例模型描述的是外部执行者所理解的系统功能,用于需要分析阶段;
用例之间的关系:
包含(include)
- 两个以上用例有共同功能,可分解到单独用例,形成包含依赖;
- 箭头方向由基本用例指向被包含用例;
- 执行基本用例时,每次都必须调用被包含的用例;
- 包含用例也可以单独执行;
扩展(extend)
- 如果一个用例明显地混合了两种或两种以上的不同场景,即根据情况可能发生多种事情,则可以断定将这个用例分为一个主用例和一个或多个辅助用例进行描述会更加清晰;
构建用例模型需要 3 个阶段:
(1)识别参与者(actor)
- 参与者是系统之外与系统进行交互的任何事物,参与者可以是使用系统的用户,可以是其他外部系统、外部设备等外部实体;
- 在 UML 中采用小人符号来表示参与者;
- 参与者有主要参与者和次要参与者,开发用例的重点是要找到主要参与者;
(2)合并需求获得用例
- 将参与者都找到后,为每一个参与者确定用例;
- 确定用例的依据主要类源于已取得的特征;
- 将特征分配至相应的参与者,然后进行合并操作,最后绘制用例图;
业务用例和系统用例:
- 业务用例:是描述这个业务具体工作流程的,体现功能性需求,需要 actor 和业务目标来体现;
- 系统用例:是侧重于系统交互的,可理解为要实现某个业务⽤例的系统级实现,要注意的是系统⽤例并不是业务需求的细分;
(3)细化用例描述
用例建模的主要工作是书写用例规约而不是画图;
用例模板为一个给定项目的所有人员定义了用例规约发结果,其内容至少包括用例名、参与者、目标、前置条件、事件流(基本事件流、扩展事件流)、后置条件等,其他的还可以包括非功能需求、用例优先级等;
边栏推荐
- An online JVM FullGC made it impossible to sleep all night and completely crashed~
- Graph adjacency matrix storage
- Telnet弱口令渗透测试
- 列表页常见的 hook 封装
- ISC2022 HackingClub白帽峰会倒计时1天!最全议程正式公布!元宇宙集结,精彩绝伦!
- LeetCode
- StringTable详解 串池 性能调优 字符串拼接
- 宝塔搭建PESCMS-Ticket开源客服工单系统源码实测
- 附录A printf、varargs与stdarg A.2 使用varargs.h来实现可变参数列表
- Simple test of the use of iptables
猜你喜欢

2022年秋招,软件测试开发最全面试攻略,吃透16个技术栈

C专家编程 第1章 C:穿越时空的迷雾 1.4 K&R C

98. Embedded controller EC actual combat EC development board development completed

Graph adjacency matrix storage

Pytorch框架学习记录9——非线性激活

JS Improvement: Handwritten Publish Subscriber Model (Xiaobai)

进行交互或动画时如何选择Visibility, Display, and Opacity

函数(二)

响应式织梦模板清洁服务类网站

使用百度EasyDL实现厂区工人抽烟行为识别
随机推荐
Excel advanced drawing techniques, 100 (22) - how to respectively the irregular data
仿牛客论坛项目
MySQL 中出现的字符编码错误 Incorrect string value: ‘\x\x\x\x‘ for column ‘x‘
R语言进行相关的操作
系统收集集
C陷阱与缺陷 第7章 可移植性缺陷 7.6 内存位置0
Godaddy domain name resolution is slow and how to use DNSPod resolution to solve it
win10版本1803无法升级1903系统如何解决
Goroutine Leaks - The Forgotten Sender
C陷阱与缺陷 附录B Koenig和Moo夫妇访谈
C pitfalls and pitfalls Chapter 7. Portability pitfalls 7.10 Free first, then realloc
宝塔搭建PESCMS-Ticket开源客服工单系统源码实测
sizeof的详细解说和与strlen的区别
附录A printf、varargs与stdarg A.2 使用varargs.h来实现可变参数列表
tiup mirror grant
excel高级绘图技巧100讲(二十二)-如何对不规则数据进行分列
Simple test of the use of iptables
乐观锁批量跟新 纯SQL
Questions I don't know in database kernel interview(1)
with语句和上下文管理器