APP下载

浅谈软件需求分析在软件开发中的重要性

2020-10-20吉盼盼

科学与财富 2020年20期
关键词:用户需求软件开发

吉盼盼

摘要:在软件开发中,做好软件需求分析,能够降低后续变更问题发生的几率。基于此,本文详细阐述了业务需求分析、用户需求分析、功能需求分析、非功能需求分析在软件开发中的重要性,实现了对软件产品开发设计的深入分析,希望能够为计算机软件产业的发展提供助力。

关键词:软件开发;业务需求;用户需求

软件需求分析是指在软件开发中,针对计划期间,软件所能达到精确度的分析,其作为第一项开发工作环节,是后续开发工作有效性的重要保障,因此,工作者应当明确软件需求分析的重要性,并采取有效措施,强化分析结果的准确性,促进软件产品的顺利交付使用。

一、业务需求分析的重要性

(一)需求识别

根据现阶段人们对软件开发需求分析的定义来看,需求分析中涵盖四个层次,即业务需求、用户需求、功能需求、非功能需求。其中业务需求主要是指,客户对软件产品的高层次目标要求,通常体现在项目范围文档、视图内容中。在此层面的需求分析中,工作者要采用技术架构元模型,将零散分布于资料中的业务需求信息进行整理和分类,明确用户的业务需求,以保障软件高层次开发目标定位的准确性。在此过程中,工作者应将软件履行的业务按照其所在领域进行划分,并确保用于分类的领域能够被定义,进而构建出各个业务元素。然后将各个元素进行罗列,并采用连线的方式,示意元素之间的关系,形成一个完整的技术架构元模型,方便工作者随时查阅,同时,为后续的系统逻辑检查奠定基础。

(二)需求信息校正

在需求识别环节完毕后,工作者应认识到,即便持有了明确的元素关系架构,但由于自身无法确定业务之间的逻辑关系是否正确,因此,在此项分析环节中,工作者仍不能保证信息的完整性。若待到开发时才发现逻辑错误,则会严重影响开发效率。为此,工作者应采用规则引擎、流程引擎等方式,对该架构进行仿真分析,并进行系统的模拟运行,查看各个环节是否存在问题,然后及时予以校正,最终形成一个系统图纸,使工作者能够更加明确其所需开发的系统,提高后续开发工作的准确性和效率。

二、用户需求分析的重要性

(一)需求识别

用户需求主要是指用户在应用软件时,必须要完成的工作,通常被记录在 use case 文档或 scenario 说明中,是软件系统设计,以及后续维护设计的主要依据。在此过程中,工作者需要通过与客户进行沟通,来调查、分析用户的需求,以降低变更发生的几率。为此,工作者先要对用户的需求进行识别。在需求识别中,部分客户本身并不具备足够的计算机专业知识,不能准确地描述自身的需求,造成了大量潜在的要求无法被顺利识别,导致后续频繁出现变更,因此,工作者应先细化《用户需求说明书》,然后针对复杂的需求,采用建模分析法,识别用户潜在需求,例如:RUP 需求建模分析法,在分析中,工作者可以采用 UML 作为建模工具,并借助工具中的用例模型描述功能,从用户的角度上,理解系统总体功能,使需求识别结果更加准确、完整。

(二)变更预防

在用户需求分析中,完全按照需求识别结果,来进行软件开发也不能完全保障后期不会出现变更,因为工作者也不能确认识别结果不能存在误差。为此,在实际的分析工作中,工作者还要积极与用户进行沟通,逐步确认各项潜在需求,同时,对于用户提出的新需求,也要及时予以记录和整理,然后基于此,深入分析用户提出新需求的原因,并发掘新需求所带来的潜在需求,增强需求分析结果的完整性。减少后续变更的数量。此外,工作者还要明确告知用户,变更会带来的结果,以免变更降低用户的满意度。

三、功能需求分析的重要性

(一)需求识别

功能需求层次被定位为开发工作者务必要实现的软件功能,该功能应当是用户利用系统完成任务所必不可少的功能,因此,该项需求在实际描述中经常会采用“应该”一词,例如:系统应该推送通知,告知用户其申请内容已经得到批复。从本质上来讲,该项需求也被定义为客户需要开发人员所实现的功能或效果,所以,部分用户需求也可以转化为功能需求。在该层次上的需求识别中,工作者需要采用 Visio、excel、脑图等工具,仔细梳理软件业务运行程序,然后将其抽象成为功能模块,并归纳整理出满足需求的功能列表,为开发过程中的功能设计环节,提供有力的依据。而在这种模块化的需求识别中,工作者也要做好用户访谈、问卷调查等工作,以强化需求识别结果的完整性。

(二)需求解决方案

在功能需求层面,分析工作主要服务于具体的开发设计,因此,其在作用上,相较于以上两个层次上的分析工作也更具针对性和具象性。基于此,在需求识别完成后,工作者还要根据需求,制定相应的解决方案,以明確设计思路大框,保障后续开发工作效果。在此过程中,工作者需要将已经归纳好的功能模块,转化为流程图,或逻辑图,以阐述系统的作业流水线,然后根据各个功能模块在流水线中的职能,设计出相应的软件系统解决方案,即可以支持该功能顺利完成的编程思路,并绘制交互原图,结合素材,与 UI 沟通,确保软件开发结果可以达到预期。

四、非功能需求分析的重要性

(一)需求识别

非功能需求从本质上来看是一种对软件产品设计、构造的限制,其阐述了软件展现给用户的行为,以及执行操作,通常包含产品必须遵循的规范、合约、标准等,同时也包括对外部界面的具体要求。此外,还包括可靠性、安全性、可扩展性等其他非功能性的要求,因此,工作者难以通过主观来识别软件产品的非功能需求,并且需要借助建模等方式,来实现准确的需求识别。在此过程中,工作者可以建立一个需求元模型,但考虑到该项需求分析的特殊性,工作者应将常规的需求元模型框架 RGPS 中的目标层模型进行扩展,将非功能需求进行定量和定性,增强非功能需求分析效果。

(三)变更预防

由于该项需求内容比较笼统,因此,在实际操作中,即使将分析结果的准确性尽可能提高,待后续开发时,依然有可能常出现变更情况。为此,工作者还要将变更情况的预防,纳入到非功能需求分析环节中,增强需求分析的效用。在此过程中,工作者应注意挖掘客户的潜在需求,以确保非功能需求分析结果的准确性。从客户角度上来说,非功能需求涵盖对系统应用体验的要求和具体应用场景下,系统性能的要求,所以,工作者应从以上两点入手,深入分析客户的潜在需求,以降低后期变更发生的几率[1]。

五、结论

提高需求分析结果的准确性,有助于软件开发工作水平的发展。在需求分析过程中,工作者通过从各个层次角度上进行需求分析可以准确定位高层次开发目标、有效预防变更、合理设计系统功能、优化软件产品性能,从而充分发挥需求分析的效用,优化开发工作效果。

参考文献:

[1]李靖.分层技术在计算机软件开发中的应用[J].通讯世界,2020,27(06):33+35.

猜你喜欢

用户需求软件开发
基于用户需求的图书馆移动信息服务
融媒体背景下健康类纸媒的转型
信息安全环境下的计算机软件开发研究
核电厂定期试验管理软件开发
天津企业涉外事务在线服务平台开发研究
FPGA软件开发过程中编码规范的作用
基于用户需求的政务微信发展策略探析
探析网络视频的产业化发展
论理解用户需求对于品牌设计的影响