APP下载

浅析软件工程需求分析与结构建设

2016-12-31任延璞

无线互联科技 2016年22期
关键词:软件用户分析

任延璞

(曲阜师范大学,山东 日照 276800)

浅析软件工程需求分析与结构建设

任延璞

(曲阜师范大学,山东 日照 276800)

软件工程飞速发展,应用于多个不同领域有着各式各样的开发标准,在软件结构建设方面同样存在一定差异。文章通过阐述软件工程需求分析含义,分析软件工程中需求分析的重要性、软件工程需求分析存在的问题,对软件工程需求分析及结构建设展开探讨,旨在为促进软件工程需求分析与结构建设的有序开展提供一些思路。

软件工程;需求分析;结构建设

为了对多个不同领域需求予以满足,软件工程在诸多领域得到不断推广,且收获了十分可观的效果。然而,在各个领域中,软件的设计与结构建设存在一定的不同。如何在各个领域中,促进软件工程应用效果的有效发挥,并提高当前领域的生产效率,是现阶段软件开发面临的难题。对于软件工程开发来说,需求分析阶段是其中极为重要的一环。需求分析时全面软件工程的设计样本,具备重要的指引方向意义。同时,对于软件结构来说,也存在一定的影响。由此可见,对软件工程需求分析与结构建设开展研究,有着十分重要的现实意义。

1 软件工程需求分析含义

软件工程需求分析以了解用户需求为第一宗旨。针对软件功能、特点与用户需求实现统一,对软件开发过程中所需承担的风险及所需付出的成本开展科学评估,进而产生一个系统完整的开发项目。软件工程需求分析是一个极为繁琐的过程,与此过程,应当始终以用户为中心,分析人员及相关部门管理人员应对用户需求进行归类、整理,为紧接着的软件设计奠定良好基础,为更明确掌握用户需求提供便利,并结合此部分需求开展软件设计,最大限度地为用户提供一个最佳的设计方案。一个软件工程项目的开发基本上可划分为5个阶段,即需求分析阶段、设计阶段、编码阶段、测试阶段及运行维护阶段。其中,需求分析是软件开发的第一步,是完成软件开发的先决基础。需求分析完毕后,应当将分析内容转化为文档形式,当前较为常用的文档形式有SRS文档、DRM文档,该两种文档形式有助于软件工程师清除掌握用户的一系列需求,促进提高工作效率[1]。

2 软件工程中需求分析的重要性

2.1 软件定义阶段中的重要性

软件项目开发过程要经过一系列阶段,包括需求分析阶段、设计阶段、编码阶段及测试阶段等,对于需求分析而言,可谓是贯穿于全面软件开发过程,且需求分析直接关系着软件开发开展情况。软件定义阶段中,需求分析、可行性研究是极为关键的一环。需求分析首要工作即为软件项目工程师与用户相互经由开展有效的沟通,进一步认识用户期望软件达成的功能及尽可能优化软件使用体验性,强化软件易用性[2]。唯有软件项目工程师对用户需求形成明确认识,方可为紧接着开展的可行性研究分析提供有力依据,倘若需求分析开展不完善,便会使得可行性研究不当,还可能造成项目预算偏差,导致软件预算成本与实际成本相差过大,对企业收益带来负面影响。要知道,收益影响还仅仅是负面影响的一部分,倘若需求分析缺失,起初人为可能达成的功能,终究在开发实践中变得难以实现,由此便会形成软件项目纠纷,从而对企业发展带来不利影响。因此,软件需求分析在软件报价、防范软件研发失败等方面均有着十分重要的作用,并且还是软件定义阶段的工作核心。

2.2 软件设计阶段中的重要性

软件需求是指用户对目标软件存在的各式各样期望,包括软件设计、软件功能及软件性能等。软件项目工程师会依据用户需求,通过对相关因素展开全面透彻分析,并构建对应的功能模型,主要工作内容具体如下:(1)建立数据字典,数据字典指的是系统对软件设计阶段中全面数据项目及结构展开定义,以使开发人员在编码阶段基于一致数据定义下进行开发,软件需求阶段即为对软件开发阶段中数据开展全面统一定义。(2)结合用户需求对软件系统上下文示意图开展绘制,此类示意图一方面对用户真实需求予以呈现,一方面为开发人员在软件设计、编码编写阶段提供了初始的模型设计,进一步为软件开发工程中编写合适代码创造了便利,有效提升了工作效率。自以上软件需求分析两方面工作内容可知,软件需求对于软件设计不可或缺,基于软件需求开展软件具体设计,剩余工作仅需开发人员编写相关代码,便可开发出满足用户需求的软件产品,可有效杜绝软件需求模糊而反复开展代码变更、数据定义变更及结构变更等问题,提高软件开发效率。

2.3 软件测试阶段中的重要性

高质量的软件需求分析有着系统性、明确性及一致性的特征,此外还有着可测试性、可修改、可跟踪等特征,其中可测试性特征在软件测试阶段中发挥着十分重要的作用。软件可测试性是指需求分析作为一项测试计划的输入、参考,测试阶段每一项具体工作均是以用户需求为中心来开展的,不管是测试软件的稳定性,还是测试软件的各项功能,均应当以用户需求为首要前提。由此倘若软件需求缺乏系统性、明确性,前后存在出入,则软件开发完毕进入测试阶段,便会出现一系列问题,这势必会加大软件开发成本,进而使得软件开发难以有序进行。系统明确的软件需求分析可为软件测试提供有效指引,为测试工作创造便利,提高测试工作效率,进而促进软件开发有序进行。

3 软件工程需求分析存在的问题

(1)软件工程需求分析首要问题即为开发方和使用方对软件工程需求分析的重视度不足,在软件开发阶段存在一定片面性、急于求成的问题,造成软件开发无法贴近用户实际需求,甚至在于某些软件都要开发完毕了,用户才提出相关需求,使得软件工程质量无法得到有效保证,软件工程工期不得不延长。

(2)在软件工程需求分析过程中,用户参与度不足,针对需求分析的搜集、编写、管理等工作内容,通常由软件工程师独自完成,造成软件工程需求分析产生一定的与现实实际不相符,导致开发企业开发的软件产品丧失实际应用价值,很难符合用户需求。

(3)开发人员与用户在软件开发前对全面需求分析重要性缺乏明确认识,相互间沟通互动不到位,造成软件开发过程中频频出现问题,对软件开发造成负面影响。

(4)软件工程需求分析对用户需求呈现缺乏系统性、准确性,再加上软件开发期间用户需求不断改变,一定程度上加大了软件工程需求分析的难度。

所以,在需求分析实践中,应当对两者开展有效结合,一方面保证需求调查的准确性,一方面提高需求调查的效率。与此同时,还可引入表格调查、回忆座谈等手段,以改善用户需求调查的准确性,以为用户需求分析提供可靠的数据支持。此外,应当对软件工程后期需求分析进行完善,强化用户对软件工程要求的有效认识,包括对软件工程的信息处理特征、应用环境等,与用户展开系统、全面的沟通,从而强化软件工程需求分析的系统性、准确性,促进软件工程开发有序进行[3]。

3 软件工程需求分析—以打车软件应用为例

如今,打车软件已经诞生了10多种产品,竞争日趋白热化,已然发展成一个充分竞争市场,在国内最大的两家打车软件公司滴滴打车、快的打车宣布合并后,更是实现了一系列层面的快速升级,诸如现金补贴、软件使用及技术等,切实满足了出租车司机和乘客在功能、心理上的使用需求。

3.1 打车软件的使用体验

现阶段市面上的打车软件,在使用上存在极大的雷同性,通过对其进行安装使用可知,大部分打车软件均毫无例外地定位于有打车需求的智能手机用户及出租车司机,对司机搭载率低、乘客打车不易的问题进行了一并解决,在使用期间不需要人工服务,可直接有效准确定位手机,一些打车软件还配备了手机支付、信用支付等功能。打车软件的使用体验,具体而言:打开打车软件,选择你所需的出行方式,快车、出租车或者专车等,再输入你要去哪儿,然后可发出订单,操作完成后,手机会出现等待提示,大部分打车软件均会显示订单发出时间并不断递增,倘若没有司机接单,订单发出时间过长便会给出是否继续等待提示,抑或加价重新发出订单。借助GPRS定位,司机前往乘客上车点后,打车软件会依据GPRS系统提示判断乘客上车与否,一般情况下司机会对乘客是否发出打车订单进行口头确认,确认后乘客上车,各类打车软件会提供不同的手机支付服务。结合相关调查研究可知,使用打车软件可显著降低乘客的时间成本,特别是对于处在相对偏僻地方或某些时间段的乘客更是如此,与此同时有效减少了出租车空驶情况,在打车软件使用密集前提下,出租车司机收入得到了显著提高。再加上打车软件、移动支付的广泛推广,打车软件所带来的收效势必会进一步明显。

3.2 打车软件工程需求分析

需求分析指的是了解用户需求,针对软件功能、特点与用户需求实现统一,对软件风险进行评定、对项目代价进行估算,进而生成开发计划的一个复杂过程。在需求分析过程中,应当始终紧紧围绕用户的需求。对于打车软件而言,自重复购买率、产品标准化水平入手,可得知相较于其他交易打车软件具备其特有的优势,不过它同样存在一定不足,就好比打车软件交易单价低、可替代性高等,均属于打车软件所需面对的风险及难点。一系列打车软件由于其开发人员、使用偏好以及技术水平等各不相同,在使用方面仍旧存在部分特征可供设计同类软件时参考;此外一些软件会在发出订单需求时,特别提出已推送至附近出租车司机的数量,且数量会按实际情况递增递减,该种设计显然较为贴近乘客微妙的心理转变,可一定程度吸引乘客在发出订单后对软件界面进行不间断关注,并时刻查看订单情况。通过对多数打车软件特征开展系统分析可发现,现阶段打车软件每项功能的实现均很好地开展了用户体验分析,为了提升用户软件体验度,应当开展好下述几点工作:(1)软件核心功能准确满足用户需求;(2)软件操作便捷,具备一定趣味性;(3)软件使用价格适中,可帮助用户省钱、赚钱。具体而言:第一点软件核心功能准确满足用户需求,要开展好此项工作难度十分大,这首先要对用户需求形成充分明确的认识,因此每个产品经理开始应当为一个人,一个可切实提炼出用户内心真实需求的人才,方可结合各式各样微小的需求,予以逐一满足;第二点软件操作便捷,具备一定趣味性,该项工作并非单纯由美工开展完成,该设计环节所需考虑的内容有软件界面的全面规划,即把开始提炼的需求满足功能模块化,然后把每一功能模块开展有机组合,对每一模块相互层次、关系进行有效把握,这不但是用户体验的重中之重,还是达成软件易操作性的关键所在,最后才是开展诸如图片、文字、色调等在内的视觉风格全面美化工作;第三点软件使用价格适中,可帮助用户省钱、赚钱,对于当前互联网领域而言,免费已然转变成一种“约定俗成”,打车软件一方面是可供用户免费下载使用的,一方面在用户使用期间还会额外赠送给用户一定的现金奖励,这也是之所以打车软件能短时间内在消费市场形成巨大影响的一个关键因素,这在软件推广中同样得到了开发者们的广泛推崇[4]。

4 软件工程需求分析及结构建设

整个软件工程设计在时代发展新形势下,要与时俱进,大力进行改革创新,引入先进科技、成功发展经验逐步强化软件工程需求分析及结构建设,如何进一步促进软件工程需求分析与结构建设有序开展可以从以下相关内容展开:

4.1 软件工程的需求分析

对于软件工程来说,需求分析通常属于软件工程的初始阶段。然而,需求分析却主要影响着软件工程开展的全面环节。特别是对相关行业开展软件需求分析,更是决定着软件工程全面效果及行业应用水平。鉴于此,开展好软件需求分析工作有着十分重要的现实意义。

(1)软件工程需求分析必须结合行业特性开展,基于一定的行业针对性,方可切实发挥软件的有效作用。软件工程需求分析具备针对性,指的是针对各个行业领域有着不同的特征,要求自行业领域特性出发开展软件设计与建设。就好比工业领域,通常对软件有着达成智能化、自动化的应用要求,如此对应硬件生产环节,软件设计便应当结合已有硬件标准开展设计,切忌缺乏目的性地开展软件设计,最终造成软件、硬件相互不匹配[5]。

(2)软件工程需求分析务必要清晰明了,要具备具体的逻辑功能、逻辑基础。在开展软件设计期间,倘若存在不够明确的设计需求,会使得软件在调试、使用过程中出现各式各样的问题,从而导致用户软件体验度下降。一般情况下,用户缺乏对软件设计原理的明确认识,一旦软件设计完毕后,察觉并非自身期望的软件功能,便会造成不必要的意见冲突。所以,软件工程需求分析必须清晰明确,要以用户真实具体需求为中心。

(3)软件需求分析是促进软件工程有序开展的重要前提,倘若软件需求分析存在不足,必然会对全面软件工程造成极大不利影响,一方面会损耗大量的人力、物力,一方面会致使软件工程无法定时完工。鉴于此,要对软件工程需求予以充分明确,同时可将用户需要编程逻辑上的呈现。软件工程需求分析应当符合实际,可与已存在的硬件达成匹配,方可进一步切实投放生产、应用。如若片面地强调软件层面的突破,而与相关硬件匹配不足,则会导致极大的损失。硬件发展通常无法紧随软件脚步,所以要尽可能构筑软件与硬件相互的协调关系,确保软件需求分析实际性,方可切实达成对软件工程的开发、建设。

4.2 软件工程结构建设

通过软件工程需求分析后,应当对软件工程结构开展建设。软件结构经由选取逻辑语言开展建设,自软件需求分析出发,绘制与之对应的示意图,结合示意图及选取的行业软件,对编译语言进行选取。编译语言选取完毕,便要对软件大致结构及不同环节运行开展结构建设。通常而言,软件工程结构建设应当秉承优化原则,也就是软件语言使用应尽可能简单扼要,切忌出现冗余的软件结构。由于软件性能很大程度受软件结构影响,倘若软件结构太过冗余,便会使得软件运行不够迅速,时常会出现BUG,进而对用户体验度造成不利影响。鉴于此,应当自软件需求分析出发,开展最大程度优化的软件结构建设。其中软件逻辑示意图为关键所在,逻辑示意图是为了使软件结构清晰明了,确保软件各个阶段均可清晰呈现。就好比在某一阶段,选取何种逻辑语句,均可十分明确。软件开发完毕后,在开展软件调试、编译期间,清晰明了的逻辑结构可为软件后期维护带来极大便利,确保BUG出现的缩减,尽可能提升用户体验度[6]。

5 结语

总而言之,通过文章研究不难发现,准确地认识需求分析的内涵、掌握需求分析的过程以及选择合适的需求分析方法是一个软件项目走向成功的关键。唯有通过对用户需求开展有效分析,方可更好地对软件的性能与功能特征予以呈现。鉴于此,相关人员务必要清楚认识软件工程中需求分析内涵及重要性,全面分析软件工程需求分析存在的问题,不断钻研、总结经验,积极促进软件工程需求分析与结构建设有序开展。

[1]张建成,田青,李刚,等.软件工程需求分析方法探讨[J].信息技术与信息化,2007(6):74-77.

[2]陈丹琪,段丽,孙旭光,等.软件工程需求分析教学设计中的建构主义应用[J].黑龙江科技信息,2016(13):162-163.

[3]靳绪果.浅谈软件工程之软件需求分析[J].课程教育研究:学法教法研究,2015(6):181-182.

[4]苌黄林,李佳,李兰.关于软件工程的需求分析重要价值探析[J].计算机光盘软件与应用,2014(16):68.

[5]包义保,殷丽华,方滨兴,等.动态安全策略逻辑语言及安全属性验证问题的研究[J].计算机研究与发展,2010(4):932-941.

[6]王明章.从软件工程需求角度看打车软件应用对城市物流应用的启示[J].价值工程,2014(18):22-23.

Analysis of software engineering requirement analysis and structure construction

Ren Yanpu
(Qufu Normal University, Rizhao 276800, China)

Software engineering has got a rapid development, which is applied to a variety of different areas, there are some differences in the construction of software structure. By explaining the meaning of software engineering requirement analysis, this paper analyzes the importance of requirement analysis in software engineering, existing problems of software engineering requirement analysis, and discusses the software engineering requirement analysis and structure construction, aiming at providing some ideas for promoting the demand analysis and orderly carried out software engineering structure construction.

software engineering; requirement analysis; structure construction

任延璞(1993— ),男,山东枣庄,本科。

猜你喜欢

软件用户分析
禅宗软件
隐蔽失效适航要求符合性验证分析
软件对对碰
电力系统不平衡分析
关注用户
电力系统及其自动化发展趋势分析
关注用户
关注用户
如何获取一亿海外用户
谈软件的破解与保护