文章目录
- 1. 在软件开发的早期阶段为什么要进行可行性研究?应该从哪些方面研究目标系统的可行性?
- 2. 为方便储户,某银行拟开发计算机储蓄系统。储户填写的存款单或取款单由业务员输入系统,如果是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并印出存款单给储户;如果是取 款,系统计算利息并印出利息清单给储户。写出问题定义并分析此系统的可行性。
- 3. 为方便旅客,某航空公司拟开发一个机票预订系统。旅行社把预订机票的旅客信息(姓名、性别、工作单位、身份证号码、旅行时间、旅行目的地等)输入进该系统,系统为旅客安排航班,印出取票通知和账单,旅客在飞机起飞的前一天凭取票通知和账单交款取票,系统校对无误即印出机票给旅客。写出问题定义并分析此系统的可行性。
- 4. 目前住院病人主要由护士护理,这样做不仅需要大量护士,而且由于不能随时观察危重病人的病情变化,还可能会延误抢救时机。某医院打算开发一个以计算机为中心的患者监护系统,试写出问题定义,并且分析开发这个系统的可行性。医院对患者监护系统的基本要求是随时接收每个病人的生理信号(脉搏、体温、血压、心电图等),定时记录病人情况以形成患者日志,当某个病人的生理信号超出医生规定的安全范围时向值班护士发出警告信息,此外,护士在需要时还可以要求系统印出某个指定病人的病情报告。
- 5. 北京某高校可用的电话号码有以下几类:校内电话号码由4位数字组成,第1位数字不是0;校外电话又分为本市电话和外地电话两类,拨校外电话需先拨0,若是本市电话则再接着拨8位数字(第1位不是0),若是外地电话则拨3位区码再拨8位电话号码(第1位不是0)。用定义数据的方法,定义上述的电话号码。
1. 在软件开发的早期阶段为什么要进行可行性研究?应该从哪些方面研究目标系统的可行性?
答:
(1)进行可行性研究的目的
可行性研究的目的是,用最小的代价在尽可能短的时间内研究并确定客户提出的问题能否解决。
(2)从下述三个方面研究每种解决方案的可行性
① 技术可行性:使用现有的技术能否实现这个系统。
② 经济可行性:这个系统的经济效益能否超过它的开发成本。
③ 操作可行性:这个系统的操作方式在该客户组织内是否行得通。
2. 为方便储户,某银行拟开发计算机储蓄系统。储户填写的存款单或取款单由业务员输入系统,如果是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并印出存款单给储户;如果是取 款,系统计算利息并印出利息清单给储户。写出问题定义并分析此系统的可行性。
- (1)问题定义
- ① 如果是存款,储户填写存款单,然后交给业务员键入系统,同时系统还要记录存款人姓名、住址(或电话号码)、身份证号码、存款类型、存款日期、利率等信息,完成后由系统打印存款单给储户。
- ② 如果是取款,储户填写取款单,然后交给业务员,业务员把取款金额输入系统并要求储户输入密码以确认身份,核对密码正确无误后系统计算利息并印出利息清单给储户。
- ③ 为了满足储户的需求,该系统需要迅速的对用户的要求做出反馈,要对用户输入的信息作出最快的处理,所以就需要很大的主存容量,以及强大的数据库支持。由于是所面向的用户是广泛的储蓄用户群,所以需要系统强大的安全性能支持。
- (2)可行性研究方法条件、假定和限制
- ① 建议开发软件运行的最短寿命:5年。
- ② 进行系统方案选择比较的期限:2个月。
- ③ 经费来源和使用限制:定制银行。
- ④ 硬件、软件、运行环境和开发环境的条件和限制:银行中心拥有大型机以及用来支持的数据库,各个银行网点都有安好的PC机,安装有Windows2000及以上的操作系统。
- ⑤ 建议开发软件投入使用的最迟时间:开发完成后试运行1个月。
- (3)可行性研究方法
- 通过与银行熟练业务员进行深入讨论,制定详细用户调查问卷,真正了解用户以及银行业务员的实际需求,根据业务员提供的信息以及问题定义再综合调查问卷中用户提出的意见进行改进。最终确定项目需要解决的问题,并确定问题能不能被解决。决定可行性的主要因素:项目开发成本、所需设备置办成本、技术是否能满足需求、操作人员的熟练程 度、资源有效性。
- (4)处理流程和数据流程
-
① 系统流程图
- a.存款
- b.取款
- a.存款
-
② 数据流图
-
- (5)分析影响因素
- ① 工作负荷
- 当前大多数银行所使用的银行储蓄系统在办理业务时手续繁琐,人工业务操作过多,办理一个客户的业务就需耗费较长的时间,给银行工作人员增加了非常大的负担和额外的工作负荷。
- ② 费用支出
- 包括银行业务员及其他工作人员的工资,系统维护所需资金。
- ③ 人员
- 需要大量的业务员、客服人员,系统维护人员以及其他工作人员。
- ④ 设备
- 包括打印机、PC机、笔记本电脑。
- ⑤ 局限性
- 工作效率低下,不能符合大量群众的及时需求,给群众的生活带来不便。具体问题如下:
- a.当前银行使用的银行储蓄系统在办理业务时仅仅靠手工操作,人工业务占据了全部。对银行业务员的业务素质和数量都提出了很高的要求。
- b.用纸张记录保存用户存款记录查找繁琐,耗时久,不方便,且容易丢失。且人工记录易发生差错。
- c.存款记录保密性差,任何一个业务员都可以随意更改查阅用户数据,用户的资料容易泄漏。
- d.业务员服务的时间有限,不能24小时办理业务,没有应急处理。
- e.简单的业务经改进可由机器完成,这样节约了人力成本,也提高效率。
- f.对现有系统的改进维护只能依靠增多业务员数量,增多银行分行数目,提高业务员业务素质来实现。增多业务员数量会导致银行人员支出大大增多,同时需要多选址建设分行,或者扩大分行规模,费用代价巨大。业务员的业务素质需要培养,不能短期见成效,这又浪费资金和人力资源。对现用系统的改进型维护已经不能解决储户越来越多、储户时间越来越长的问题。
- ① 工作负荷
3. 为方便旅客,某航空公司拟开发一个机票预订系统。旅行社把预订机票的旅客信息(姓名、性别、工作单位、身份证号码、旅行时间、旅行目的地等)输入进该系统,系统为旅客安排航班,印出取票通知和账单,旅客在飞机起飞的前一天凭取票通知和账单交款取票,系统校对无误即印出机票给旅客。写出问题定义并分析此系统的可行性。
- (1)问题定义
- ① 目标:在一个月内建立一个高效率,无差错的航空公司机票预定系统。
- ② 存在的主要问题:人工不易管理,手续繁琐。
- (2)可行性分析
- ① 经济可行性
- a.成本估算
- 打印机一台(2000元)+开发费(3500元)=5500元
- b.效益估算
- 该系统有很好的社会效益,提高了公司售票效率,方便旅客,售票方便、科学。
- a.成本估算
- ② 技术可行性
- 经过调查分析,得到目前航空公司机票预定系统流程图如图2-8所示。
- 图2-8 订票系统流程图
- ③ 操作的可行性
- 比较以上两图看出,与人工系统相比,计算机保留了原有的主要工作流程,可以看出计算机系统是人工系统的优化,操作也不复杂,工作人员在短时间经过培训就可熟练掌握。
- ④ 结论
- 由于经济、技术、操作三方面的可行性分析都通过,因此开发航空公司机票预定系统是可行的。
- ① 经济可行性
4. 目前住院病人主要由护士护理,这样做不仅需要大量护士,而且由于不能随时观察危重病人的病情变化,还可能会延误抢救时机。某医院打算开发一个以计算机为中心的患者监护系统,试写出问题定义,并且分析开发这个系统的可行性。医院对患者监护系统的基本要求是随时接收每个病人的生理信号(脉搏、体温、血压、心电图等),定时记录病人情况以形成患者日志,当某个病人的生理信号超出医生规定的安全范围时向值班护士发出警告信息,此外,护士在需要时还可以要求系统印出某个指定病人的病情报告。
- (1)问题定义
- ① 本系统的数据源点是“病人”和“护士”,他们分别提供生理信号和要求的病情报告相关信息。从系统应该“定时记录病人情况以形成患者日
志”这项要求可以想到,还应该有一个提供日期和时间信息的“时钟”作为数据源点。 - ② 本系统的数据终点是接收警告信息和病情报告的护士。系统对病人生理信号的处理功能主要是“接收信号”“分析信号”和“产生警告信息”。此外,系统还应该具有“定时取样生理信号”“更新日志”和“产生病情报
告”的功能。
- ① 本系统的数据源点是“病人”和“护士”,他们分别提供生理信号和要求的病情报告相关信息。从系统应该“定时记录病人情况以形成患者日
- (2)分析可行性
- 为了分析病人生理信号是否超出了医生规定的安全范围,应该存储“患者安全范围”信息。此外,定时记录病人生理信号所形成的“患者日
志”显然也是一个数据存储。本系统的基本系统模型如图2-9所示,图2-10是本系统的功能级数据流图。- 图2-9 患者监护系统的基本系统模型
- 图2-10 患者监护系统的功能级数据流图
- 为了分析病人生理信号是否超出了医生规定的安全范围,应该存储“患者安全范围”信息。此外,定时记录病人生理信号所形成的“患者日
5. 北京某高校可用的电话号码有以下几类:校内电话号码由4位数字组成,第1位数字不是0;校外电话又分为本市电话和外地电话两类,拨校外电话需先拨0,若是本市电话则再接着拨8位数字(第1位不是0),若是外地电话则拨3位区码再拨8位电话号码(第1位不是0)。用定义数据的方法,定义上述的电话号码。
- (1)电话号码=[校内电话号码|校外电话号码]
- (2)校内电话号码=非零数字+3位数字
- (3)校外电话号码=[本市号码|外地号码]
- (4)本市号码=数字零+8位数字
- (5)外地号码=数字零+3位数字+8位数字
- (6)非零数字=[1|2|3|4|5|6|7|8|9]
- (7)数字零=0
- (8)3位数字=3{数字}3
- (9)8位数字=非零数字+7位数字
- (10)7位数字=7{数字}7
- (11)数字=[0|1|2|3|4|5|6|7|8|9]
- 其中,“[]”意思是“或”,如“[校内电话号码|校外电话号码]”表示从校内电话号码或校外电话号码中选择一个;“{}”表示“重复”,两边的数字表示重复次数的下限和上限;“=”意思是“定义为”;“+”意思是“和”,连接两个分量。