浅谈软件开发的现状及需求分析的重要性

时间:2022-10-09 11:36:36

浅谈软件开发的现状及需求分析的重要性

摘要:我国软件行业日新月异的发展,软件开发中的种种弊病显现出来,文档的滞后性、不兼容性,协作的不协调性等等都成为当前制约我国软件高速、专业化发展的绊脚石,而这些因素中尤以需求分析最为重要。正确而全面的需求分析可以给带来更多的效益,更少的资源浪费以及更优化的人力资源分配。

关键词:软件开发与维护;需求分析

中图分类号:TP311.52文献标识码:A文章编号:1007-9599 (2010) 06-0000-01

Discussion on the Status of Software Development&the Importance of Requirement Analysis

Lin Xiaoyan

(Yield Dynamics Co.Ltd.,Tianjin300384,China)

Abstract:As a result of the software industry's fast developing in China,the diseases of software development are emerged.Documentation lagging,compatibility,cooperation etc.have become conditioned to our current high-speed,professional development of software.With all the factors,the requirement analysis is the most important one.Correct and complete requirement analysis would bring us more benefit,less waste and more resources optimization of human resources allocation.

Keywords:Software development and maintenance;Requirement analysis

随着计算机在日常工作中的普及,软件开发行业作为其必不可少的组成部分,被人们所认可。在我国,软件行业日渐成熟,小作坊式的开发形式,已经不能满足我国对于软件规范化、实用性的要求,软件开发流程化及各个职能部门工作的有效划分和正确协作,是现在软件行业面临的一个较大的问题。软件需求分析是软件开发的出发点,为设计起到指导性作用,所以需求分析在软件行业及开发流程中起着非常重要的作用。

一、什么是软件需求分析

通俗地说,软件需求分析是解决做什么,怎么做的问题。告诉客户及开发人员,需要实现哪些功能,以何种方式,在什么平台去进行操作,开发结束后,应交付哪些东西。

二、目前软件开发的状况

目前国内外很多公司在软件产品开发过程中都存在着各种各样的开发与维护的问题。

其一,文档时效性无法保证。产品各模块由于是不同人员去制定规格以及开发,这就造成了文档的编写形式分离,使用不同的工具在不同的时间里书写和检索。维护程序时不能方便地得到文档的帮助,不能同步更新所有相关文档。

其二,程序与文档的内容分离。需求文档与设计文档由于采用的角度不同,面向对象不同,这就造成了他们所采用的描述不同(设计文档使用的是大量的自然语言,而设计文档使用的多是计算机语言、结构图等),在开发及维护过程中不能及时一致地更新所有的文档或程序,就会使得文档变成了几乎无法准确描述程序的废纸,而开发人员对于需求的理解不到位,加剧了程序和需求的分离,还会给用户带来负面的影响和损失。

其三,软件开发与维护分离。开发人员在软件设计、开发过程中多数不会思考以后可能的改进更新,没有留出相应的接口,这就加大了维护的难度,在新情况出现时,往往迫使软件重构(尤其是使用新的技术时),不仅造成资源的浪费,还使得维护时易引入新的错误。

同时这些分离也表现在设计、开发的不同阶段的文档之间的不相容性。打个比方说,需求文档是纸上的东西,有时不同的理解可能造成设计的南辕北辙,一切从零开始,重新分析、理解需求,这种思维上的脱节,不仅造成耽误进度、加重程序员的负担,还会导致不同阶段描述对象不兼容的现象出现。这些分离造成了文档在软件设计、开发以及维护中自身价值的下降,这也就是为什么大多数程序员不愿意编写,甚至摒弃维护文档的主因。

综合我国现阶段软件开发行业的现状,我们可以看出文档以及需求分析在软件开发中举足轻重的作用。可以说正确的文档指明了前进的方向,而良好的需求分析就是一盏明灯,照亮了前进的道路。

三、如何做好软件需求分析

尽量确保需求文档的完整性。需求文档应该清晰准确的描述软件,并且最好简单易懂。避免使用模糊性的词汇,例如“界面友好”、“高效率”或者“简洁”等,应该尽量使用能够描述产品使用特点的词汇,比如开发数据库的产品,尽量给出月新数据存储量,存储的数据类型,备份或清除数据的周期等量化的信息,以便于程序员开发及测试。

在需求分析的初始阶段,开发人员及测试人员要对需求及产品实施提出建议和解决方案。开发的过程,以及需求的分析过程应该是开发者和客户之间协商、讨论,螺旋式前进的过程。需求是不可能一蹴而就的,那样将充满着主观臆断和客观问题,会给未来的适用性和持续开发造成严重的问题,留下隐患。

合理地重用已有的软件组件,降低资源消耗,减少二次开发的时间及人力物力。有时可以考虑购买别的公司已开发且相对完善成熟的组件,例如制作一个分析软件,可以考虑购买其它公司已成型的画图组件,既可以减少自己开发画图组件所要消耗的人力物力资源,也可以减少开发时间,集中精力放在核心的分析模块及效率优化上,投入不会增加反而会减少,而且产出将是相当丰厚的。这就需要在需求分析阶段,软件开发人员做出相应的判断或建议。

开发人员要仔细研读需求文档,对项目开发的代价提供真实可靠的评估。这一点很重要,正确的评估不仅可以帮助产品及市场部门制定价格,还可以有效地帮助企业合理运用资源。

四、总结

需求分析为软件的开发起到了决策的作用,提供了开发的方向,并指明了开发的策略,在软件开发及维护中均起到了举足轻重的作用。大家一定要足够重视需求分析,可以说在一个大型软件系统的开发中,它的作用要远远大于程序设计。

上一篇:G.hn:ITU-T标准将引爆居家有线网络的广大市场 下一篇:网络教育研究热点分析