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的特点、结构,用例图的更多相关文章

  1. ****** 四十 ******、软设笔记【网络基础】-Internet和Intranet基础

    Internet和Intranet基础 一.网络地址及子网掩码 1.IP地址结构及类别 IP地址是由32位二进制数,即4个字节组成的,由网络号和主机号两个字段组成. 网络号的位数决定了可以分配的网络数 ...

  2. ****** 五十 ******、软设笔记【UML分析和意义】-类图、对象图、状态图、活动图、顺序图、协作图、构件图、部署图,动静态模式

    一.类图(Class Diagram) 描述一组类.接口.协作已经它们之间的图,用来显示系统中各个类的静态结构图. 类之间的关系(relationship) *依赖(dependency) *泛化(g ...

  3. ****** 三十 ******、软设笔记【计算机体系结构】-循环冗余校验码(CRC)

    循环冗余校验码(CRC)  广泛地在网络通信及磁盘存储时采用.  1.多项式  在循环冗余校验(CRC)码中,无一例外地要提到多项式的概念.一个二进制数可以以一个多项式来表示.如1011表示为多项式X ...

  4. Gradle 1.12用户指南翻译——第四十九章. Build Dashboard 插件

    本文由CSDN博客貌似掉线翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...

  5. SQL注入之Sqli-labs系列第四十七关,第四十八关,第四十九关(ORDER BY注入)

    0x1 源码区别点 将id变为字符型:$sql = "SELECT * FROM users ORDER BY '$id'"; 0x2实例测试 (1)and rand相结合的方式 ...

  6. “全栈2019”Java第四十九章:重载与重写对比详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  7. 第四十九个知识点:描述在IPsec和TLS后的基本想法

    第四十九个知识点:描述在IPsec和TLS后的基本想法 网络安全协议(Internet Protocol Security,IPsec)和安全传输层协议(Transport Layer Securit ...

  8. abp(net core)+easyui+efcore实现仓储管理系统——出库管理之一(四十九)

    abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+ ...

  9. Android项目实战(四十九):Andoird 7.0+相机适配

    解决方案类似: Android项目实战(四十):Andoird 7.0+ 安装APK适配 解决方法: 一.在AndroidManifest.xml 文件中添加 四大组件之一的 <provider ...

随机推荐

  1. docker命令篇

    基础命令: 镜像: 获取镜像 $ docker pull centos:7 下拉自己仓库镜像,在后面仓库部分会讲到. 列出镜像: $ docker image ls 删除镜像: $ docker im ...

  2. Gym-100451B:Double Towers of Hanoi

    题目链接 题目大意:把汉诺双塔按指定顺序排好的最少步数 我写这题写了很久...终于发现不dp不行 把一个双重塔从一根桩柱移动到另一根桩柱需要移动多少次? 最佳策略是移动一个双重 (n-1) 塔,接着移 ...

  3. Centos7下源码编译安装python3.6

    测试环境: 操作步骤: 1. 下载Python源码包(python3.6.0) 官网下载地址:https://www.python.org/downloads/ 搜狐下载地址:http://mirro ...

  4. Python学习day2 while循环&格式化输出&运算符

    day2 运算符-while循环 1.while循环 while循环基本结构; while 条件:      结果    # 如果条件为真,那么循环则执行    # 如果条件为假,那么循环不执行 de ...

  5. 只用200行Go代码写一个自己的区块链!

    Coral Health · 大约23小时之前 · 220 次点击 · 预计阅读时间 7 分钟 · 不到1分钟之前 开始浏览 区块链是目前最热门的话题,广大读者都听说过比特币,或许还有智能合约,相信大 ...

  6. java面试——多线程

    背景:java知识比较宽泛,最好对每一类知识点进行分类总结,方便后面学习查看.该文主要用来总结多线程方面的知识点. 并发与并行的概念 并发性(concurrency)和并行性(parallel)是两个 ...

  7. 构造方法关键字---this

    this 可以在构造方法之间进行调用 *this在构造方法之间调用 this() this 可以在构造方法之间进行调用 *this在构造方法之间调用 this() package cn.homewor ...

  8. 洛谷P2765魔术球问题 最小路径覆盖

    https://www.luogu.org/problemnew/show/P2765 看到这一题第一眼想到:这不是二分最大流吗,后来发现还有一种更快的方法. 首先如果知道要放多少个球求最少的柱子,很 ...

  9. 降维方法PCA与SVD的联系与区别

    在遇到维度灾难的时候,作为数据处理者们最先想到的降维方法一定是SVD(奇异值分解)和PCA(主成分分析). 两者的原理在各种算法和机器学习的书籍中都有介绍,两者之间也有着某种千丝万缕的联系.本文在简单 ...

  10. Go 的构建模式

    Go 的八种 Build Mode exe (静态编译) exe (动态链接 libc) exe (动态链接 libc 和非 Go 代码) pie 地址无关可执行文件(安全特性) c-archive  ...