软件工程一些图的画法

软件工程一些图的画法

【一】数据库设计: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",另外还规定,流程线是从下往上或从右往左时,必须带箭头。除此以外,都不画箭头,流程线的走向总是从上向下或从左向右。

相关推荐
{⌐■_■}7 小时前
【软件工程】tob和toc含义理解
前端·数据库·mysql·golang·软件工程·tidb
~尼卡~7 小时前
软考(软件设计师)软件工程-软件过程模型,敏捷开发
软件工程·敏捷流程·软件设计师-软考
tuan_zhang7 小时前
人机协同的关键枢纽:软件工程3.0中对象模型与模型驱动的融合路径
软件工程·对象模型
张较瘦_7 小时前
[论文阅读] 软件工程 | 自适应CPS中的人机协作与伦理
论文阅读·软件工程
张较瘦_9 小时前
[论文阅读] 软件工程 | 一篇关于开源许可证管理的深度综述
论文阅读·开源·软件工程
TOSUN同星1 天前
干货分享 | TSMaster DBC编辑器操作指南:功能详解+实战示例
数据库·oracle·编辑器·汽车·软件工程
No Silver Bullet2 天前
软件工程功能点估算基础
软件工程·功能点估算
No Silver Bullet2 天前
软件工程功能点估算法常用术语介绍
java·开发语言·软件工程
Da_秀3 天前
软件工程中耦合度
开发语言·后端·架构·软件工程
天若有情6734 天前
01_软件卓越之道:功能性与需求满足
c++·软件工程·软件