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