软件需求-第1课-软件需求工程导论(第1版)_第1页
软件需求-第1课-软件需求工程导论(第1版)_第2页
软件需求-第1课-软件需求工程导论(第1版)_第3页
软件需求-第1课-软件需求工程导论(第1版)_第4页
软件需求-第1课-软件需求工程导论(第1版)_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

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

文档简介

软件需求CheckingSettingsEntry/OpenShutter(0.5);MeasureLight();DetermineExposureTime(CheckingCheckingCheckingCheckingCheCkinCheckinggCheckingSettingsEntry/OpenShutter(0.5);MeasureLight();DetermineExposureTime(CheckingCheckingCheckingCheckingCheCkinCheckinggCheckingCheckingCheckingSettingsEntry/OpenShutter(0.5);MeasureLight();哈尔滨工程大学计算机科学与技术学院海量数据挖掘及网络数据集成研究组王念滨教授博导软件需求教学课程安排情况软件〔工程〕需求导论〔1〕软件需求相关根底〔2〕软件需求过程例如〔3〕第1局部根底第2局部软件需求获取需求获取〔4〕需求获取〔5〕需求获取〔6〕原型方法例如〔7〕第3局部需求分析概述〔8〕结构化分析〔9〕结构化分析〔10〕面向对象分析〔11〕面向对象分析〔12〕面向对象分析〔13〕第4局部需求规格说明书及需求验证SRS〔14〕需求验证〔15〕第5局部需求管理需求管理〔16〕工程管理〔17〕标书撰写及例如〔18〕第6局部总结需求获取总结〔19〕需求分析总结〔20〕CheckingSettingsEntry/OpenShutter(0.5);MeasureLight();DetermineExposureTime(CheckingCheckingCheckingCheckingCheCkinCheckinggCheckingSettingsEntry/OpenShutter(0.5);MeasureLight();DetermineExposureTime(CheckingCheckingCheckingCheckingCheCkinCheckinggCheckingCheckingCheckingSettingsEntry/OpenShutter(0.5);MeasureLight();主要参考书籍资料:1<<软件需求管理用例方法>>2<<编写有效用例>>3<<面向对象软件开发教程>>4<<需求工程-软件建模与分析>>5<<探索需求>>第1

章需求工程导论本课主要讨论问题1软件生产中的需求问题2软件工程及软件需求概述3软件需求的作用和意义4需求工程第1章需求工程导论1软件生产中的需求问题第1章需求工程导论软件的概念 软件是计算机系统中与硬件相互依存的另一局部,它是包括程序、数据及其相关文档的完整集合。软件=程序+数据+文档程序是按事先设计的功能和性能要求编写的指令序列;数据是使程序能正常操纵信息的数据结构;文档是与程序开发、维护和使用有关的图文材料。

1软件生产中的需求问题第1章需求工程导论对大型软件的感性认识软件名称属性postgres95XXX省地方税务局管理信息系统软件类型系统软件:数据库系统软件应用软件:管理信息系统代码量450,000500,000编程语言CC++,PB,SQL,LOTUS,JSP支撑环境UNIXWINDOWS开发周期约5年1.5年参加人员工程总负责1人工程经理3人系统架构师2人系统分析员3人SYBASEDBA2人高级程序员8人程序员20-25人用户方参与人员10-15人文档文档总量约120万字工程论证报告5万字需求分析25万字概要设计10万字详细设计40万字数据库设计10万字测试方案5万字系统培训教材15万字系统使用手册10万字1软件生产中的需求问题第1章需求工程导论Exchange2000Windows2000项目经理25人约250人开发人员140人约1700人测试人员350人约3200人Oracle代码量大约是postgres的10倍,450万行源代码。Windows大约是Oracle的5倍,2250万行源代码1软件生产中的需求问题第1章需求工程导论对软件开发本钱和进度的估计常常不准确。开发本钱超出预算,实际进度比预定方案一再拖延的现象并不罕见。用户对“已完成〞系统不满意的现象经常发生。软件产品的质量往往靠不住。Bug一大堆,Patch一个接一个。软件的可维护程度非常之低。软件通常没有适当的文档资料。软件的本钱不断提高。软件开发生产率的提高赶不上硬件的开展和人们需求的增长。软件危机软件危机的主要表现1968年北大西洋公约组织的计算机科学家在联邦德国召开的国际学术会议上第一次提出了“软件危机〞(softwarecrisis)名词。1软件生产中的需求问题第1章需求工程导论软件危机软件生产和本钱的原因软件维护费用急剧上生,直接威胁到计算机应用的扩大软件生产技术进步缓慢深层原因软件系统的复杂性不断增长,复杂性成为系统设计和开发最大的障碍概括来说,软件危机包含两方面问题:如何开发软件,以满足不断增长,日趋复杂的需求;如何维护数量不断膨胀的软件产品.软件危机软件危机的原因客观:软件本身特点逻辑部件规模庞大主观:不正确的开发方法无视需求分析错误认为:软件开发=程序编写轻视软件维护系统网络数据库应用1软件生产中的需求问题第1章需求工程导论软件的生存周期问题定义可行性研究需求分析软件设计编码测试维护方案时期开发时期运行时期产品:战略规划报告产品:可行性研究报告产品:需求分析报告产品:概要设计报告详细设计方案产品:测试方案产品:维护及培训报告1软件生产中的需求问题第1章需求工程导论1软件生产中的需求问题第1章需求工程导论需求分析就是分析软件用户的需求是什么。

需求定义IEEE(美国电气电子工程师学会)软件工程标准词汇表〔1997年〕将需求定义为:

〔1〕用户解决问题或到达目标所需的条件或能力。

〔2〕系统或系统部件要满足合同、标准、标准或其它正式规定文档所需具有的条件或能力。

〔3〕一种反映上面〔1〕或〔2〕所描述的条件或能力的文档说明。需求就是以一种清晰、简洁、一致且无二义性的方式对一个待开发系统中各个有意义陈述方面的一个集合。该阶段的根本任务是答复“系统必须做什么?〞;提交详细的需求分析文档;该阶段是系统开发的根底,质量和成败的关键;需要一个的审查和验证。1软件生产中的需求问题第1章需求工程导论需求定义需求分析的任务需求分析的任务就是解决“做什么〞〔Whattodo,dowhat〕的问题.就是要全面理解用户的各项要求,并正确地表达所接受的用户需求。需求分析之所以重要,因为它具有策略性、方向性和决策性。需求阶段产生的问题在整个开发工程中将具有指数级的复杂性。需求不仅是开发商的问题,更重要的是它是用户的问题。用户要表达自己的需求,开发者要理解用户的需求。1软件生产中的需求问题第1章需求工程导论需求定义1软件生产中的需求问题第1章需求工程导论需求错误的高昂代价需求错误占全部缺陷的三分之一。说明需求错误是系统软件开发中最重要的错误。假设在编码阶段发现需求错误,那么需要根据修改的需求重新进行设计;假设是在测试阶段发现需求错误,那么需要根据修改的需求重新进行设计并重新编码;假设是在维护阶段发现的需求错误,就需要根据修改的需求重新进行设计,重新编码,并再次进行测试。

结论:一定要尽量消除或者减少需求阶段产生错误的可能。实例2001年黑龙江地方税务局基于群集的管理信息系统开发代码表需求错误。本课主要讨论问题1软件生产中的需求问题2软件工程及软件需求概述3软件需求的作用和意义4需求工程第1章需求工程导论例如背景用户A购置了一套商品房,需要进行装修.制定的目标是:装修现代时尚,质量好,价格低(性价合理)开发商B专门从事房屋装修开发不变的策略,满足用户需求,获取更高的利润2软件工程及软件需求概述第1章需求工程导论例如过程(一)用户A开发商B派出的房屋装修参谋C双方在热情友好的气氛中开展了以下工作C带着有关人员测量了用户A的房屋;C询问了A关于房屋装修的有关细节;C给出了一个A希望的装修愿景;A对该愿景的细节进行了询问,并认为价格过高;C根据用户的希望对原愿景进行了修改.形成了双方认可的愿景用户A开发商B派出的房屋装修参谋C开发商B派出的工长D(属于B或者是第3方)三方在热情友好的气氛中进行了剧烈的讨论形成了最终的装修愿景2软件工程及软件需求概述第1章需求工程导论例如过程(二)C通宵达旦根据装修愿景完成了装修设计图纸;C召集用户A和工长D对设计图纸征求意见;并根据意见形成了最终的设计图纸。用户A开发商B派出的房屋装修参谋C开发商B派出的工长D(属于B或者是第3方)2软件工程及软件需求概述第1章需求工程导论例如过程(三)开发商B派出的工长D(属于B或者是第3方)水电工瓦工木工油漆工电工焕然一新的房子!?2软件工程及软件需求概述第1章需求工程导论例如过程(四)用户A开发商B派出的工长D(属于B或者是第3方)水电工瓦工木工油漆工电工用户对水电进度不满意用户对主卧的水泥标号产生疑心用户对阳台吊顶提出修改意见油漆工认为原认定的油漆不够用电工建议在三个卧室都增加网络接口按照用户愿景和设计方案逐项进行验收2软件工程及软件需求概述第1章需求工程导论例如过程(五)就房屋的保养问题对用户进行了培训;并再一次确认保修期三个月。就房屋可能会出现的问题对用户进行了说明并留下号码,随时进行联系。2软件工程及软件需求概述第1章需求工程导论软件的生存周期问题定义可行性研究需求分析软件设计编码测试维护方案时期开发时期运行时期产品:战略规划报告产品:可行性研究报告产品:需求分析报告产品:概要设计报告详细设计方案产品:测试方案产品:维护及培训报告2软件工程及软件需求概述第1章需求工程导论软件的生存周期问题定义可行性研究需求分析软件设计编码测试维护方案时期开发时期运行时期产品:战略规划报告产品:可行性研究报告2软件工程及软件需求概述第1章需求工程导论例如背景用户A购置了一套商品房,需要进行装修.制定的目标是:装修现代时尚,质量好,价格低(性价合理)开发商B专门从事房屋装修开发不变的策略,满足用户需求,获取更高的利润产品:战略规划报告2软件工程及软件需求概述第1章需求工程导论软件的生存周期问题定义可行性研究需求分析软件设计编码测试维护方案时期开发时期运行时期产品:需求分析报告2软件工程及软件需求概述第1章需求工程导论例如过程(一)用户A开发商B派出的房屋装修参谋C双方在热情友好的气氛中开展了以下工作C带着有关人员测量了用户A的房屋;C询问了A关于房屋装修的有关细节;C给出了一个A希望的装修愿景;A对该愿景的细节进行了询问,并认为价格过高;C根据用户的希望对原愿景进行了修改.形成了双方认可的愿景用户A开发商B派出的房屋装修参谋C开发商B派出的工长D(属于B或者是第3方)三方在热情友好的气氛中进行了剧烈的讨论形成了最终的装修愿景产品:需求分析报告2软件工程及软件需求概述第1章需求工程导论需求分析之所以重要,就因为他具有决策性,方向性,策略性的作用,他在软件开发的过程中具有举足轻重的地位.

简言之,需求分析的任务就是解决“做什么〞的问题,就是要全面地理解用户的各项要求,并准确地表达所接受的用户需求.2软件工程及软件需求概述第1章需求工程导论软件的生存周期问题定义可行性研究需求分析软件设计编码测试维护方案时期开发时期运行时期产品:概要设计报告详细设计方案2软件工程及软件需求概述第1章需求工程导论例如过程(二)C通宵达旦根据装修愿景完成了装修设计图纸;C召集用户A和工长D对设计图纸征求意见;并根据意见形成了最终的设计图纸。用户A开发商B派出的房屋装修参谋C开发商B派出的工长D(属于B或者是第3方)产品:概要设计报告详细设计方案2软件工程及软件需求概述第1章需求工程导论软件的生存周期问题定义可行性研究需求分析软件设计编码测试维护方案时期开发时期运行时期2软件工程及软件需求概述第1章需求工程导论例如过程(三)开发商B派出的工长D(属于B或者是第3方)水电工瓦工木工油漆工电工焕然一新的房子!?2软件工程及软件需求概述第1章需求工程导论软件的生存周期问题定义可行性研究需求分析软件设计编码测试维护方案时期开发时期运行时期产品:测试方案2软件工程及软件需求概述第1章需求工程导论例如过程(四)用户A开发商B派出的工长D(属于B或者是第3方)水电工瓦工木工油漆工电工用户对水电进度不满意用户对主卧的水泥标号产生疑心用户对阳台吊顶提出修改意见油漆工认为原认定的油漆不够用电工建议在三个卧室都增加网络接口按照用户愿景和设计方案逐项进行验收产品:测试方案2软件工程及软件需求概述第1章需求工程导论软件的生存周期问题定义可行性研究需求分析软件设计编码测试维护方案时期开发时期运行时期产品:维护及培训报告2软件工程及软件需求概述第1章需求工程导论例如过程(五)就房屋的保养问题对用户进行了培训;并再一次确认保修期三个月。就房屋可能会出现的问题对用户进行了说明并留下号码,随时进行联系。产品:维护及培训报告2软件工程及软件需求概述第1章需求工程导论第1章需求工程导论本课主要讨论问题1软件生产中的需求问题2软件工程及软件需求概述3软件需求的作用和意义4需求工程软件需求〔的作用〕是决定软件开发是否成功的关键因素

1需求分析可以帮助开发人员真正理解业务问题2需求分析是估算本钱和进度的根底3需求分析可以防止建造错误的系统,从而减少不必要的浪费4软件规格说明有助于开发人员与客户在“系统应该做什么〞问题上达成正式契约5需求分析形成了软件开发的基线,有助于管理软件的演化和变更6软件需求是软件质量的根底,为系统验收测试提供标准3软件需求的作用和意义第1章需求工程导论3软件需求的作用和意义第1章需求工程导论需求分析可以帮助开发人员真正理解业务问题什么是软件需求?从比较标准的定义来看,软件需求是:(1)用户解决问题或到达目标所需的条件或能力(Capability)。(2)系统或系统部件要满足合同、标准、标准或其它正式规定文档所需具有的条件或权能。(3)一种反映上面(1)或(2)所描述的条件或能力的文档说明。比较一般的说法是:将用户非形式化的需求陈述转换为完整的需求定义,再由需求定义转换为相应的需求规格说明的过程3软件需求的作用和意义第1章需求工程导论需求分析可以帮助开发人员真正理解业务问题业务知识:一般包括业务事件,业务实体和业务规那么。业务问题:用户在工作中遇到的困难和障碍。软件开发时需要与用户一起解决的问题。其他相关因素:设计约束和非功能需求等。在实际应用中,我们一般将软件需求定义为:

业务知识+业务问题+其他相关因素3软件需求的作用和意义第1章需求工程导论需求分析可以帮助开发人员真正理解业务问题法制管理监督管理属性状态管理行为管理状态属性行为初始状态状态变化缴款申报应纳尽纳应收尽收发票证件涉税文书税收征管系统业务理解登记管理税种登记状态管理证件管理双定管理涉税文书管理发票管理申报征收会统核算税收方案税源管理票证管理稽查选案稽查实施稽查审理稽查执行稽查档案管理服务征收核算税务稽查税收法制税收业务管理应用系统行政执法行政复议行政应诉行政赔偿税收征管系统业务理解3软件需求的作用和意义第1章需求工程导论需求分析可以帮助开发人员真正理解业务问题3软件需求的作用和意义第1章需求工程导论需求分析可以帮助开发人员真正理解业务问题3软件需求的作用和意义第1章需求工程导论需求分析是估算本钱和进度的根底需求分析构建了系统的业务模型,根据业务模型分析可以对工程本钱做大概的估算。一般在需求分析完成后,工程管理人员都需要也可能对开发本钱做一个大概的估计。具体方法是按照业务模块,根据投入人力资源情况,满足用户时间节点需求,采用“人月〞度量大致的工程开发本钱。3软件需求的作用和意义第1章需求工程导论需求分析是估算本钱和进度的根底进度安排-例如需求分析可以防止建造错误的系统,从而减少不必要的浪费3软件需求的作用和意义第1章需求工程导论需求错误占全部缺陷的三分之一。说明需求错误是系统软件开发中最重要的错误。假设在编码阶段发现需求错误,那么需要根据修改的需求重新进行设计;假设是在测试阶段发现需求错误,那么需要根据修改的需求重新进行设计并重新编码;假设是在维护阶段发现的需求错误,就需要根据修改的需求重新进行设计,重新编码,并再次进行测试。

结论:一定要尽量消除或者减少需求阶段产生错误的可能。需求分析可以防止建造错误的系统,从而减少不必要的浪费3软件需求的作用和意义第1章需求工程导论1软件生命周期中,一个错误发现得越晚,修复错误的费用越高.2许多错误是潜伏的,并且在错误产生后很长一段时间才被检查出来.3在需求过程中会产生很多错误.DeMarco在一份研究报告中指出,被检查出来的错误的56%产生的根源可以追溯到需求阶段。AIRMICS所进行的一项调查发现,在一份美国军方大型管理信息系统的需求现格说明书(SRS)中存在着500多个错误,当然这仅仅是一个软件工程中的一次调查。4在需求阶段,代表性的错误为疏忽、不一致和二义性.美国海军研究实验室从20世纪70年代起就对软件开发技术不断地进行研究。他们对海军A—7E—它机上的操作程序进行实地测试,以验证许多新设想的可行性。得出的研究数据说明:A—7E工程中77%的需求错误特点是不明确:疏忽、不一致和二义性。按错误类型对这些错误分布进行分析的结果是:49%不正确的事实,31%疏忽,l3%不一致,5%二义性

关于需求的五个事实3软件需求的作用和意义第1章需求工程导论关于需求的五个事实5需求错误是可以被检查出来的3软件需求的作用和意义第1章需求工程导论发现错误的方法发现错误的比例(%)检查65单元测试10集成测试5演进6其他14关于需求的五个事实的分析1在需求过程中会产生很多错误(事实3和4)。2许多错误并没有在早期被发现(事实2)。3这样的错误是能够在产生的初期被检查出来的(事实5)。4如果没有及时检查出来这些错误,软件费用会直线上升(事实1)3软件需求的作用和意义第1章需求工程导论软件规格说明有助于开发人员与客户在“系统应该做什么〞问题上达成正式契约3软件需求的作用和意义第1章需求工程导论从需求获取的目的来看,主要有两个方面的问题:1清楚地理解所要解决的问题;2完整地获取用户需求。系统应该做什么?3软件需求的作用和意义第1章需求工程导论需求分析形成了软件开发的基线,有助于管理软件的演化和变更需求分析建立了系统需求规格说明书,提出了业务需求、用户需求和软件需求。这些需求确实定,构成了软件开发的根底,后续软件的演化过程依赖于这些根底工作。所有的变更都要依照需求规格说明书扩展。软件质量的衡量要以满足需求为基准。软件需求是软件质量的根底,为系统验收测试提供标准第1章需求工程导论信息系统的多维视图人员角度数据角度过程角度接口角度管理层预期性能、信息、经济、控制、效率、效劳业务实例规那么列表业务知识业务功能事件列表业务功能业务地点系统列表业务地点ER图数据需求数据流图业务流图过程需求上下文范围图接口需求逻辑视图数据库模式流程图类图、活动图过程模式接口标准接口说明数据库程序应用程序接口程序系统所有者系统用户设计人员开发人员需求分析人员从此多维视图中可以看出,系统所有者、用户、设计人员开发人员所面对的都是局部视图而需求分析人员那么扮演了必须从全局看待系统的角色。也就是常说的“需求分析人员是用户与开发人员之间的桥梁〞3软件需求的作用和意义本课主要讨论问题1软件生产中的需求问题2软件工程及软件需求概述3软件需求的作用和意义4需求工程4需求工程第1章需求工程导论是软件工程的一个分支它关注于软件系统所应予实现的现实世界目标、软件系统的功能和软件系统应当遵守的约束同时它也关注以上因素和准确的软件行为规格说明之间的联系关注以上因素与其随时间或跨产品族而演化之后的相关因素之间的联系4需求工程第1章需求工程导论需求工程的根本活动4需求工程第1章需求工程导论需求工程的根本活动〔一〕需求工程的活动主要包括需求开发和需求管理两个方面的工作。需求开发是实现的目标,需求管理是保证需求开发得以有序实现的根底和保障。需求开发主要包括需求获取、分析、规格说明和验证。

需求获取的目的是从工程的战略规划开始建立最初的原始需求,需要研究系统将来的应用环境,确定系统的涉众,了解现有的情况,建立新系统的目标,获取为支持新系统目标而需要的业务过程细节和具体的用户需求;需求分析的目的是保证需求的完整性和一致性。以需求获取阶段的原始需求和业务过程细节出发,将目标、功能和约束映射为软件行为,建立系统模型,然后在抽象后的系统模型中进行分析,标识并修复其中存在的不一致问题,发现并弥补遗漏的需求。

需求规格说明的目的是将完整、一致的需求与能够满足需求的软件行为以文档的方式明确地固定

温馨提示

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

评论

0/150

提交评论