参考答案:
【问题1】(4分) p1:确定活动时间范围; p2:搜索场馆; p3:推广募捐活动;
注:数据流没有次序要求;表中2处可以为“确定募捐需求收集所募捐赠”
E1:志愿者 E2:捐赠人 E3:募款机构 E4:场馆
【问题2】(7分)
【问题3】(4分)
D1:捐赠人信息表 D2:已联系的捐赠人表
D3:捐赠表 D4:已处理捐赠表
详细解析:
【问题1】
本问题给出0层DFD,要求根据描述确定图中的外部实体。分析题目中描述,并结合已在图中给出的数据流进行分析。从题目的说明可以看出,与系统交互实体包括志愿者、捐赠人、募款机构和场馆,这四个作为外部实体。 对应图1-1中数据流和实体的对应关系,可知E1为志愿者,E2为捐赠人,E3为募款机构,E4为场馆。
【问题2】
本题考查分层DFD的加工分解,以及父图与子图的平衡。图1-2中对图1-1的加工3进行进一步分解,根据说明(3)中对加工3的描述对图1-2进行分析。首先需要确定活动时间范围,其输入数据流是活动请求,输出为活动时间。然后是搜索场馆,其输入流为活动时间,输出活动时间和地点,同时向场馆发送的场馆可用性请求和获得的场馆可用性分别作为输入和输出数据流。在确定活动时间和地点的基础上推广募捐活动,活动时间和地点是其输入流,活动信息作为其输出流,流向举办活动并募集资金,从募款机构获取资金并向其发放赠品,加工2收集募得的资金和物品,因此3.5还需要将所募集资金作为输出流,获取和处理捐赠(资金和物品)时以捐赠请求作为其输入流,输出流为所募集的捐赠,因为既有资金又有物品,而从募款机构募得的只有资金,将图1-1加工3流向加工2的数据流,分为所募集资金和所募集物品,而3.5的输出流中只有所募集资金。 因此,P1为确定活动时间范围,P2为搜索场馆,P3为推广募捐活动。图1-2中缺从2到3.3的活动时间和从3.5到2的所募集资金这两条数据流。 题目给出处理和捐赠人之间的交互进一步描述,对3.1进一步建模下层数据流图(图1-3)。分解加工3.1,确定相关数据流。其中根据加工2的捐赠请求进行募集,所募捐赠需要返回给加工2. 根据父图与子图的平衡原则,图1-3中此处也缺失了捐赠请求和所募集资金和所募集物品。
【问题3】
本问题考查2层DFD中数据存储的确定。本案例中,数据存储的描述都是在这一部分描述给出,所以数据存储建模在此层体现。对应说明可知,D1为捐赠人信息表,D2为以联系的捐赠人表,D3为捐赠表,D4为已处理捐赠表。