第2章 可行性研究

2.1 可行性研究的任务

可行性研究的目的:用最小的代价在尽可能短的时间内确定问题是否能够解决。

可行性研究的目的不是为了解决问题,而是确定问题是否值得去解决。

可行性研究——大大压缩简化了的压缩了的系统分析和设计的过程,在较高的层次上以较抽象的方式进行系统分析和设计的过程。

具体过程:

  1. 分析和澄清问题定义

问题定义阶段初步确定的规模和目标,如果正确进一步加以肯定;如果错误及时修改。

  1. 导出系统的逻辑模型,从系统的逻辑模型出发,探索若干种可供选择的主要解法。

每一种解法的可行性从这三方面去分析:

  1. 技术可行性
  2. 经济可行性
  3. 操作可行性
  4. 法律、社会等更广泛的方面
  1. 为每一个可行的解法制定一个粗略的实现进度(终止不可行的解法对应的开发工程)

2.2 可行性研究

2.2.1 复查系统规模和目标

写入
仔细阅读和分析
关键人员
有关的材料
分析员

确保分析员正在解决的问题确实是正要解决的。

2.2.2 研究正在使用的系统

利用现有正在被人使用的系统,研究新的系统:满足基本功能解决旧系统的某些缺点经济效益

分析员应该可以描绘出系统的高层系统流程图

2.2.3 导出新系统的高层逻辑模型

现有系统的物理模型
现有系统的逻辑模型
目标系统的逻辑模型
目标系统的物理模型

分析员应该可以描绘出数据流图,初步使用数据字典描绘逻辑模型。

2.2.4 进一步定义问题

用户与分析员一起复查:问题定义、工程规模和目标(数据流图和数据字典作为讨论的重点)

2.2.1——2.2.4 形成一个闭合的循环

Created with Raphaël 2.2.0 定义问题 定义问题 分析问题 导出一个试探性的解 提出的逻辑模型是否符合系统目标? 完成 yes no

2.2.5 导出和评价选择的解法

导出
比较
技术可行性,排除不现实的方案
操作可行性,排除操作方式或操作过程用户不能接受的
经济可行性,估计开发成本和运行费用,节省的开支或增加的收入
建议的系统的逻辑模型
若干较高层次的可供选择的物理解法
可能的物理解法
可能的物理系统
方案
方案
可行方案的进度表

导出可供选择的解法,是从技术角度出发的参照2.4
考虑经济可行性,在估计的数字(开发成本和运行费用,节省的开支或增加的收入),对可能的系统进行成本/效益分析参照2.6

2.2.6 推荐行动方针

选择最好的解法,并说明理由。

2.2.7 草拟开发计划

草拟一份开发计划

开发计划包括:工程进度表,针对各类开发人员和各种资源的需要情况,评估系统生命周期,给出下一个阶段(需求分析)的详细进度表和成本估计。

2.2.8 书写文档提交审查

文档书写,并给用户、客户组织的人员审查。

2.3 系统流程图

系统流程图:描绘物理系统的传统工具。用图形符号以黑盒子形式描绘组成系统的每个部件。

系统流程图表达的是数据在系统各个部件之间流动的情况,而不是对数据加工处理的控制过程。
区别于程序流程图。

2.3.1 符号

符号

2.3.2 例子

在这里插入图片描述

2.3.3 分层

2.4 数据流图

数据流图(DFD):描绘信息流和数据从输入移动到输出的过程中所经受的变换。

数据在软件中流动和被处理的逻辑过程。
系统逻辑功能的图形表示。
只需要考虑系统必须完成的基本逻辑功能,完全不需要考虑怎样具体地实现这些功能。

2.4.1 符号

基本数据流图符号4种

2.4.2 例子

在这里插入图片描述
在这里插入图片描述

2.4.3 命名

2.4.3.1 为数据流(或数据存储)命名

2.4.3.2 为处理命名

2.4.4 用途

2.5 数据字典

数据字典:关于数据的信息的集合,对数据流图中包含的所有元素的定义的集合。

系统的逻辑模型=数据流图+数据字典。
系统的规格说明=数据流图的定义+对数据流图每个元素的定义。

2.5.1 数据字典的内容

  1. 数据流
  2. 数据流分量(数据元素)
  3. 数据存储
  4. 处理
  5. 一般信息(名字,别名,描述)
  6. 数据定义(数据类型,长度,结构)
  7. 使用特点(值的范围,使用频率,使用方式)
  8. 控制信息(来源,用户,使用程序,改变权,使用权)
  9. 分组信息(父结构,从属结构,物理位置——记录、数据、数据库)

1-4属于数据字典的基本内容,5-9属于数据的其他信息。

2.5.2 定义数据的方法

自顶向下的分解方法:

数据元素组成数据的方法理解
顺序确定次序连接两个或多个分量
选择从两个或多个可能的元素中选取一个
重复指定分量重复多次
可选单个分量是否存在

符号

功能符号
定义为=
连接两个分量+
从若干分量中选择一个[X|Y|Z|…]
重复分量{X}
可选()

1 5 _{1}^{5} 15{A}=1{A}5:表示A的范围是1-5

2.5.3 数据字典的用途

提供公共的数据字典描述数据和设计模块i,避免了许多麻烦的接口问题

2.5.4 数据字典的实现

写卡片的方式:名字,别名,描述,定义,位置。

2.6 成本效益分析

2.6.1 成本估计(估计开发成本)

人力消耗*平均工资=开发费用

1. 代码行技术

每行代码的平均成本*行数=软件成本

2.任务分解任务

  1. 软件开发工程分解为若干个相对独立的任务
  2. 按开发阶段划分任务

3.自动估计成本技术

使用自动估计成本的软件工具(该工具有长期搜集的大量历史数据作为基础,并且有良好数据库系统支持)

2.6.2 成本/效益分析的方法(运行费用和新系统带来的经济效益)

因为运行费用和经济效益在软件的整个生命周期都存在,所以系统在开发时预期生命周期一律假设为5年。

1. 货币的时间价值

年利率:i
现在存入:P
n年可以得到的钱:F
F = P ( 1 + i ) n F=P(1+i)^{n} F=P1+in
P = F / ( 1 + i ) n P=F/(1+i)^{n} P=F/1+in
在这里插入图片描述
在这里插入图片描述

也就是说,如果按简单的年利率计算,5年节省了12500。
但是结合将来节省的钱在现在的价值,5年节省了9011.94。

2. 投资回收期

假设第i年的回报是si,当 ∑ 1 n + 1 S i > 投 资 成 本 ≥ ∑ 1 n S i \sum_{1}^{n+1}S_{i}> 投资成本 \ge \sum_{1}^{n}S_{i} 1n+1Si>1nSi
时,那么投资回收期是 n + ( 投 资 成 本 − ∑ 1 n S i ) / S n + 1 n+(投资成本-\sum_{1}^{n}S_{i})/S_{n+1} n+(1nSi)/Sn+1

3. 纯收入

4. 投资回收率

P = F 1 / ( 1 + j ) + F 2 / ( 1 + j ) 2 + . . . + F n / ( 1 + j ) n P=F_{1}/(1+j)+F_{2}/(1+j)^{2} +...+F_{n}/(1+j)^{n} P=F1/(1+j)+F2/(1+j)2+...+Fn/(1+j)n
解出j即可。

2.7 小结

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

绕球飞行

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值