论文部分内容阅读
[摘 要]在软件项目开发中,需求分析有着重要作用,需求分析是项目开发的基础,其工作的好坏将直接关系到项目开发的成败。在软件项目的总开发成本中,项目返工费用占据了不小的比例,而需求分析的不准确、不明晰又是导致返工的重要原因。为尽量避免或减少由于需求分析不明所造成的损失,本文将对软件项目开发需求分析的任务、过程、方法、变更等问题进行详细的阐述,并提出保证需求分析质量的几点建议。
[关键词]软件项目 开发 需求分析 变更
中图分类号:O245 文献标识码:O 文章编号:1009―914X(2013)25―0394―01
一、前言
软件开发项目中最困难也是最重要的工作就是关于开发内容的说明,关于概念性工作,最困难的在于详细的项目需求的编制,它包括了所有面向机器、用户以及其他软件的接口。需求分析工作若出现问题,会带给软件系统严重的危害。需求是软件产品开发的前提条件,有需求才有产品,需求分析的好坏会对软件开发的全过程(设计—生产—销售—维护)产生直接的影响,因此准确、明确的需求分析是软件开发成功的决定因素。在软件项目的总开发成本中,项目返工费用占据了不小的比例,而需求分析的不准确、不明晰又是导致返工的重要原因。需求分析不明导致的设计变更,不仅会造成严重的资源量费,还会延迟项目的完成时间。需求分析贯穿于软件项目从设计到实现的全过程,是软件开发成功的首要条件。
二、软件项目需求分析的内容
软件开发过程主要包括了需求分析、设计、编码、测试和维护五个阶段。其中,需求分析是其他阶段的前提和必备条件。不少实践经验表明,需求分析阶段中的微小偏差,都可能导致整个项目出现重大偏差,产品功能与用户需求相去甚远。在软件开发中,需求分析必须包含关于用户需求的详细文档,文档内容要越详尽越好,这样,软件设计者才能从中提取出解决用户需求的设计重点,设计出能解决用户问题的软件。需求分析是对用户需求的凝练和升华,是通过优化用户业务需求流程,并使之转化为软件的关键步骤,该项工作的优劣,将直接关系到开发产品能否解决用户业务需要,用户的认可与否。软件开发项目需求分析,需要对软件必须完成的工作加以确定,即对软件提出具体、明确、准确、完整的要求。其工作内容是对软件性能、功能的深入描述,设计限制的确定、接口细节的确定以及有效性要求的定义。
需求分析任务是参考已有软件的逻辑模型,导出开发软件的逻辑模型,确定开发软件需要解决的内容。需求分析任务的实现过程为:获取已知软件的物理模型—建立其逻辑模型—构建开发软件的逻辑模型(见图一)。
图一 目标系统逻辑模型的建立流程
三、需求分析的方法
在软件开发中,需求分析方法包括了原型法、传统法、结构化系统开发法、模型驱动法等。需求分析的方法不可盲目套用,要根据资源在何种情况下对开发者最为有效来进行选择。传统软件开发采用“自顶向下”方式,它要求需求定义必须在开发之前落实。但实际上,仅通过分析是难以在软件建立以前确定出一套有效、一致而完整的需求的。鉴于此,一反传统开发模式的原型法应运而生,它也是目前最为流行的开发模式之一。
在软件开发中,原型是指拟开发软件的原始模型,是软件早期的、可运行的一个版本,原型能对最终软件的如软件功能、界面等重要特性加以反映。然后在获得基本需求后,再分析设计出一个简约型软件,并在需求的不断获取,软件的不断升级演化中得到最终的产品。该方法有效弥补了传统法的一些缺陷,具有交互性强、快速灵活的优点。原型法的核心是以原型取代不明的需求分析,通过用户的试用感受,来获取真实、有效的反馈意见,进而根据反馈意见来进一步改进原型,直至产品达到满意的效果。该方法的操作流程如图二所示。根据建立原型的目的、实现途径,可将原型划分为探索型、实验型和进化型三种类型。
四、需求变更及解决措施
(一)需求变更的原因分析
不论在开发中,还是在开发后,用户都有可能提出各种新的需求,并要求开发人员加以解决,这就是通常说的需求变更。需求变更问题产生的原因主要有以下三方面:一是,在需求分析过程中,用户与开发者之间的沟通交流不够。用户与开发者交流的不足,会致使开发者就获得的用户信息,自行揣摩用户需求,这样做出的需求分析常常与用户实际需求大相径庭,最终造成用户提出更改要求。二是,项目开发时间太长。在时间的推移下,用户会越来越深入地了解软件,对软件性能、功能、界面等方面也会有更高的要求。三是,技术更新太快。对于企业来说,快速的技术更新,会引进新的设备,设备的更新必然会对相应的软件提出新的要求,故开发者不得不在软件中体现用户的新的需求。
图二 原型构建流程
(二)需求变更的解决措施
为了尽可能地降低项目开发成本,就需要在满足用户需求的前提下,尽量减少需求变更问题。减少需求变更,主要可以从以下方面着手:
1、加大专业培训力度
在进行软件开发时,系统开发人员可能对相关领域不太了解,因此,为了使开发人员能与用户更好地沟通,准确把握用户需求,就需要在进行需求分析之初,对开发者的进行相关领域专业知识的培训,使其能基本了解所开发软件应用领域的一些特点和需求。
2、重视沟通交流
在需求分析时期,开发者要与用户进行全面、深入的沟通,若有疑问,要及时询问,确保准确、全面地掌握用户需求信息。在用户提出变更时,开发者要在听取用户要求后,对用户要求进行整理分析。准确分析变更原因,找寻有效的可替代方案。另一方面,还要向用户说明这些变更对于整个软件项目开发产生的不良影响,以尽量说服用户放弃变更要求。
3、利用合同加以约束
用户的一些不合理需求变更,可能会对整个项目造成较为严重的影响。因此,在双方签订的项目合同中,开发方可在需求变更条目下,增加一些约束性条款,利用合同来对需求变更要求加以约束,以减少需求变更问题。
4、建立需求文档
在用户与开发者关于开发软件达成共识后,建立一份需求文档,这也是需求分析的最终结果。需求文档的建立,可有效避免开发方人员变动对需求分析造成的影响。另外,每进行一次需求变更,都应当开发出新的版本进行标识。
5、建立需求基线
需求评审,是指对需求分析的结果进行评定。在进行需求评审时,不同人员能多角度地验证需求,同时,作为需求方的用户常常也能提出不少有用的意见,这样能让开发方更加全面、详细地掌握用户需求。另一方面,需求评审也是用户对最后确认其需求的机会,这就能有效降低需求变更的发生率。需求分析在通过评审后,要确定需求基线,所有需求变更都要以基线为基础,严格根据项目定义的变更过程来进行。需求基线的设置,能将由需求变更带来的不良影响降至最低。
参考文献
[1] 孟亚辉. 浅谈软件项目开发过程中的需求分析[J]. 科技信息,2009,11:435-436.
[2] 倪爱银. 软件项目需求管理解析[J]. 软件导刊,2011,05:24-26.
[3] 林成元. 需求分析是计算机软件项目管理的基础[J]. 山东纺织经济,2011,10:41-42.
[4] 王海涛,马秀红. 计算机软件项目管理中的需求分析[J]. 经济与管理,2012,05:56-58.
[5] 魏昊,刘建新. 浅谈软件项目开发过程中的需求分析和范围管理[J]. 北京工业职业技术学院学报,2008,01:44-46.
作者简介
高杨,男,辽宁省海城市,1977年12月2日,辽宁邮电规划设计院有限公司,通信工程师,计算机软件工程)
[关键词]软件项目 开发 需求分析 变更
中图分类号:O245 文献标识码:O 文章编号:1009―914X(2013)25―0394―01
一、前言
软件开发项目中最困难也是最重要的工作就是关于开发内容的说明,关于概念性工作,最困难的在于详细的项目需求的编制,它包括了所有面向机器、用户以及其他软件的接口。需求分析工作若出现问题,会带给软件系统严重的危害。需求是软件产品开发的前提条件,有需求才有产品,需求分析的好坏会对软件开发的全过程(设计—生产—销售—维护)产生直接的影响,因此准确、明确的需求分析是软件开发成功的决定因素。在软件项目的总开发成本中,项目返工费用占据了不小的比例,而需求分析的不准确、不明晰又是导致返工的重要原因。需求分析不明导致的设计变更,不仅会造成严重的资源量费,还会延迟项目的完成时间。需求分析贯穿于软件项目从设计到实现的全过程,是软件开发成功的首要条件。
二、软件项目需求分析的内容
软件开发过程主要包括了需求分析、设计、编码、测试和维护五个阶段。其中,需求分析是其他阶段的前提和必备条件。不少实践经验表明,需求分析阶段中的微小偏差,都可能导致整个项目出现重大偏差,产品功能与用户需求相去甚远。在软件开发中,需求分析必须包含关于用户需求的详细文档,文档内容要越详尽越好,这样,软件设计者才能从中提取出解决用户需求的设计重点,设计出能解决用户问题的软件。需求分析是对用户需求的凝练和升华,是通过优化用户业务需求流程,并使之转化为软件的关键步骤,该项工作的优劣,将直接关系到开发产品能否解决用户业务需要,用户的认可与否。软件开发项目需求分析,需要对软件必须完成的工作加以确定,即对软件提出具体、明确、准确、完整的要求。其工作内容是对软件性能、功能的深入描述,设计限制的确定、接口细节的确定以及有效性要求的定义。
需求分析任务是参考已有软件的逻辑模型,导出开发软件的逻辑模型,确定开发软件需要解决的内容。需求分析任务的实现过程为:获取已知软件的物理模型—建立其逻辑模型—构建开发软件的逻辑模型(见图一)。
图一 目标系统逻辑模型的建立流程
三、需求分析的方法
在软件开发中,需求分析方法包括了原型法、传统法、结构化系统开发法、模型驱动法等。需求分析的方法不可盲目套用,要根据资源在何种情况下对开发者最为有效来进行选择。传统软件开发采用“自顶向下”方式,它要求需求定义必须在开发之前落实。但实际上,仅通过分析是难以在软件建立以前确定出一套有效、一致而完整的需求的。鉴于此,一反传统开发模式的原型法应运而生,它也是目前最为流行的开发模式之一。
在软件开发中,原型是指拟开发软件的原始模型,是软件早期的、可运行的一个版本,原型能对最终软件的如软件功能、界面等重要特性加以反映。然后在获得基本需求后,再分析设计出一个简约型软件,并在需求的不断获取,软件的不断升级演化中得到最终的产品。该方法有效弥补了传统法的一些缺陷,具有交互性强、快速灵活的优点。原型法的核心是以原型取代不明的需求分析,通过用户的试用感受,来获取真实、有效的反馈意见,进而根据反馈意见来进一步改进原型,直至产品达到满意的效果。该方法的操作流程如图二所示。根据建立原型的目的、实现途径,可将原型划分为探索型、实验型和进化型三种类型。
四、需求变更及解决措施
(一)需求变更的原因分析
不论在开发中,还是在开发后,用户都有可能提出各种新的需求,并要求开发人员加以解决,这就是通常说的需求变更。需求变更问题产生的原因主要有以下三方面:一是,在需求分析过程中,用户与开发者之间的沟通交流不够。用户与开发者交流的不足,会致使开发者就获得的用户信息,自行揣摩用户需求,这样做出的需求分析常常与用户实际需求大相径庭,最终造成用户提出更改要求。二是,项目开发时间太长。在时间的推移下,用户会越来越深入地了解软件,对软件性能、功能、界面等方面也会有更高的要求。三是,技术更新太快。对于企业来说,快速的技术更新,会引进新的设备,设备的更新必然会对相应的软件提出新的要求,故开发者不得不在软件中体现用户的新的需求。
图二 原型构建流程
(二)需求变更的解决措施
为了尽可能地降低项目开发成本,就需要在满足用户需求的前提下,尽量减少需求变更问题。减少需求变更,主要可以从以下方面着手:
1、加大专业培训力度
在进行软件开发时,系统开发人员可能对相关领域不太了解,因此,为了使开发人员能与用户更好地沟通,准确把握用户需求,就需要在进行需求分析之初,对开发者的进行相关领域专业知识的培训,使其能基本了解所开发软件应用领域的一些特点和需求。
2、重视沟通交流
在需求分析时期,开发者要与用户进行全面、深入的沟通,若有疑问,要及时询问,确保准确、全面地掌握用户需求信息。在用户提出变更时,开发者要在听取用户要求后,对用户要求进行整理分析。准确分析变更原因,找寻有效的可替代方案。另一方面,还要向用户说明这些变更对于整个软件项目开发产生的不良影响,以尽量说服用户放弃变更要求。
3、利用合同加以约束
用户的一些不合理需求变更,可能会对整个项目造成较为严重的影响。因此,在双方签订的项目合同中,开发方可在需求变更条目下,增加一些约束性条款,利用合同来对需求变更要求加以约束,以减少需求变更问题。
4、建立需求文档
在用户与开发者关于开发软件达成共识后,建立一份需求文档,这也是需求分析的最终结果。需求文档的建立,可有效避免开发方人员变动对需求分析造成的影响。另外,每进行一次需求变更,都应当开发出新的版本进行标识。
5、建立需求基线
需求评审,是指对需求分析的结果进行评定。在进行需求评审时,不同人员能多角度地验证需求,同时,作为需求方的用户常常也能提出不少有用的意见,这样能让开发方更加全面、详细地掌握用户需求。另一方面,需求评审也是用户对最后确认其需求的机会,这就能有效降低需求变更的发生率。需求分析在通过评审后,要确定需求基线,所有需求变更都要以基线为基础,严格根据项目定义的变更过程来进行。需求基线的设置,能将由需求变更带来的不良影响降至最低。
参考文献
[1] 孟亚辉. 浅谈软件项目开发过程中的需求分析[J]. 科技信息,2009,11:435-436.
[2] 倪爱银. 软件项目需求管理解析[J]. 软件导刊,2011,05:24-26.
[3] 林成元. 需求分析是计算机软件项目管理的基础[J]. 山东纺织经济,2011,10:41-42.
[4] 王海涛,马秀红. 计算机软件项目管理中的需求分析[J]. 经济与管理,2012,05:56-58.
[5] 魏昊,刘建新. 浅谈软件项目开发过程中的需求分析和范围管理[J]. 北京工业职业技术学院学报,2008,01:44-46.
作者简介
高杨,男,辽宁省海城市,1977年12月2日,辽宁邮电规划设计院有限公司,通信工程师,计算机软件工程)