您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 电子科技大学软件工程---03需求分析(改).
软件工程授课教师:蓝天联系电话:13488929723电子邮箱:lantian1029@uestc.edu.cn第三章需求分析需求分析相关概念1面向过程的分析方法4需求变更管理3需求分析的任务和步骤2面向对象的分析方法3本章学习目标123掌握用例图等面向对象分析方法掌握数据流图等结构化分析方法理解需求分析的过程和主要步骤为什么需要需求分析?•需求分析的错误和变更导致的软件开发失败占软件失败因素的1/3以上--------StandishGroupo缺少用户的输入:占软件失败因素的13%o不完整的需求和规格说明书:占软件失败因素的12%o需求和规格说明书的变更:占软件失败因素的12%•希望对开发进行指导•希望开发人员对用户的要求理解•希望用户理解开发人员•测试部门有理可依美国专门从事跟踪IT项目成功或失败的权威机构修正需求错误的代价指数级增长软件需求管理的过程需求提炼需求描述需求验证需求获取需求变更需求确认需求变更需求分析的定义定义确定系统必须具有的功能和性能,系统要求的运行环境,并且预测系统发展的前景。换句话说需求就是以一种清晰、简洁、一致且无二义性的方式,对一个待开发系统中各个有意义方面的陈述的一个集合。需求分析的任务和步骤•需求分析的任务o建立分析模型o编写需求说明•需求分析的步骤o需求获取o需求提炼o需求描述(撰写需求规格说明书)o需求验证需求分析的任务和步骤•需求分析的任务o建立分析模型o编写需求说明准确地定义未来系统的目标,确定为了满足用户的需求系统必须做什么。需求分析的任务和步骤•需求分析的任务o建立分析模型o编写需求说明用《需求规格说明书》规范的形式准确地表达用户的需求。第一步:需求获取定义软件需求获取指的是软件需求的来源以及软件工程师收集这些软件需求的方法。它也称为需求抓取、需求发现和需求获得。需求的类型(1)功能性需求:描述系统应该做什么,即为用户和其它系统完成的功能、提供的服务。(2)非功能需求:必须遵循的标准,外部界面的细节,实现的约束条件,质量属性等等。非功能需求限定了选择解决问题方案的范围,如运行平台、实现技术、编程语言和工具等。?将飞机订票系统中的以下方面做如下的划分,F代表“功能性”,NF代表“非功能性”,X代表“不应当是需求”。简要的说明功能性或非功能性需求的种类。对于不应当是需求的方面,说明其原因。•如何输入有关航班、乘客及订票信息。F:输入•什么信息要出现在机票和报告中。F:输出•如何计算乘机费用。F:计算•什么信息必须存储在旅行社和其他人访问的数据库中。F:数据存储例举•这个系统应该设计成可以处理常旅客计划。NF:可扩展性•这个系统在任何时候都必须是可用的。一周中只允许有2分钟宕机时间。NF:有效性•必须使用某排序算法根据离开时间对航班排序。X:这是一个设计问题需求来源用户目标领域知识投资者组织环境运行环境需求获取技术-采访-设定情景(用例)-原型-会议-观察商业过程和工作流某出版社系统调查表编号提出问题1您在哪个部门工作?2出版业务流程是什么?3您每日都处理哪些文件、数据、报表?4工作中手工处理特别麻烦的事情是什么?5工作中手工处理什么问题解决不了?影响效率的问题有哪些?6您认为提高工作效率,节省工作时间,减轻工作强度可采取哪些办法?某出版社系统调查表编号提出问题7您的部门需要成本核算和统计的内容有哪些?8您的部门采用计算机管理工作情况如何?9如何改进业务流程使之更合理?10哪些问题是目前传统手工方法根本无法解决的?11出版社计算机管理信息系统需要解决什么问题?需求获取面临的挑战•客户说不清楚需求•需求易变性•问题的复杂性和对问题空间理解的不完备性与不一致性需求诱导十原则1.倾听需求诱导十原则2.有准备的沟通需求诱导十原则3.需要有人推动需求诱导十原则4.最好当面沟通需求诱导十原则5.记录所有决定需求诱导十原则6.保持通力协作需求诱导十原则7.聚焦并协调话题需求诱导十原则8.采用图形表示需求诱导十原则9.继续前进原则•一旦认可某件事情,继续前进;•如果不认可某件事情,继续前进;•如果某项特性或功能不清晰,当时无法澄清,继续前进需求诱导十原则10.谈判双赢原则沟通活动通用任务集1.识别主要客户和共利益者2.与主要客户会谈“上下文无关的问题”,以确定①业务需要和商业价值②最终用户的特性\需要③需要的用户可见输出④业务约束3.写一页项目范围的说明4.评审范围说明,并应客户要求做出相应修改业务操作管理人员、产品管理人员、市场营销人员、内部和外部客户、最终用户、顾问、产品工程师、软件工程师、支持和维护工程师……•谁将使用该解决方案?存在别的解决方案吗?•能向我们展示(或描述)解决方案的使用环境吗?•我的提问和你想解决的问题相关吗?还有我应该问的其他问题吗?小规格说明:控制面板是一个安装在墙上的单元,尺寸大概是9*5英寸;控制面板和传感器、计算机之间是无线连接;通过一个12键的键盘与用户交互,通过一个2*2的LCD显示器为用户提供反馈信息;软件将提供交互提示、回显以及类似的功能沟通活动通用任务集5.与客户/最终用户进行协作,确定:①采用标准格式记录客户可见的使用场景②输入和输出③重要的软件特性、功能和行为④客户定义的商业风险6.描述场景、输入/输出、特性/功能以及风险7.与客户细化场景、输入/输出、特性/功能以及风险8.为每个用户场景、特性、功能和行为分配客户定义的优先级9.回顾搜集的所有信息并修订10.为计划活动做准备用例:初始化监测主要参与者:房主目标:设置系统在房主离开住宅或留在房间内时监测传感器前提条件:系统已经输入密码并识别各种传感器触发器:房主决定“设置”系统,即打开报警功能场景:1.房主:观察控制面板2.房主:输入密码3.房主:选择“stay”或“away”4.房主:观察红色报警灯显示SafeHome已经被打开异常:1.密码不正确:房主重新输入正确的密码……优先级:必须的,必须被实现何时可用:首次增量使用频率:每天多次使用方式:通过控制面板接口次要参与者:技术支持人员,传感器次要参与者使用方式:电话线(技术支持人员);有线或无线接口(传感器)未解决的问题:……练习•为如下活动之一开发一个完整的用例:o在ATM上提款o在餐厅使用饭卡付款o使用在线书店搜索书第二步:需求提炼(需求分析)•需求分析的核心在于建立分析模型。•需求分析采用多种形式描述需求,通过建立需求的多种视图,揭示出一些更深的问题。•需求分析还包括与客户的交流以澄清某些易混淆的问题,并明确哪些需求更为重要,其目的是确保所有风险承担者尽早地对项目达成共识并对将来的产品有个相同而清晰的认识。定义对应用问题及环境的理解和分析,为问题涉及的信息、功能及系统行为建立模型。将用户需求精确化、完全化,最终形成需求规格说明书。需求分析模型柜台取款客户-柜台-营业员-银行主机-…客户、银行、现金客户、系统、现金客户-ATM机-银行主机-…ATM取款分析建模•结构化分析模型•面向对象分析模型•分析模型描述工具o数据流图、数据字典和加工规约o控制流图、控制规约和状态变迁图oE-R图o用例图,对象-关系图,对象-行为图其基本思想是用系统工程的思想和工程化的方法,根据用户至上的原则,自始自终按照结构化、模块化,自顶向下地对系统进行分析与设计。由5个层次(主题层、对象类层、结构层、属性层和服务层)和5个活动(标识对象类、标识结构、定义主题、定义属性和定义服务)组成。需求建模图形工具面向过程的需求分析面向对象的需求分析数据模型实体-联系图(ERD)数据字典(DD)类图、类关系图功能模型数据流图(DFD)用例图行为模型状态变迁图(STD)活动图、时序图、状态图第三步:需求规格说明书•需求分析工作完成的一个基本标志是形成了一份完整的、规范的需求规格说明书。•需求规格说明书的编制是为了使用户和软件开发者双方对该软件的初始规定有一个共同的理解,使之成为整个开发工作的基础。定义软件需求规格说明书(SRS)------软件系统的需求规格说明,是对待开发系统的行为的完整描述。它包含了功能性需求和非功能性需求。软件需求规格说明的原则•从现实中分离功能,即描述要“做什么”而不是“怎样实现”•要求使用面向处理的规格说明语言(或称系统定义语言)•如果被开发软件只是一个大系统中的一个元素,那么整个大系统也包括在规格说明的描述之中•规格说明必须包括系统运行环境•规格说明必须是一个认识模型•规格说明必须是可操作的•规格说明必须容许不完备性并允许扩充•规格说明必须局部化和松散耦合软件需求规格说明的结构IEEE标准为需求文档提出了以下结构,组织机构内部可以基于此标准扩展:a.需求文档的目的b.文档约定c.预期的读者和阅读建议d.产品范围e.参考文献a.产品前景b.产品功能与优先级c.用户特征d.运行环境e.设计与实现上的限制f.假设和依赖性(2)综合描述(1)引言(3)需求描述a.功能需求b.数据需求:与功能有关的数据定义和数据关系c.性能需求:响应时间、容量要求、用户数等d.外部接口:用户界面、软硬件接口、通信接口e.设计约束:软件支持环境、报表、数据命名等f.软件质量属性(可维护性、可靠性、可移植性、可用性、安全性等)g.其他需求这一节是文档中最实质性的部分,由于在机构组织的实践中存在极大的变数,对这一节定义的标准结构可以进行增删。(4)附录(词汇表、分析模型、待定问题列表)(5)索引第四步:需求验证需求验证的重要性:如果在后续的开发或当系统投入使用时才发现需求文档中的错误,就会导致更大代价的返工。由需求问题而对系统做变更的成本比修改设计或代码错误的成本要大的多。假设需求阶段引入1个错误的需求,设计时对这个需求需要5~10条设计实现,1条设计需要5~10条程序,1条程序需要3~5种测试组合测试。原始需求正确的规格说明错误的规格说明正确的设计错误的设计对错误需求的设计正确的编码错误的编码对错误设计的编码对错误需求的编码正确功能测试到的错误没有测试到的错误一个错误的需求,纠正成本100元×10纠正成本1000元×10×5$100$50000!!对需求文档需执行以下类型的检查:(1)有效性检查检查不同用户使用不同功能的有效性。(2)一致性检查在文档中,需求之间不应该冲突。(3)完备性检查需求文档应该包括所有用户想要的功能和约束。(4)现实性检查检查保证能利用现有技术实现需求。需求验证技术(1)需求评审由分析员、设计员、测试员、用户参与的正式或非正式的会议评审。正式会议要有严格的评审程序,要有会议记录,开发组根据缺陷建议修改需求说明并重审。(2)利用原型检验系统是否符合用户的真正需要(3)对每个需求编写概念性的测试用例。(4)编写用户手册。用浅显易懂的语言描述用户可见的功能。(5)自动的一致性分析。可用CASE工具检验需求模型的一致性。软件需求工具•RationalRequisitePro能够帮助项目团队改进项目目标的沟通,增强协作开发,降低项目风险,以及在部署前提高应用程序的质量。•TelelogicDOORS基于整个公司的需求管理系统,用来捕捉、链接、跟踪、分析及管理信息,以确保项目与特定的需求及标准保持一致。•BorlandCaliberRM基于Web和用于协作的需求定义和管理工具,可以帮助分布式的开发团队平滑协作,从而加速交付应用系统。CaliberRM辅助团队成员沟通,减少错误和提升项目质量。•RationalRose可用于UML建模分析需求总在变化需求变更管理•变更管理是将个人、团队和组织从现有状态转移/过渡到期望状态的结构化方法。它授权雇员接受并理解当前业务环境中的变更。在项目管理中,变更管理是指项目变更被引入和接受后的项目管理过程。•管理和控制需求基线的过程•需求变更控制系统o一个正式的文档,说明如何控制需求变更o建立变更审批系统需求变更处理流程面向过程的分析方法结构化分析方法•面向数据流进行需求分析的方法•结构化分析方法适合于数据处理类型软件的需求分析•具体来说,结构化分析方法就是用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下
本文标题:电子科技大学软件工程---03需求分析(改).
链接地址:https://www.777doc.com/doc-2211274 .html