论文部分内容阅读
[摘要]:根据软件工程的要求,需求分析在整个软件开发开发过程占有重要地位,是软件质量保证的基础,是整个软件开发的前提,本文介绍了需求分析的内容、任务、原理和过程。针对软件开发过程带来需求变更的原因进行了分析,针对问题提出了解决措施。阐述了需求分析软件开发早期的作用,对整个软件质量的影响,科学规范地进行需求分析,确保需求分析质量,提升软件产品质量。
[关键词]:软件开发 需求分析 需求变更 软件质量
中图分类号:C812 文献标识码:C 文章编号:1009-914X(2012)32- 0591-02
1、引言
随着信息技术的快速发展,软件的运用日益广泛,软件用户对软件的要求更加复杂和严格。软件需求分析正是解决用户这种需求,软件需求分析是关系软件项目开发成败的重要因素。而软件质量常常在软件开发过程中产生的,软件需求分析处于软件开发的早期,是一个项目的开端,也是项目实施最重要的关键点,需求分析成功与否直接关系着整个软件产品的质量。据有关资料分析结果表明,设计的软件产品存在的质量问题大部分是需求分析错误所导致的,所以说需求分析是提高软件质量的基础,是软件质量保证的关键阶段。
2、需求分析的内容
需求分析是依据于用户需求,经过需求问题识别,进行分析、消化与综合,制订规格说明,评审。软件需求分析所要做的工作是深入描述软件的功能和性能,确定软件设计的限制和软件同其它系统元素的接口细节,定义软件的其它有效性需求。
由于需求调研过程所获得的大量需求不系统、不完整,甚至有的存在错误或者是不必要的,只有通过需求分析才能分析问题并重新调研,才能将软件需求集成梳理,使其贯穿起来并具有条理性和完整性,最终将其规格化。由此可见,需求分析是一个承上启下的环节,是将需求逐渐细化的过程,软件需求是整个软件工程项目中最关键的一个环节。软件需求是软件项目最难把握的问题,软件需求的质量对软件开发的影响是深远的和全局性的,同时高质量的需求分析对软件质量有着重要影响。
3、软件需求分析的任务
一个软件项目的开发主要分为五个阶段:需求分析阶段、设计阶段、编码阶段、测试阶段和维护阶段。而需求分析阶段所得到的结果,是软件项目开发中其他四个阶段的必备条件。从以往的经验来看,需求分析中的一个小的偏差,就可能导致整个项目无法达到预期的效果,或者说最终开发出的产品不是用户所需要的。何谓软件需求分析。在软件需求分析中也需要有详细的文档,软件开发者要从用户的业务中提取出软件系统能够帮助用户解决的业务问题,通过对用户业务问题的分析,规划出开发者的软件产品。这个步骤是对用户业务需求的一个升华,是一个把用户业务管理流程优化,转化为软件产品,从而提升管理而实现质的飞跃,这一步是否成功,直接关系到开发出来的软件产品能否得到用户认可,顺利交付给客户,客户能否真正运用开发者的产品帮助他解决业务或管理问题。软件需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统的“做什么”的问题。
4、需求分析的原理及过程
需求分析的原理是通过需求调研获得的用户业务模型转化为规格化产品需求的桥梁,如图所示:
软件需求分析的过程将需求逐步细化的过程,具体可分为对问题的识别、分析与综合、制定规格说明和评审。问题识别是指系统分析人员研究可行性分析报告和软件项目实施计划,确定目标系统的综合要求,并提出这些需求实现条件,以及需求应达到的标准。这些需求包括:(1)功能需求:列举出所开发软件实现的功能。(2)性能需求:给出所开发软件的技术性能指标。(3)环境需求:软件系统运行时所处环境的要求。 (4)可靠性需求:对所开发软件在投入运行后不发生故障的概率,按实际的运行环境提出要求。 (5)安全保密要求:应当在这方面恰当地做出规定,对所开发的软件给予特殊的设计,使其在运行中,其安全保密方面的性能得到必要的保证。(6)用户界面需求:为用户界面细致地规定到达的要求。(7)资源使用需求:开发的软件在运行时和开发时所需要的各种资源。(8)软件成本消耗与开发进度需求:在软件项目立项后,要根据合同规定,对软件开发的进度和各步骤的费用提出要求,作为开发管理的依据。(9)预先估计以后系统可能达到的目标,这样可以比较容易对系统进行必要的补充和修改。
5、需求变更
在开发项目过程中,用户随时会提出一些新的需求,要求开发人员解决,这些需求的提出,有时在开发阶段中,有時在开发阶段后,介于在需求分析的两个相邻子阶段中,或者在迭代周期的需求分析中,后一段或周期的需求分析结果与前一次不一致,这种不一致称为需求变更。产生需求变更的原因主要有以下几个方面:
(a)用户提供的需求没有反应真实的需求;
(b)需求调研时形成的文档不完整或存在错误;
(c)在需求分析阶段,开发人员与用户的沟通不够。通过这种需求分析得出的需求往往会和用户的实际需求相差甚远,导致用户提出更改需求。
(d)忽略需求分析人员的技术培训,需求分析人员的管理能力和技术能力不能满足项目的需求;
(e)项目的实施周期过长。随着时间的推移,用户对整个系统的了解也越来越深入。他们会对模块的界面、功能和性能方面提出更高更多的要求。
(f缺乏有效地需求分析工具做支持。
为了尽可能地避免发生需求变更,以及保证需求分析的高稳定性,确保软件开发质量可采取的方法如下:
(a)加强人员培训。在软件开发过程中不仅要加强对开发人员的专业培训,通过培训让软件开发人员了解所开发系统的相关信息,更好理解用户的需求,掌握需求分析技术;项目负责人掌握需求管理知识和技能。
(b)加强与用户沟通。在用户提出需求变更时开发人员应该认真听取用户的要求并加以整理和分析。分析需求变更的原因并提出可行的替代方案;同时向用户说明这些需求变更会对整个项目的开发带来的不良后果。
(c) 加强需求文档和版本控制。需求分析的最终成果是一份客户和开发人员对所开发的产品达成共识的需求规格说明文档。有了该文档,即使开发人员的角色有所变动,也不会对需求分析的前期工作有所影响。对每次的需求变更都用一个新的版本来标识。
(d)加强资源配置。在需求分析过程中要借助先进的需求工具、硬件和软件资源对软件进行管理和测试,发现问题要进行回归测试,确保软件质量满足用户需求。
(e) 加强合同管理。由于需求变更可能会对整个项目产生影响,所以,开发方和用户在签定项目合同时,可以对需求变更增加一些相关的合同条款。
(f)数据分析
[关键词]:软件开发 需求分析 需求变更 软件质量
中图分类号:C812 文献标识码:C 文章编号:1009-914X(2012)32- 0591-02
1、引言
随着信息技术的快速发展,软件的运用日益广泛,软件用户对软件的要求更加复杂和严格。软件需求分析正是解决用户这种需求,软件需求分析是关系软件项目开发成败的重要因素。而软件质量常常在软件开发过程中产生的,软件需求分析处于软件开发的早期,是一个项目的开端,也是项目实施最重要的关键点,需求分析成功与否直接关系着整个软件产品的质量。据有关资料分析结果表明,设计的软件产品存在的质量问题大部分是需求分析错误所导致的,所以说需求分析是提高软件质量的基础,是软件质量保证的关键阶段。
2、需求分析的内容
需求分析是依据于用户需求,经过需求问题识别,进行分析、消化与综合,制订规格说明,评审。软件需求分析所要做的工作是深入描述软件的功能和性能,确定软件设计的限制和软件同其它系统元素的接口细节,定义软件的其它有效性需求。
由于需求调研过程所获得的大量需求不系统、不完整,甚至有的存在错误或者是不必要的,只有通过需求分析才能分析问题并重新调研,才能将软件需求集成梳理,使其贯穿起来并具有条理性和完整性,最终将其规格化。由此可见,需求分析是一个承上启下的环节,是将需求逐渐细化的过程,软件需求是整个软件工程项目中最关键的一个环节。软件需求是软件项目最难把握的问题,软件需求的质量对软件开发的影响是深远的和全局性的,同时高质量的需求分析对软件质量有着重要影响。
3、软件需求分析的任务
一个软件项目的开发主要分为五个阶段:需求分析阶段、设计阶段、编码阶段、测试阶段和维护阶段。而需求分析阶段所得到的结果,是软件项目开发中其他四个阶段的必备条件。从以往的经验来看,需求分析中的一个小的偏差,就可能导致整个项目无法达到预期的效果,或者说最终开发出的产品不是用户所需要的。何谓软件需求分析。在软件需求分析中也需要有详细的文档,软件开发者要从用户的业务中提取出软件系统能够帮助用户解决的业务问题,通过对用户业务问题的分析,规划出开发者的软件产品。这个步骤是对用户业务需求的一个升华,是一个把用户业务管理流程优化,转化为软件产品,从而提升管理而实现质的飞跃,这一步是否成功,直接关系到开发出来的软件产品能否得到用户认可,顺利交付给客户,客户能否真正运用开发者的产品帮助他解决业务或管理问题。软件需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统的“做什么”的问题。
4、需求分析的原理及过程
需求分析的原理是通过需求调研获得的用户业务模型转化为规格化产品需求的桥梁,如图所示:
软件需求分析的过程将需求逐步细化的过程,具体可分为对问题的识别、分析与综合、制定规格说明和评审。问题识别是指系统分析人员研究可行性分析报告和软件项目实施计划,确定目标系统的综合要求,并提出这些需求实现条件,以及需求应达到的标准。这些需求包括:(1)功能需求:列举出所开发软件实现的功能。(2)性能需求:给出所开发软件的技术性能指标。(3)环境需求:软件系统运行时所处环境的要求。 (4)可靠性需求:对所开发软件在投入运行后不发生故障的概率,按实际的运行环境提出要求。 (5)安全保密要求:应当在这方面恰当地做出规定,对所开发的软件给予特殊的设计,使其在运行中,其安全保密方面的性能得到必要的保证。(6)用户界面需求:为用户界面细致地规定到达的要求。(7)资源使用需求:开发的软件在运行时和开发时所需要的各种资源。(8)软件成本消耗与开发进度需求:在软件项目立项后,要根据合同规定,对软件开发的进度和各步骤的费用提出要求,作为开发管理的依据。(9)预先估计以后系统可能达到的目标,这样可以比较容易对系统进行必要的补充和修改。
5、需求变更
在开发项目过程中,用户随时会提出一些新的需求,要求开发人员解决,这些需求的提出,有时在开发阶段中,有時在开发阶段后,介于在需求分析的两个相邻子阶段中,或者在迭代周期的需求分析中,后一段或周期的需求分析结果与前一次不一致,这种不一致称为需求变更。产生需求变更的原因主要有以下几个方面:
(a)用户提供的需求没有反应真实的需求;
(b)需求调研时形成的文档不完整或存在错误;
(c)在需求分析阶段,开发人员与用户的沟通不够。通过这种需求分析得出的需求往往会和用户的实际需求相差甚远,导致用户提出更改需求。
(d)忽略需求分析人员的技术培训,需求分析人员的管理能力和技术能力不能满足项目的需求;
(e)项目的实施周期过长。随着时间的推移,用户对整个系统的了解也越来越深入。他们会对模块的界面、功能和性能方面提出更高更多的要求。
(f缺乏有效地需求分析工具做支持。
为了尽可能地避免发生需求变更,以及保证需求分析的高稳定性,确保软件开发质量可采取的方法如下:
(a)加强人员培训。在软件开发过程中不仅要加强对开发人员的专业培训,通过培训让软件开发人员了解所开发系统的相关信息,更好理解用户的需求,掌握需求分析技术;项目负责人掌握需求管理知识和技能。
(b)加强与用户沟通。在用户提出需求变更时开发人员应该认真听取用户的要求并加以整理和分析。分析需求变更的原因并提出可行的替代方案;同时向用户说明这些需求变更会对整个项目的开发带来的不良后果。
(c) 加强需求文档和版本控制。需求分析的最终成果是一份客户和开发人员对所开发的产品达成共识的需求规格说明文档。有了该文档,即使开发人员的角色有所变动,也不会对需求分析的前期工作有所影响。对每次的需求变更都用一个新的版本来标识。
(d)加强资源配置。在需求分析过程中要借助先进的需求工具、硬件和软件资源对软件进行管理和测试,发现问题要进行回归测试,确保软件质量满足用户需求。
(e) 加强合同管理。由于需求变更可能会对整个项目产生影响,所以,开发方和用户在签定项目合同时,可以对需求变更增加一些相关的合同条款。
(f)数据分析