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. poj1845 sumdiv (因数的和)

    首先分解质因数,$A^B=p_1^{m_1B}p_2^{m_2B}...p_n^{m_nB}$ 然后的话,它的所有因数的和就是$\prod{(1+p_i^1+p_i^2+...+p_i^n)}$ 用一 ...

  2. Integer’s Power HDU - 3208(容斥原理)

    找出(l,r)内的所有的指数最大的次方和 因为一个数可能可以看成a^b和c^d,所以我需要去重,从后往前枚举幂数,然后找可以整除的部分,把低次幂的数去掉. 然后开n方的部分,先用pow()函数找到最接 ...

  3. [SCOI2016]萌萌哒(倍增+并查集)

    一个长度为n的大数,用S1S2S3...Sn表示,其中Si表示数的第i位,S1是数的最高位,告诉你一些限制条件,每个条件表示为四个数,l1,r1,l2,r2,即两个长度相同的区间,表示子串Sl1Sl1 ...

  4. 20165223 结对编程之四则运算week1-阶段性总结

    目录 一.结对对象 二.需求分析 三.设计思路 四.功能截图 五.结对感受 一.结对对象 担任角色 驾驶员(Driver):20165223 蔡霓(是控制键盘输入的人) 领航员(Navigator): ...

  5. java实现sftp客户端上传文件以及文件夹的功能

    1.依赖的jar文件 jsch-0.1.53.jar 2.登录方式有密码登录,和密匙登录 代码: 主函数: import java.util.Properties; import com.cloudp ...

  6. 初入webform的杂七杂八

    客户端---IIS(Internet Information Services的缩写,意为互联网信息服务管理器)---.NET framework---数据库 1.Repeater控件:对应的集合有5 ...

  7. HEOI2013 Segment

    传说中的“李超树”. 大意:给你若干线段,试求横坐标x上的最上方一条线段的编号.无则输出零. 解:用线段树维护. 插入的时候保存自己这个区间上可能成为最大值的线段,被抛弃的则看情况下放. 查询时从最底 ...

  8. 基于Senparc.CO2NET 缓存策略扩展的缓存使用方法

    没啥说的,直接上代码 1.缓存  CacheFactory 实现: //---------------------------------------------------------------- ...

  9. codeblocks: 使用静态(static)链接库(pcre)的配置

    说明:在c/c++程序中使用静态链接库,编译后不再需要相关的dll文件(如:libpcre-1.dll,libpcreposix-0.dll)就可以正常的运行. 现在遇到一个问题,如果使用 pcre_ ...

  10. struts2 OGNL配和通用标签和其它标签的使用

    三.OGNL配合通用标签的其他使用 1.iterator标签(很重要) 动作类 package com.itheima.web.action; import java.util.ArrayList; ...