什么是需求分析
需求分析是软件计划阶段的重要活动,也是软件生存周期中的一个重要环节,该阶段是分析系统在功能上需要“实现什么”,而不是考虑如何去“实现”。需求分析的目标是把用户对待开发软件提出的“要求”或“需要”进行分析与整理,确认后形成描述完整、清晰与规范的文档,确定软件需要实现哪些功能,完成哪些工作。此外,软件的一些非功能性需求(如软件性能、可靠性、响应时间、可扩展性等),软件设计的约束条件,运行时与其他软件的关系等也是软件需求分析的目标。
需求分析阶段的工作,可以分为四个方面:问题识别、分析与综合、制订规格说明、评审。
问题识别:就是从系统角度来理解软件,确定对所开发系统的综合要求,并提出这些需求的实现条件,以及需求应该达到的标准。
这些需求包括:功能需求(做什么)、性能需求(要达到什么指标)、环境需求(如机型、操作系统等)、可靠性需求(不发生故障的概率)、安全保密需求、用户界面需求、资源使用需求(软件运行是所需的内存、CPU等)、软件成本消耗与开发进度需求、预先估计以后系统可能达到的目标。
分析与综合: 逐步细化所有的软件功能,找出系统各元素间的联系,接口特性和设计上的限制,分析他们是否满足需求,剔除不合理部分,增加需要部分。最后综合成系统的解决方案,给出要开发的系统的详细逻辑模型(做什么的模型)。
制订规格说明书: 即编制文档,描述需求的文档称为软件需求规格说明书。请注意,需求分析阶段的成果是需求规格说明书,向下一阶段提交。
评审: 对功能的正确性,完整性和清晰性,以及其它需求给予评价。评审通过才可进行下一阶段的工作,否则重新进行需求分析。
需求分析的特点及难点,主要体现在以下几个方面。
(1)确定问题难。主要原因:一是应用领域的复杂性及业务变化,难以具体确定;
二是用户需求所涉及的多因素引起的,比如运行环境和系统功能、性能、可靠性和接口等。
(2)需求时常变化。软件的需求在整个软件生存周期,常会随着时间和业务而有所变化。
有的用户需求经常变化,一些企业可能正处在体制改革与企业重组的变动期和成长期,其企业需求不成熟、不稳定和不规范,致使需求具有动态性。
(3)交流难以达到共识。需求分析涉及的人事物及相关因素多,与用户、业务专家、需求工程师和项目管理员等进行交流时,
不同的背景知识、角色和角度等,使交流共识较难。
(4)获取的需求难以达到完备与一致。由于不同人员对系统的要求认识不尽相同,所以对问题的表述不够准确,
各方面的需求还可能存在着矛盾。难以消除矛盾,形成完备和一致的定义。
(5)需求难以进行深入的分析与完善。需求理解对不全面准确的分析,客户环境和业务流程的改变。市场趋势的变化等。
也会随着分析、设计和实现而不断深入完善,可能在最后重新修订软件需求。
分析人员应认识到需求变化的必然性,并采取措施减少需求变更对软件的影响。对必要的变更需求要经过认真评审、跟踪和比较分析后才能实施。
网友评论