司雁鹏
摘 要:在软件开发的过程中,对软件进行需求分析是最基本也是最重要的一个环节之一,它能指引一个软件开发的大方向,使软件开发者少走弯路,所以对需求分析的研究对于一个软件开发者来说也是必不可少的。本文通过对相关资料的查阅,着重介绍了软件需求分析的过程、方法以及对需求变更的解决方法,其中对需求分析方法的研究中,以原型法为例进行了介绍。此外通过对软件的需求分析研究,认识到客户与软件开发者之间的交互对于一个软件的完整性和可行性都有着必不可少的关系。
关键词:软件 需求 客户 原型
中图分类号:TP311.5 文献标识码:A 文章编号:1674-098X(2017)10(b)-0134-02
随着软件开发技术的发展和软件行业的竞争日益激烈,出现了越来越多元的软件开发工具及方法,同时也给予了软件开发工作者更多的选择。可无论是哪一种软件开发方法,面对一项开发工程,首先我们该从何入手,先去做什么,如何能够尽最大可能地满足用户的各项需求,并且能够成功实现用户所要求的功能,这些都是我们要面对的问题。然而要解决这些问题,靠的就是软件开发的需求分析。
1 软件需求分析的任务
想要分析软件需求的具体任务,我们先来了解一下什么是软件需求分析。举个例子,当一个房地产公司要在某一地段盖一栋楼房,除了考虑地质和楼房的外观规划,更要考虑到的是住进该楼房的主人的定向需求,比如阳光的覆盖率、周围环境是否嘈杂,以及出行是否方便,而物主的这些对生活的基本需求也决定了楼房的建造位置及方向,可以说用户的需求问题是一项工程里不能忽视的重要部分。在软件需求分析里也需要有详细的文档,要做的就是从用户的具体要求中提取出软件系统,然后通过对需求的分析,规划出软件大概需要实现什么基本功能,这也是直接关系到做出来的软件是否让客户满意,是否能顺利交付到用户,用户是否能成功运行我们的软件且解决了一些问题。
1.1 首先要确定对系统的综合要求
第一,功能需求。所谓功能需求是指软件所必须要提供的服务。我们通过需求分析得到了系统所需要完成的所有功能,类似建造楼房需要满足的用户条件。第二,性能需求。性能需求指定系统的约束,其中包括定时约束或容量约束,通常包括速度(响应时间)、信息量速率、主存容量、磁盘容量、安全性等方面的需求。第三,出错处理需求。需求说明,当软件系统出现错误或者卡顿,应该如何去处理。第四,接口需求。接口需求描述应用系统与它的环境通信的格式。第五,将来可能提出的要求。应该明确地列出那些虽然不属于当前系统开发范畴,但是据分析将来很可能会提出来的要求。
1.2 分析数据要求
信息处理系统是任何一个软件系统的根本,系统必须处理的信息和系统应该产生的信息,在很大程度上决定了系统的面貌,对软件设计有深远影响,因此,必须分析系统的数据要求,这是软件需求分析的一个重要任务。
1.3 导出逻辑模型
我们综合了上述两项分析的结果,导出了系统的详细的逻辑模型,通常包括用状态转换图、数据流图、实体联系图、数据字典和描述这个逻辑模型,还包括主要的处理算法。
1.4 更新开发计划
根据在分析过程中获得的对系统的更深入更具体的了解,可以比较准确地估计系统的成本和进度,修正以前制定的开发计划。
2 需求分析的过程
其过程为:获取到用户的需求→分析用户需求→编写需求文档→评审需求文档。首先,需求阶段我们需要充分细致地了解客户所期待的目标,包括用户所完成业务的内容、流程等,属于需求分析的基础准备工作。其次,在需求调研前,我们要配合人员进行分类,层次化。分析的初期阶段,需要得到客户整体意义上的需求。再次,多方位地描述客户的相同需求,从基层人员到高层领导都会覆盖。所以需求应该从各个角度、各个方位进行描述,这样就不会漏掉重要信息,保证了表达的完整性,当进行到后期的设计工作的时候就会省去不必要的麻烦。然后,由于需求将作为设计的基础,我们需要清晰化每一项数据,包括弄清所有的数据项的来龙去脉,不可以存在模糊不清的项。最后,充分地挖掘用户的潜在需求。我们软件工作者对于软件技术非常熟悉,所以一些由于技术所带来的潜在需求很难被客户发现,所以实现不实现这些需求,对于软件并没有太大的影响,但是如果实现了则会使软件更加人性化。
3 需求分析的方法
在此用软件需求分析方法之一——原型法来展开说明。现在的软件产品存在一些不完整和不系统的问题,其中有很大一部分是由于需求分析的错误导致的,所以成功的需求分析成为软件项目成功的关键一步。
3.1 原型法的概念
原型法凭借着系统分析人员对用户要求的理解,在强有力的软件环境支持下,快速給出一个实实在在的模型,然后与用户反复协商、修改,最终形成实际系统。原型化的需求定义过程是一个软件工程师和客户之间合作的反复过程。它允许在满足用户基本需求的条件之上,允许客户在软件的开发过程中进行交流,或者提出更加人性化的要求,对系统进行完善。
3.2 原型法的特点
其特点是直观性、动态性、明细性、严谨性。原型法是一种用户和软件开发者不停往复循环且螺旋上升的过程。此外,原型法还强调了用户的参与过程,用户参与对模型的描述以及系统需求的检验。在这样的方法里,用户起到了主导作用,在用户与开发人员的交流过程中,不断地缩短了用户和开发者的距离,并且能够及时地反馈出软件开发过程中的问题,也增加了软件系统的可行性和适用性。
3.3 原型法的分析流程
(1)快速地对用户需求进行分析。(2)开发初始原型系统。(3)软件开发者和客户共同评价原型。
3.4 采用原型法的注意事项
(1)所有的需求都需要后期的交互和完善,注意与客户之间的交互。(2)原型可以克服项目参加者之间的交流困难。(3)需要准备可以供客户参与的系统模型。(4)有安全的开发环境,同时也要保证兼容性。(5)需求一旦确定,就应该遵从严格的方法,不可以擅自改动。
4 需求变更
在我们日常的软件开发过程中,总是感觉做不完,出现的问题越来越多,用户总是有新的需求出现,这种现象就叫作需求变更。所以如何来应对需求变更也成为不可忽视的问题。一旦发生了需求变化,你必须重新进行你的设计而且需要重写代码,这是每一个软件开发人员最头痛的事。需求是无尽的,而软件开发者的耐心是有限的。所以应对的方法之一:把需求记录成文档,当用户出现系统变更,可以及时通过翻看文档,确定出需要修改的地方,并且及时更新文档。此外,根据对进行多年项目开发的项目小组的考察,进行需求评审也是必要的。所以应该让不同的人员对软件需求进行各个角度的验证,验证需求的可行性、完整性、一致性、正确性等。
5 结语
软件需求分析,其实可以说是进行软件开发的必经之路,看似简单却是软件开发的核心,对软件开发起到了决策的作用。软件需求分析跟程序设计有相似之处,具有合理性和可行性才是最重要的,只有真正看到顾客想要什么,才能设计出顾客所需要的软件,如果一味地追求进度,最终得不偿失。
参考文献
[1]郑人杰.软件工程导论[M].北京:清华大学出版社,1997.
[2]陈明.软件工程学教程[M].北京:科学出版社,2002.
[3]张海藩.软件工程导论[M].北京:清华大学出版社,2003.endprint