首先要了解,矩形,椭圆,菱形分别对应ER图中的实体、属性和关系,根据题意画图,具体操作略
其次,转换关系模式分为1:1、1:n、n:m三种。我们来分别举例说明。
E-R图
关系模式:
职工(职工号,姓名,年龄)产品(产品号,产品名,价格)负责(职工号,产品号)
仓库(仓库号,地点,面积)产品(产品号,产品名,价格)仓储(产品号,仓库号,数量)
学生(学号,姓名,年龄,性别)课程(课程号,课程名,学时数)选修(学号,课程号,成绩)
方法:把1端实体主码加入n和m(eg:课程号)
课程(课程号,课程名,学分,学时)教师(教师号,教师名,性别,职称,课程号)参考书(书号,书名,出版社,主编,课程号)
供应商(供应商号,供应商名,地址)零件(零件号,零件名,单价)产品(产品号,产品名,型号)供应(供应商号,零件号,产品号,数量)
①试画出ER图,并注明属性和联系类型。(5分)
②将E-R图转换成关系模型,并注明主码和外码(5分)
顾客(顾客编号,姓名,地址,年龄,性别)
消费(商店编号,顾客编号,消费金额,日期)
先要了解基本构图元素
圆角的矩形表示变换数据的处理
题干简要如下图
解题目标:找到源点、终点、数据处理、数据存储、数据流动方向
分析题干,工厂有采购部,采购部需要订单报表,那就需要生成报表的订单系统。零件出入库,库存会随之变化,自然需要库存管理系统。
流程如下:零件通过库存系统,出库,经订单系统生成报告,最后送到采购部。
则顶层流图如下
订货过程涉及两块数据流动,零件库存量的增减和订单报表的生成。
所以,需要两个数据处理模块,处理事务和产生报表,将其替代原来的订货系统,如下图。
数据有两个处理模块,分别是处理事务和产生报表。
处理事务对应的数据是零件库存量,数据存储是库存清单。
产生报表对应的数据是订货的信息,数据存储是订货清单。
根据题干:“零件入库或出库称为事务”
处理事务就是处理库存变化,变化通过仓库清单和库存清单双向流通体现,库存变化后需要在订货信息中有所体现,故产生订货信息的输出。
产生报表的前提是要有订货信息的输入,故添加输入流
至此,大体轮廓已经出现,开始画数据流图!
画数据流图想要一招解决很难,步步为营才是最好的选择。
首先画出顶层数据流图;其次对顶层数据流图进行分析,把抽象模型细化,体现模块的功能,画出0层数据流图;最后对0层进行功能再细化,画出1层数据流图。
这里很重要的一点,画数据流图重点是描绘“做什么?”而不是“怎么做?”。
举个例子,张三去超市买菜,可以展示张三是通过乘车前往超市,但他怎么找到出租车,怎么坐到超市门口,以及怎么挑菜,这些不必体现。
分为三块,数据源点,数据过程,数据终点。
对订货系统的功能进行细化。
首先要对仓库管理员发出的事务进行处理,即处理事务功能。
其次对采购员接收的订货报表进行功能分配,即产生报表功能。
最后,处理事务功能分为两块,从库存中取货和填写订货信息,从而产生两个数据流,库存清单和订货信息;产生报表的前提是有订货信息,故有订货信息输入流。
对功能再细化,我们对上图进行分析,以上出现两个功能模块,分别是处理事务和产生报表。
产生报表的唯一前提是有订货信息,而订货信息来自处理采购员订单的结果,故新增处理订货功能;
订货功能的前提是库存增减的结果体现,故新增更新库存清单功能;
更新库存功能的前提是接收到执行事务的命令,故新增接收事务功能。
通过对单一影响变量逆推的过程,进一步完善数据流图。
STARTIFpTHENWHILEqDO fENDDOELSE BLOCK G N ENDBLOCKENDIFSTOP程序流程图:
N-S盒图:
先执行A后执行B
如果条件P成立,执行A,否则执行B
成立(T)(Y)不成立(F)(N)
先判断后执行,当P1条件成立的情况下,反复执行A语句,直到P1条件不成立为止
先执行后判断,当P1条件不成立的情况下,反复执行A语句,直到P1条件成立为止
状态图有三种状态,分别是初态,中间态和终态
和状态图类似,初态用实心表示,终态用环形表示,圆角矩形代表活动,菱形代表分支,横线黑线代表并发。
可以参考这张图,更为直观
用例图由三个基本元素和四个关系构成。
三个元素:参与者、用例、容器
四个关系:关联、泛化、包含、扩展
适用于参与者和用例之间,通常由参与者指向用例。
用单向实箭头表示
适用于于用例与用例之间或参与者与参与者之间。它和面向对象中的继承关系类似,子用例继承父用例的所有功能。
用空心三角箭头表示
适用于用例和用例直接,由复杂用例分解出简单用例
用虚线箭头表示
适用于用例与用例直接,对基础用例的功能扩展
类图由类的名称、字段和属性、方法,三部分构成。
比如
第一层“动物”是类的名称;第二层“+有生命”是动物的属性;第三层“+新陈代谢+繁殖”是动物具有的方法。
鸟属于动物,可以继承动物属性
表示方法:实线+空心箭头
飞翔实现了“飞行”方法
表示方法:虚线+空心箭头
表示方法:实线箭头
动物需要水和氧气才能生存
表示方法:虚线箭头
一个雁群中有很多大雁,即包含关系
表示方法:空心菱形+实线箭头
鸟和它的翅膀体现了部分和整体的关系,即组合关系
表示方法:实心菱形+实线箭头
程序图可以将程序流程图,N-S图,PAD图映射到图形中。
注意:
比如下图,可以将2,3分为两个圆表示,也可以合在一起
环形复杂度V(G)=E-N+2,其中,E是程序图中边数,N是结点数
上图中V(G)=11-9+2=4
有人可能要问,如果将图中2、3两个节点和4、5两个节点分开结果依然正确吗?
可以自己试试,不影响复杂度,V(G)=13-11+2=4
软件危机是指在计算机软件开发和维护时所遇到的一系列问题。
答案:
第一步:根据题干,在黑盒法中首先可用等价分类法划分输入的等价类,然后用边界值分析法和猜错法作补充。
边界值法:2数之和等于第3数猜错法:输入3个零、输入3个负数
第二步:提出一组初步的测试用例,
第三步:用白盒法验证第三步产生的测试用例的充分性。结果表明,上表中的前8个测试用例,已能满足对被测程序图的完全覆盖,不需要再补充其他的测试用例。
第一步:划分等价类并编号,下表等价类划分的结果
第二步:设计测试用例,以便覆盖所有的有效等价类在表中列出了3个有效等价类,编号分别为①、⑤、⑧,设计的测试用例如下:
第三步:为每一个无效等价类设计一个测试用例,设计结果如下:
第一步:划分等价类。下表列出了划分的结果,包括4个有效等价类,11个无效等价类。在每一等价类之后均加有编号,以便识别