资源预览内容
第1页 / 共20页
第2页 / 共20页
第3页 / 共20页
第4页 / 共20页
第5页 / 共20页
第6页 / 共20页
第7页 / 共20页
第8页 / 共20页
第9页 / 共20页
第10页 / 共20页
亲,该文档总共20页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
毕业设计说明书- 1 -1学生毕业设计(论文)报告系 别 专 业 班 级 姓 名 学 号 设计(论文)题目浅谈需求分析在软件开发过程中的重要性 指导教师 起迄日期 毕业设计说明书- 2 -2毕业设计诚信承诺书毕业设计诚信承诺书本人慎重承诺和声明: 我承诺在毕业设计过程中严格遵守学校有关规定,在指导教师的安排与指 导下完成所规定的毕业设计工作,绝不弄虚作假,不请别人代做毕业设计或抄 袭别人的成果。所撰写的毕业论文或毕业设计是在指导老师的指导下自主完成, 文中所有引文或引用数据、图表均注明来源,本人愿意为由此引起的后果承担 责任。学生签名: 日期: 年 月 日毕业设计知识产权权属声明毕业设计知识产权权属声明本人在老师指导下所完成的论文及设计成果、知识产权归属学校。学校享 有以任何方式发表、复制、公开阅览、借阅以及申请专利等权利。学生签名: 日期: 年 月 日 指导教师签名: 日期: 年 月 日毕业设计说明书- 3 -3浅谈需求分析在软件开发过程中的重要性浅谈需求分析在软件开发过程中的重要性摘 要软件需求分析是软件工程过程中计划阶段的一个决定性步骤,在这一步将把含糊的软件概念转变成具体的规格说明,从而奠定了软件开发的基础。本文通过对需求的定义、需求的类型、需求分析的任务、需求分析的方法、需求的变更以及应用实例等几个方面的介绍,对于在软件开发中做好需求分析有一定的借鉴作用。 关关 键键 字字:软件,开发,需求分析 目录第 1 章 绪论.4 1.1引言.4 1.2需求的定义.4第 2 章 软件需求分析的特点.5 2.1用户与开发人员很难进行交流.5 2.2 用户的需求是动态变化的5 2.3 系统变更的代价呈非线性增长.5 第 3 章 软件需求分析过程.6 3.1什么是软件需求.6 3.2需求过程中的角色.6 3.3 需求过程的迭代7 3.4 需求来源.8 3.5 需求获取方法.9 3.6 软件需求表达.9 3.7 需求评审.10 3.7.1 需求评审概述.10 3.7.2 需求评审过程.10第 4 章 合格需求的标准.13结 论.13参 考 文 献.14毕业设计说明书- 4 -4第一章第一章 绪论绪论1.11.1引言引言软件项目的开发主要分为五个阶段:需求分析阶段、设计阶段、编码阶段、测试阶段和维护阶段,需求调研和分析是软件开发的第一个阶段。完善的软件需求说明是软件开发项目得以成功的基础。不管设计如何精心或者编码如何巧妙,如果对软件需求不加以明确规定,将使用户感到失望,并给软件开发者带来严重后果。据权威部门统计,目前软件的成功率约为 25%,75%的软件是失败的。在这 75%的失败中,约有 50%以上的软件是由于需求的原因造成的。另有资料表明,软件开发项目中返工开销几乎占开发总费用的一半,而导致返工的主要原因是需求分析错误或不明确,从而引发项目开发中的一系列更改。成功的软件需求分析不仅能提高软件的成功率,而且能节省大量的资源,因此需求分析是软件开发的关键阶段。1.21.2需求的定义需求的定义软件产业存在的一个普遍问题就是缺乏统一定义的名词术语来描述我们的工作。客户所定义的“需求”对开发者似乎是一个较高层次的产品概念,而开发人员所说的“需求”对用户来说又像是详细设计了。实际上,软件需求包含着多个层次,不同层次的需求从不同角度与不同程度反映着细节问题。 IEEE 软件工程标准词汇表(1997 年)将需求定义为: 1) 用户解决问题或达到目标所需的条件或能力。 2) 系统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条件或能力。 3) 一种反映上面 1)或 2)所描述的条件或能力的文档说明。 IEEE 的定义包括从用户角度(系统的外部行为) ,以及从开发者角度(一些内部特性)来阐述需求,其关键的问题是一定要编写需求文档。 另外,还有其他几种关于“需求”的定义: 需求是用户所需要的并能触发一个程序或系统开发工作的说明; 需求是从系统外部能发现系统所具有的满足于用户的特点、功能及属性等;毕业设计说明书- 5 -5需求是指明必须实现什么的规格说明。它描述了系统的行为、特性或属性,是在开发过程中对系统的约束。 从以上的定义中,我们依然无法得到有关“需求”的清晰概念,真正的“需求”实际上存在人们的脑海中,任何文档形式的需求(例如:需求规格说明)仅是一个模型或一种叙述,但是编写出高质量的需求规格说明书在需求分析阶段还是关键。 需求分析奠定了软件工程和项目管理的基础。我们在建造软件系统这座大厦的时候,如果需求分析的基础不够坚实和牢固,那么往往会导致软件系统问题百出,甚至被马上丢弃。在建造软件系统的过程中,如果我们经常习惯地沿用一些不规范的方法,其后果便是产生一条鸿沟开发者开发的与用户所想得到的软件存在着巨大的“期望差异” 。 因此“需求”这个名词的定义不仅仅是从用户角度对系统外部行为的描述,以及从开发人员角度对系统内部特性的描述,其关键的一点是“需求”必须文档化。第二章第二章 软件需求分析的特点软件需求分析的特点2.12.1 用户与开发人员很难进行交流用户与开发人员很难进行交流在软件生命周期中,其他 4 个阶段都是面向软件技术方面的,只有本阶段是面向用户的。需求分析是对用户的业务活动进行分析,以便明确在用户的业务环境中软件系统应该“做什么”。但是在开始时,开发人员和用户双方都不能准确地提出系统要“做什么”,因为软件开发人员不是用户问题领域的专家,不熟悉用户的业务活动和业务环境,又不可能在短期内搞清楚;而用户不熟悉计算机应用的有关问题。由于双方互相不了解对方的工作,又缺乏共同语言,所以在交流时存在着隔阂。2.22.2 用户的需求是动态变化的用户的需求是动态变化的对于一个大型而复杂的软件系统,用户很难精确、完整地提出它的功能和性能要求。一开始只能提出一个大概、模糊的功能,只有经过长时间的反复认识才逐步明确。有时进入到设计、编程阶段才能明确,更有甚者,毕业设计说明书- 6 -6到开发后期还在提新的要求。这无疑给软件开发带来困难。2.32.3 系统变更的代价呈非线性增长系统变更的代价呈非线性增长需求分析是软件开发的基础。假定在该阶段发现一个错误,解决它需要用一个小时的时间,到设计、编程、测试和维护阶段解决,则要花费 2.5、5、25甚至 100 倍的时间。第三章第三章 软件需求分析过程软件需求分析过程3.13.1 什么是软件需求什么是软件需求从根本上讲,软件需求就是为了解决现实世界中的特定问题,软件必须展现的属性。软件需求包括两部分:功能性需求和非功能性需求。虽然功能性需求是对软件系统的一项基本需求,但却并不是唯一的需求。除功能性需求外,软件质量属性的特性,称为系统的非功能性需求。这些特性包括:系统的易用性、执行速度、可靠性,处理异常情况的能力与方式等。在决定系统的成功或失败的因素中,满足非功能性需求往往比满足功能性需求更为重要。软件需求的属性包括可验证性、优先级、唯一性和定量化。(1)可验证性可验证性是软件需求的基本属性。软件需求必须是可验证的,否则软件的评审和测试就没有相应的依据。(2)优先性软件需求具有优先级,应该能够在有限的资源(资金、人员、技术)情况下进行取舍。(3)唯一性软件需求应唯一地标识出来,以便在软件配置管理和整个软件生命周期中进行管理。(4)定量化软件需求应尽可能地表述清楚,没有二义性,进行适当的量化,应避免含糊、无法测试、无法验证的需求出现。软件质量的可靠性和用户界面的友好性毕业设计说明书- 7 -7等非功能性需求的量化尤为重要。例如,系统应支持 2000 个并发用户,系统回应时间应低于 10 秒,这就是需求的量化。3.23.2 需求过程中的角色需求过程中的角色需求过程涉及各种角色的人员。需求人员应协调软件开发人员和各领域内的专家共同完成需求过程。软件的涉众(牵涉到的角色)随项目的不同而不同,但至少包括用户(操作人员)和客户。典型的需求过程中的角色如表 3-2 所示。表 3-2 需求过程中的角色角色名称描 述用户指直接操作软件的人员,他们通常具有不同的业务角色,具有不同的业务需求客户指软件开发的委托方或软件市场的目标客户市场分析人员对于没有具体客户的通用软件,市场分析人员将提供市场需要,并对实际客户进行模拟系统分析师对于类似的项目,系统分析师将对以前系统进行评估,判断是否存在重用的可能对于涉众的各种需求通常很难完全满足,系统分析师应根据预算、技术等条件进行取舍。3.33.3 需求过程的迭代需求过程的迭代软件需求分析是一个不断认识和逐步细化的过程。该过程将软件计划阶段所确定的软件范围(工作范围)逐步细化到可详细定义的程度,并分析出各种不
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号