****** 四十九 ******、软设笔记【UML分析和意义】-建模的意义,UML的特点、结构,用例图
UML
UML又称同一建模语言或标准建模语言,是一个支持模型化和软件系统开发的图形化语言,它的作用域不仅支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。
建模的意义:
模型是对现实的简化,建模是为了更好地理解系统。
*模型帮助我们按照实际情况或需求对系统可视化;(掌握不了文字,画幅画代替);
*模型允许我们详细说明系统的结构、行为;
*模型给出了一个构造系统的模板;
*模型对我们作出的决策进行文档化。(先有文档,在有代码)
UML的特点:
*统一的标准,已经被OMG接受为标准建模语言
*面向对象,支持面向对象开发
*可视化,表示能力强
*独立于开发过程,可以适用于不同软件过程
*概要明确,表示简洁,结构清晰,容易学习掌握
一、UML的结构
*基本构造块
*规则
*公共机制
1.基本构造块
*事物(元素)thing
模型中最具代表性成分的抽象
*关系 Relationship
事物之间的联系
*图 Diagram
相关事物的集合
一、用例图(use case diagram)
描述一组用例、参与者(一种特殊的类)及它们之间的关系。用例模型描述的是外部执行者所理解的系统功能,用于需求分析阶段。
1.用例之间的关系
(1)包含(include)(是一种依赖关系,加了版型<<include>>)
*两个以上用例有共同功能,可分解到单独用例,形成包含依赖;
*箭头方向由基本用例指向被包含用例;
*执行基本用例时,每次都必须调用被包含的用例(吃放前洗手);
*被包含用例也可以单独执行;
(2)扩展(extend)(是一种依赖关系,加了版型<<extend>>)
*如果一个用例明显地混合了两种或两种以上的不同场景,即根据情况可能发生多种事情,则可以断定将这个用例分为一个主用例和一个或多个辅用例进行描述可能更加清晰。
2.构建用例模型需要经历三个阶段
*识别参与者
*合并需求获得用例
*细化用例描述
(1)识别参与者(actor)
*参与者是系统之外与系统进行交互的任何事物,参与者可以是使用系统的用户,可以是其他外部系统、外部设备等外部实体。
*在UML中采用小人符号来表示参与者。
*参与者有主要参与者和次要参与者,开发用例的重点是要找到主要参与者。
(2)合并需求获得用例
将参与者都找到之后,接下来就是仔细地检测参与者,为每一个参与者确定用例。
其中的依据主要来源于已经取得的特征表。首先,将特征分配给相应的参与者,然后进行合并操作,最后绘制成用例图。要注意区分业务用例和系统用例。
*业务用例:是描述这个业务的具体工作流的;一次涉众与实现业务目标的业务之间的交互。业务用例着重于业务操作。
*系统用例:系统用例的设计范围就是这个计算机系统设计的范围。它是一个系统参与者,与计算机系统一起实现一个目标。系统用例着重于要设计的软件系统。
(3)细化用例描述
用例建模的主要工作是书写用例规约(use case specification),而不是画图。用例模板为一个给定项目的所有人员定义了用例规约的结果,其内容至少包括用例名、参与者、目标、前置条件、事件流(基本事件流,扩展事件流)、后置条件等,其他的还可以包括非功能需求、用例优先级等。
****** 四十九 ******、软设笔记【UML分析和意义】-建模的意义,UML的特点、结构,用例图的更多相关文章
- ****** 四十 ******、软设笔记【网络基础】-Internet和Intranet基础
Internet和Intranet基础 一.网络地址及子网掩码 1.IP地址结构及类别 IP地址是由32位二进制数,即4个字节组成的,由网络号和主机号两个字段组成. 网络号的位数决定了可以分配的网络数 ...
- ****** 五十 ******、软设笔记【UML分析和意义】-类图、对象图、状态图、活动图、顺序图、协作图、构件图、部署图,动静态模式
一.类图(Class Diagram) 描述一组类.接口.协作已经它们之间的图,用来显示系统中各个类的静态结构图. 类之间的关系(relationship) *依赖(dependency) *泛化(g ...
- ****** 三十 ******、软设笔记【计算机体系结构】-循环冗余校验码(CRC)
循环冗余校验码(CRC) 广泛地在网络通信及磁盘存储时采用. 1.多项式 在循环冗余校验(CRC)码中,无一例外地要提到多项式的概念.一个二进制数可以以一个多项式来表示.如1011表示为多项式X ...
- Gradle 1.12用户指南翻译——第四十九章. Build Dashboard 插件
本文由CSDN博客貌似掉线翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...
- SQL注入之Sqli-labs系列第四十七关,第四十八关,第四十九关(ORDER BY注入)
0x1 源码区别点 将id变为字符型:$sql = "SELECT * FROM users ORDER BY '$id'"; 0x2实例测试 (1)and rand相结合的方式 ...
- “全栈2019”Java第四十九章:重载与重写对比详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- 第四十九个知识点:描述在IPsec和TLS后的基本想法
第四十九个知识点:描述在IPsec和TLS后的基本想法 网络安全协议(Internet Protocol Security,IPsec)和安全传输层协议(Transport Layer Securit ...
- abp(net core)+easyui+efcore实现仓储管理系统——出库管理之一(四十九)
abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+ ...
- Android项目实战(四十九):Andoird 7.0+相机适配
解决方案类似: Android项目实战(四十):Andoird 7.0+ 安装APK适配 解决方法: 一.在AndroidManifest.xml 文件中添加 四大组件之一的 <provider ...
随机推荐
- 「ZJOI2016」大森林 解题报告
「ZJOI2016」大森林 神仙题... 很显然线段树搞不了 考虑离线操作 我们只搞一颗树,从位置1一直往后移动,然后维护它的形态试试 显然操作0,1都可以拆成差分的形式,就是加入和删除 因为保证了操 ...
- (二)flask-sqlalchemy基本操作
对数据库基本操作 在Flask-SQLAlchemy中,插入.修改.删除操作,均由数据库会话管理. 会话用 db.session 表示.在准备把数据写入数据库前,要先将数据添加到会话中然后调用 db. ...
- Codeforces Round #487 (Div. 2) C - A Mist of Florescence
C - A Mist of Florescence 把50*50的矩形拆成4块 #include<bits/stdc++.h> using namespace std; ],b[]; ][ ...
- http://bsideup.blogspot.com/2015/04/spring-boot-thrift-part3.html
Building Microservices with Spring Boot and Apache Thrift. Part 3. Asynchronous services Posted on 4 ...
- Windows 10 配置系统环境变量
首先在桌面找到此电脑(或我的电脑)右击找到属性 点击进入 之后进入到系统详情窗口找到高级系统设置 点击进入 找到环境变量 点击进入 找到Path 点击进入 找到新建点击 将你要为那个应用设置环境的绝对 ...
- 第二十一节,使用TensorFlow实现LSTM和GRU网络
本节主要介绍在TensorFlow中实现LSTM以及GRU网络. 一 LSTM网络 Long Short Term 网络—— 一般就叫做 LSTM ——是一种 RNN 特殊的类型,可以学习长期依赖信息 ...
- NOIP 提高组 2014 联合权值(图论???)
传送门 https://www.cnblogs.com/violet-acmer/p/9937201.html 题解: 相关变量解释: int n; int fa[maxn];//fa[i] : i的 ...
- (数论 最大公约数 最小公倍数) codeVs 1012 最大公约数和最小公倍数问题
题目描述 Description 输入二个正整数x0,y0(2<=x0<100000,2<=y0<=1000000),求出满足下列条件的P,Q的个数 条件: 1.P,Q是正整 ...
- JS(基础)_总结获取页面中元素和节点的方式
一.前言 1.元素和节点的区别 2.总结获取元素的方式 3.总结获取节点的方式 二.主要内容 1.结点和元素的区别 (1)一些常见基本概念: 文档:document 元素:页面中所有的标签 结点:页面 ...
- bzoj2049 线段树 + 可撤销并查集
https://www.lydsy.com/JudgeOnline/problem.php?id=2049 线段树真神奇 题意:给出一波操作,拆边加边以及询问两点是否联通. 听说常规方法是在线LCT, ...