****** 四十九 ******、软设笔记【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 ...
随机推荐
- TJOI2011书架(dp)
当农夫约翰闲的没事干的时候,他喜欢坐下来看书.多年过去,他已经收集了 N 本书 (1 <= N <= 100,000), 他想造一个新的书架来装所有书. 每本书 i 都有宽度 W(i) 和 ...
- Go 语言 HTTP Server 源码分析
http://www.codeceo.com/go-http-server-code.html
- docker 使用指南
Compose is a tool for defining and running multi-container Docker applications. With Compose, you us ...
- CSS3 filter(滤镜)
filter 属性定义了元素(通常是<img>)的可视效果(例如:模糊与饱和度). Filter 函数 注意: 滤镜通常使用百分比 (如:75%), 当然也可以使用小数来表示 (如:0.7 ...
- 再谈 javascript 数组去重
前言 数组去重方法老生常谈,既然是常谈,我也来谈谈 双层循环 也许我们首先想到的是使用 indexOf 来循环判断一遍,但在这个方法之前,让我们先看看最原始的方法: var array = [1,1, ...
- MongoDB 学习记录(二)yum安装
前言:接着上篇继续学习MongoDB,这次学习的是在Linux下安装MongoDB 环境:centos7.3 安装版本:MongoDB4.0 官网安装教程地址 https://docs.mongodb ...
- RabbitMQ入门-发布订阅模式
兔子的Publish/Subscribe是这样的: 有个生产者P,X代表交换机,交换机绑定队列,消费者从队列中取得消息.每次有消息,先发到交换机中,然后由交换机负责发送到它已知的队列中. 生产者代码: ...
- TODO java疑问
TODOjava 疑惑-关于方法调用的参数是基本类型和引用类型的差别 class DataWrap { int a; int b; } public class ReferenceTransferTe ...
- POJ 3687 Labeling Balls (top 排序)
Labeling Balls Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 15792 Accepted: 4630 D ...
- 5.1、按键SW1控制LED1亮灭
从图中可以看出,P1_2引脚可以感知SW1的状态,SW1未按下P1_2=1高电平,按下后P1_2=0接地. 注意:P1_2引脚只是感知SW1,不影响SW1. #include "ioCC25 ...