精品课堂《软件需求分析》课件_第1页
精品课堂《软件需求分析》课件_第2页
精品课堂《软件需求分析》课件_第3页
精品课堂《软件需求分析》课件_第4页
精品课堂《软件需求分析》课件_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一章需求工程基础,金陵科技学院软件工程学院,制作人:李尤丰cnlyf,1.1什么是软件?什么是软件工程?1.2什么是需求?什么是需求工程?1.3什么是软件需求分析?1.4社会对需求工程师的知识和技能要求。,金陵科技学院软件工程学院,1.1什么是软件?什么是软件工程?,软件是一系列按照特定顺序组织的计算机数据和指令的集合。软件可以说是程序加文档的集合。软件=数据结构+算法+文档,金陵科技学院软件工程学院,软件的分类:1.系统软件2.应用软件3.中间件,操作系统,支撑软件,管理计算机硬件与软件资源的程序,是计算机系统的内核与基石。管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备,操作网络与管理文件系统等基本事务,是用户和计算机的接口。,支撑系统中各种软件的开发与为维护的软件,又称为软件开发环境,主要包括环境数据库、各种接口软件和工具组。如微软公司的Studio.NET。,为了某种特定的用途而被开发的软件,为了满足用户不同领域、不同问题的应用需求而提供的。可以是一个由众多独立程序组成的庞大的软件系统,例如DBMS,Office等。,中间件是一类连接软件组件和应用的计算机软件,包括一组服务。它位于客户机/服务器的操作系统之上,管理计算机资源和网络通讯。通过中间件,应用程序可以工作多平台或操作环境中。比如:tomcat,jboss,weblogic,websphere等软件。,金陵科技学院软件工程学院,什么是软件工程?,IEEE关于软件工程的定义是:软件工程是:(1)将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件;(2)指在(1)中所述方法的研究。目前比较认可的一种定义是:软件工程是研究和应用如何以系统化、规范化、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。,金陵科技学院软件工程学院,软件工程的各个阶段,1.项目计划2.需求分析3.项目设计4.编码5.测试6.维护,传统需求处理认为:该阶段为需求处理过程。系统化的需求工程认为:软件工程前期的需求工作+软件工程的需求分析阶段=软件需求工程,金陵科技学院软件工程学院,软件危机?,软件危机是指落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。产生软件危机的其中一个原因:用户需求不明确在软件开发过程中,用户需求不明确问题主要体现在四个方面:在软件开发出来之前,用户自己也不清楚软件开发的具体需求;用户对软件开发需求的描述不精确,可能有遗漏、有二义性、甚至有错误;在软件开发过程中,用户还提出修改软件开发功能、界面、支撑环境等方面的要求;软件开发人员对用户需求的理解与用户本来愿望有差异。,金陵科技学院软件工程学院,为什么需要需求及分析?,小P刚加入一个项目组,项目经理安排他做需求分析,小P有点不乐意:“需求有什么好分析的啊?客户要什么就给什么呗,简直浪费我这个人才!”一天,客户打电话说:“我要一只羊”。小P一听,太简单了,写下了需求:“XX客户需要一只羊。”小P叫小Q去处理这件事。小Q觉得很简单,抓了一只羊就送过去了。结果客户的投诉第二天就来了,项目经理黑着脸训斥小P,小P觉得委屈:“我是按照客户的要求做的呀,怎么就错了呢?”亲爱的同学们,你知道小P为什么挨批了吗?,1.2什么是需求?什么是需求工程?,IEEE1990对需求的定义:(1)用户为了解决问题或达到某些目标所需要的条件或能力;(2)系统或系统部件为了满足合同、标准、规范或其他正式文档所规定的要求而需要具备的条件或能力;(3)对上述两种情况(1)或(2)中的一个条件或一种能力的一种文档化表述。,金陵科技学院软件工程学院,需求的分类,1.功能需求2.非功能需求,金陵科技学院软件工程学院,功能需求的三个层次,业务需求描述组织或客户的高层次目标,定义系统特性。通常来自于高层业务部门。业务需求从总体上描述了为什么要开发软件或系统(即Why),组织希望达到的目标。业务需求获取后形成的文档为项目前景和范围文档。这些文档描述了组织对将使用的软件系统所要达到的目标的预期期望。,用户需求主要指用户使用产品必须要完成什么任务,怎么完成需求,通常是在问题定义的基础上进行用户访谈、调查,对用户使用的场景进行整理,从而建立从用户角度的需求。用户需求必须能够体现软件系统将给用户带来的业务价值,或用户要求系统必须能完成的任务。用户需求主要描述了用户使用系统能够做什么事情(即What)。通过用户需求信息形成的文档为用例说明文档。,系统需求是用户对系统行为的期望,一系列的系统需求联系在一起,帮助用户完成任务,达成用户需求,进而满足业务需求。系统需求可以直接映射为系统行为,定义系统中需要实现的功能,描述开发人员需要实现什么。它描述的是开发人员如何设计具体的解决方案来实现这些需求(即How),是业务需求和用户需求最终实现的目标,其级别比用户需求高一个数量级。系统需求信息都记录在需求规格说明文档(SoftRequirmentsSpecification即SRS)中,,功能需求三个层次举例-发现问题,某餐厅老板找到伍杰公司,想要一个系统来解决现在他的烦恼:1每天不知道各种菜进货多少,无法控制。有时某种菜准备的多,顾客点的少,造成浪费;有时某种菜品没有,顾客却想点,造成供应短缺。能否利用现有信息,进行分析,能够正确安排菜品数量。2经常发生顾客抢位现象。顾客就餐时,都愿意选择最佳位置。就餐高峰,顾客间容易因为抢位导致矛盾,而影响餐厅生意。3有特色菜时,店内海报宣传和菜单宣传显得力度不够,帮助点菜业务员有时不熟悉菜品,会使顾客放弃点某道菜品,同时对餐厅服务不满意。4希望对顾客信息有一定记录,帮助选择出忠实客户,提供一定优惠。5就餐高峰时经常出现点菜下单排队现象,导致客户不满意。6目前提供的电话订餐经常发生顾客信息弄错、混乱,配送不及时等情况。7不知道店内哪些菜品受欢迎,受欢迎的菜品原因也不清楚,导致无法及时有效推出新菜品。,功能需求三个层次举例,1.业务需求(Why):YW1:实现订餐的有效管理高层次的解决方案SS1:在线下单、后台管理,实现统一有效管理。系统特性SF1:客户需要订餐时在线下单、选座。餐厅后台查看订单准备菜品。注意特色菜优先展示给客户。,金陵科技学院软件工程学院,2.用户需求(What)UR1:在需要订餐时,选择相关菜品及座位信息,填写顾客相关信息,提交订餐单,等待餐厅反馈信息,并根据反馈信息查看订餐及选座是否成功。补充说明PD1:订餐单的内容包括:订餐人,联系方式,订餐日期,用餐日期,菜品信息,总价,人数,座位信息,特殊说明,.订餐单的反馈内容包括:订餐人,餐厅信息,订餐日期,用餐日期,菜品信息,总价,人数,座位信息,特殊说明,订餐是否成功,.,功能需求三个层次举例,金陵科技学院软件工程学院,3.系统需求(How)SR1:(1)消费者可以在移动设备上随时查看餐馆所有的菜目、价格、数量等信息。(2)消费者可以在移动设备上(手机、平板)下单,预订座位,可以取消或修改订单。(3)餐馆业务人员可以实时查看并处理订单。(4)餐馆业务人员可以更新菜品信息,对系统用户数据进行管理等。,功能需求三个层次举例,金陵科技学院软件工程学院,系统需求How指什么?,指需求怎样实现?需求怎样实现是在设计阶段完成,所以是错误的。How指需求本身的流程。可以简单理解为系统功能(what)的实现流程。,X,非功能需求,1.性能需求用户在软件响应速度、精度、系统吞吐量,运行时资源消耗等属性要求。例如,Android点餐系统中涉及的精度要求:餐馆要求每笔订单交易误差不得超过1角,每天交易额的误差不得超过100元。时间特性的要求:(1)前台客户端要求登录时间不得超过0.5秒,选择菜品、座位后下单的响应时间不得超过1秒,其他的一些操作响应时间一般不得超过0.5秒。(2)后台服务器要求管理员操作保持流畅,用户下单后后台需要在5秒内看见用户的订单。,金陵科技学院软件工程学院,三种功能性需求中,猜猜哪个需求最重要?,是业务需求。如果业务需求错了,那么,需求也就完美地错误了。业务需求是需求的驱动力,是需求的价值所在。需求的最终目的就是解决客户的问题。,非功能需求,2.质量属性系统完成工作的质量,即系统需要在一个“好的程度”上实现功能需求,如软件的灵活性、高效性、可靠性、可维护性、健壮性、可用性等。(1)灵活性:产品在增加新功能时所需工作量的大小如:要求5年内价位在500元以上的Android手机都可以流畅运行Android点餐系统(2)可靠性:软件无故障执行一段时间的概率,如由于软件失效引起实验失败的概率应不超过5%。(3)健壮性:指的当系统或软件遇到非法输入、相关软件或硬件组成部分的缺陷或异常的操作情况下,能继续正确运行功能的程度。(4)易用性与可用性:用户理解软件时所花费最小化程度,软件在出现系统故障后保持运行的能力。如:Android点餐系统客户端要求符合大众操作习惯,与网上其他的Android系统App操作方式保持基本一致。系统维护期间应保证系统能正常工作。,金陵科技学院软件工程学院,非功能需求,3.对外接口系统和环境中其他系统之间需要建立的接口,包括硬件接口、软件接口和数据库接口等。对系统之间的软硬件接口需要说明以下内容:接口数据格式接口命令格式接口标准接口输入输出接口用途,金陵科技学院软件工程学院,非功能需求,3.对外接口系统和环境中其他系统之间需要建立的接口,包括硬件接口、软件接口和数据库接口等。例如:Android点餐系统中要求手机系统版本Android2.2及以上版本,手机数据线接口,电脑硬件配置,电脑系统软件要求等。,金陵科技学院软件工程学院,例如:Android订餐系统中涉及的非功能需求,金陵科技学院软件工程学院,非功能需求,4.约束构建系统时需要遵循的约束,如编程语言和硬件设施等。约束不受系统功能需求影响,却会给系统开发带来很多限制,会在总体程度上限制开发人员设计、开、测试时的选择范围。,金陵科技学院软件工程学院,非功能需求,4.约束例如:Android点餐系统对移动设备和服务器的软硬件要求:1.硬件要求前台客户端运行在环境Android2.2及以上版本的移动设备上。服务器可以运行在常规的桌面机上,需要配置JDK、tomact服务器、MySQL数据库。2.系统的软件要求(1)客户端操作系统:Android2.2以上系统(2)服务器端操作系统:Windows2000Server或更新版本。数据库系统:MySQLServer5.4或更新版本。可利用的信息和资源:互联网信息,餐馆,3.条件、假定和约束(1)5年内的Android手机都可以使用此点餐系统。(2)所建议的系统的运行寿命的最小值:3年(3)后台服务器只提供硬件服务器,并且预算为1万元,服务器的软件没有预算。(4)点餐系统可以通过互联网连接系统完成点餐。(5)开发期限3个月,过期没有交付赔偿违约金1万元。,金陵科技学院软件工程学院,现在您能大致阐述客户“我要一只羊”的功能和非功能需求么?,什么是需求工程?,需求工程是指应用已证实有效的技术、方法进行需求分析,确定客户需求,帮助分析人员理解问题并定义目标系统的所有外部特征的一门学科。它通过合适的工具和记号系统地描述待开发系统及其行为特征和相关约束,形成需求文档,并对用户不断变化的需求演进给予支持。软件需求工程是一门分析并记录软件需求的学科,它把系统需求分解成一些主要的子系统和任务,把这些子系统或任务分配给软件,并通过一系列重复的分析、设计、比较研究、原型开发过程把这些系统需求转换成软件的需求描述和一些性能参数。,金陵科技学院软件工程学院,需求工程过程:(后续章节将详细介绍),过程是一系列活动集合,通过这些活动的执行,可以完成一项任务或者达到一个目标。需求工程过程就是一系列与需求开发、管理相关的活动。包括:需求获取,需求分析,形成需求规格说明文档,需求验证,需求管理,金陵科技学院软件工程学院,需求工程过程:(后续章节将详细介绍),1.需求获取需求获取从涉众、文档资料或者环境中获取需求的过程,包括收集背景资料,定义项目前景和范围,选择信息来源,选择获取方法或技巧,记录获取结果。,金陵科技学院软件工程学院,需求工程过程:(后续章节将详细介绍),2.需求分析需求分析是指建立一个新的或改变一个现存的系统时描写新系统的目的、范围、定义和功能时所要做的所有工作。需求分析是软件工程中一个关键过程。在这个过程中要分析背景资料、确定系统范围、细化需求、确定优先级,协商需求,确定需求。确定需求后分析和寻求新系统的解决方法,需求分析阶段的任务是确定软件系统功能。,金陵科技学院软件工程学院,需求工程过程:(后续章节将详细介绍),3.需求规格说明需求规格说明书是指将获取的需求需要编写成文档,方面在用户、客户或开发人员之间交流需求信息,是整个开发工作的基础。其内容包括硬件、功能、性能、输入输出、接口界面、警示信息、保密安全、数据与数据库、文档和法规的要求。,金陵科技学院软件工程学院,需求工程过程:(后续章节将详细介绍),4.需求验证需求验证是用来确保需求说明准确、完整地表达需求需要,主要包括审查需求文档,修正不合理的需求。,金陵科技学院软件工程学院,需求工程过程:(后续章节将详细介绍),5.需求管理需求管理是一种用于查找、记录、组织和跟踪系统需求变更的系统化方法,可用于获取、组织和记录系统需求并使客户和项目团队在系统需求变更上保持一致。有效的需求管理在于维护清晰明确的需求阐述、每种需求类型所适用的属性,以及与其他需求和其他项目工作之间的可追踪性。其活动包括:定义需求基线,建立跟踪信息,进行变更控制。,金陵科技学院软件工程学院,1.3软件需求分析,软件需求工程过程比较重要的一个环节:软件需求分析本课程探讨的是软件需求工程,侧重在软件需求分析,但不仅仅是软件需求分析。,金陵科技学院软件工程学院,1.3软件需求分析,需求分析是对用户的需求获取之后的一个粗加工过程,需要对需求进行推敲和润色以使所有涉众都能准确理解需求。分析过程首先需要对需求进行检查,以保证需求的正确性和完备性,然后将高层需求分解成具体的细节,创建开发原型,完成需求从需求获取人员到开发人员的过渡。绘制关联图:关联图确定系统和外部的交互。划分了系统的范围和界限,构建了系统对外的接口。原型开发:对于敏捷方法,推荐完成一个界面的原型,一个初步的系统实现,通过原型,让所有涉众对开发的项目有了一个初步的映像,同时可以提供对需求的检验。需求优先级别:采用分析的方法确定产品的功能,用例和单项需求的优先级别,以优先级为基础,确定各项功能和需求都包括在哪个版本中,在项目开发过程中,需求的优先级别根据实际情况进行调整。需求建模:图形分析模型对需求描述更加抽象。主要可以采用UML的建模分析。数据字典创建:建立系统中所用到的数据项和结构的定义,数据字典可以使参与项目开发的每一个人都使用统一的定义。子系统:建立系统的结构,同时将需求分配到各个子系统和模块中。,金陵科技学院软件工程学院,补充1:优秀需求特性,1.完整性2.正确性3.精确性4.可行性5.必要性6.无歧义7.可验证,金陵科技学院软件工程学院,补充2:常见的需求定义错误,1.需求并没有准确反映用户的真实需要2.需求定义模糊3.需求信息不完整4.可行性5.必要性6.无歧义7.可验证

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论