UML建模

  • UML介绍
  • 用例图
    • 参与者、用例的基本概念。
    • 绘制用例图。
  • 类图和对象图
    • 类图的基本概念。
    • 分析识别类。
  • 顺序图
    • 顺序图的组成。
    • 顺序图中的消息类型。
    • 绘制顺序图。
  • 状态图
    • 状态机的含义。
    • 状态机图中的基本标记符。
    • 绘制状态图。

UML介绍

UML规格定义了两大类的IML图:结构图和行为图

  • 结构图:结构图从不同的抽象和实现程度上描述了一个系统和系统构建的静态结构,并且描述了一个系统的对象如何随着时间额的变化而变化。

  • 行为图:展示了一个系统中的对象的动态行为,它描述了一个系统的对象如何随着时间的变化而变化/


UML体系结构——“4+1”视图

  • Kruchten 提出了一个"4+1"视图模型,从5个不同的视角包括包括逻辑试图、进程视图、物理视图、开发视图、场景视图来描述软件体系结构。每一个视图只关心系统的一个侧面,5个试图结合在一起才能反映系统的软件体系结构的全部内容。
  • 逻辑视图:逻辑试图主要是用来描述系统的功能需求,即系统提供给最终用户的服务. 在逻辑视图中,系统分解成一系列的功能抽象、功能分解与功能分析,这些主要来自问题领域(Problem Definition)。 在面向对象技术中,通过抽象、封装、继承,可以用对象模型来代表逻辑视图,可以用类图(Class Diagram)来描述逻辑视图。
  • 开发视图:开发视图主要用来描述软件模块的组织与管理(通过程序库或子系统)。服务于软件编程人员, 方便后续的设计与实现。它通过系统输入输出关系的模型图和子系统图来描述。要考虑软件的内部需求:开发的难易程度、重用的可能性,通用性,局限性等等。开发视图的风格通常是层次结构,层次越低,通用性越好(底层库:Java SDK,图像处理软件包)。
  • 进程视图:进程试图侧重系统的运行特性,关注非功能性的需求(性能,可用性)。服务于系统集成人员,方便后续性能测试。强调并发性、分布性、集成性、鲁棒性(容错)、可扩充性、吞吐量等。定义逻辑视图中的各个类的具体操作是在哪一个线程(Thread)中被执行。
  • 物理视图:物理试图主要描述硬件配置。服务于系统工程人员,解决系统的拓扑结构、系统安装、通信等问题。主要考虑如何把软件映射到硬件上,也要考虑系统性能、规模、可靠性等。可以与进程视图一起映射。

跳转顶部


用例图

参与者、用例的基本概念。

用例图的作用:是需求分析中的产物,主要作用就是描述参与者和用例之间的关系,邦族开放人员了解系统的功能

由参与者(Actor)、用例(Use Case) 以及它们之间的关系构成的用于描述系统功能的动态视图称为用例图。其中用例和参与者之间的对应关系又叫做通讯关联(Communication Association)。

用例图的构成元素有四个:参与者(角色)、用例、系统边界和元素

  • 参与者(Actor):在村与系统外部并且直接与程序或者系统接触的人、系统、子系统火类的外部实体的抽象,在UML中使用一个小人来进行表示
  • 用例:用例即使外部可见的系统功能,对系统提供的服务来进行描述,使用椭圆来进行表示
  • 系统边界:指系统与系统之间的界限,使用方形框+系统名称来表示
  • 元素间的关系有四个:关联、泛化、包含
    关联:参与者与用例之间的关系,,如何一方都可以接收或者发送信息(箭头指向信息接受方)

    泛化:是类元一般描述和具体描述之间的关系,具体描述建立在一般描述的基础之上,并且对其进行了扩展。具体描述完全拥有一般描述的特性、成员和关系,并且包含补充信息(类似于Java这继承关系)。

    依赖:类A的实现需要使用到B,这就是依赖,这种使用关系是具有偶然性、临时性、非常弱的,并且B类的的变化会影响到A,则A与B就是存在依赖关系,依赖关系是弱的关联关系,例如:人们依赖计算机去做软件的开发。

    箭头家虚线不仅仅可以代表依赖关系,还可以代表扩展、包含关系,扩展就是对用例功能的延申,包含就是将一个复杂的功能分解成数个小的功能

跳转顶部


绘制用例图。

例题1

在火车票预订系统中,客户可以进行购买车票、退订车票、查询余票和查询列车时刻四个操作。不管是购买车票还是退订车票,用户都必须先进行登录系统操作。其中查询列车时刻主要包括按站站查询和按车次查询两种方式。如果在登录系统的过程中忘记密码,则还可使用找回密码功能。

例题2

在学生信息管理系统的“网上选课模块”中,学生可以进行“查看课程信息”、“选择课程”和“删除已选课程”三个操作。“查看课程信息”主要包括“按课程编号查看”和“按课程名查看”两种方式。

管理员可以进行 “维护课程信息” 操作。

学生和管理员的所有操作均需“登录系统”后方可完成。如果在“登录系统”的过程中忘记密码,则还可使用“找回密码”功能。

跳转顶部


类图和对象图

类图的基本概念。

类图是使用最广泛的一种模型,聪慧例图的视角来看,系统外部是由一个个用例组成的,用例手机系统的面子,而类图依赖描述特性中各个对象的类型以及他们之间存在关系,现实的是系统内部的静态结构,它是系统的里子类图是一种静态模型,代表面向对象的系统

在研究了剋图之前我们需要先了解类,类是包装信息和行为的基本单位,是面向对象的组织核心结构,类由三部分组成,即类名、属性、操作,在UML中具体表示如下

跳转顶部


分析识别类。

在UML中可见性分为四级:

  • public:使用前缀+表示,该属性或方法对所有类可见
  • protected:使用前缀#表示,只对该类的子类可见
  • private:使用前缀-表示,只在该类内部可见
  • package:使用前缀~表示,只对同一报申明的其他类可见

接口也是一个类,它定义了一组提供给外界的操作集合的名称,可以把接口看作是一个特殊的抽象类,他的特殊之处在于:接口不能含有属性,接口中之哟与抽象操作——只有操作名,没有具体的实现方法

接口的图像表达就是之间的圆圈


类之间可以建立四种关系:关联、依赖、聚合和泛化,之变只简单的说一说聚合关系,聚合就是一些系统特性的组成一个整体,如大雁与雁群的关系

  • 聚合中有一个特殊的关系,那就是组合,组合可以看作是更强的聚合操作,他控制着成员对象的创建和结构,部分类需要整体才能存在,如鼠标和电脑的关系

跳转顶部


顺序图

顺序图的组成。


顺序图是一种强调消息时间顺序的几乎图,显示的是参与交互的对象及对象之间信息交换的顺序,用来表示用例中的行为顺序

顺序图的组成

  • 活动者,对象、生命线、控制焦点、消息,活动的发起人活着活动的承受者。

  • 对象:活动中交互的实体,由三种表示方式

  • 生命线:描述对象的生存周期,对象下方的虚线就是生命线

  • 控制焦点:指活动者或对象执行状态的时间段

  • 消息:消息用于描述对象间交互的方式和内容

跳转顶部


顺序图中的消息类型。

信息描述对象之间的通信,它可以激发某个动作、唤起信息或导致目标对象的创建或销毁

信息可以分为以下几类:

  • 同步消息:一个对象向另一个对象发出同步消息后,将处于阻塞状态,一直等到另一个对象的回应。
  • 异步消息:一个对象向另一个对象发出异步消息后,这个对象可以进行其他的操作,不需要等到另一个对象的响应。
  • 返回消息:同步消息的返回消息
  • 自身消息:描述对象内部的函数调用

跳转顶部


绘制顺序图。

机房示例

跳转顶部


状态图

状态机的含义。

状态图就是开关,是描述状态变化的图形。描述了一个对象状态与状态的转变并且象所经历的状态序列,引起状态转移的事件(Event),以及因状态转移而伴随的动作(Action)状态图(Statechart Diagram)主要用于描述一个对象在其生存期间的动态行为,表现为一个对(用例图:描述需求场景;状态图:描述业务场景)一般可以用状态机对一个对象的生命周期建模,状态图用于显示状态机,重点在与描述状态图的控制流。

一个机器的状态图如下:

跳转顶部


状态机图中的基本标记符。


  • 一个状态图只能由一个初态,但是可以由0个或多个终态

  • 状态:主要用来描述一个对象在生命周期内的一个时间段。状态包括:状态名、内部转移、进入/退出操作、子状态、延迟事件等状态的特征

  • 转换:俩个状态之间的关系,当满足条件是,第一个状态中的对象执行操作变成第二个中的对象

其中,除了普通的转换,还有复杂的转换

  • 外部转换:对事件做出响应,引起状态变化或自身转换,同时引发一个特定动作,如果离开或进入状态将引发进入转换、离开转化。

  • 内部转换:对事件做出响应,并执行一个特定的活动,但并不引起状态变化或进入转换、离开转换。

  • 进入转换:当进入某一状态时,执行相应活动。

  • 退出转换:当离开某一状态时,执行相应活动。

事件可以分为几种:信号事件、调用事件、改变事件、时间事件等。

  • 信号事件:信号是作为两个对象之间的通信媒介的实体,它是用来作为对象之间的通信的。

  • 调用事件:是指一个对象对调用的接收,这个对象利用状态的转换而不是固定的处理过程实现操作。

  • 改变事件:是指依赖于特定属性的布尔表达式所表示的条件满足时,事件发生改变。

  • 时间事件:表示时间表达式被满足的事件,它代表时间的流逝。

跳转顶部


绘制状态图。

校园卡

  • 开始——白卡——初始化——正常——冻结(注销)——回收——初始化——损坏——结束

跳转顶部


【UML】UML建模相关推荐

  1. UML软件建模StarUML

    Mac哪款UML软件建模器好用呢?StarUML for mac是Mac平台上的一款UML建模器,StarUML for mac提供了几个模版,帮助用户建立使用新的图表,是目前最流行的UML建模工具. ...

  2. 【基于UML软件建模的在线学习平台】

    文章目录 开发背景与意义 一.需求分析 学生功能结构 教师功能结构 二.部分课程设计报告 总结 开发背景与意义 随着教育事业的改革,国家对高等教学逐渐得到重视.但是传统的高校间教学教育无法在学生与老师 ...

  3. UML统一建模(语言)和数据库建模

    UML统一建模(语言)和数据库建模 UML统一建模语言(Unified Modeling Language )或标准建模语言,是始于1997年一个OMG标准,它通过图形化语言为软件开发中每个阶段(例如 ...

  4. Jude - 体验UML高速建模

    随着UML的扩大,UML建模工具也越来越庞大.不过,许多功能并不是用户所寻求的.因此,Jude听取用户心声,根据用户需要打造,按照使用习惯设计,轻便简单,友好易用,用户可以轻松使用Jude高速建模,极 ...

  5. 【基于UML软件建模的教材管理系统 】

    文章目录 前言 一.教材管理系统 二.部分课程设计报告 总结 前言 随着社会的不断进步,高等院校在校学生人数急剧增加,学校对教材的数量.类型较以前明显增多,给学校的教材管理工作带来了新的挑战.这些挑战 ...

  6. 【基于UML软件建模的客户关系管理系统】

    文章目录 前言 一.需求分析 二.部分课程设计报告 总结 前言 系统要求对使用不同的用户群体,设置不同的权限,设置系统的不同功能.不同的用户所看到的信息也不同.根据系统需要实现的功能,将系统划分成5个 ...

  7. 【基于UML软件建模的人事管理系统】

    文章目录 前言 一.人事管理系统 二.部分课程设计报告 总结 前言 随着信息技术的发展和互联网环境的成熟,管理信息系统的技术更新函待解决.人事管理工作虽然由企业人事管理人员((HR)等负责,但随着企业 ...

  8. UML 太极建模口诀(建模向导与助手)

    UML 太极建模口诀(建模向导与助手) 我从 1998 年起开始学习 UML.Use Case 和 RUP.过去十年来,一直听到国内外有人说,UML 太复杂,RUP 太复杂,果真如此么? 对此,我很不 ...

  9. 【基于UML软件建模的美容机构系统】

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 二. 设计方法.思路. 请添加图片描述 ![请添加图片描述](https://img-blog.csdnimg.cn/ ...

  10. UML 软件建模课程期末复习笔记及课程设计报告

    UML 基础概念 模型 概念:是对现实系统本质特征的一种抽象,简化和直观的描述. 特征 反映性 直观性 简化性 抽象性 分类 概念模型 逻辑模型 物理模型 软件模型 概念:指通过软件建模语言对软件的功 ...

最新文章

  1. oracle 保留一个记录吗,笔记:Oracle查询重复数据并删除,只保留一条记录
  2. 服务中添加mysql服务_Windows平台下在服务中添加MySQL
  3. centos7下安装storm步骤
  4. Web实时通信,SignalR真香,不用愁了
  5. 【数据库】数据库基础
  6. 如何用iMazing Profile Editor编辑配置文件
  7. kolla-ansible解析
  8. 1. PSR-1 --- 基本代码规范
  9. NGUI学习笔记汇总
  10. 【Java】游戏小程序-超级玛丽(代码渗入)
  11. 米奇emoji_三星S9的AR Emoji迎新角色:迪士尼的米奇和米妮
  12. 微信公总测试号的申请+微信网页授权
  13. matlab已知上三角实现对角矩阵,MATLAB及其应用考试卷B卷2010-2011
  14. 数据结构与算法之算法篇
  15. Redis从入门到入坟系列文章(一): keys 命令
  16. 苹果或研发第二代智能手表
  17. 【二分答案】买礼物的艰辛
  18. 乐视体育取消欧冠半决赛直播 欧冠版权或生变数
  19. android 获得wifi列表并连接wifi
  20. 2.1 rtthread pin设备详解

热门文章

  1. Apple Catching
  2. 浅谈PHP与Java之Web开发整合技术
  3. NET Namespace(1)
  4. WIN10添加桌面,切换桌面,蹭蹭提高效率,甚至节约显示器!!!
  5. 分布式学习之一:事务
  6. 2020年8月份需求排期
  7. SAP中复制创建采购申请的过程
  8. 做网站怎样抓住搜索引擎规则
  9. 2017计算机一级教学进度表,2016--2017年度第二学期16职高一年级《计算机应用基础》教学进度表...
  10. win10电池图标不能调亮度_win10屏幕亮度无法调节?一招解决Win10电脑亮度调节失灵...