软件工程导论课件之第3章 需求分析(第五版)(张海藩编著)_d_百度文库_第1页
软件工程导论课件之第3章 需求分析(第五版)(张海藩编著)_d_百度文库_第2页
软件工程导论课件之第3章 需求分析(第五版)(张海藩编著)_d_百度文库_第3页
软件工程导论课件之第3章 需求分析(第五版)(张海藩编著)_d_百度文库_第4页
软件工程导论课件之第3章 需求分析(第五版)(张海藩编著)_d_百度文库_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

第3章 软件需求分析,教学目的与要求: 深刻理解需求分析阶段的概念及任务,熟练掌握ER图,HIOP图的画法。教学重点:需求分析阶段的任务、方法、具体任务。教学难点:写出需求规格说明书,第3章 需求分析,3.1 需求分析的任务3.2 与用户沟通获取需求的方法3.3 分析建模与规格说明3.4 实体-联系图3.5 数据规范化,3.6 状态转换图3.7 其他图形工具3.8 验证软件需求3.9 小结习题,成功来之不易,31%,(取消),16.2%,(成功地完成),53.8%,(受到挑战),Source: Standish Group,2,软件项目失败的原因,软件项目失败的最重要的五个原因,需求不完整,缺少客户的参与 缺少资源,期望值过高,缺少高层的支持,0%,5%,10%,15%,3,需求错误的成本,4,软件需求的重要性, 软件需求是决定软件开发是否成功的一个关键因素-需求分析可以帮助开发人员真正理解业务问题 - 需求分析是估算成本和进度的基础-需求分析可以避免建造错误的系统,从而减少不必要的浪费 -软件规格说明有助于开发人员与客户在“系统应做什么”问题 上达成正式契约 . - 需求分析形成了软件开发的基线,有助于管理软件的演化和 变更.- 软件需求是软件质量的基础,为系统验收测试提供了标准 .,5,IEEE给软件需求的定义如下:1)用户解决问题或到达目标所需的条件或能力。2)系统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条件或能力3)一种反映上面1)或2)所描述的条件或能力的文档说明什么是软件需求分析: 将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的需求规格说明的过程。,软件需求分析的重要性: 软件需求分析是软件生存期决定性的一步,是软件开发的基础。分析员和用户: 在分析软件需求和书写软件需求规格说明书的过程中,分析员和用户都起着关键的、必不可少的作用。 软件需求分析的基本任务是准确地回答“系统必须做什么?”,3.1 需求分析的任务,软件需求分析的基本任务是准确地回答“系统必须做什么?”,3.1 需求分析的任务,案例:小型图书资料管理系统, 问题描述 - 某学院打算开发一个小型图书资料管理系统 MiniLibrary,该 系统基于Internet 实现教师和学生对各种图书资料的借阅、查 询和管理。- 图书管理员负责管理各种图书资料,查询图书资料信息,并 进行图书的借阅管理。 - 注册用户可以通过Internet 随时查询图书资料信息和个人借阅 情况,预订目前借不到的图书资料,并可以快捷地查找和浏 览所需要的电子资料。 - 系统可以提供适当的浏览器供用户阅读电子文献资料。 - 要求用户界面友好,响应速度快,具有良好的可扩展性 。,8,不同层次的软件需求,功能需求,非功能需求,业务需求,项目视图与范围文档,业务规则,用户需求,质量属性,用例文档,外部接口,系统需求 功能需求,约束条件,软件需求规格说明,9,1业务需求, 业务需求是组织或客户对于系统的高层次目标要求, 定义了项目的远景和范围,即确定软件产品的发展方向、功能范围、目标客户和价值来源。 业务需求的内容- 业务:产品属于哪类业务范畴?应该完成什么功 能?需要为 什么服务?- 客户:产品为谁服务?目标客户是谁? - 特性:产品区别于其他竞争产品的特性是什么? - 价值:产品的价值体现在什么方面? - 优先级:产品功能特性的优先级次序是什么?,10,业务需求:MiniLibrary, 业务要求 - 各种图书资料的借阅、查询和管理(业务范畴、功能)- 使用计算机实现图书资料的日常管理,提高工作 效率和服务质量;(业务范畴、价值体现)- 用户通过网络查询和浏览电子资料,改变原有的 借阅模式; (功能、价值体现)- 由于版权的限制,某些电子资料只能让用户浏览 和打印 而不能下载。 (业务范畴、功能、特性) 客户与用户 - 学院的高层管理者 - 图书管理员 - 借阅者:教师、学生,11,2用户需求,用户需求是从用户角度描述的系统功能需求和非功能需求,通常只涉及系统的外部行为,而不涉及系统的 内部特性。 用户需求的描述- 原则:应该易于用户的理解。一般 不采用技术性很强的语言,而是采 用自然语言和直观图形相结合的方 式进行描述。- 问题:自然语言表达容易含糊和不准确.,12,用户需求:MiniLibrary, 举例: 用户可以通过Internet 随时查询图书信息和个人借阅情况,并 可以快捷地查找和浏览所需要的电子资料。 分析:上述需求描述包含了三个不同的需求 - 用户可以通过Internet 随时查询图书信息。 - 用户可以通过Internet 随时查询个人借阅情况。 用户可以通过Internet 快捷地查找和浏览所需要的电 子资料。 问题: -“随时”和“快捷”是对系统功能的约束,十分模糊。,13,3功能需求, 功能需求 - 描述系统应该提供的功能或服务,通常涉及用户 或外部系统 与该系统之间的交互,一般不考虑系 统的实现细节。 举例:MiniLibrary - 用户可以从图书资料库中查询或者选择其中的一个子集。 - 系统可以提供适当的浏览器供用户阅读电子文献。 用户每次借阅图书应该对应一个唯一的标识号,它被记录 到用户的帐户上。,15,4系统需求, 系统需求是更加详细地描述系统应该做什么,通常包括许多不同的分析模型,诸如对象模型、数据模型、 状态模型等。 系统需求模型的描述 结构化英语( PDL ) 可视化模型 形式化方法 系统需求主要是面向开发人员进行描述,是开发人员 进行软件设计的基础。,14,非功能需求, 非功能需求 从各个角度对系统的约束和限制,反映了应用对软件系统质量和特性的额外要求,例如响应时间、数据精度、可靠性、 开发过程的标准等。 举例:MiniLibrary - 系统应在 20 秒之内响应所有的请求。 - 系统每周 7 天、每天 24 小时都可以使用。 - 对于一个没有经验的用户而言,经过两个小时的 培训就可以 使用系统的所有功能。,16,非功能需求,非功能需求,过程需求,产品需求,外部需求,软件交付 实现方法 标准,互操作性 道德 法规 成本,可用性 软件性能,存贮空间,可靠性,可移植性 安全性,17,非功能需求,特性,度量指标,每秒处理的事务 用户或事件的响应时间 屏幕的刷新时间,速度,字节数 RAM 芯片数,存贮空间,培训时间 帮助页面数,可用性,平均失败时间 系统无效的概率 失败发生率,可靠性, 失败后的重启次数 事件引起失败的比例 失败时数据崩溃的可能性,容错性,18,需求的来源, 客户或用户 学院的高层管理者、项目投资人 - 系统管理员 - 教师、学生、图书管理员 标准图书资料的标准 政策或法律 图书资料管理规程、知识产权和版权保护等 系统或过程文档 - 当前手工管理的文件、表格、记录等 相关领域的专家,19,3.1.1 确定对系统的综合要求,1. 功能需求 这方面的需求指定系统必须提供的服务。通过需求分析应该划分出系统必须完成的所有功能。2. 性能需求 性能需求指定系统必须满足的定时约束或容量约束,通常包括速度(响应时间)、信息量速率、主存容量、磁盘容量、等方面的需求。3. 可靠性、可用性、安全性、保密性等需求 要求定量地指定系统的可靠性、可用性、安全性、保密性等。,思考题例: A银行长年开放100台ATM机,1000台用于商场酒店的POS机,B银行没有ATM和POS机只有10个每天8点上班17点下班的储蓄所。请问:A、B银行的可靠性可用性各应如何设置?4. 出错处理需求 在某些情况下,“出错处理”指的是当应用系统发现它自己犯下一个错误时所采取的行动。但是,应该有选择地提出这类出错处理需求。对应用系统本身错误的检测应该仅限于系统的关键部分,而且应该尽可能少,5. 接口需求 接口需求描述应用系统与它的环境通信的格式。常见的接口需求有:用户接口需求;硬件接口需求;软件接口需求;通信接口需求。6. 约束 常见的约束有:精度;工具和语言约束;设计约束;应该使用的标准;应该使用的硬件平台。7、用户界面需求,系统环境-多少台机器、 机型等接口;8、系统可移植性、可维护性等方面的需求。9. 将来可能提出的要求,这是软件需求分析的一个重要任务。通常采用建立数据流图、数据字典和数据模型的方法。 常用的图形工具有层次方框图HIPO和Warnier图,在本章第3.7节中将简要地介绍这两种图形工具。 软件系统经常使用各种长期保存的信息,为减少数据冗余,避免出现插入异常或删除异常,简化修改数据的过程,通常需要把数据结构规范化(见3.5节)。3.1.3 导出系统的逻辑模型 在分析综合中逐步细化软件功能划分各子功能,对系统数据域进行分析,建立新系统的逻辑模型(系统图.数据流图.数据字典.E-R图、UML模型图表示)。 常用方法是,面对结构化分析方法(SA)面向数据结构(JSP)方法,面向对象OOA方法。,3.1.2 分析系统的数据要求,3.1.4 修正系统开发计划,3.1.4 修正系统开发计划 根据在分析过程中获得的对系统的更深入更具体的了解,可以比较准确地估计系统的成本和进度,修正以前制定的开发计划。3.2 与用户沟通获取需求的方法需求获取的困难 用户通常并不真正知道自己希望计算机系统做什么 用户通常使用业务语言表达需求,开发人员缺乏相关的领域知识和经验,难以准确理解这些需求 不同的用户提出不同的需求,可能存在矛盾和冲突 管理者可能出于增加影响力的原因而提出特别的需求 由于经济和业务环境的动态性,需求经常发生变更,3.2 与用户沟通获取需求的方法,需求获取的关键在于通过与用户的沟通和交流,收集和理解用户的各项要求。 3.2.(1) 访谈-访问用户和用户领域的专家 (2) 需求讨论会 (3) 问卷调查 (4) 现场考察 3.2.(5) 快速建立软件原型 -原型化方法 (6)基于用例的方法,1.用户面谈, 用户面谈 一种理解商业功能和商业规则的最有效方法 面谈过程需要认真的计划和准备 面谈之前 确立面谈目的 确定要包括的相关用户 确定参加会议的项目小组成

温馨提示

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

评论

0/150

提交评论