基于软件工程需求和学习的分析探究 下载本文

内容发布更新时间 : 2024/5/9 6:35:02星期一 下面是文章的全部内容请认真阅读。

龙源期刊网 http://www.qikan.com.cn

基于软件工程需求和学习的分析探究

作者:王志鹏 岳东 安玉芬 来源:《商情》2016年第19期

摘要:我国的信息化已经走过了20多年的历程,但许多软件开发公司仍不得不在收集、编写和管理产品需求中疲于奔命。而缺乏用户参与、不完整的需求及不断变更需求,是导致信息技术项目不能按进度安排和资金预算完成全部功能的主要原因。 关键词:用户 软件开发 软件工程 一、软件工程中的需求分析概述

一个软件项目的开发主要分为五个阶段:需求分析阶段、设计阶段、编码阶段、测试阶段和维护阶段。而需求分析阶段所得到的结果是软件项目开发中其他四个阶段的必备条件。从以往的经验来看,需求分析中的一个稍稍的偏差,就可能导致整个项目无法达到预期的效果。需求分析是指理解用户需求,就软件功能与客户达成一致,估计软件风险和评估项目代价,最终形成开发计划的一个复杂过程。需求分析是软件工程中的一个重要环节,是关乎软件项目开发成败的重要因素。现在的软件项目中返工开销几乎占了总开发的一半,而导致返工的主要原因是需求分析不明确,从而引发项目开发中的一系列更改。这些更改可能导致浪费大量资源、软件项目无法按时完成等严重问题。所以,需求分析是软件设计和实现的基础,是软件项目迈向成功的重中之重。

二、软件工程中的需求工作流程

1.创建数据字典。数据字典是对系统用到的所有数据项和结构的定义,以确保开发人员使用统一的数据定义。在需求阶段,数据字典至少应定义客户数据项以确保客户与开发小组使用一致的定义和术语。分析和设计工具通常包括数据字典组件。

2.确定需求的优先级别。应用分析方法来确定使用实例、产品特性或单项需求实现的优先级别。以优先级为基础确定产品版本将包括哪些特性或哪类需求。当允许需求变更时,在特定的版本中加入每一项变更,并在那个版本计划中做出需要的变更。

3.分析需求可行性。在允许的成本、性能要求下,分析每项需求实施的可行性,明确与每项需求实现相联系的风险,包括与其它需求的冲突,对外界因素的依赖和技术障碍。 4.使用质量功能调配。质量功能调配是一种高级系统技术,它将产品特性、属性与对用户价值联系起来。该技术提供了一种分析方法以明确哪些是客户最为关注的特性。质量功能调配将需求分为三类:期望需求,即客户或许并未提及,但如若缺少会让他们感到不满意;普通需求和兴奋需求,即实现了会给客户带去惊喜,但若未实现也不会受到责备。

龙源期刊网 http://www.qikan.com.cn

5.衡量需求稳定性。记录基本需求的数量和每周或每月的变更数量(添加、修改、删除)。过多的需求变更“是一个报警信号”意味着问题并未真正弄清楚,项目范围并未很好的确定下来或是政策变化较大。

6.绘制系统上下文示意图。这种示意图是用于定义系统与系统外部实体问的界限和接口的简单模型。同时它也明确了通过接口的信息流和物质流。

7.作为功能需求的补充,软件需求规格说明还应包括非功能需求,它描述了系统展现给用户的行为和执行的操作等。它包括产品必须遵从的标准、规范和合约;外部界面的具体细节;性能要求;设计或实现的约束条件及质量属性。 三、现阶段软件工程课程设计中需求分析现状

学生重代码,轻需求,急于完成可见的执行软件,大大压缩了需求分析时间;学生缺乏对所选课程设计题目相关的业务知识的了解,需求分析只是对需求的拼贴,不完善,不系统;缺乏实际项目经验,对需求分析的认知只是停留在理论阶段,不能在实践上给学生以高水平的指导。

四、解决方案

针对以上问题,文中给出解决方案如下:一方面转变学生对需求分析的认知误区,强调需求分析的重要性,通过一些案例及调研数据让学生了解忽视需求分析带来的严重后果,让学生重视需求。让学生了解软件项目开发工作和项目管理工作都与需求密不可分,如软件项目成本估算、进度计划、项目跟踪控制、验证、确认等工作都以需求为基础;软件设计、编码、测试最终的目的都是为了提交一个满足用户要求的可执行软件,用户的要求主要就体现在需求分析的制品上。另一方面增强需求分析的趣味性,让学生主动参与需求分析,如选题上给学生充分的自主选择权利,或者让两个同学选相同题目(分别做不同模块),同组间进行需求分析竞赛等。在软件开发过程中让学生记录并总结,自身项目中存在的那些需求问题,对项目产生了怎样的影响,让学生在实践中体验、总结需求的重要性,加深认识。题目选择范围上给学生更大空间,可从教师给定的题目中选取,也可学生自拟题目。因为课程设计的时间有限,需求又是一项要求精细、准确、全面的工作,所以在课设开始前至少一个月,让学生预先选好题目,进行需求调研、分析工作。需求分析开始前,由教师预先规定应分析什么,如:软件功能需求、性能需求、可靠性和可用性需求、接口需求、系统约束等;采用什么样的分析方法,建立什么模型,如:功能模型、数据模型、行为模型等;及最终要形成软件需求规格说明,该文档模板由教师提供。任何软件需求都离不开其涉及到的业务领域,因此也要要求学生对业务领域相关的标准模型进行分析和研究,对业界的一些标准和最佳实践进行熟悉,对业务领域进行大量调研。这样才能让才能分析出真正的需求,否则需求就会脱离实际。不但要有扎实的理论知识,还应具有较强的实践经验,指导学生完成由理论知识向实践技能的转换。所以在选择课程设计教师的一个重要条件就是教师要有软件项目开发经验及管理经验[5],熟悉软件开发的各个环

龙源期刊网 http://www.qikan.com.cn

节。若教师本身不具备这样的能力,也可以通过加强教师培训,让教师到企业中实习的方式来提高教师实践指导水平,通过考核的教师才可以指导课程设计。 五、结语

软件需求分析中的关键就是展开分析、发现问题、征服问题。所有的一切都是为了能够将软件中的错误和漏洞在需求分析和需求工程阶段发现并解决,这样才能使软件开发的成本收益比达到最大,使得软件在其生命周期中的维护费用降到最低,这也是我进行软件需求分析方法研究的目的,希望可以通过上述的软件需求分析的方法研究为以后软件的开发打下一个良好的基础。 参考文献:

[1]PressmaI1.软件工程一实践者研究方法(第4版).北京:机械工业出版社,1999. [2]张龙祥.UML与系统分析设计.北京:人民邮电出版社,2007. [3]孙家广.软件工程——理论、方法与实践.高等教育出版社.