一、软件定义
1、问题定义
- 问题的背景
- 系统要求
- 性质、类型和范围
- 目标、功能和规模
- 开发条件和环境要求
2、问题定义的方法
- 详细调研
- 阅读资料
- 调查背景
- 反复讨论
- 写出报告
3、开题报告
二、可行性研究
可行性研究就是制定软件 系统的计划的第一步
目的:
确定问题是否值得去解决
任务:
针对具体的问题用最小的代价、在尽可能短的 时间内确定问题是否能解决
考虑的方面:
- 经济可行性
- 操作可行性
- 技术可行性
1、经济可行性
成本分析:开发成本、安装成本、运行成本
效益分析:直接效益、可见的间接效益、不可见的效益
2、操作可行性
从法律、社会 效益等更广泛的方面研究每种解法的可行性。
3、技术可行性
4、研究步骤
- 复查系统规模和目标
- 研究目前正在使用的系统
- 导出新系统的高层逻辑模型
- 进一步定义问题
- 导出和评价供选择的解法
- 推荐行动方针
- 草拟开发计划
- 书写文档提交审查
可行性研究报告的基本内容:
5、系统流程图
系统流程图是描绘物理系统的传统工具。 基本思想是用图形符号以黑盒子形式描绘系统里面的每个部件。
系统流程图表达的是部件的信息流程,反映信息在各部分间流动的情况。
系统流程图是一种模型。
建立模型的目的:
- 加强对事务的理解
- 帮助思考和交流
- 从中产生出最终的产品
系统流程图的用途:
- 可行性研究阶段:了解和分析现有的系统,概括地标识对现有系统的认识
- 设计阶段:把设想的新系统的逻辑模型钻变为物理模型
符号
6、分层
分层应用于复杂的系统,用一幅高层次系统流程图描绘概貌,分层次地逐步描述。
7、成本 / 效益分析
经济效益是指使用新系统而增加的收入。通常表现为减少运行费用或增加收入。
社会效益是一种无形的效 益,主要从性质上、心理 上进行衡量
目的是从经济角度评价开发一个新项目是否可行、是否划算,从而帮助负责人正确地作出决定。
软件开发成本主要表现为:
- 人力消耗
估算技术
代码行技术:
把开发每个软件功能的成本和实现这个功能需要用的源代码行数联系起来。 一旦估计出源代码行数以后,用每行代码的平均成本 乘以行数就可以确定软件的成本
- 目前逐渐淘汰
任务分解技术:
法首先把软件开发工程分解为若干个相对独立的任务。再分别估计每个单独的开发任务的成本,最后累加起来得出软件开发工程的总成本。
- 估计偏差可能较大。
自动估计成本技术:
采用自动估计成本的软件工具估算成本,可 以减轻人的劳动,并且使得估计的结果更客观
- 必须有长期搜集的大量历 史数据为基础
效益分析方法
采用新系统后增加的收入再加上使用新系统后节约的运行费用。
度量经济效益:
- 投入产出比
- 成本回收时间
- 纯收入
- 货币的时间价值(年利率)
货币的时间价值:
由于利率的存在,货币的时间价值是能够准确估算的。假设年利率为i,现在投入 P元,则n年后能够得到
投入产出比也需要考虑到货币的时间价值
就算每年的收益一样都是9.6万,但是当前收益逐年减少