软件工程及项目管理.ppt
《软件工程及项目管理.ppt》由会员分享,可在线阅读,更多相关《软件工程及项目管理.ppt(86页珍藏版)》请在三一办公上搜索。
1、第3章 软件需求分析,本讲目标,深刻理解需求分析阶段的概念及任务,熟练掌握ER图,HIOP图的画法。教学重点:需求分析阶段的任务、方法、具体任务。教学难点:写出需求规格说明书,3,软件生命周期,成功来之不易,4,软件项目失败的原因,5,需求错误的成本,6,软件需求的重要性,软件需求是决定软件开发是否成功的一个关键因素-需求分析可以帮助开发人员真正理解业务问题-需求分析是估算成本和进度的基础-需求分析可以避免建造错误的系统,从而减少不必要的浪费-软件规格说明有助于开发人员与客户在“系统应做什么”问题 上达成正式契约-需求分析形成了软件开发的基线,有助于管理软件的演化和 变更-软件需求是软件质量的
2、基础,为系统验收测试提供了标准,7,IEEE给软件需求的定义如下:1)用户解决问题或到达目标所需的条件或能力。2)系统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条件或能力3)一种反映上面1)或2)所描述的条件或能力的文档说明什么是软件需求分析:将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的需求规格说明的过程。,软件需求分析的重要性:软件需求分析是软件生存期决定性的一步,是软件开发的基础。分析员和用户:在分析软件需求和书写软件需求规格说明书的过程中,分析员和用户都起着关键的、必不可少的作用。,软件需求分析的基本任务是准确地回答“系统必须做什么?”,3.1
3、需求分析的任务,问题描述-某学院打算开发一个小型图书资料管理系统 MiniLibrary,该 系统基于Internet 实现教师和学生对各种图书资料的借阅、查 询和管理。-图书管理员负责管理各种图书资料,查询图书资料信息,并 进行图书的借阅管理。-注册用户可以通过Internet 随时查询图书资料信息和个人借阅 情况,预订目前借不到的图书资料,并可以快捷地查找和浏 览所需要的电子资料。-系统可以提供适当的浏览器供用户阅读电子文献资料。-要求用户界面友好,响应速度快,具有良好的可扩展性。,案例:小型图书资料管理系统,11,不同层次的软件需求,12,业务需求是组织或客户对于系统的高层次目标要求,定
4、义了项目的远景和范围,即确定软件产品的发展方向、功能范围、目标客户和价值来源。业务需求的内容-业务:产品属于哪类业务范畴?应该完成什么功 能?需要为 什么服务?-客户:产品为谁服务?目标客户是谁?-特性:产品区别于其他竞争产品的特性是什么?-价值:产品的价值体现在什么方面?-优先级:产品功能特性的优先级次序是什么?,1、业务需求,13,业务要求-各种图书资料的借阅、查询和管理;-使用计算机实现图书资料的日常管理,提高工作 效率和服务质量;-用户通过网络查询和浏览电子资料,改变原有的 借阅模式;-由于版权的限制,某些电子资料只能让用户浏览 和打印 而不能下载。客户与用户-学院的高层管理者-图书管
5、理员-借阅者:教师、学生,业务需求 MiniLibrary,14,用户需求是从用户角度描述的系统功能需求和非功能需求,通常只涉及系统的外部行为,而不涉及系统的 内部特性。用户需求的描述-原则:应该易于用户的理解。一般 不采用技术性很强的语言,而是采 用自然语言和直观图形相结合的方 式进行描述。-问题:自然语言表达容易含糊和不准确.,2、用户需求,15,举例:用户可以通过Internet 随时查询图书信息和个人借阅情况,并 可以快捷地查找和浏览所需要的电子资料。分析:上述需求描述包含了三个不同的需求-用户可以通过Internet 随时查询图书信息。-用户可以通过Internet 随时查询个人借阅
6、情况。-用户可以通过Internet 快捷地查找和浏览所需要的电 子资料。问题:-“随时”和“快捷”是对系统功能的约束,十分模糊。,用户需求:MiniLibrary,16,功能需求-描述系统应该提供的功能或服务,通常涉及用户 或外部系统 与该系统之间的交互,一般不考虑系 统的实现细节。举例:MiniLibrary-用户可以从图书资料库中查询或者选择其中的一个子集。-系统可以提供适当的浏览器供用户阅读电子文献。用户每次借阅图书应该对应一个唯一的标识号,它被记录 到用户的帐户上。,3、功能需求,17,非功能需求 从各个角度对系统的约束和限制,反映了应用对软件系统质量和特性的额外要求,例如响应时间、
7、数据精度、可靠性、开发过程的标准等。举例:MiniLibrary-系统应在 20 秒之内响应所有的请求。-系统每周 7 天、每天 24 小时都可以使用。-对于一个没有经验的用户而言,经过两个小时的 培训就可以 使用系统的所有功能。,非功能需求,18,非功能需求,19,非功能需求,20,系统需求是更加详细地描述系统应该做什么,通常包括许多不同的分析模型,诸如对象模型、数据模型、状态模型等。系统需求模型的描述 结构化英语(PDL)可视化模型-形式化方法 系统需求主要是面向开发人员进行描述,是开发人员 进行软件设计的基础。,4、系统需求,21,客户或用户-学院的高层管理者、项目投资人-系统管理员-教
8、师、学生、图书管理员 标准-图书资料的标准 政策或法律-图书资料管理规程、知识产权和版权保护等 系统或过程文档-当前手工管理的文件、表格、记录等 相关领域的专家,需求的来源,22,3.1.1 确定对系统的综合要求,1.功能需求这方面的需求指定系统必须提供的服务。通过需求分析应该划分出系统必须完成的所有功能。2.性能需求性能需求指定系统必须满足的定时约束或容量约束,通常包括速度(响应时间)、信息量速率、主存容量、磁盘容量、等方面的需求。3.可靠性、可用性、安全性、保密性等需求要求定量地指定系统的可靠性、可用性、安全性、保密性等。,4.出错处理需求在某些情况下,“出错处理”指的是当应用系统发现它自
9、己犯下一个错误时所采取的行动。但是,应该有选择地提出这类出错处理需求。对应用系统本身错误的检测应该仅限于系统的关键部分,而且应该尽可能少5.接口需求接口需求描述应用系统与它的环境通信的格式。常见的接口需求有:用户接口需求;硬件接口需求;软件接口需求;通信接口需求。,6.约束常见的约束有:精度;工具和语言约束;设计约束;应该使用的标准;应该使用的硬件平台。7、用户界面需求,系统环境-多少台机器、机型等接口;8、系统可移植性、可维护性等方面的需求。9.将来可能提出的要求,3.1.2 分析系统的数据要求,这是软件需求分析的一个重要任务。通常采用建立数据流图、数据字典和数据模型的方法。常用的图形工具有
10、层次方框图HIPO和Warnier图,在本章第3.7节中将简要地介绍这两种图形工具。软件系统经常使用各种长期保存的信息,为减少数据冗余,避免出现插入异常或删除异常,简化修改数据的过程,通常需要把数据结构规范化(见3.5节)。,在分析综合中逐步细化软件功能划分各子功能,对系统数据域进行分析,建立新系统的逻辑模型(系统图.数据流图.数据字典.E-R图、UML模型图表示)。常用方法是,面对结构化分析方法(SA)面向数据结构(JSP)方法,面向对象OOA方法。,3.1.3 导出系统的逻辑模型,根据在分析过程中获得的对系统的更深入更具体的了解,可以比较准确地估计系统的成本和进度,修正以前制定的开发计划。
11、,3.1.4 修正系统开发计划,3.2 与用户沟通获取需求的方法需求获取的困难 用户通常并不真正知道自己希望计算机系统做什么 用户通常使用业务语言表达需求,开发人员缺乏相关的领域知识和经验,难以准确理解这些需求 不同的用户提出不同的需求,可能存在矛盾和冲突 管理者可能出于增加影响力的原因而提出特别的需求 由于经济和业务环境的动态性,需求经常发生变更,3.2 与用户沟通获取需求的方法,需求获取的关键在于通过与用户的沟通和交流,收集和理解用户的各项要求。3.2.(1)访谈-访问用户和用户领域的专家(2)需求讨论会(3)问卷调查(4)现场考察(5)快速建立软件原型-原型化方法(6)基于用例的方法,3
12、1,一种理解商业功能和商业规则的最有效方法 面谈过程需要认真的计划和准备 面谈之前 确立面谈目的 确定要包括的相关用户 确定参加会议的项目小组成员 建立要讨论的问题和要点列表 复查有关文档和资料 确立时间和地点 通知所有参加者有关会议的目的、时间和地点,1.用户面谈,32,进行面谈 衣着得体,准时到达 寻找异常和错误情况 深入调查细节 详细记录 指出和记录下未回答条目和未解决问题 面谈之后 复查笔记的准确性、完整性和可理解性 把所收集的信息转化为适当的模型和文档 确定需要进一步澄清的问题域 适当的时候向参加会议的每一个人发一封感谢信,面谈过程需要认真的计划和准备(续),33,2.需求专题讨论会
13、,需求专题讨论会,-项目主要风险承担人在短暂而紧凑的时间段内集中在一起,一般为 1 至 2 天,与会者可以在应用需求上达成共识、对操作过程尽快取得统一意见。,优点,协助建立一支高效的团队,围绕项目成功的目标;-所有的风险承担人都畅所欲言;,促进风险承担人和开发团队之间达成共识;-揭露和解决那些妨碍项目成功的行政问题;-能够很快地产生初步的系统定义。,34,2.需求专题讨论会,专题讨论会准备,-参加会议人员:主持人、用户、技术人员、项目组人员-安排日程:通常在具有相应支持设备的专用房间进行,举行会议,-可能出现行政间的责备或冲突,主持人应掌握讨论气氛并控制会场。,-会议最重要的部分是自由讨论阶段
14、,这种技术非常符合专题 讨论会的气氛,并且营造一种创造性的和积极的氛围,同时可以获得所有相关者的意见。,-注意分配会议时间,记录所有言论。,35,2.需求专题讨论会,36,3.问卷调查,问卷调查,-可用于确认假设和收集统计倾向数据-问卷需要快速回答,允许匿名方式 存在问题,-相关的问题不能事先决定,问题背后的假设对答案造成偏颇,如这符合你的期望吗?-难以探索一些新领域,-难以继续用户的模糊响应,在完成最初的面谈和分析后,可作为一项协作技术可以收到良好的效果。,37,4.现场考察,现场观察商业过程和工作流程,-掌握用户如何实际使用一个系统以及到底用户需要哪些信 息,最好的办法是亲自观察用户是如何
15、完成实际工作的。,一般方法,-对办公室进行快速浏览,了解布局、设备要求和使用、工作 流总体情况。,-安排几个小时观察用户是如何实际完成他们的工作,理解用户实际使用计算机系统和处理事务的细节。,像用户一样接受训练和做实际工作,发现关键问题和瓶颈。注意:观察可能使用户紧张。,38,5.原型化方法,原型化方法,-一个软件原型是所提出的新产品的部分实现,帮助开发人 员、用户以及客户更好地理解系统的需求,它比开发人员常 用的技术术语更易于理解。,建立原型的原因,-解决在产品开发的早期阶段需求不确定的问题,用户、经理 和其他非技术项目风险承担者发现在确定和开发产品时,原 型可以使他们的想象更具体化。,基于
16、 WEB 的应用系统原型,-使用 HTML 进行界面设计,6.基于用例的方法,用例建模是以任务和用户为中心的,开发和描述用户需要系统做什么。,用例建模的步骤,-确定系统的参与者-确定场景,-确定系统用例,-确定用例之间的关系-编写用例描述文档,39,3.3 分析建模与规格说明 需求分析的步骤,3.3.1分析建模1、问题识别 双方确定对问题的综合需求。基于项目有关的软件的功能、性能、环境、用户界面、可靠性、安全性、保密性、可移植性、可维护性、等方面的需求。,2、分析和综合导出软件的逻辑模型 1)分析人员对获取的需求进行一致的分析检查,逐步细化软件功能,划分各子功能;2)对系统数据域进行分解,分配
17、到各子功能上;3)用图文结合的形式,建立新系统的逻辑模型和物理视图。物理视图指系统数据输入输出使用什么设备或方式,例键盘输入、数据扫描、数据传送等方式。,3.3.2 软件需求规格说明 软件需求规格说明书,是需求分析阶段得出的最主要的文档。补充:需求分析阶段要编写文档:1)编写“需求规格说明书”2)编写初步用户手册 3)编写“确认测试计划”(为系统完成后确认验收的依据).4)修改完善软件开发计划 需求规格说明书写法见实验指导书,应该包括在SRS(需求规格说明)中的内容-功能:软件应该提供什么功能?外部接口:软件如何与人、系统硬件和其他系统等进行相互 作用?-性能:软件系统在运行速度、可用性、响应
18、时间、恢复时间 等方面有什么要求?-特性:软件系统在可移植性、可维护性、安全性等方面有什 么考虑?设计约束:是否存在必要的标准、开发语言、数据库、资源 限制、运行环境等因素的影响和策略?,不应该包括在SRS 中的内容-项目开发计划:如成本、人员、进度、工具、方法等-产品保证计划:如配置管理、验证与测试、质量保证等-软件设计细节:需求通常用于表达“做什么”,而不描述“如何做”。,编写需求规格说明的原则,原则 1:只描述“做什么”而无须描述“怎么做”原则 2:必须说明运行环境 原则 3:考虑用户、分析员和实现者的交流-对形式化和自然语言之间作出恰当的选择-明确的理解最重要,不存在十全十美的软件规格
19、说明书,编写需求规格说明的原则,原则 4:力求寻找到恰如其分的需求详细程度-一个有益的原则就是编写单个的可测试需求文档-建议将可测试的需求作为衡量软件产品规模大小的尺度 原则 5:文档段落不宜太长 简短-记住:不要在需求说明中使用“和/或”、“等等”之类的词原则 6:避免使用模糊的、主观的术语-如用户友好、容易、简单、迅速、有效、许多、最新技术、优越的、可接受的、最大化、最小化、提高等-不可验证 建议:采用一种标准的SRS 模板,需求工程,需求工程是应用已证实有效的原理和方法,并通过合 适的工具和符号,系统地描述出待开发系统及其行为 特征和相关约束。,持续进行的需求管理 需求,需求获取,需求分
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 项目 管理
链接地址:https://www.31ppt.com/p-6610839.html