杭州虹合科技有限公司,浙江省杭州市, 310000[1]
中国电信股份有限公司杭州萧山区分公司,浙江省杭州市,310000[2]
摘要:在软件开发的过程中,对软件进行需求分析是最基本也是最重要的一个环节之一,它能指引一个软件开发的大方向,使 软件开发者少走弯路,所以对需求分析的研究对于一个软件开发者来说也是必不可少的。在开发软件项目的过程中,前期需要投入大量成本,如果不进行需求分析,势必会使得所开发出来的软件项目很难满足市场的实际需求,这样会进一步导致软件返工现象的出现,最终加大了软件项目开发的成本。
关键词:软件行业;项目开发;需求分析
引言
当前软件开发行业的发展势头非常强劲,不过市场需求不断变化,给软件行业的生存和发展带来了非常大的冲击和挑战。目前在市场需求的导向下,我国软件开发行业正在实施一系列改革措施,以期保证所开发出来的软件项目能够更加适合现代社会的发展需求。而要想在第一时间内掌握市场对于软件项目的实际需求,需要在开发的过程中合理应用需求分析,弄清楚软件项目开发的目的,从而在降低软件项目开发成本的同时,使得其更加满足用户的需求。因此,在软件项目开发的过程中,不断优化相应的需求分析具有非常重要的现实意义。
一、软件需求分析的任务
要想分析软件需求的具体任务,需要先来了解一下什么是软件需求分析。在软件需求分析里也需要有详细的文档,要做的就是从用户的具体要求中提取出软件系统,然后通过对需求的分析,规划出软件大概需要实现什么基本功能,这也是直接关系到做出来的软件是否让客户满意,是否能顺利交付到用户,用户是否能成功运行我们的软件且解决了一些问题。
(一)确定对系统的综合要求
第一,功能需求。所谓功能需求是指软件所必须要提供的服务。我们通过需求分析得到了系统所需要完成的所有功能,类似建造楼房需要满足的用户条件。第二,性能需求。性能需求指定系统的约束,其中包括定时约束或容量约束,通常包括速度(响应时间)、信息量速率、主存容量、磁盘容量、安全性等方面的需求。第三,出错处理需求。需求说明,当软件系统出现错误或者卡顿,应该如何去处理。第四,接口需求。接口需求描述应用系统与它的环境通信的格式。第五,将来可能提出的要求。应该明确地列出那些虽然不属于当前系统开发范畴,但是据分析将来很可能会提出来的要求。
(二)分析数据要求
信息处理系统是任何一个软件系统的根本,系统必须处理的信息和系统应该产生的信息,在很大程度上决定了系统的面貌,对软件设计有深远影响,因此,必须分析系统的数据要求,这是软件需求分析的一个重要任务。
(三)导出逻辑模型
综合上述两项分析的结果,导出了系统的详细的逻辑模型,通常包括用状态转换图、数据流图、实体联系图、数据字典和描述这个逻辑模型,还包括主要的处理算法。
(四)更新开发计划
根据在分析过程中获得的对系统的更深入更具体的了解,可以比较准确地估计系统的成本和进度,修正以前制定的开发计划。
二、软件开发项目需求分析存在的问题
(一)用户参与度不足
由于需求分析的应用主要是对用户实际的使用系统进行使用功能、使用性能以及使用可靠度等方面的分析研究,一旦用户不参与到需求分析的实际工作中或参与程度不够,那么将会导致整个需求分析工作无法正常开展。虽然软件项目的开发人员对于系统的开发以及软件项目各方面的特性都非常熟悉,但是大部分软件用户对软件项目的实际功能、性能等并不是十分了解,进而导致用户对于系统相关的特性描述不全面,导致软件项目的开发人员无法真正掌握用户的实际需求。这样势必会导致所开发出来的软件项目不能完全满足用户的实际心理需求,进而会出现返工现象,从而给软件开发企业带来巨大的人力和财力损失。
(二)用户需求的不确定性
在运用需求分析的过程中,如果用户对自身的使用需求不够确定,那么将会给整个软件项目的开发工作带来极大难度,不仅可能大幅度增加软件项目开发的复杂程度,同时还可能出现软件项目规模不可控等情况。此外,如果用户的需求不能确定,那么可能导致软件项目的代码结构出现变化,这就打破了代码规范中“高内聚、低耦合”的原则,从而进一步加大了代码维护的难度,最终导致所开发的软件项目的各方面性能受到影响。因此,对于用户需求不确定的情况,需要采取有效的措施来解决。
(三)需求分析深入度和全面性不足
对于软件项目开发的需求分析需要做到彻底、深入,并且还需要十分全面。然而在实际运用过程中,由于对于需求分析的深入度不够,导致所开发的软件项目可能出现功能划分、功能定义出错等问题。另外,由于需求分析的不够全面,可能导致用户所需求的一些功能不能完美展现,这样有可能导致软件项目在使用过程中出现结构破坏的情况。由此可见,对于需求分析的运用,需要双方的共同努力,从而使得所开发出来的软件项目具有更加完整的功能和特性,以更好地满足用户的实际需求。
三、相应的解决措施
(一)加强用户与开发人员的合作
为了保证在软件项目的开发过程中能够更好运用需求分析,加强用户与软件开发人员之间的合作意义重大,这是做好软件项目开发需求分析的基础和前提。在实际的需求分析过程中,由于认知方面的问题,用户对于软件系统的功能及特性认识肯定会存在一定的偏差,而设计人员由于具有足够的专业知识,能够准确掌握相应的性能和特点。加强软件用户与软件项目开发人员之间的合作,能够使得开发人员帮助用户更加全面深入地了解软件系统,从而使得软件开发人员能够更加精确和全面地掌握用户的实际需求,从而有利于整个软件项目开发过程更好进行。
(二)做好系统各类需求的状态跟踪
由于在运用需求分析时不仅需要分析软件系统的运行环境,同时还需要考虑软件系统的稳定性、功能性等条件,因此,需要在需求分析的过程中加强对软件各类需求的状态跟踪。对于软件系统中数据结构的定义、子模块的功能和定义等进行有效的状态跟踪,从而保证各模块的实际功能做得更好,最终确保能够满足用户的整体需求。
(三)提升需求分析的完整性和一致性
除了需要做好以上两方面的工作之外,在需求分析的应用过程中,还需要保证需求分析的完整性。保障用户软件系统实际需求功能及特性的完整性,以保证软件系统能够更好地被用户使用。同时还需要保证软件系统的整体功能与各模块功能之间的一致性,这样能够确保整个软件项目系统具有更高的稳定性。
(四)运用好需求分析的各种开发工具
需求分析过程中所形成的各种文档,是软件项目得以更好开发的基本参考,因此,还需要运用好各种开发工具加强对这些文档的审核和查阅,从而帮助软件项目的设计者更好地掌握所开发系统的数据结构定义、所需要进行模块功能设计的图形等需求。运用好这些工具,一方面有利于用户了解系统定义的准确度,避免由于技术而引起沟通难题;另一方面有利于后续编码测试工作的顺利展开,一些需求设计优秀文档甚至能够直接翻译成特定的编程语言。
结束语:
综上所述,当前我国软件项目在开发过程中仍存在较严重的需求问题难以解决,用户参与度不足,用户需求的不确定性,需求分析深入度和全面性不足等问题均会对项目软件开发造成一定的不良影响。因此,针对此上问题,企业项目分析及开发人员应做好资料的准备工作,提高业务素养,理解用户需求,以专业的态度面对用户的需求模糊、变更等问题,最终实现项目软件的完善性开发。
参考文献:
[1]张欣.软件项目开发过程中的需求分析[J].信息与电脑(理论版),2016(18):108-109.
[2]蔡敏慧.软件项目开发过程中的需求问题研究[J].中国新通信,2016,18(04):144.
[3]魏昊,刘建新.浅谈软件项目开发过程中的需求分析和范围管理[J].北京工业职业技术学院学报,2008(01):44-46.
[4]陈琦. 论软件项目开发的需求治理[D].北京邮电大学,2006.
1作者简介:季李立,男,1987.1.5,汉族,浙江省杭州市人,本科,专业:通信工程,研究方向:信息技术(设计开发),职称:助理工程师。
2作者简介:童辉,男,1985.11.20,汉族,浙江省杭州市人,本科,专业:计算机科学与技术,研究方向:机电制造(技术服务),职称:助理工程师。