本系列文章为笔记,内容根据北京大学《软件工程》MOOC

UML的模型表达工具

系统静态部分建模工具
UML为不同抽象层提供了6种可对系统静态部分建模的图形工具

  • 类图

显示了类(及接口)、类的内部结构以及与其他类的联系,是最重要的模型

  • 构件图

表示如何组织构件,描述了构件及构件之间的依赖关系

  • 组合结构图

组合结构图展示了类或协作的内部结构

  • 对象图

对象以及它们之间的关系。说明在类图种所发现的事物的实例的数据结构和静态快照

  • 部署图

进行处理的结点和在结点上生存的制品的配置。对系统的静态部署视图建模

  • 制品图

展示了一组制品以及其间依赖关系。利用制品图可以对系统的静态实现视图建模

系统动态部分建模工具
UML为不同抽象层提供了7种可对系统动态部分建模的图形工具

  • 用况图:需求模型
  • 状态图:当对象行为比较复杂时,可用状态图辅助模型描述对象的状态及其状态转移
  • 活动图:从活动到活动的控制流,可用来描述对象的操作流程,也可以描述一组对象之间的协作行为或业务流程
  • 顺序图:消息的时间次序。可用来表示一组对象之间的交互情况
  • 通信图:收发消息的对象的组织结构。可用来表示一组对象之间的交互情况
  • 交互概观图:描述系统的宏观行为,是活动图和顺序图的混合物
  • 定时图:表示交互,展现了消息跨越不同对象或角色的实际时间,不仅仅关心消息的相对顺序

类图

定义
类图显示了类(及其接口)、类的内部结构以及与其他类的联系,是面向对象分析和设计所得到的最重要的模型
作用:可视化地表达系统的静态结构模型

内容

  • 通常包含:类、接口、依赖、泛化和关联关系等
  • 还可以包含注解和约束,以及包含子系统。甚至,可包含一个实例,以便使其可视化

注:这些成分,确定了所表达系统的各种形态

类图的一般用法
类图主要用于对系统的静态视图进行建模,支持表达系统的功能需求,即系统提供给最终用户的服务
创建类图包括以下四方面工作

  • 对系统中的概念(词汇)建模,形成类图中的基本元素

使用“类”来抽象系统中各个组成部分,包括系统环境。然后,确定每一类的责任,最终形成类图中的模型元素。

  • 对待建系统中的各种关系建模,形成该系统的初始类图

使用UML中表达关系的术语,例如关联、泛化和依赖等来抽象系统中各成分之间的关系,形成该系统的初始类图
当用关联关系建模时,是在对相互同等的两个类建模。给定两个类间的关联,则两个类以某种方式相互依赖,并且常常从两边都可以导航

  • 对于每一对类,如果需要从一个类的对象到另一个类的对象导航,就要在这两个类之间建立一个关联
  • 对于每一对类,如果一个类的对象要与另一个类的相互交互,而后者不作为前者的过程局部变量或操作参数,就要在这两个类之间建立一个关联
  • 如果关联中的一个类与另一端的类相比,前者在结构或者组织上是一个整体,后者看来像它的部分,则在靠近整体的一端用一个菱形对关联修饰,从而将其标记为聚合
  • 对于每一个关联,都要说明其多重性(特别当多重性不为*时,其中*是默认的多重性)

    • 依赖关系是使用关系,常见的依赖关系是两个类之间的连接,其中一个类只是使用另一个类作为它的操作参数

      • 创建一个依赖,从含有操作的类指向被该操作用作参数的类
  • 泛化关系是“is-a-kind-of”关系,在对系统的词汇建模中,经常遇到结构或行为上与其他类相似的类,可以提取所有共同的结构特征和行为特征,并把它们提升到较一般的类中,特殊类继承这些特征

    • 给定一组类,寻找两个或以上的类的共同责任、属性和操作
    • 把这些共同的责任、属性和操作提升为较一般的类
    • 画出从每个特殊类到它的较一般的父类的泛化关系,用以表示特殊的类继承较一般的类
  • 模型化系统中的协作,给出该系统的最终类图

使用类和UML中表达关系的术语,模型化一些类之间的协作,用类图对这组类以及它们之间的关系建模
例如下图显示了使机器人沿着一条路径移动所涉及的类

用况图
用况图的内容
通常包含6个抽象:

  • 主题
  • 用况
  • 参与者
  • 依赖
  • 泛化
  • 关联

用况图的术语

  • 主题

系统行为(功能)的建模工具-USE CASE图

  • USE CASE(用况)

定义(从两个视角)

  • 使用视角:用况图表达了参与者使用系统的一种方式
  • 系统设计视角:一个use case 规约了系统可以执行的一个动作序列

包括一些可能的变体,并对特定的操作者产生可见的、有值的结果

  • 对以后开发活动的影响

    • Use Case是系统分析和设计阶段的输入之一

      • 是类、对象、操作的源;并作为分析和设计的一个依据
    • Use Case是制定开发计划,测试计划,设计测试用例的依据之一
    • Use Case可以划分系统与外部实体的界限,是系统开发的起点

软件工程类图_软件工程系列-UML3相关推荐

  1. 软件工程 选课系统的uml类图_想成为高级程序猿,面向对象建模和UML你不应该知道?...

    一.面向对象 1.基本概念 软件对象,是一种将状态和行为有机集合起来形成软件构造模型 对象和类 对象是状态和行为构成的 类是相同属性和操作的一组对象的组合 消息和事件 消息是指描述事件发生的信息,是对 ...

  2. UML软件工程--类图

    UML 基础:类图 选自:IBM 这是关于统一建模语言.即UML 里采用的基本图的一系列文章的一部分.在我 先前关于序列图的文章 里,我把重点从 UML 1.4 版,转移到 OMG的采用UML 2.0 ...

  3. 机票预定系统类图_电商系统延时任务机制源码分享

    需求分析: 在javashop电商系统中,各种促销活动都有开始时间和结束时间,想要让一个活动在预定的时间开始或结束,使用定时任务轮询,存在耗性能并且不能在准确的时间点开始或结束的缺点,为了可以在指定的 ...

  4. java 类爆炸_设计模式系列·类爆炸之 Bridge 模式

    迷之微笑 经过 C 哥的精心指导,消息中心终于上线!代码运行了半个月,稳健无 bug . 王小二托着下腮,看着代码,一抹迷之微笑随之闪现^_^.作为一名有追求的码农,此时的快乐或许只有自己能懂. 消息 ...

  5. java观察者模式类图_设计模式(十八)——观察者模式(JDK Observable源码分析)...

    1 天气预报项目需求,具体要求以下: 1) 气象站能够将天天测量到的温度,湿度,气压等等以公告的形式发布出去(好比发布到本身的网站或第三方).java 2) 须要设计开放型 API,便于其余第三方也能 ...

  6. 新闻发布系统类图_如何熟悉一个系统?(内含知识大图)

    开发人员经常会面临下面一些场景: 新人入职,需要学习已有系统,作为 landing 的一部分,如何学习? 被拉过去参与一个陌生系统的迭代开发或者系统维护(bugfix),如何快速上手? 同事离职或转岗 ...

  7. java 计算器类图_多态计算器(封装、继承、多态、简单工厂)

    一.封装 向对象程序设计中,一个非常重要的技术便是封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏.这样做的好处在于可以使类内部的具体 ...

  8. 观察者模式java类图_初探Java设计模式------观察者模式

    前言 最近刚开始学习RxJava,众所周知,Rxjava就是扩展的观察者模式,所以想学习Rxjava,先入手了解一下观察者模式是很有必要的.那么今天就先稍微了解一下什么是观察者模式. 定义 观察者(O ...

  9. 单例模式访问mysql设计类图_如何应用策略设计模式分离JDBC数据库连接中的外部环境信息...

    软件项目实训及课程设计指导--如何应用策略设计模式分离JDBC数据库连接中的外部环境信息 1.什么是策略(Strategy)设计模式 策略设计模式把"算法"(也就是软件应用系统中的 ...

最新文章

  1. Enterprise Library 2.0 技巧(1):如何使用外部配置文件
  2. 不歧视双非的计算机院校,公平!考研西工大,双非院校倒数第一名考生上岸,本校考生被刷...
  3. 前端校招准备--HTTP相关面试题总结
  4. linux 系统kill用法
  5. PHP 设计模式之装饰器模式
  6. #HTTP协议学习# (七)cookie
  7. 微信小程序父子组件通信
  8. m1芯片MacBook安装Apple优化版TensorFlow(虚拟环境)
  9. 代理ip网站的ip怎么来的_妙用代理IP,防止IP被封
  10. 为什么CPU的使用率总是100%
  11. SpringBoot如何实现自动配置
  12. OpenPLC:符合IEC 61131-3标准的用于网络安全研究的开源工业控制器
  13. Spyder python 多行注释快捷键
  14. 编程还是不要用百度翻译,这里有一款更符合编程的翻译工具
  15. 无缝衔接的人会遭报应吗_树洞网-秘密-大树洞 -第6页-在这里,我们为您寄存秘密、心事...
  16. android好用的文件管理器,安卓哪种文件管理器好用 三款文件管理器横向评测
  17. 深度学习如何参加阿里的天池比赛和进入天池实验室
  18. 增强型脉冲宽度调制模块(ePWM)图解
  19. 腾讯安全与青藤云安全联合发布“天眼云镜”主机安全产品
  20. iOS摸鱼周报 第二期

热门文章

  1. ELK实践(二):收集Nginx日志
  2. 汉语诗词 LaTeX 排版样式
  3. CCAI 2017 | 日本理化学研究所杉山将:弱监督机器学习的研究进展
  4. 米饭里面加点它,4大病症一周见效,一定要告诉家里做饭的人~
  5. 打破“信息孤岛”不能透支信息安全
  6. fl2440hello world模块驱动编写
  7. 广搜,智能拼图(ZOJ1079)
  8. 6.计算机在信息技术中的地位,信息技术在教育中的作用与地位
  9. git21天打卡day15-添加提交修改文件
  10. php json支持中文,php json 支持中文