软考系统架构之案例篇(软件工程相关概念)

案例篇-软件工程相关概念

  • 1. 流程图和数据流图之间的区别与联系
  • 2. 状态图和活动图的含义及其区别
  • 3. 活动图和流程图的区别
  • 4. 数据流图中所包含的基本元素及其作用
  • 5. 数据流图的平衡原则:
  • 6. 用例之间的关系
  • 7. 类之间的关系以及基本含义
  • 8. 对象模型、动态模型和功能模型的含义以及它们之间的关联关系
  • 9. 设计类通常分为三类,这三类的职责分别是
  • 10. 非功能性需求分类及其含义

在这里插入图片描述

其它相关推荐:
软考系统架构之案例篇(架构设计相关概念)
软考系统架构之案例篇(Redis相关概念)
系统架构之微服务架构
系统架构设计之微内核架构

所属专栏:系统架构设计师

1. 流程图和数据流图之间的区别与联系

流程图:以图形化的方式展示应用程序从数据输入开始到获得输出为止的逻辑过程,描述处理过程的控制流。

数据流图:作为一种图形化工具,用来说明业务处理过程、系统边界内所包含的功能和系统中的数据流。

两者的区别主要包括:
(1)数据流图中的处理过程可并行;流程图在某个时间点只能处于一个处理过程。
(2)数据流图展现系统的数据流;流程图展现系统的控制流
(3)数据流图展现全局的处理过程,过程之间遵循不同的计时标准;流程图中处理过程遵循一致的计时标准
(4)数据流图适用于系统分析中的逻辑建模阶段;流程图适用于系统设计中的物理建模阶段

2. 状态图和活动图的含义及其区别

状态图:主要用于描述一个对象在其生存期间的动态行为,表现一个对象所经历的状态序列,引起状态转移的事件(event),以及因状态转移而伴随的动作(action)。

活动图可以用于描述系统的工作流程和并发行为。活动图其实可看作状态图的特殊形式,活动图中一个活动结束后将立即进入下一个活动(在状态图中状态的转移可能需要事件的触发)。

两者最大的区别是:
状态图侧重于描述行为的结果,而活动图侧重描述行为的动作。其次活动图可描述并发行为,而状态图不能。

3. 活动图和流程图的区别

  • 活动图描述的是对象活动的顺序关系所遵循的规则,它着重表现系统的行为,而非处理过程;而流程图着重描述处理过程。

  • 流程图一般都限于顺序进程,而活动图则可以支持并发进程。

  • 活动图是面向对象的,而流程图是面向过程的。

4. 数据流图中所包含的基本元素及其作用

数据流:数据流是数据在系统内传播的路径,因此由一组成分固定的数据组成。

外部实体:代表系统之外的实体,可以是人、物或其他软件系统。

加工(处理):加工是对数据进行处理的单元,它接收一定的数据输入,对其进行处理,并产生输出。

数据存储:表示信息的静态存储,可以是文件、文件的一部分、数据库的元素等。

5. 数据流图的平衡原则:

(1)子图与父图之间的平衡:
是指任何一张DFD子图边界上的输入/输出数据流必须与其父图对应加工的输入/输出数据流保持一致。

如果父图中某个加工的一条数据流对应于子图中的几条数据流,而子图中组成这些数据流的数据项全体正好等于父图中的这条数据流,那么它们仍然是平衡的。

(2)子图内部:加工的输入和输出需要平衡。
 其中,数据流图常见3种错误:

  • [黑洞] 一个加工只有输入数据流而无输出数据流。
  • [奇迹] 一个加工只有输出数据流而无输入数据流。
  • [灰洞] 若一个加工的输入数据流无法通过加工产生输出流。

6. 用例之间的关系

用例之间的关系主要有泛化(Generalization)、包含(Include)和扩展(Extend)

(1)当可以从两个或多个用例中提取公共行为时,可以使用包含关系来表示。

(2)如果一个用例混合了两种或两种以上不同场景,即根据情况可能发生多种分支,则可以将这个用例分为一个基本用例和一个或多个扩展用例。

(3)当多个用例共同拥有一个类似的结构和行为的时候,可以将它们的共性抽象成父用例,其他的用例作为泛化关系中的子用例。

7. 类之间的关系以及基本含义

依赖关系:一个事物发生变化影响另一个事物。

泛化关系:特殊/一般关系。

关联关系:描述了一组链,链是对象之间的连接。

聚合关系:整体与部分生命周期不同。

组合关系:整体与部分生命周期相同。

实现关系:接口与类之间的关系。

8. 对象模型、动态模型和功能模型的含义以及它们之间的关联关系

  • 对象模型:用于描述系统数据结构。
  • 动态模型:用于描述系统控制结构。
  • 功能模型:用于描述系统功能。

这3种模型都涉及数据、控制和操作等共同的概念,但侧重点不同,从不同侧面反映了系统的实质性内容,综合起来全面地反映了对目标系统的需求。

功能模型指明了系统应该“做什么”;动态模型明确规定了什么时候做;对象模型则定义了做事情的实体。

9. 设计类通常分为三类,这三类的职责分别是

(1)实体类。实体类映射需求中的每个实体,保存需要存储在永久存储体中的信息,例如,用户、商品等。

(2)控制类。控制类是用于控制用例工作的类,用于对一个或几个用例所特有的控制行为进行建模。例如,结算、备货等。

(3)边界类。边界类用于封装在用例内、外流动的信息或数据流。例如,浏览器、购物车等。

10. 非功能性需求分类及其含义

  • 操作性需求(Operational Requirements):指系统完成任务所需的操作环境要求及如何满足系统将来可能的需求变更的要求。
  • 性能需求(Performance Requirements):针对系统性能要求的指标。常见的包括:响应时间、吞吐率。
  • 安全性需求(Security Requirements):防止系统崩溃和保证数据安全所需要采取的保护措施或预防措施。
  • 文化需求(Cultural Requirements):使用本系统的不同用户群体对系统提出的特有要求。

在这里插入图片描述

其它相关推荐:
软考系统架构之案例篇(架构设计相关概念)
软考系统架构之案例篇(Redis相关概念)
系统架构之微服务架构
系统架构设计之微内核架构

所属专栏:系统架构设计师

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

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

相关文章

vue3中的Props

Props声明 一个组件需要显示声明它所接受的props&#xff0c;这样vue才能知道外部传入的哪些是props&#xff0c;哪些是透传attribute 在使script setup的单文件中&#xff0c;props可以使用 defineProps()宏来声明&#xff1a; <script setup> const props definePro…

路由器和交换机之间的区别

1.工作层不同 路由器工作在网络层&#xff0c;根据IP地址寻址&#xff0c;处理TCP/IP协议 交换机工作在中继层&#xff0c;根据MAC地址寻址&#xff0c;无法处理TCP/IP协议 2.转发对象不同 路由器转发的对象是IP地址&#xff08;网络地址&#xff09;&#xff0c;负责让主机连接…

虚拟化 vs. 裸金属:K8s 部署环境架构与特性对比

伴随着 IT 云化转型的逐步推进&#xff0c;越来越多的用户加入应用容器化改造的行列&#xff0c;并使用 Kubernetes&#xff08;K8s&#xff09;进行容器部署管理。然而&#xff0c;令不少用户感到困惑的是&#xff0c;由于大部分应用此前都部署在虚拟化或超融合环境&#xff0…

golang 工程组件 grpc-gateway—yaml定义http规则,和自定义实现网关路由

yaml定义http规则&#xff0c;和自定义实现网关路由 proto定义http规则总归是麻烦的&#xff0c;因为proto文件还是定义消息&#xff0c;grpc接口好一些。配置http规则有更好的方式。我们可以使用yaml文件定义接口的http规则。 同时有些接口不是只是让网关转发这么简单 有时需…

JVM相关面试题(每日一练)

1. 什么是垃圾回收机制&#xff1f; 垃圾收集 Garbage Collection 通常被称为“GC”&#xff0c;它诞生于1960年 MIT 的 Lisp 语言&#xff0c;经过半个多世纪&#xff0c;目前已经十分成熟了。 jvm 中&#xff0c;程序计数器、虚拟机栈、本地方法栈都是随线程而生随线程而灭&a…

在本地模拟C/S,Socket套接字的使用

public class SocketTCP01Server {public static void main(String[] args) throws IOException {/**1.在本机的 9999 端口监听 &#xff0c;等待连接细节&#xff1a; 要求在本机没有其他服务在监听999细节&#xff1a;这个ServerSocket 可以通过accept()返回多个Socket[多个客…

网关概念及java项目中用使用网关场景

网关&#xff08;Gateway&#xff09;是一个在网络系统中起到入口和出口的作用的组件或服务。它位于客户端和服务器之间&#xff0c;负责处理进出网络的流量&#xff0c;实现一些重要的功能&#xff0c;如路由、安全认证、协议转换等。 网关在网络架构中扮演了多种角色&#x…

使用Jenkins触发gitlab的webhook

满足条件&#xff1a; 首先手动构建可以完成构建 例如&#xff1a; 打开项目点击配置 在“Build Triggers”栏勾选&#xff0c;Build when a change is pushed to GitLab. GitLab webhook &#xff1b;如下 复制URL链接&#xff0c;我的链接是&#xff1a;http://192.168.44…

TypeScript - 字符串的字面类型

啥是字面量类型 字面量类型&#xff0c;是限制了一个字符串变量的取值范围只能某几个固定字符串中的一个。 我感觉 与枚举类型有异曲同工之妙。 字符串字面量类型有啥用 没啥用。 就是来限制字符串变量不能随便赋值的。 定义一个我看看 让你读书&#xff0c;但是只有四本书可以…

设计模式之门面模式

前言 什么是门面模式 门面模式是一种结构型设计模式&#xff0c;它提供了一个统一的接口&#xff0c;用来访问子系统中的一群接口。它定义了一个高层接口&#xff0c;让子系统更容易使用。这种模式常用于将一个复杂的子系统封装成一个简单的接口&#xff0c;使得客户端可以方…

Java 枚举类型与泛型-第13章

Java 枚举类型与泛型-第13章 1.枚举类型 枚举类型是一种特殊的数据类型&#xff0c;用于表示一组有限的命名常量。枚举类型可以帮助您更清晰地定义和管理相关常量&#xff0c;并提供类型安全性。 1.1使用枚举类型设置常量 枚举类型是一种非常方便的方式来设置常量。我们可以…

JavaScript简介

JavaScript是一种高级的、解释型的编程语言&#xff0c;用于在网页上实现交互和动态效果。它广泛应用于前端开发中&#xff0c;是构建现代Web应用的核心技术之一。JavaScript可以直接嵌入到HTML页面中&#xff0c;并通过浏览器解释执行。 历史与发展 JavaScript由Netscape公司…

基于51单片机的温度测量报警系统的设计与制作

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、实习目的二、实习任务2.1 设计温度测量报警系统硬件电路2.2 温度测量报警系统软件编程、仿真与调试&#xff1b;2.3 完成温度测量报警系统的实物制作与调试…

从一线到联合,克唑替尼在ALK阳性NSCLC治疗新旅程【医游记】

&#xff08;图片来源于网络&#xff09; 一、克唑替尼简介 克唑替尼(Crizotinib),商品名赛可瑞,是一款口服服用的小分子酪氨酸激酶抑制剂。克唑替尼最早于2011年被美国FDA批准用于ALK阳性晚期NSCLC的治疗。其主要靶点为间变淋巴瘤激酶(ALK)和ROS1(ROS proto-oncogene 1)融合…

记录:获取windows当前登录的用户信息

参考&#xff1a; 获取列表&#xff1a;用户信息 作为系统帐户运行的Windows服务如何获得当前用户的\AppData\Local\专用文件夹&#xff1f;-腾讯云开发者社区-腾讯云 (tencent.com) 获取当前账号&#xff1a;域\用户名 c#如何从 .NET 中的 Windows 服务获取当前记录的用户…

3.1、Linux的vim编辑器

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 目录 前言&#xff1a; 插入模式 底行模式 命令模式 前言&#xff1a; 没有进行配置的vim编辑器在写代码时和记事本没什么两样&#xff0c;所以最开始我们可以先下载一个插件&#xff0c;在Linux下两行指令的问题&…

视频格式高效转换:MP4视频批量转MKV格式的方法

随着数字媒体技术的不断发展&#xff0c;视频格式转换已经成为了我们日常工作中不可或缺的一部分。不同的视频格式适用于不同的场景和设备&#xff0c;因此将视频从一种格式转换为另一种格式往往是我们必须完成的任务。在本文中&#xff0c;我们将重点介绍如何运用云炫AI智剪高…

Apollo安装全攻略

安装方式 概述快速安装安装基础软件安装 Ubuntu Linux安装 Docker Engine 安装 Apollo 环境管理工具获取 GPU 支持&#xff08;可选&#xff09;创建和进入 Apollo 环境容器 源码安装安装 Linux 系统&#xff08;可选&#xff09;安装 NVIDIA GPU 驱动安装 docker下载并编译 Ap…

go中网络流量分析gopacket库的使用

一、前言 近来&#xff0c;笔者想学习下用go构造tcp数据包&#xff0c;这里涉及到gopacket库的使用&#xff0c;故这里记录下关于gopacket库的一些学习记录 二、介绍 gopacket 是 Go 语言的网络数据包处理库&#xff0c;它提供了方便的 API 来读取、分析、修改和生成网络数据包…

【Linux】安装配置解决CentosMobaXterm的使用及Linux常用命令命令模式

目录 一、介绍 1. 背景 2. 讲述&功能 二、Centos安装配置&MobaXterm 1. 创建 2. 安装 3. 配置 4. MobaXterm使用 三、Linux常用命令&模式 1. 常用命令 2. 三种模式 3. 命令使用&换源 4. 拍照备份 一、介绍 1. 背景 CentOS的背景可以追溯到200…