【问题分析】
试题一主要涉及的是证券交易平台的设计。在该平台中,主要功能包括开户、存款、取款、证券交易和检查交易。上下文数据流图和0层数据流图是结构化方法中常见的分析工具,用于描绘系统边界内外的数据流动情况。
【问题1】
E1-E3分别代表外部实体,结合描述,可以推断:
E1可能是“客户服务助理”,因为开户信息由其提交;
E2可能是“客户”,因为他们执行存款、取款和证券交易;
E3可能是“证券交易中心”,因为证券交易信息需传递给它。
【问题2】
D1-D3代表数据存储,根据功能描述:
D1可能是“客户记录”,用于存储客户信息;
D2可能是“账户记录”,用于存储账户信息,包括余额;
D3可能是“交易记录”,用于存储交易信息。
【问题3】
图1-2中可能缺少的数据流包括:
1. “开户信息”从E1流向“开户处理”;
2. “存款金额”从E2流向“存款处理”;
3. “取款金额”从E2流向“取款处理”;
4. “交易信息”从E2和E3流向“证券交易处理”;
5. “交易明细”从“交易记录”流向E2。
【问题4】
为了实现证券交易功能,需要新增一个数据流从“证券交易处理”到“证券交易中心”,表示交易信息的传递。同时,可能需要在上下文数据流图中添加证券交易中心作为外部实体,并在0层数据流图中相应调整数据流。
试题二关注的是一家宾馆的信息管理系统。系统功能包括部门管理、员工管理、客房管理、客户管理和预订管理。
【问题1】
联系名可为:
1. 部门与员工的1:n联系,表示一个部门有多名员工;
2. 部门与经理的1:1联系,表示一个部门只有一个经理;
3. 客户与预订申请的1:n联系,表示一个客户可以有多个预订申请;
4. 预订申请与安排的1:1联系,表示一个预订申请对应唯一的一次安排。
【问题2】
(a)员工号(员工关系的主键)
(b)客户号(客户关系的主键)
(c)申请号(预订申请关系的主键)
(d)身份证号(安排关系的主键,同时也是外键,参照员工关系的身份证号)
“预订申请”的外键为申请号,“安排”的外键包括申请号(参照预订申请)和客房号(可能参照客房)。
【问题3】
“客房”关系模式可能存在规范性问题,因为“不同客房类型具有不同的收费标准”。为符合第三范式(3NF),可以将“客房类型”和“收费标准”分离出来,创建一个新的关系模式,如“客房类型与费用”(客房类型,收费标准),然后在“客房”关系模式中仅保留客房号、入住状态,通过客房类型外键关联新的关系。
试题三讨论的是一款自动售货机的软件系统。主要涉及的对象包括顾客、硬币器、饮料和交易。
【对象分析】
1. 顾客(Customer): 选择饮料,投入硬币。
2. 硬币器(CoinAcceptor): 接收和计算硬币价值,提供找零。
3. 饮料库存(DrinkInventory): 存储饮料,管理饮料数量。
4. 交易(Transaction): 处理购买请求,推出饮料,计算找零。
在面向对象设计中,这些对象及其相互作用会形成类和方法,如Customer类的selectDrinks(),CoinAcceptor类的acceptCoins()和returnChange(),以及Transaction类的processPurchase()等。
通过以上分析,我们可以看到,软件设计师在设计系统时需要考虑功能需求、数据流动、实体关系以及对象交互等多个方面,确保系统的完整性和有效性。在实际开发中,还需要遵循软件工程的规范和原则,进行详细设计、编码、测试和维护等步骤,以保证软件的质量和稳定性。