又双叒叕,需求分析在软件开发的重要性!

2018-07-09 16:11:14

对于软件需求分析及其变更的探讨是软件开发项目的基础和前提条件,也是软件开发能否取得成功的关键因素之一,提升软件项目管理中软件需求分析是我们当前的课题。然而,软件是计算机技术开发的核心和关键软件的开发和应用使人们不断追求的目标,在软件使用规模不断扩大,应用领域不断拓宽的新阶段,软件开发过程中对需求的分析至关重要,需求分析是软件项目成功与否的关键。下面我们将主要讨论需求分析在软件开发过程中的重要作用以及怎样做好需求分析。

在当前的软件开发过程中,软件需求变得尤为重要,软件工程中的需求分析是软件生命周期中最重要、最基本的环节,它不仅影响着整个软件开发项目的质量,也同时决定着软件能否成功的应用与生活以及能否给人们的生活带来相应的便利。

一、需求分析的含义

需求分析是一个对用户意图不断进行揭示和判断的过程,同时要进一步对经过可行性分析所确定的系统目标和功能进行详细论述,在此基础上进一步确定用户的要求和目的。需求分析的内容大致可以分为两类,主要包括功能性需求和非功能性需求,功能性需求主要是用于说明系统各功能部件与环境之间相互作用的本质,换言之,就是还没开发出来的软件在实际应用中能做到什么,他是用户最主要的需求,常常包括系统的输入以及系统的输出、系统能完成的功能以及其他反应、非功能性需求主要是从不同的角度对能想到的具有可行性的解决方案 的约束和限制作用,例如对时间、存储、界面的约束等等,非功能性需求也被称为“约束性需求”。

二、需求分析的意义

1.全面熟悉该软件项目的所有相关人员,明确需求分析方成员和用户成员的交流和沟通,最终确定对目标软件的综合要求,同时最终确定如何实现用户方的需求和软件最终应达到的水平和标准。

2.能够挖掘用户需求,并对其需求进行分析建模,有些用户由于缺乏计算机方面的相关知识,所以没有办法提出相对准确的需求,从而导致一些潜在的需求得不到有效的满足和完善,只是最后的软件模型不能使用户完全满意,所以软件需求分析人员应视图站在用户的角度,不但要确定用户的需求,还要适当的启发用户。挖掘用户的潜在需求。

三、优化分析需求的过程

1.问题识别:就是从系统角度来理解软件,确定对所开发系统的综合要求,并提出这些需求的实现条件,以及需求应该达到的标准。这些需求包括:功能需求(做什么)、性能需求(要达到什么指标)、环境需求(如机型、操作系统等)、可靠性需求(不发生故障的概率)、安全保密需求、用户界面需求、资源使用需求(软件运行是所需的内存、CPU等)、软件成本消耗与开发进度需求、预先估计以后系统可能达到的目标。 

2.分析与综合: 逐步细化所有的软件功能,找出系统各元素间的联系,接口特性和设计上的限制,分析他们是否满足需求,剔除不合理部分,增加需要部分。最后综合成系统的解决方案,给出要开发的系统的详细逻辑模型(做什么的模型)。 

3.制订规格说明书: 即编制文档,描述需求的文档称为软件需求规格说明书。请注意,需求分析阶段的成果是需求规格说明书,向下一阶段提交。

4. 评审: 对功能的正确性,完整性和清晰性,以及其它需求给予评价。评审通过才可进行下一阶段的工作,否则重新进行需求分析。

四、优化需求分析的方法

目前,软件需求的分析与设计方法较多,一些大同小异,而有的则基本思路相差很大。从开发过程及特点出发,软件开发一般采用软件生存周期的开发方法,有时采用开发原型以帮助了解用户需求。在软件分析与设计时,自上而下由全局出发全面规划分析,然后逐步设计实现。 从系统分析出发,可将需求分析方法大致分为功能分解方法、结构化分析方法、信息建模法和面向对象的分析方法。 

(1)功能分解方法 

将新系统作为多功能模块的组合。各功能义可分解为若干子功能及接口,子功能再继续分解。便可得到系统的雏形,即功能分解——功能、子功能、功能接口。

(2)结构化分析方法

结构化分析方法是一种从问题空间到某种表示的映射方法,是结构化方法中重要且被普遍接受的表示系统,由数据流图和数据词典构成并表示。此分析法又称为数据流法。其基本策略是跟踪数据流,即研究问题域中数据流动方式及在各个环节上所进行的处理,从而发现数据流和加工。结构化分析可定义为数据流、数据处理或加工、数据存储、端点、处理说明和数据字典。