软件工程一些图的画法

软件工程一些图的画法

【一】数据库设计: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循环

java 复制代码
while(判断条件){
    执行语句;
}

(3)do-while循环

java 复制代码
do{
    执行语句;
}while(条件判断)

【4】流程图的基本结构

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

【5】流程图常用的形式

流程图常用的形式有两种

(1)上下流程图

上线流程图是最常见的一种流程图,它仅表示上一步和下一步的顺序关系

(2)矩阵流程图

矩阵流程图不仅表示下下关系,还可以看出某一过程的责任部门

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

相关推荐
郝学胜-神的一滴11 小时前
Effective Python 第44条:用纯属性与修饰器取代旧式的 setter 与 getter 方法
开发语言·python·程序人生·软件工程
张较瘦_16 小时前
从零学会绘制系统架构图:目的、思路与实操指南
架构·系统架构·软件工程
破晓之翼21 小时前
控制论的定义、工程意义及系统功能整合
设计模式·软件工程·产品经理·学习方法
yy.y--1 天前
软件工程的核心原理与实践
软件工程
数学小牛马1 天前
现代软件工程课程 个人博客作业
软件工程
瓯雅爱分享1 天前
Java+Vue构建的采购招投标一体化管理系统,集成招标计划、投标审核、在线竞价、中标公示及合同跟踪功能,附完整源码,助力企业实现采购全流程自动化与规范化
java·mysql·vue·软件工程·源代码管理
lisw051 天前
SolidWorks:现代工程设计与数字制造的核心平台
人工智能·机器学习·青少年编程·软件工程·制造
郝学胜-神的一滴1 天前
使用Linux的read和write系统函数操作文件
linux·服务器·开发语言·数据库·c++·程序人生·软件工程
郝学胜-神的一滴2 天前
Python中的鸭子类型:理解动态类型的力量
开发语言·python·程序人生·软件工程
zero13_小葵司2 天前
如何构建高质量的分布式系统监控体系
软件工程·团队开发