5-需求开发 软件工程案例分析课件_第1页
5-需求开发 软件工程案例分析课件_第2页
5-需求开发 软件工程案例分析课件_第3页
5-需求开发 软件工程案例分析课件_第4页
5-需求开发 软件工程案例分析课件_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

1、软件工程案例分析Jin BoCollege of Computer Science and TechnologyZhejiang University需求开发与需求管理主要内容从一个故事看软件开发的实际问题需求管理的困难性管理需求的目的软件需求特性需求工程如何获取需求需求规格说明需求管理工具软件开发面临的实际问题软件开发面临的实际问题软件开发面临的实际问题为什么?需求?什么是需求需求为用户解决问题或达到目标所需的条件或权能系统或系统部件要满足合同、标准、规范和其它正式规定文档所需具有的条件或权能一种反映上述条件或权能的文档说明举例系统必须提供基于PPPoE协议的用户接入模式产品应当提供机架式安

2、装,并提供两个千兆以太网端口系统使用的用户是信息中心和网络管理员系统在运行时必须提供自动数据备份功能简要的解释需求来源于用户的一些“需要”,这些“需要”被分析、确认后形成完整文档,该文档详细地说明了产品“必须或应当”做什么。 如果只有一些零碎的对话、资料或邮件,你就以为自己已经掌握了需求,那是自欺欺人。需求管理的困难性需求不总是显而易见的,而且它可来自各个方面。 需求并不总是能容易用文字明白无误地表达。 存在不同种类的需求,其详细程度各不相同。 如果不加以控制,需求的数量将难以管理。 需求之间相互关联,而且需求也和软件工程流程中的其他可交付工件有关。 需求有唯一的特征或特征值。例如,它们的重要

3、性和容易满足的程度都各不相同。 需求涉及众多相关方面,这意味着需求要由功能交叉的各组人员管理。 需求会变更。为什么要管理需求为什么要管理需求?避免失败就是一个很充分的理由。提高项目的成功率需求管理带来其他好处Standish Group 的 CHAOS 报告进一步证实了与成功项目关系最大的因素是良好的需求管理。什么是软件需求从软件开发过程看软件需求开发从软件发展周期看软件开发过程时期年代阶段涉及注重主要使用语言标准模型初期50-60程序设计点编程技巧ALGOLFORTRANCOBOLBASIC中期70-80软件开发线结构化模块化PASCALGB8566软件开发规范瀑布原型现代90-软件过程面过

4、程能力C,C+JAVAVB、VCISO/IEC12207软件生存期过程ISO9000螺旋CMM计算机系统 人员硬件软件数据传输机构执行机构(剧作家、导演)(舞台剧本演员道具)软件开发全过程活动任务 系统需求分析系统结构设计 软件需求分析建立软件需求评价软件需求联合评审软件结构设计软件详细设计软件编码和测试 软件集成 软件鉴定测试系统集成系统鉴定测试软件安装软件验收支持 软件开发过程 定义(IEEE-STD-610) 用户为解决某个问题、或为实现某一目标, 要求软件必须满足的条件或能力。 软件需求的三个层次 业务需求 用户需求 功能需求和非功能需求 软件需求的层次性软件系统需求(1)系统需求分配

5、软件工程组硬件系统需求(2)其它成分系统需求(n)软件需求客户最终用户系统工程组系统需求分配业务需求业务说明使用实例用户需求功能需求约束条件非功能需求软 件 需 求 规 格 说 明软件需求的层次需求的层次性业务需求项目视图与范围文档用户需求质量属性系统需求功能需求约束条件其它非功能需求Use Case文档软件需求规格说明非功能需求 过程需求:交付需求,实现需求,遵循的标准性能需求:速度,容量,可靠性外部需求:互操作性,伦理性, 机密性,安全性,使用要求 非功能软件需求系 统 需 求ACCS应能使汽车保持在预期车速的2KMH范围内行驶分配给硬件的需求硬件应能使车速在规定的精确度H范围内分配给软件

6、的需求软件应能在车速超出预期车速H时给硬件加/减速命令软 件 需 求软件应能:读入当前车速值计算当前车速与预期车速之差若差值H给出加/减速命令汽车限速系统ACCS的需求分配分配需求的实例产生不合格需求的原因产生不合格的需求说明的原因无足够的用户参与,原因感到与用户合作不如编写代码有意思因为开发人员觉得已经明白用户的需求了用户需求的不断增加模棱两可的需求不必要的特性过于精简的规格说明忽略了用户分类不准确的计划优秀需求具有的特性正确性无二义性必要性完整性,完备性可行性,可实现性可验证性划分优先级制定目标的原则SMARTSpecial,Measure,Agree,Realistic,Time特指,可

7、量测,一致认同感,现实的,实在的,时间需求工程什么是需求工程把所有与需求直接相关的活动通称为需求工程。需求工程中的活动可分为两大类,一类属于需求开发,另一类属于需求管理。 需求工程的结构图1需求工程需求开发需求管理 获取需求分析需求定义需求验证需求需求变更控制需求跟踪需求状态跟踪需求文档版本控制需求开发需求管理需求工程需求工程的构成需求开发过程需求开发:通过调查与分析,获取用户需求并定义产品需求。 需求调查:通过各种途径获取用户需求信息(原始材料),产生用户需求说明书。 需求分析:对各种需求信息进行分析,消除错误,刻画细节。常见分析方法“问答分析法”和“建模分析法”两类。 需求定义:根据需求调

8、查和需求分析结果,进一步定义准确无误的产品需求,产生产品需求规格说明书。系统设计人员将依据产品需求规格说明书开展系统设计工作。 需求管理过程需求管理:在客户与开发方之间建立对需求的共同理解,维护需求与其它工作成果的一致性,并控制需求的变更。 需求确认:开发方和客户共同对需求文档进行评审,双方对需求达成共识后作出书面承诺,使需求文档具有商业合同效果。 需求跟踪:通过比较需求文档与后续工作成果之间的对应关系,建立与维护“需求跟踪矩阵”,确保产品依据需求文档进行开发。 需求变更控制:依据“变更申请审批更改重新确认”的流程处理需求的变更,防止需求变更失去控制而导致项目发生混乱。用户/系统市场管理者初始

9、需求变更的需求获取,分析,定义,验证需求控制需求变更需求规格说明项目环境需求开发需求管理(1)获取需求确定目标用户、服务对象明确用户代表用户培训了解实际业务和业务需求(2)分析需求分清功能需求、性能需求、使用需求必要性可行性需求开发需求获取需求的来源与有潜力用户探讨目前或竞争产品的描述文档系统需求规格说明当前系统问题报告和增强要求市场调查和用户问卷调查观察正在工作的用户用户任务内容分析需求获取的内容 1.用户需求分类 (1)功能性需求: 定义了系统做什么(描述系统必须支持 的功能和过程) (2)非功能性需求(技术需求): 定义了系统工作时的特性 (描述操作环境和性能目标)2. 两类需求包括的内

10、容(1) 功能(2) 性能(3) 环境(4) 界面(5) 用户或人的因素(6) 文档 (7) 数据(8) 资源(9) 安全保密(10)软件成本消耗与开发进度(11)质量保证(1) 功能需求 系统做什么? 系统何时做什么? 系统何时及如何修改 或升级?(2) 性能需求 软件开发的技术性指标例如: 存储容量限制 执行速度、相应时间 吞吐量(3) 环境需求 硬件设备:机型、外设、接口、 地点、分布、温度、 湿度、磁场干扰等软件: 操作系统 网络 数据库(4) 界面需求 有来自其它系统的输入吗? 到自其它系统的输出吗? 对数据格式有规定吗? 对数据存储介质有规定吗?(5) 用户或人的因素 用户类型?

11、各种用户熟练程度? 需受何种训练? 用户理解、使用系统的难度? 用户错误操作系统的可能性?(6) 文档需求 需哪些文档? 文档针对哪些读者?(7) 数据需求 输入、输出数据的格式?接收、发送数据的频率?数据的准确性和精度?数据流量?数据需保持的时间?(8) 资源需求 软件运行时所需的数据、软件。内存空间等资源。 软件开发、维护所需的人力、支撑软件、开发设备等。(9) 安全保密要求 需对访问系统或系统信息加以控制吗?如何隔离用户之间的数据?用户程序如何与其它程序和操作系统隔离?系统备份要求?(10) 软件成本消耗与开发进度需求开发有规定的时间表吗?软硬件投资有无限制?(11) 质量保证 系统的可靠性要求? 系统必须监测和隔离错误吗? 规定系统平均出错时间? 出错后,重启系统允许的时间? 系统变化如何反映到设计中? 维护是否

温馨提示

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

评论

0/150

提交评论