软件工程一些图的画法

news2025/1/12 2:58:07

软件工程一些图的画法

  • 【一】数据库设计:ER图
    • 【1】ER图简介
    • 【2】实体之间的关系
    • 【3】ER图绘制常见问题
    • 【4】ER图转关系模式
  • 【二】流程图
    • 【1】流程图的作用
    • 【2】流程图中使用的符号
    • 【3】三种循环的流程图画法
    • 【4】流程图的基本结构
    • 【5】流程图常用的形式

【一】数据库设计:ER图

【1】ER图简介

ER图,E就是实体,实体有一组属性;R是关系。找到系统中的实体以及实体关系就可以绘制出ER图。

矩形的是实体,椭圆是属性,实体和实体之间的关系用菱形,关系也有属性。

例如:
学生有【学号、姓名】等诸多属性,是一个实体。
课程有【课程名、学分】等属性,也是一个实体。
而学生有选修课程的关系,所以这两个实体之间有个选课关系。而且选课还有成绩,所以在选修关系上有一个属性【成绩】,如果系统需要,也可以记录选修的时间等属性信息。
在这里插入图片描述

【2】实体之间的关系

ER图中识别出实体后,找到实体之间的关系很重要。而关系可能是一对一(1:1)、一对多(1:n)、多对多(m:n),关系用菱形表示,而关系的类型在菱形的两条与实体的连接线上标注,判断两个实体的关系是,先让实体A假设为1,看它能对应实体B的个数,然后反过来,假设实体B为1个,看实体A对应的个数,就可以得到实体对应关系。

(1)1个学生可关注多个商品,而1个商品可被多个学生关注,所以学生和商品的关系是多对多。
(2)1个学生属于1个班级,而1个班级可以有多个学生,所以班级和学生的关系是一对多。
(3)1个学生拥有1张饭卡,而1张饭卡只属于1个学生,所以学生和饭卡的关系是一对一。

在这里插入图片描述

【3】ER图绘制常见问题

(1)反例1:区分功能和关系
例如,管理员可以管理用户,但是如果系统不记录哪个管理员可以管理哪些用户,那么就无需再ER图上绘制该关系。只有需要再数据库保存的关系,才需要再ER图上保存。

(2)反例2:区分程序功能和数据库数据
挂号排队信息,我个人挂号排队一般不用保存到数据库,所以无需在ER图上表示。另外,如果要显示排队信息,应当是给每个用户一个id序号,程序实现排队,而不是数据库去记录这个排队信息。

在这里插入图片描述

【4】ER图转关系模式

所有的实体应当转为一张表。所以上面的班级、学生、课程、教师都是一张表。

班级表包含字段:班级号、班级名、专业、人数,主键:班级号
学生表包含字段:学号、姓名、性别、年龄,主键:学生号
课程表包含字段:课程号、课程名、课时、学分,主键:课程号
教师表包含字段:编号、姓名、职称、年龄、性别,主键:编号

根据关系是1:1、1:n、m:n转成表

(1)对于1:1的,可以把关系保存到任何一个实体表中
(2)对于1:n的,可以把关系保存到n的那个实体里,例如图中的班级和学生是1对多,那么可以在学生表中增加一个班级id的字段,说明该学生是哪个班级的

学生表包含字段:学号、姓名、性别、年龄、班级id,主键:学生号

(3)对于多对多的关系m:n的,关系保存到新表中
例如,学生和课程是多对多的关系,那么把这两个表的主键拿出来,加上关系属性,组成一个表

学生成绩表:学号、课程号、成绩,主键:学号、课程号

【二】流程图

【1】流程图的作用

流程图可以简单地描述一个过程,是对过程、算法、流程的一种图像表示,在技术设计、交流及商业简报等领域有广泛的应用。流程图可以分为:数据流程图、作业流程图。

流程图的优点:
(1)采用简单规范的符号,画法简单
(2)结构清晰,逻辑性强
(3)便于描述,容易理解

【2】流程图中使用的符号

流程图是用图的形式把一个过程的步骤表示出来,使用图形表示算法的思路是一种极好的方法。流程图由包含具有确定含义的符号、简单的说明性文字和各种连线。

通用的绘制流程图形态和程序的习惯性做法是:
(1)开始用六角菱形或圆角矩形或椭圆
(2)矩形方框表示具体活动过程
(3)菱形框表示决策、审核、判断
(4)结束终止用椭圆
(5)平行四边形表示输入输出
(6)箭头代表工作流方向

另外还规定,流程线是从下往上或从右往左时,必须带箭头;除此之外,都可以不画箭头;流程线的走向默认都是从上向下或者从左往右。符号内的说明文字尽可能简明,通常按从左往右和从上往下的方式书写。并与流向无关。如果说明文字较多,符号内写不完,可以使用注解符。如果注解符干扰或影响到图形的流程,应在另外一页正文上注明引用符号

在这里插入图片描述

在这里插入图片描述

【3】三种循环的流程图画法

(1)for循环
for循环形式: for(表达式1;表达式2;表达式3)
在这里插入图片描述

(2)while循环

while(判断条件){
    执行语句;
}

在这里插入图片描述

(3)do-while循环

do{
    执行语句;
}while(条件判断)

在这里插入图片描述

【4】流程图的基本结构

有顺序结构、分支结构(又称选择结构)、循环结构三种

【5】流程图常用的形式

流程图常用的形式有两种
(1)上下流程图
上线流程图是最常见的一种流程图,它仅表示上一步和下一步的顺序关系
(2)矩阵流程图
矩阵流程图不仅表示下下关系,还可以看出某一过程的责任部门

在流程图中,判断框坐标的流程线表示判断条件为真时的流程,右边的流程线表示条件为假时的流程,有时就在其左、右流程线的上方分别标注“真”、“假”或“T”、“F”或“Y”、“N”,另外还规定,流程线是从下往上或从右往左时,必须带箭头。除此以外,都不画箭头,流程线的走向总是从上向下或从左向右。

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

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

相关文章

图书网站信息采集

首先,你需要安装Haskell的HTTP库,比如http-conduit。你可以使用cabal包管理器来安装它。 然后,你需要定义一个函数来处理HTTP请求。这个函数需要接受一个URL和一个代理服务器的地址作为参数。 import Network.HTTP.ConduitgetURL :: String…

classification_report分类报告的含义

classification_report分类报告 基础知识混淆矩阵(Confusion Matrix)TP、TN、FP、FN精度(Precision)准确率(Accuracy)召回率(Recall)F1分数(F1-score) classi…

springboot全局拦截sql异常

起因:非法用户可通过特定的输入(如输入内容超长)等操作,使后台逻辑发生错误,从而使后台sql语句暴露至前台,进而为sql攻击提供条件 处理流程:经查找com.mysql.cj.jdbc.exceptions的父类为SQLException,在全局异常处理类中增加如下配置,经测试不起作用 ExceptionHandler(SQLExce…

【计算机网络笔记】Internet网络的网络层——IP协议之IP数据报的结构

系列文章目录 什么是计算机网络? 什么是网络协议? 计算机网络的结构 数据交换之电路交换 数据交换之报文交换和分组交换 分组交换 vs 电路交换 计算机网络性能(1)——速率、带宽、延迟 计算机网络性能(2)…

使用Redis实现热搜功能

Redis热搜 原理数据类型redis操作简单实现 实操封装方法执行方法最后使用springboot的定时任务对热搜榜单进行维护 原理 使用redis实现热搜的原理就是维护一个zset集合,然后使用score作为当前搜索词的搜索量,score越高的搜索词就说明该搜索词热度越高。…

OLED透明屏在智慧零售场景的应用

OLED透明屏在智慧零售场景中的应用主要包括以下几个方面: 商品展示:OLED透明屏可以作为商品展示窗口,使得产品可以在玻璃的透明表面上直接呈现展示,同时显示相关的文字和视频广告信息。这种宣传模式可以更加吸引顾客注意力&#…

若依框架前后端分离版,集成数据库版本控制flyway

在admin模块的pom.xml增加依赖 <!-- 数据库版本控制 --><dependency><groupId>org.flywaydb</groupId><artifactId>flyway-core</artifactId><version>7.15.0</version></dependency>在admin模块下的resources 的配置文…

多因素验证如何让企业邮箱系统登录更安全?

企业邮箱系统作为基础的办公软件之一&#xff0c;既是企业内外沟通的重要工具&#xff0c;也是连接企业多个办公平台的桥梁&#xff0c;往往涉及到客户隐私、业务信息、企业机密等等。为了保护邮箱账户的安全&#xff0c;设置登陆密码无疑是保护账户安全的常用措施之一。然而随…

Delphi 12 重返雅典 (RAD Studio 12)

RAD Studio 12 的新功能&#xff1a; 以最新的平台版本为目标&#xff01; RAD Studio 12 提供对 iOS 17&#xff08;仅适用于 Delphi&#xff09;、Android 14 和 macOS Sonoma 的官方支持。RAD Studio 12 还支持 Ubuntu 22 LTS 和 Windows Server 2022。 Delphi 源代码的多…

Paimon 与 Spark 的集成(一)

Paimon Apache Paimon (incubating) 是一项流式数据湖存储技术&#xff0c;可以为用户提供高吞吐、低延迟的数据摄入、流式订阅以及实时查询能力。Paimon 采用开放的数据格式和技术理念&#xff0c;可以与 ApacheFlink / Spark / Trino 等诸多业界主流计算引擎进行对接&#xf…

GoLong的学习之路(二十三)进阶,语法之并发(go最重要的特点)(锁,sync包,原子操作)

这章是我并发系列中最后的一章。这章主要讲的是锁。但是也会讲上一章channl遗留下的一些没有讲到的内容。select关键字的用法&#xff0c;以及错误的一些channl用法。废话不多说。。。 文章目录 select多路复用通道错误示例并发安全和锁问题描述互斥锁读写互斥锁 syncsync.Wait…

有符号数是如何判断正负符号位的?

文章目录 有符号数是如何判断正负符号位的&#xff1f; 运行结果&#xff1a; 有符号数是如何判断正负符号位的&#xff1f; #include<stdio.h> int main() {int input_data 0;printf("Please input the data ! \n");scanf("%d",&input_data);…

[C/C++]数据结构 链表OJ题:环形链表(如何判断链表是否有环)

题目描述: 给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置&…

Excel表列序号

题意&#xff1a; 给你一个字符串 columnTitle &#xff0c;表示 Excel 表格中的列名称。返回 该列名称对应的列序号 。 例如&#xff1a; A -> 1 B -> 2 C -> 3 … Z -> 26 AA -> 27 AB -> 28 … 示例 1: 输入: columnTitle “A” 输出: 1 示例 2: 输…

C# .NET Core API Controller以及辅助专案

准备工作 Windows 10Visual Studio 2019(2017就有可以集中发布到publish目录的功能了吧)C#将方法封装(据说可以提高效率,就像是我们用的dll那种感觉新增专案作为我们API的辅助专案(作用类似dll&#xff0c;此处&#xff0c;你也可以在你自己的API专案里建文件夹&#xff0c;但…

线性代数-Python-04:线性系统+高斯消元的实现

文章目录 1 线性系统2 高斯-jordon消元法的实现2.1 Matrix2.2 Vector2.3 线性系统 3 行最简形式4 线性方程组的结构5 线性方程组-通用高斯消元的实现5.1 global5.2 Vector-引入is_zero5.3 LinearSystem5.4 main 1 线性系统 2 高斯-jordon消元法的实现 2.1 Matrix from .Vecto…

第一章 Object-XML 映射简介

文章目录 第一章 Object-XML 映射简介基础如何工作的映射选项IRIS 中的相关工具XML 文档的可能应用 第一章 Object-XML 映射简介 基础 将对象映射到 XML 一词意味着定义如何将该对象用作 XML 文档。要将对象映射到 XML&#xff0c;请将 %XML.Adaptor 添加到定义该对象的类的超…

一题三解(暴力、二分查找算法、单指针):鸡蛋掉落

涉及知识点 暴力、二分查找算法、单指针 题目 给你 k 枚相同的鸡蛋&#xff0c;并可以使用一栋从第 1 层到第 n 层共有 n 层楼的建筑。 已知存在楼层 f &#xff0c;满足 0 < f < n &#xff0c;任何从 高于 f 的楼层落下的鸡蛋都会碎&#xff0c;从 f 楼层或比它低的…

基于51单片机的万年历-脉搏计仿真及源程序

一、系统方案 1、本设计采用51单片机作为主控器。 2、DS1302采集年月日时分秒送到液晶1602显示。 3、按键年月日时分秒&#xff0c;心率报警上下限。 4、红外对接管传感器采集心率送到液晶1602显示。 5、心率低于下限或高于上限&#xff0c;蜂鸣器报警。 二、硬件设计 原理图如…

18 Linux 阻塞和非阻塞 IO

一、阻塞和非阻塞 IO 1. 阻塞和非阻塞简介 这里的 IO 指 Input/Output&#xff08;输入/输出&#xff09;&#xff0c;是应用程序对驱动设备的输入/输出操作。当应用程序对设备驱动进行操作的时候&#xff0c;如果不能获取到设备资源&#xff0c;那么阻塞式 IO 就会将对应应用…