参考答案:
【问题1】 【问题4】
E1:商家
E2:支付系统
E3:物流系统
E4:Crystal Reports或第三方服务
【问题2】
D1:订单表
D2:商品表
D3:商品分类表
D4:购物车表
【问题3】
图1-2中缺少的数据流:
转账请求=验证码+价格+账号信息
顾客订单物流查询请求=顾客标识+订单标识
商家订单物流查询请求=商家标识+{订单标识}
详细解析:
本题考查采用结构化方法进行系统分析与设计,主要考查数据流图(DFD)的应用,是比较传统的题目,要求考生细心分析题目中所描述的内容。
DFD是一种便于用户理解、分析系统数据流程的图形化建模工具,是系统逻辑模型的重要组成部分。
【问题1】
本问题考查顶层DFD。顶层DFD一般用来确定系统边界,将待开发系统看作一个加工,图中只有唯一的一个处理和一些外部实体,以及这两者之间的输入输出数据流。题目要求根据描述确定图中的外部实体。外部实体可以是和系统交互的人,以及和系统交互的外部系统或服务。分析题目中的描述,并结合已经在顶层数据流图中给出的数据流进行分析。分析题目中的说明,管理员维护系统中信息,顾客和商家是系统的主要使用者;商家查看订购自家商品的订单信息,根据特殊优惠条件修改价格,更新订单表中的商品价格,还可以添加物流标识并进行物流跟踪;使用支付系统进行支付,通过物流系统进行物流跟踪,以及第三方服务Crystal Report生成报表。可以看出,和系统的交互者包括管理员、顾客、商家三类人,支付系统、物流系统和Crystal Report三种外部系统。
对应图1-1中数据流和实体的对应关系,管理员和顾客已经给出,可知E1为商家,E2为支付系统,E3为物流系统,E4为第三方服务Crystal Report。
【问题2】
本问题考查0层DFD中数据存储的确定。根据说明中所描述的处理和相关数据存储之间的连接关系,判定每个数据存储。加入购物车和浏览购物车分别读取和更新购物车表中的数据;改变价格和提交订单要读取和更新订单表中的数据;维护信息时需要维护商品表和商品分类表,生成报告要读取商品表和商品分类表,加入购物车时,需要读取商品表中的商品信息。
根据描述和图1-2中的数据存储的输入输出数据流提示,可知:D1为订单表,D2为商品表,D3为商品分类表,D4为购物车表。
【问题3】
本问题考查绘制0层DFD时是否将本层该绘制的数据流全部绘制出。对照顶层数据流图和0层数据流图,检查是否和外部实体之间的数据流一致;仔细对照说明中的描述和图1-2中给出的数据流,检查是否遗漏掉信息。说明中:提交订单处理时,后台计算购物车表中的商品的总价,即需要读出购物车表中的相关价格进行计算,读取出其中数据;付款需要读取顾客表中关联的支付账户,并向支付系统提交转账请求,然后根据转账结果更改购物车表中商品的状态;生成报告时根据管理员和商家设置的报告选项,从订单表、商品表以及商品分类表中读取数据,再调用第三方服务Crystal Reports生成相关报告。将这些说明和图1-2进行对照,发现缺少了从付款到购物车表(D4)、从购物车表到提交订单、从顾客表到付款,以及从订单表(D1)到生成报表等4条数据流。
【问题4】
本问题考查在绘制数据流图时数据流的数据项组成。数据流图描述了系统的分解,但它并没有给出图中各成分的说明。通常采用数据字典为数据流图中的每个数据流、文件、处理,以及组成数据流或文件的数据项做出说明。对于数据流,通常列出该数据流的各组成数据项,并采用数据字典定义式中出现的符号进行表示,如“=”表示“被定义为”,“+”表示“与”“{……)”表示其中数据可以有多个等等。本试题说明中:付款时,需根据顾客表中关联的支付账户将转账请求(验证码、价格等)提交给支付系统;物流跟踪时,根据顾客和商家的标识以及订单标识进行查询,而且在改变价格时商家查看订购自家商品的订单信息,可知商家可以查询一批订单。可以看出,提交给支付系统的请求中包含支付账户、验证码与价格;顾客订单查询请求中有顾客标识、订单标识;商家订单查询请求中有商家标识、订单标识(一批订购自家商品的订单标识)。因此“转账请求=支付账户+验证码+价格”;“商家订单物流查询请求=物流标识+{订单标识)”;“顾客订单物流标识=物流标识+订单标识”。