可行性研究
- 五个方面讨论:1.经济可行性
2.技术可行性
3.操作可行性
4.法律可行性
5.时间可行性
问题的识别:了解已解决的问题,这些问题是如何提出的;如何解决才能满足要求;了解问题结构。
市场调查:了解市场相同软件;需求情况
分析准备:确定分析计划(开发计划,人员);培训人员;任务分配
环境分析:软硬件接口;操作环境;用户了解
- 软件计划书内容:1.软件范围:功能规模、硬件要求、接口复杂性
2.环境资源:人力资源、硬件、软件、进度表、软件成本
资源性能描述:要什么水平的人和什么性能的软硬件
- 软件价格估计方法: 参数化算法、源代码行估计、任务分解法、自动估计成本法
- 成本\收益分析
目的:自顶向下(先估计系统在估计子系统)
自底向上(先估计系统中每个模块在合成整体成本)
可行性研究的任务是用最小的代价在尽可能短的时间内确定问题是否能够解决。
可行性研究不适解决问题而是问题是否值得去解决。
经费占工程成本5-10%
需求分析
软件需求分析的任务: 深入描述软件的功能和性能
确定设计的约束和同其他系统元素的接口细节
定义软件的其他有效性需求
就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统的“做什么的问题”
- 需求分析过程
1.问题识别: 理解软件评审软件范围
确定软件需求
提示实现条件和标准
2.分析与综合
从信息流和信息结构出发,细化功能和各元素联系、接口和设计约束
3.编制需求分析阶段文档
软件需求说明书、数据要求说明书、初步用户手册、实施计划
4.需求分析评审
文档资料是否齐全清晰、重要接口是否描述、开发风险
- 需求分析原则:1.在开始建立分析模型前,先理解问题
2.开发原型使用户了解如何发生人机交互
3.记录每个需求起源和原因
4.使用多个需求视图
5.给需求赋予优先级
- 需求规格说明原则:1.从现实中分离功能,即描述要“做什么”,而不是“怎样实现”;
2.要求使用面向处理的规格说明语言(或系统定义语言)
- 软件分析原则: 1.确定功能和信息
2.对问题分层细化
- 分解:横向分解、纵向分解
- 结构化分析方法:(数据流图、数据字典)
1.是面向数据流进行需求分析的方法
2.适合于数据处理类型软件的需求分析