博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[系统分析]UML建模
阅读量:4100 次
发布时间:2019-05-25

本文共 2051 字,大约阅读时间需要 6 分钟。

模型与建模

  • 建模
    重要的研发成果常常产自类比( analogy ),把不太理解的东西和一些已经较为理解、且十分类似的东西做比较,可以对这些不太理解的东西产生更深刻的理解,叫做建模
  • 模型
    建模产生的结果就是模型,模型是对现实的简化、对事物的一种抽象模型可以帮助人们更好地了解事物的本质,抓住问题的要害。在模型中,人们总是剔除那些与问题无关的、非本质的东西,从而使模型与真实的实体相比更加简单、易于把握
  • 建模是为了能够更好地理解正在开发的系统建模的四个目的:
    1. 帮助我们按照需要对系统进行可视化
    2. 允许我们详细说明系统的结构和行为
    3. 给出了一个指导我们构造系统的模板
    4. 对我们所做出的决策进行文档化

UML建模语言

  • 统一了建模的描述方法,类似于工具包
    UML构造块
  • UML 常用符号
    常用符号

用例模型

  • 参与者
    代表位于系统之外并和系统进行交互的一类事物(人、物、其他软件子系统)
  • 寻找参与者
    1. 谁使用系统? Who or what uses the system
    2. 谁安装系统、维护系统? Who installs the system? Who maintains the system
    3. 谁启动系统、关闭系统? Who starts and stops the system
    4. 谁从系统中获取信息,谁提供信息给系统? Who gets and provides information tothe system
    5. 在系统交互中,谁扮演了什么角色? What roles do they play in the interaction
    6. 系统会与哪些其他系统相关联? What other systems interact with this system
    7. 内/外部定时器Does anything happen at a fixed time?
  • 用例
    系统为响应参与者引发的一个事件而执行的一系列的处理/动作,并产生一种有价值的结果
    还应该包括非正常情况下对软件系统动作的描述
    用例图
  • 用例图中的关系
    参与者与用例之间:关联关系:用实线表示
    参与者/参与者之间的关系:泛化关系:实线+空心箭头
    用例之间的关系:泛化关系、含关系include、扩属关系extend
    在这里插入图片描述
  • 用例描述
    用例描述格式
    在这里插入图片描述
  • 用例模型
    包括用例,参与者,用例图,用例描述,系统边界
    在这里插入图片描述

活动图

活动图描述了在一个过程中,顺序的并行的活动及其关系

在这里插入图片描述

  • 活动图的开始、结束、对象
    在这里插入图片描述
  • 分岔和汇总
    同步帮是一条水平或垂直的粗线条
    在这里插入图片描述
  • 泳道
    讲一个活动图中的活动分组,每组表示一个特定的类别,人或部门,负责完成组内的活动
    泳道

类图

  • 类图是一种静态视图
  • 类图需要描述的问题:
    • 有多少个类
    • 每个类定义多少属性
    • 每个类定义多少操作
    • 类之间的关系
    • 类之间的信息交互
      类之间的关系
  • 类的图形表示
    在这里插入图片描述
  • 关联关系的修饰
    在这里插入图片描述
  • 多重性
    在这里插入图片描述
  • 例子
  • 实心箭头表示组合关系,空心箭头表示聚合关系
    在这里插入图片描述

顺序图

  • 顺序图是一种动态的视图
  • 用例图和活动图民古饿了用户的需求,类图为需求的实现给出了解决方案(静态)
  • 已经设计好的类相互协作能否实现对应的功能(动态)
  • 对象之间为实现某种功能必须进行的协作过程称为交互,信息是交互的基本概念,同步消息和异步消息的区别即消息接受者是否占用接口
  • 顺序图和代码之间可以进行映射
    在这里插入图片描述
public classs A{
private B myB = new B(); public void doone(){
myB,doTwo(); myB,doThree(); }
  • 顺序图可以动态验证类模型的可行性
  • 顺序图从上到下,反映了对象相互协作的时间顺序

通信图

  • 顺序图和通信图都是交互图的一种
  • 顺序图强调时间顺序,通信图强调对象之间的结构关系,通信图和顺序图在语义上是等价的
    在这里插入图片描述

状态图

  • 顺序图是对象的状态行为进行建模,有多个对象的参与
  • 状态图,描述了单个对象的状态行为,从选定的角度,把要考察的实体看做一个整体
  • 状态,是对象的生命周期中的一个条件或状况,在此期间,对象可以响应事件和执行活动。例如灯的亮灭
  • 状态机,是一种行为,说明对象在他的生命周期中,响应事件所经历的状态序列以及他们对每个事件的相应
  • 状态图,状态机可以用状态图可视化,状态图显示了一个状态机,强调从状态到状态的控制流
  • 事件,对一个在时间和空间上占有一定位置的有意义的事情的描述
  • UML对4种事件进行描述
    • 参量变化
    • 信号(异步)
    • 调用(同步)
    • 时间事件
  • 迁移,在状态A,发生事件或满足一定条件,转到状态B
  • 状态图的建模元素
    状态图的建模元素
  • 状态图建模
    1. 选择对象
    2. 定义对象在生命周期中可能存在的状态(单个对象的不同状态)
    3. 每种状态下可以接受的事件及将要转去的状态
  • 注意事项
    • 不允许孤立的状态存在
    • 不允许只进不出的状态迁移(“黑洞” )
    • 不允许只出不进的状态迁移(“奇迹”)
    • 不允许没有事件发生的迁移
  • 例子
    在这里插入图片描述
  • 活动图,状态图,交互图对比
    1. 交互
      • 对共同工作的对象群体的行为建模
      • 动态行为
    2. 状态机
      • 对单个对象的行为建模
    3. 活动图
      • 强调从活动到活动的控制流,多个业务角色
      • 状态图是强调对象潜在状态和状态之间的迁移

转载地址:http://dzksi.baihongyu.com/

你可能感兴趣的文章
python 变量作用域问题(经典坑)
查看>>
pytorch
查看>>
pytorch(二)
查看>>
pytorch(三)
查看>>
pytorch(四)
查看>>
pytorch(5)
查看>>
pytorch(6)
查看>>
opencv 指定版本下载
查看>>
ubuntu相关
查看>>
C++ 调用json
查看>>
nano中设置脚本开机自启动
查看>>
动态库调动态库
查看>>
Kubernetes集群搭建之CNI-Flanneld部署篇
查看>>
k8s web终端连接工具
查看>>
手绘VS码绘(一):静态图绘制(码绘使用P5.js)
查看>>
手绘VS码绘(二):动态图绘制(码绘使用Processing)
查看>>
基于P5.js的“绘画系统”
查看>>
《达芬奇的人生密码》观后感
查看>>
论文翻译:《一个包容性设计的具体例子:聋人导向可访问性》
查看>>
基于“分形”编写的交互应用
查看>>