(3)系统变更的代价呈非线性增长
需求分析是软件开发的基础 。假定在该阶段发现一个错误 , 解决它需要用一小时的时间 , 到设计、编程、测试和维护阶段解决 , 则要花2.5、5、25、100倍的时间 。
因此 , 对于大型复杂系统而言 , 首先要进行可行性研究 。开发人员对用户的要求及现实环境进行调查、了解 , 从技术、经济和社会因素三个方面进行研究并论证该软件项目的可行性 , 根据可行性研究的结果 , 决定项目的取舍 。
编辑本段方法
⑴首先调查组织机构情况
包括了解该组织的部门组成情况 , 各部门的职能等 , 为分析信息流程作准备 。
⑵然后调查各部门的业务活动情况
包括了解各个部门输入和使用什么数据 , 如何加工处理这些数据 , 输出什么信息 , 输出到什么部门 , 输出结果的格式是什么 。
⑶协助用户明确对新系统的各种要求
包括信息要求、处理要求、完全性与完整性要求 。
⑷确定新系统的边界
确定哪些功能由计算机完成或将来准备让计算机完成 , 哪些活动由人工完成 。由计算机完成的功能就是新系统应该实现的功能 。
常用的调查方法有:
⑴跟班作业
通过亲身参加业务工作来了解业务活动的情况 。这种方法可以比较准确地理解用户的需求 , 但比较耗费时间 。
⑵开调查会
通过与用户座谈来了解业务活动情况及用户需求 。座谈时 , 参加者之间可以相互启发 。
⑶请专人介绍 。
⑷询问
对某些调查中的问题 , 可以找专人询问 。
⑸设计调查表请用户填写
如果调查表设计得合理 , 这种方法是很有效 , 也很易于为用户接受的 。
⑹查阅记录
即查阅与原系统有关的数据记录 , 包括原始单据、账簿、报表等 。
通过调查了解了用户需求后 , 还需要进一步分析和表达用户的需求 。
分析和表达用户需求的方法主要包括自顶向下和自底向上两类方法 。
编辑本段案例
(1)需求分析报告的编写目的
本需求分析报告的目的是规范化本软件的编写 , 旨在于提高软件开发过程中的能见度 , 便于对软件开发过程中的控制与管理 , 同时提出了本铁路售票系统的软件开发过程 , 便于程序员与客户之间的交流、协作 , 并作为工作成果的原始依据 , 同时也表明了本软件的共性 , 以期能够获得更大范围的应用 。
(2)产品背景明细
软件名称:铁路售票系统
(3)缩写及缩略语
铁路售票应用系统软件:基本元素为构成铁路售票及相关行为所必须的各种部分 。
需求:用户解决问题或达到目标所需的条件或功能;系统或系统部件要满足合同、标准 , 规范或其它正式规定文档所需具有的条件或权能 。
需求分析:包括提炼 , 分析和仔细审查已收集到的需求 , 以确保所有的风险承担者都明其含义并找出其中的错误 , 遗憾或其它不足的地方 。
模块的独立性:是指软件系统中每个模块只涉及软件要求的具体的子功能 , 而和软件系统中其他的模块的接口是简单的 。
本工程描述:
(1)软件开发的目标:
完善目前铁路售票系统 , 使之能跟上时代的发展 。同时通过实践来提高自己的动手能力 。