您好,欢迎访问三七文档
软件工程软件工程软件工程第第33章章需求工程需求工程常熟理工学院软件工程课程2/28需求分析需求分析•需求分析是要决定–目标系统必须做什么——正向需求–目标系统必须不做什么——逆向需求•需求分析是系统设计的基础,关系到软件设计的成败和软件产品的质量。常熟理工学院软件工程课程3/28•AlanDavis把需求工程定义为“直到(但不包括)把软件分解为实际架构构件之前的所有活动”•需求工程过程不通人的分解是不同的。需求工程需求开发需求管理需求获取需求分析编写规约需求验证需求建模常熟理工学院软件工程课程4/28•需求获取–清楚理解所要解决的问题–完整获取用户需求•需求分析–对需求分类组织–分析需求间关系,以检查需求的一致性•系统建模–用合适的工具和符号,系统地描述需求•编写规约–需求分析的产物•需求验证–对需求的正确性、完整性和清晰性给予评价•需求管理–对需求工程所有相关活动的规划和控制常熟理工学院软件工程课程5/28•在实际的开发过程中,获取、分析、建模、编写规约和验证这些需求开发活动不会是线性地、顺序地完成。实际上,这些活动是交叉的、递增的和反复的。常熟理工学院软件工程课程6/28需求获取需求获取•强调“获取”,而不是“收集”•收集是已有成熟的需求常熟理工学院软件工程课程7/28软件需求软件需求需求来源于用户的一些“需要”;这些“需要”被分析、确认后形成完整的文档;该文档详细说明了产品“必须或应当”做什么。Brooks在“NoSilverBullet”中阐述需求重要性:开发软件系统最困难的部分就是准确说明开发什么。最困难的概念性工作是编写出详细的需求,包括所有面向用户、面向机器和其他软件系统的接口。此工作一旦做错,将会给系统带来极大的损害,并且以后对它修改也极为困难。常熟理工学院软件工程课程8/28需求案例需求案例某公司是国内一家大型的电信设备供应商,案例涉及6个机构:B:核心平台研发机构A:增值服务研发机构E:网管软件承包商D:销售机构F:客户C:项目管理机构B研制了一种数据接入服务器的原型,B要A开发网管软件,D承诺负责卖。A向C申请立项。A把项目外包给专门做网管软件的公司E,期望半年内完成。A和E派开发人员到B处搞需求分析。B的接入服务器不成熟,三方折腾,E最终用1年做出软件,交给A。A付清开发费,并交给D。D卖给F,F认为这不是他们要的,要求改好后再付钱。D要A修改,A气愤,C又要A结项。常熟理工学院软件工程课程9/28需求分析目的需求分析目的需求分析是软件生命周期中重要的一步,也是决定性的一步。只有通过需求分析,才能把软件需求文档化,从而奠定软件开发的基础。需求分析将项目计划阶段确定的软件范围逐步细化到可详细定义的程度,并分析出各种不同的软件元素,然后为这些元素找到可行的解决办法。需求分析阶段用户或客户的参与至关重要!常熟理工学院软件工程课程10/28需求分析的任务需求分析的任务•确定目标系统的具体要求功能要求、性能要求、界面要求、安全保密要求、可靠性要求、异常处理要求、将来可能提出的要求•分析系统的数据要求•建立目标系统的逻辑模型(建模)•修正系统开发计划•制定初步的确认测试计划•编写软件需求规格说明书•编写初级用户手册(1)(1)功能需求功能需求••系统做什么?系统做什么?••系统何时做什么?系统何时做什么?••系统何时及如何修改或升级?系统何时及如何修改或升级?(2)(2)性能需求性能需求软件开发的技术性指标,例如:软件开发的技术性指标,例如:••存储容量限制存储容量限制••执行速度、相应时间执行速度、相应时间••吞吐量吞吐量软件需求软件需求(3)(3)环境需求环境需求••硬件设备:机型、外设、接口、硬件设备:机型、外设、接口、地点、分布、温度、地点、分布、温度、湿度、磁场干扰等湿度、磁场干扰等••软件:软件:操作系统操作系统网络网络数据库数据库(4)(4)界面需求界面需求••有来自其它系统的输入吗?有来自其它系统的输入吗?••有到其它系统的输出吗?有到其它系统的输出吗?••对数据格式有规定吗?对数据格式有规定吗?••对数据存储介质有规定吗?对数据存储介质有规定吗?软件需求软件需求(5)(5)用户或人的因素用户或人的因素••用户类型?用户类型?••各种用户熟练程度?各种用户熟练程度?••需受何种训练?需受何种训练?••用户理解、使用系统的难度?用户理解、使用系统的难度?••用户错误操作系统的可能性?用户错误操作系统的可能性?(6)(6)文档需求文档需求••需哪些文档?需哪些文档?••文档针对哪些读者?文档针对哪些读者?软件需求软件需求(7)(7)数据需求数据需求••输入、输出数据的格式?输入、输出数据的格式?••接收、发送数据的频率?接收、发送数据的频率?••数据的准确性和精度?数据的准确性和精度?••数据流量?数据流量?••数据需保持的时间?数据需保持的时间?(8)(8)资源需求资源需求••软件运行时所需的数据、软件。内存空间等软件运行时所需的数据、软件。内存空间等资源。资源。••软件开发、维护所需的人力、支撑软件、开软件开发、维护所需的人力、支撑软件、开发设备等。发设备等。软件需求软件需求(9)(9)安全保密要求安全保密要求••需对访问系统或系统信息加以控制吗?需对访问系统或系统信息加以控制吗?••如何隔离用户之间的数据?如何隔离用户之间的数据?••用户程序如何与其它程序和操作系统隔离?用户程序如何与其它程序和操作系统隔离?••系统备份要求?系统备份要求?(10)(10)软件成本消耗与开发进度需求软件成本消耗与开发进度需求••开发有规定的时间表吗?开发有规定的时间表吗?••软硬件投资有无限制?软硬件投资有无限制?软件需求软件需求常熟理工学院软件工程课程16/28逆向需求逆向需求逆向需求说明软件系统不应该做什么。理论上有无限多个逆向需求,我们应该仅选取能够澄清需求且消除可能发生的误解的那些逆向需求。常熟理工学院软件工程课程17/28用户概要信息概要信息业务需求业务需求功能需求功能需求用户需求用户需求非功能性需求非功能性需求可行性报告系统定义报告系统分析员程序员分析调研座谈法调查表法观察法需求获取需求获取常熟理工学院软件工程课程18/28需求调查的方法需求调查的方法与用户交谈,向用户提问题。参观用户的工作流程,观察用户的操作。向用户群体发调查问卷。与同行、专家交谈,听取他们的意见。分析已经存在的同类软件产品,提取需求。从行业标准、规则中提取需求。从Internet上搜索相关资料。常熟理工学院软件工程课程19/28出版社管理信息系统调查表出版社管理信息系统调查表编号提出问题1您在哪个部门工作?2出版业务流程是什么?3您每日都处理那些文件、数据、报表?4工作中手工处理特别麻烦的事情是什么?5工作中手工处理什么问题解决不了?影响效率的问题有哪些?6您认为提高工作效率,节省工作时间,减轻工作强度可采取哪些办法?7您的部门需要成本核算和统计的内容有哪些?8您的部门采用计算机管理工作情况如何?9如何改进业务流程使之更合理?10哪些问题是目前传统手工方法根本无法解决的?11出版社管理信息系统需要解决什么问题?需求调查面临的挑战需求调查面临的挑战问题的复杂性和对问题空间问题的复杂性和对问题空间理解的不完备性与不一致性理解的不完备性与不一致性交流障碍交流障碍————客户说不清客户说不清需求易变性需求易变性分析人员或客户理解有误分析人员或客户理解有误常熟理工学院软件工程课程21/28需求分析需求分析获取数据分析、处理目标系统模型需求获取系统分析员从数据流和数据结构出发,找出系统各元素之间的联系、接口特征及设计限制、能否满足功能需求需求分析是对获取的需求信息进行分析,及时排除错误和弥补不足,确保需求文档正确反映用户的真实意图。分析方法:(1)问答分析法;(2)建模分析法。“问答分析法”适合用户需求调查阶段;“建模分析法”适合产品需求定义阶段。常熟理工学院软件工程课程22/28需求分析的原则需求分析的原则必须能够表达和理解问题的数据域和功能域;必须按自顶向下、逐层分解的方式对问题进行分解和不断细化;要给出系统逻辑视图和物理视图。常熟理工学院软件工程课程23/28问答分析法问答分析法最重要问题:“是什么”和“为什么”。每个需求都应用陈述句说明“是什么”,如果“是什么”内涵不清晰,应补充说明“不是什么”。如果“是什么”和“不是什么”并不是“理所当然”的,则应解释“为什么”。其他常见问题:需求存在二义性吗?需求文档的上下文有矛盾吗?需求完备吗?需求是必要的吗?需求可实现吗?需求可验证吗?需求的优先级确定了吗?常熟理工学院软件工程课程24/28建模分析方法建模分析方法结构化分析方法面向对象分析方法面向数据的方法,以数据流为中心。其核心概念包括:进程、数据流、数据存储、外部实体、数据组和数据元素。其具有代表性的需求分析工具有:数据流图、数据字典、E-R图、状态变迁图(STD)等。面向对象分析以对象及其服务作为建模标准,比较自然,对象也具有相对的稳定性。主要模拟的元素有:对象、类、属性、关系、方法、消息传递、用例等。其主要原理包括分类、继承、层次、信息隐藏、汇集关系等。常熟理工学院软件工程课程25/28编写需求规格说明编写需求规格说明系统分析员需求规约目标系统的基本描述系统各项需求系统限制及条件系统数据定义……需求规约属性:正确、清晰、无二义、一致、必要、完备、可实现、可验证需求分析结果常熟理工学院软件工程课程26/28需求规格说明书需求规格说明书((规约规约))PrefaceIntroductionGlossaryUserrequirementsdefinitionSystemarchitectureSystemrequirementsspecificationSystemmodelsSystemevolutionAppendicesIndex常熟理工学院软件工程课程27/28需求评审需求评审需求评审的主要方面一致性完整性现实性有效性所有需求必须一致,不能前后相互矛盾说明书应包括用户需求的每一方面在现有基础上可实现必须证明需求有效,能解决用户提出的问题无二义性常熟理工学院软件工程课程28/28需求管理需求管理•需求管理是一组用于帮助项目组在项目进展中的任何时候去标识、控制和跟踪需求的活动•需求跟踪有两种方式,正向跟踪与逆向跟踪–正向跟踪:以用户需求为切入点,检查《需求规约》中的每个需求是否都能在后继工作产品中找到对应点–逆向跟踪:检查设计文档、代码、测试用况等工作产品是否都能在《需求规约》中找到出处
本文标题:第03章 需求工程
链接地址:https://www.777doc.com/doc-202875 .html