电子科大软件系统架构设计——面向对象建模基础

文章目录

  • 面向对象建模基础
    • UML建模语言
    • UML模型图
      • 用例图
      • 活动图
      • 类图
      • 顺序图
      • 通信图
      • 状态机图
      • 构件图
      • 部署图
      • 包图
      • 对象图
      • 组合结构图
      • 扩展图
      • 交互概览图
      • 时间图
    • BPMN建模语言
      • 业务建模
      • 定义
      • 模型元素
        • 流对象
          • 活动
          • 事件
          • 网关
        • 数据
        • 人工制品
        • 泳池和泳道
      • 建模案例
        • 订单采购流程建模
        • 电商系统订货业务流程建模
        • 硬件零售商的运输业务流程建模
    • 课堂练习

面向对象建模基础

UML建模语言

一、系统开发为什么需要建模?
在现实世界中,信息系统通常是一个复杂系统。为了开发实现信息系统,需要抽象出一套模型反映系统最本质的东西。这样可略去枝节,实现对信息系统实质性的分析描述和某种程度的系统设计简化。因此,模型是对现实世界的简化描述。

二、系统模型的作用

  • 有助于按照所需样式提供待开发系统的可视化表示
  • 模型可以反映系统的结构和行为
  • 模型提供构造系统的模板
  • 模型可以作为文档化设计决策

三、系统建模的原则

  • 选择合适的建模方法
  • 提供不同层次的抽象模型
  • 从多个视角创建不同的视图模型
  • 模型应准确刻画系统的静态结构与动态行为

四、UML建模语言简介

  • UML(Unified Modeling Language)是一种面向对象的可视化建模语言。
  • UML是一个通用的标准建模语言,它可以对系统的静态结构和动态行为进行建模
  • UML可用于系统开发的不同阶段阶段建模,如从系统需求分析到系统测试与维护。
  • UML包含描述系统的静态结构和动态行为的两大类模型图,共计14种图形。

image-20230905133342903

UML模型图

用例图

用例图模型元素:

image-20230905134028842

系统用例图( System Use CaseDiagram)从系统分析员角度对系统需求功能进行描述的模型图。

  • 用例是系统的功能点抽象
  • 角色是系统的用户类型抽象
  • 角色与用例、用例与用例之间的关联表示它们存在一定的联系。

image-20230905133908758

业务用例图( Business Use CaseDiagram)从用户角度对业务功能进行描述的模型图。

  • 用例是业务的功能点抽象
  • 角色是业务的用户类型抽象
  • 角色与用例、用例与用例之间的关联表示它们存在一定的联系。

image-20230905134332706

活动图

活动图模型元素:

image-20230905134746803

活动图(Activity Diagram)是描述用例内部活动执行顺序以及活动输入输出的模型图。
活动图还可用于描述业务流程、算法流程、系统控制流程等。

image-20230905134711881

类图

类图模型元素:

image-20230905135136570

类图(Class Diagram)是描述系统由哪些类组成,即面向对象程序组成。
它也用于描述表示系统中类程序之间的关系,直观呈现系统程序的静态结构。

image-20230905135206500

顺序图

顺序图模型元素:

image-20230905135333599

顺序图(Sequence Diagram,也称序列图)是一种描述对象之间消息交互的模型图。
用来反映对象之间的动态协作关系,也就是对象之间的交互关系。

image-20230905135438712

通信图

通信图模型元素:

image-20230905135725605

通信图(Communication Diagram)是表现对象间直接消息交互关系的模型图。
它展现了多个对象在协同工作达成共同目标的过程中互相通信的情况。
通过对象和对象之间的链接、发送的消息来显示对象之间的交互关系。

image-20230905135747072

状态机图

状态机图模型元素:

image-20230905135846412

状态机图( State MachineDiagram)是描述一个对象在其生命周期内所经历的各种状态以及状态变迁的模型图。
描述类的对象所有可能的状态以及事件发生时状态的转移条件。

image-20230905135922799

构件图

构件图模型元素:

image-20230905140057026

构件图(Component Diagram)是描述系统的构件组成及其关系的模型图。
描述软件实现的物理结构,从而反映出基于构件的软件实现。

image-20230905140434381

部署图

部署图模型元素:

image-20230905142201823

部署图(Deployment Diagram )是表示系统构件在运行环境节点中的部署方案。
从部署图还可以获知软件和硬件节点之间的物理拓扑、处理节点以及运行环境情况。

image-20230905142320147

包图

包图模型元素:

image-20230905142646033

包图(Package Diagram)是采用类似文件夹的包符号表示模型元素的组织结构模型图。包被描述成文件夹,可以应用在任何一种UML图上。
系统中的每个元素都只能为一个包所有,一个包可嵌套在另一个包中。

image-20230905142937389

对象图

对象图(0bject Diagram)显示类元素的实例间如何关联,以及在运行时如何使用的模型图。
UML对象图与类图一样均反映系统的静态结构,但对象图是从实例化情景来表达,它显示某时刻对象与对象之间的关系。

image-20230905143405814

组合结构图

组合结构图(CompositeStructure Diagram)提供了一种对系统部件的内部结构建模方法,同时也描述本部件与系统其它部件的交互点。
内部部件通过端口与环境交互。内部部件之间的协作关系。

image-20230905143455963

扩展图

扩展图(Profile Diagram)为特定领域提供一种轻量级UML扩展机制(构造型、标记值、约束、基类等)。
使用域专用的属性与限制定义一组构建体,从而扩展潜在的UML元素。

image-20230905143534091

交互概览图

交互概览图(Profile Diagram)为交互图与活动图的混合体。
提供在复杂活动流程节点中描述对象之间的交互行为。

image-20230905143603572

时间图

时间图( Time Diagram)用来建模对象之间交互的时序状态变化关系。
也表示对象之间交互的时间和期限约束。

image-20230905143632676

BPMN建模语言

业务建模

业务建模(Business Modeling,BM)是以业务模型方式描述组织机构管理及其业务所涉及的对象要素、以及它们的行为关系,为持续改进业务过程提供基础。

image-20230905144138683

业务建模内容

  • 组织机构建模
  • 部门职能建模
  • 业务过程建模
  • 业务信息数据建模

image-20230905144338809

业务模型图之间的关系

image-20230905144451605

定义

BPMN(Business Process Modelling Notation)定义了一套标准的业务流程图符号,使用这些符号可以创建描述业务流程操作的图形化模型。

BPMN还支持生成可执行的业务流程执行语言(BPEL)。BPMN可以基于WS-BPEL转换为软件流程组件。使用BPMN可以建模描述机构内部业务流程能力,其模型可以作为设计人员、管理人员和业务流程实现人员交流业务活动的桥梁。

模型元素

流对象

活动

活动(Activity) :是指在流程中执行的任何工作,即任务。

image-20230905144944871

事件

事件(Event) :在业务流程中发生的任何事情。

image-20230905145025840

网关

网关(Gateway) :用于控制流程的分支。

image-20230905145102669

流(Flow)用于连接流对象,与流对象一起定义业务流程的过程。

image-20230905145223226

数据

数据(Data)是指业务流程中的数据表示,具体又分为数据对象、数据对象集、数据输入和数据输出等。

image-20230905145304515

人工制品

人工制品(Artifact)用以表示流程附加一些额外的信息,支持业务流程的过程说明。

image-20230905145335240

泳池和泳道

泳池(Pool)标识业务的各实体参与者活动及流程范围。一个泳池可以包含多个泳道。

image-20230905145419686

建模案例

订单采购流程建模

电商系统订货业务流程建模

image-20230905151328307

硬件零售商的运输业务流程建模

UML建模和BPMN建模都可以使用建模工具Power Designer和Enterprise Architecture。

课堂练习

1.下面哪个不是面向对象思想中的概念? (B)

A.封装B.包含C.多态D.抽象

2.UML结构图不包含下面哪种图?(A)

A.用例图B.类图C.构件图D.部署图

3.类图中包含下面哪个元素?(D)

A.类 B.关联关系 C.接口 D.以上都是

4.顺序图不包含下面哪个元素? (A)

A.泳道 B.对象 C.消息 D.生命线

5.模型是(A)

A.现实世界的简化描述

B.现实世界的完整描述

C.现实世界的具体化描述

D.现实世界的封装

1.面向对象的需求分析与编程语言无关。(√)

2.活动图可以表示并发活动。(√)

3.每个状态机图可以反映多个对象的状态。(×)

4.部署图的节点中可以嵌入构件。(√)

5.BPMN可以基于WS-BPEL转换为软件流程组件。(√)

6.状态机图有自转换状态。(√)

  • 面向对象的思想应用包括面向对象分析、(面向对象设计)、面向对象编程。

  • 类图中类之间的关系有关联关系、依赖关系、聚合关系、(泛化关系)。

  • 通信图中的元素包括对象、(消息)、链、自反链。

  • BPMN流对象分为三类:活动、(事件)、网关。

  • BPMN中数据分为数据对象、(数据对象集)、数据输入和数据输出等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/68794.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

搭建最简单的SpringBoot项目

1、创建maven项目 2、引入父pom <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.15</version> </parent> 3、引入springboot-web依赖 <dependency…

React【React是什么?、创建项目 、React组件化、 JSX语法、条件渲染、列表渲染、事件处理】(一)

文章目录 React是什么&#xff1f; 为什么要学习React React开发前准备 创建React项目 React项目结构简介 React组件化 初识JSX 渲染JSX描述的页面 JSX语法 JSX的Class与Style属性 JSX生成的React元素 条件渲染&#xff08;一&#xff09; 条件渲染 &#xff0…

系统架构技能之设计模式-工厂模式

一、开篇 本文主要是讲述设计模式中最经典的创建型模式-工厂模式&#xff0c;本文将会从以下几点对工厂模式进行阐述。 本文将会从上面的四个方面进行详细的讲解和说明&#xff0c;当然会的朋友可以之处我的不足之处&#xff0c;不会的朋友也请我们能够相互学习讨论。 二、摘…

Java后端开发面试题——企业场景篇

单点登录这块怎么实现的 单点登录的英文名叫做&#xff1a;Single Sign On&#xff08;简称SSO&#xff09;,只需要登录一次&#xff0c;就可以访问所有信任的应用系统 JWT解决单点登录 用户访问其他系统&#xff0c;会在网关判断token是否有效 如果token无效则会返回401&am…

C#循环定时上传数据,失败重传解决方案,数据库标识

有些时候我们需要定时的上传一些数据库的数据&#xff0c;在数据不完整的情况下可能上传失败&#xff0c;上传失败后我们需要定时在重新上传失败的数据&#xff0c;该怎么合理的制定解决方案呢&#xff1f;下面一起看一下&#xff1a; 当然本篇文章只是提供一个思路&#xff0…

SAP-PP:基础概念笔记-5(物料主数据的MRP1~4视图)

文章目录 前言一、MRP1视图Base Unit of Measure&#xff08;UoM&#xff09;MRP 组采购组ABC 指示器Plant-Specific Material Status 特定的工厂物料状态MRP 类型 MRP TypeMRP 类型 MRP TypeMaster Production Scheduling(MPS) 主生产计划基于消耗的计划(CBP)再订货点Reorder-…

uni-app点击复制指定内容(点击复制)

官方api uni.setClipboardData(OBJECT) uni.setClipboardData({data: 要被复制的内容,success: function () {console.log(success);} });

Liquid UI和Fiori的区别

主要围绕以下几个方面就Liquid UI和Firor来进行比较&#xff1a; 开发周期开发成本稳定性和支援性平台架构 影响Firor决策的因素&#xff1a; 复杂的编程过程&#xff0c;Fiori对开发人员要求高&#xff0c;开发难度大&#xff0c;而Liquid UI让开发人员不需要懂SAP后端&…

yolov5运行过程遇到的小问题(随时更新)

1.关于git的问题 解决办法&#xff1a;插入下面代码 import os os.environ["GIT_PYTHON_REFRESH"] "quiet"2.页面太小无法完成操作 解决办法: 如果不好使再考虑降低Batch_Size大小或者调整虚拟内存可用硬盘空间大小&#xff01;&#xff08;调整虚拟内存…

整理mongodb文档:分页

个人博客 整理mongodb文档:分页 个人博客&#xff0c;求关注&#xff0c;如果文章不够清晰&#xff0c;麻烦指出。 文章概叙 本文主要讲下在聚合以及crud的find方法中如何使用limit还有skip进行排序。 分页的情况很经常出现&#xff0c;这也是这篇博客诞生的理由。 数据准备…

Vue组件之间传值

聊一聊vue里面组件之间的传值 首先总结一下vue里面传值的几种关系&#xff1a; 如上图所示, A与B、A与C、B与D、C与F组件之间是父子关系&#xff1b; B与C之间是兄弟关系&#xff1b;A与D、A与E之间是隔代关系&#xff1b; D与F是堂兄关系&#xff0c;针对以上关系 我们把组件…

Redis 缓存穿透击穿和雪崩

一、说明 Redis 缓存的使用&#xff0c;极大的提升了应用程序的性能和效率&#xff0c;特别是数据查询方面。但同时&#xff0c;它也带来了一些问题。其中&#xff0c;最要害的问题&#xff0c;就是数据的一致性问题&#xff0c;从严格意义上讲&#xff0c;这个问题无解。如果对…

Nginx基础+高级(2022版):待更新

1. 文章说明 说明&#xff1a;目前讲的是第一部分nginx核心技术篇&#xff0c;后需篇章会以第一部分为核心技术篇为基础来展开深度讲解&#xff0c;详情关注后续课程的发布。 2. 介绍和准备环境 2.1 介绍 Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器&#xf…

动态维护直径 || 动态维护树上路径 || 涉及LCA点转序列 || 对欧拉环游序用数据结构维护:1192B

https://www.luogu.com.cn/problem/CF1192B 对于直径的求法&#xff0c;常用dp或两次dfs&#xff0c;但如果要动态维护似乎都不太方面&#xff0c;那么可以维护树上路径最大值。 树上路径为&#xff1a; d e p u d e p v − 2 d e p l c a ( u , v ) dep_udep_v-2\times de…

iPhone 15 Pro展示设计:7项全新变化呈现

我们不应该再等iPhone 15 Pro在苹果9月12日的“Wonderlust”活动上发布了&#xff0c;而且可能会有很多升级。有传言称&#xff0c;iPhone 15 Pro将是自iPhone X以来最大的飞跃&#xff0c;这要归功于大量的新变化&#xff0c;从带有更薄边框的新钛框架到顶级A17仿生芯片和动作…

[管理与领导-70]:IT基层管理者 - 辅助技能 - 4- 职业发展规划 - 个人的能力盘点

目录 前言&#xff1a; 一、什么是能力&#xff08;What&#xff09; 1.1 什么是能力 1.2 能力类型 1.3 技能矩阵 二、优势与劣势模型 2.1 优势与劣势 2.2 SWOT模型 三、人才结构模型 3.1 广度优先&#xff1a;一字型/全面型人才 3.2 深度优先&#xff1a;I型人才、…

Django框架中使用drf框架开发

一、drf框架特点&#xff1a; 全称 Django REST framework 两大部分&#xff1a;序列化/反序列化 和 增删改查序列化&#xff1a;把数据库数据提取出来变成python常用格式的过程&#xff0c;例如转成json格式这种反序列化&#xff1a;把数据写入到数据库的过程&#xff0c…

浅谈一下酒吧和酒馆的不同

相信有很多朋友还不怎么清楚酒吧和酒馆的区别是什么&#xff0c;这里为大家简单介绍一下两者的不同&#xff0c;个人见解&#xff0c;如有错漏&#xff0c;欢迎指出。一、首先是他们的经营范围不同酒馆经营通常包含酒水和餐饮&#xff0c;适合朋友聚会或者是和商业伙伴聊天。而…

QLoRA:量化LLM的高效微调策略与实践

如果你对这篇文章感兴趣&#xff0c;而且你想要了解更多关于AI领域的实战技巧&#xff0c;可以关注「技术狂潮AI」公众号。在这里&#xff0c;你可以看到最新最热的AIGC领域的干货文章和案例实战教程。 一、前言 在大型语言模型&#xff08;LLM&#xff09;领域&#xff0c;微…

(位运算) 剑指 Offer 15. 二进制中1的个数 ——【Leetcode每日一题】

❓ 剑指 Offer 15. 二进制中1的个数 难度&#xff1a;简单 编写一个函数&#xff0c;输入是一个无符号整数&#xff08;以二进制串的形式&#xff09;&#xff0c;返回其二进制表达式中数字位数为 ‘1’ 的个数&#xff08;也被称为 汉明重量).&#xff09;。 提示&#xff…