软件开发项目需求分析问题及解决方法研究

龙源期刊网 http://www.qikan.com.cn

软件开发项目需求分析问题及解决方法研究

作者:邱煦宇

来源:《电子技术与软件工程》2016年第03期

摘 要 需求分析作为软件项目开发关键步骤,具有着重要的作用。本文将结合需求分析过程的具体问题,探讨解决这些问题的思路。 【关键词】软件 项目 需求分析 问题 解决方法 1 软件开发项目需求分析概述

需求分析是软件开发过程的重要阶段,尤其是大型软件项目(如ERP系统)的开发过程中尤为重要的环节。需求分析主要任务是以文档的形式进行展现解决用户的“问题”的过程,通俗的讲,即对用户所需要的“系统”在功能性、目的性、应用性以及可靠性等方面的深入剖析。通常软件项目开发需求分析的包含问题的识别、分析和汇总、各类需求描述文档的产生和文档的评审四方面的内容。由此可见,需求分析阶段并不是用户软件系统的实现阶段,而是在逻辑层次对用户所需系统的描述。因此可见,需求分析阶段不仅仅需要开发人员的参与,也需要用户进行参与。

随着软件开发的复杂度以及功能性的增加,需求分析作为软件生命周期中定义阶段必不可少的环节,发挥着举足轻重的作用,是后续的项目编码、测试以及维护阶段的基础,很难想像,缺乏必要需求分析的用户系统,能够十分贴切的满足用户的需求。另外,大中型软件项目开发过程中,一旦用户需求发生变化,往往造成巨大的代码更改、系统集成、接口设计工作,需要耗费难以预估的人力和财力。需要提及的是,需求分析也是软件工程领域研究的重要内容。总之,软件项目开发设计阶段的需求分析,无论从后续工作持续性保障、还是对于系统深入了解以及后期维护都有着重要的作用。 2 软件开发项目需求分析问题研究 2.1 用户参与度不足

需求分析阶段是对用户系统进行功能定义、性能描述、系统可靠性的深入划分和探析的过程,离开了用户的参与或者用户的参与度不够不利于需求分析工作的顺利展开和实施。开发人员往往对于系统的开发过程以及开发工具的运用是相对熟练的,而对于具体用户所需的功能是不甚了解;而用户人员对于系统功能的描述通常也具有一定的局限性,甚至于用户也不明白真正的自身需求。因此,软件需求分析如果缺乏用户的参与,不能达成用户与开发人员的共识,容易出现开发人员对于系统理解的片面性以及对于功能分析的不完整性,严重的甚至导致后续开发与测试阶段出现返工,造成严重的人力财力资源浪费。 2.2 用户需求的不确定性

龙源期刊网 http://www.qikan.com.cn

由于用户对于开发工作的不熟悉以及用户对所需功能的不确定(主要指需求的变更和需求的增加),容易导致软件项目的急剧庞大,项目规模的可控性、项目复杂度以及项目的风险都会伴随需求的变化进行变得不确定。另外,用户需求的不确定导致项目代码的结构可能出现变化,使得代码规范中“高内聚、低耦合”的原则容易被打破,代码的整体结构性被打破,也给代码的维护带来了一些难度;当然系统的稳定性、健壮性往往也会受到影响。总之,用户需求的不确定也是需求分析阶段所面临问题的重要方面。 2.3 需求分析深入度和全面性不足

除了上述内容的不足,需求分析深入性和全面性的欠缺也是该阶段所容易出现的问题之一。分析深入度的缺乏,使得子系统模块在系统边界的划分、功能定义、子系统接口都会出现问题;需求全面性的分析不足,则可能导致用户的功能完整性受到影响,部分用户需求被忽略,在后期编码时出现补丁似的代码,系统的结构会受到破坏,严重时可能导致项目开发周期和项目经费出现危机,甚至出现灾难性对软件开发事项。可见,软件的需求分析工作展开时,不仅仅需要各方人员的通力合作,也需要对于用户系统形成一个具有完整性和一致性的认识。 3 软件开发项目需求分析问题解决方法探讨 3.1 提升用户参与度,加强用户与开发人员的合作

软件开发项目需求分析问题的解决,首先应该加强用户与开发人员的合作,保障各方人员交流的畅通性。这主要是基于需求分析的目的。用户或多或少在功能需求方面有自身的见解,而开发设计人员有着娴熟的开发技术,但对于用户具体的功能以及其他方面的技术需求则了解的相对不足,因此,彼此通过加强沟通交流,能够快速形成对于用户系统的深入了解,并且在互相交流的同时,容易做到对系统功能全面性的了解。可见,提升用户在需求分析阶段的参与度是结论相关问题的必要手段。 3.2 做好系统各类需求状态的跟踪

软件系统需求分析包括运行环境的定义,系统稳定性保障,系统功能性的要求,系统可靠性等诸多方面内容。尤其是在系统功能性定义的时候,不仅仅要加强较高逻辑层次的系统定义,也要加强数据流,数据结构定义,子模块定义,子模块功能划分以及各个接口功能时的准确分析定义。可见,需求分析涉及的内容比较多,应在保障需求分析有效性的同时,提升需求分析各个部分模块状态的跟踪,保障各个模块内容需求分析准确性,最终形成需求整体的准确性保障。

3.3 提升需求分析的完整性和一致性

需求分析除了加强人员合作和各类需求的跟踪之外,还应提升需求分析的完整性和一致性。保障软件系统逻辑定义与数据流的一致性,整体功能的实现与各模块功能的一致性,提升软件功能性与稳定性的一致性等。当然,除了一致性的保障以外,还应在系统分析的完整度和

龙源期刊网 http://www.qikan.com.cn

深入性进一步加强,保障用户的功能需求和性能需求都能得到较好的实现与满足,避免后期代码重新编写或者返工的情况出现。可见,提升软件系统需求分析的完整性和一致性也是解决其问题的重要方面。

3.4 运用好需求分析的各种开发工具

需求分析的诸多方面需要形成各种文档,供文档审查时使用,当然也是系统实现的基本参考,因此,运用好需求分析的各种开发工具,如数据结构定义时的各种定义工具;数据流程图绘制工具;功能模块设计图等各种需求分析符号对于需求分析有着巨大的帮助。运用好这些符号工具,一方面有利于用户对于系统定义的准确度了解,避免了由于技术而引起“沟通”难题;另一方面有利于后续编码测试工作的顺利展开,一些需求设计优秀文档甚至能够直接翻译成特定的编程语言。总之,运用好需求分析开发工具也是解决需求分析问题的有效手段。 参考文献

[1]赵志明.软件开发项目中需求管理研究[D].重庆大学,2008. [2]姚海峰.多方合作软件项目的需求管理[D].上海交通大学,2008.

[3]樊林赋.面向IT项目的需求分析管理的方法研究及应用[D].上海交通大学,2012. [4]湛浩旻.软件需求获取过程关键技术研究[D].哈尔滨工程大学,2013. 作者单位

1.西安石油大学计算机学院 陕西省西安市 710065 2.长庆油田 陕西省西安市 710018

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4