《软件工程》课件第四章-需求分析.pptx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《《软件工程》课件第四章-需求分析.pptx》由会员分享,可在线阅读,更多相关《《软件工程》课件第四章-需求分析.pptx(170页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2.1 2.1 系统分析系统分析2.2 2.2 需求分析需求分析2.3 2.3 结构化分析方法结构化分析方法2.4 2.4 快速原型化方法快速原型化方法2.5 2.5 需求定义与评审需求定义与评审、获取需求、获取需求? ?基于计算机的系统的系统元素包括硬件、软件、人、基于计算机的系统的系统元素包括硬件、软件、人、数据库、文档和过程。数据库、文档和过程。系统分析的目标系统分析的目标1) 1)识别用户要求识别用户要求2) 2)评价系统的可行性,进行经济和技术分析评价系统的可行性,进行经济和技术分析3) 3)把功能分配给硬件、软件、人、数据库和其它系统把功能分配给硬件、软件、人、数据库和其它系统元素
2、元素4) 4)建立成本和进度限制建立成本和进度限制5) 5)生成系统规格说明生成系统规格说明分析员必须考虑以下问题:分析员必须考虑以下问题:识别希望的功能和性能范围识别希望的功能和性能范围; ; 确定系统的功能、性能、约束和接口确定系统的功能、性能、约束和接口; ;功能功能和和性能性能v 可靠性可靠性和和质量质量v 总的系统目标总的系统目标v 成本成本与与进度限制进度限制制造需求制造需求v 市场与竞争情况市场与竞争情况v 有效的技术有效的技术v 将来可能的扩充将来可能的扩充 需求分析的过程是开发人员与用户共同协商,需求分析的过程是开发人员与用户共同协商,准确地定义准确地定义未来系统未来系统的目
3、标,确定为了满足用户的的目标,确定为了满足用户的需求系统必须需求系统必须做什么做什么。并且使用软件开发人员和用。并且使用软件开发人员和用户都能理解的语言准确地表达出来,即用户都能理解的语言准确地表达出来,即用 规范的形式准确地表达用户的需求。规范的形式准确地表达用户的需求。 “喂,是喂,是JackJack吗?我是人力资源部的吗?我是人力资源部的Tom,Tom,我们在使用我们在使用你编写的职员系统时遇到一个问题,一个职员想把她你编写的职员系统时遇到一个问题,一个职员想把她的名字改成的名字改成Sparkle Starlight,Sparkle Starlight,而系统不允许,你能而系统不允许,你
4、能帮帮忙吗?帮帮忙吗?”“她嫁给了一个姓她嫁给了一个姓StarlightStarlight的人吗?的人吗?”JackJack问道。问道。 “不,她没有结婚,而仅仅是要更改她的名不,她没有结婚,而仅仅是要更改她的名字,字,”TomTom回答,回答,“就是这问题,好象我们只能在婚姻就是这问题,好象我们只能在婚姻状况改变时才能更改姓名。状况改变时才能更改姓名。”“当然这样,我从没想到谁会莫名其妙地更改姓名,当然这样,我从没想到谁会莫名其妙地更改姓名,我也不记得你曾告诉我系统需要处理这样的事我也不记得你曾告诉我系统需要处理这样的事情。情。”JackJack说。说。 TomTom说:说:“我想你当然知道
5、每个人只要愿意都可以我想你当然知道每个人只要愿意都可以随时合法更改其姓名。但不管怎样,你在本周五之前随时合法更改其姓名。但不管怎样,你在本周五之前解决这问题,否则解决这问题,否则SparkleSparkle不能支付她的帐单。不能支付她的帐单。”“这不是我的错!我现在正忙着做一个新的系统,这不是我的错!我现在正忙着做一个新的系统,还要做一些别的需求变更请求。很抱歉,只能下周才还要做一些别的需求变更请求。很抱歉,只能下周才能修改。能修改。”u影响影响:作为客户,很恼火,因为软件系统不能进行:作为客户,很恼火,因为软件系统不能进行一项基本的操作。哪怕开发者给其解决了,也不会感一项基本的操作。哪怕开发
6、者给其解决了,也不会感谢他。作为开发者,也很烦人,迫使你增加了当前的谢他。作为开发者,也很烦人,迫使你增加了当前的工作,又要你优先处理。工作,又要你优先处理。u原因原因:由于收集、编写、协商、修改需求过程的手:由于收集、编写、协商、修改需求过程的手续或方法失误带来的。这里是非正式信息的收集、未续或方法失误带来的。这里是非正式信息的收集、未确定或不明确的功能、未发现或未经交流的假设、不确定或不明确的功能、未发现或未经交流的假设、不完善的需求文档,以及突发的需求变更过程所造成的。完善的需求文档,以及突发的需求变更过程所造成的。u解决办法解决办法:重视需求分析,派经验丰富的人员做,:重视需求分析,派
7、经验丰富的人员做,最大程度的减少类似情况发生。最大程度的减少类似情况发生。需求分析是一项软件工程活动,其目的是:需求分析是一项软件工程活动,其目的是:清楚地理解所要解决的问题,完整地获取用户要求清楚地理解所要解决的问题,完整地获取用户要求;刻划出软件的功能和性能;刻划出软件的功能和性能;指明软件与其他系统元素的接口;指明软件与其他系统元素的接口;建立软件必须满足的约束。建立软件必须满足的约束。1. 1. 软件需求分析的目的软件需求分析的目的 老问题:老问题: 问题的复杂性问题的复杂性交流障碍(讲究技巧和原则)交流障碍(讲究技巧和原则)不完备性和不一致性不完备性和不一致性需求易变性(动态性)需求
8、易变性(动态性)派经验丰富的派经验丰富的人去干!人去干!系统分析员系统分析员1.1.问题识别问题识别:双方确定问题的综合需求。双方确定问题的综合需求。功能需求:功能需求:系统必须做什么?系统必须做什么? 性能需求性能需求:做得怎样?:做得怎样?例:例:response time , memory , back-up memory , response time , memory , back-up memory , 环境需求环境需求:运行环境、软硬件配置等。:运行环境、软硬件配置等。用户界面需求用户界面需求可靠性、安全性、保密性、可移植性和可维护性可靠性、安全性、保密性、可移植性和可维护性等方
9、面的需求。等方面的需求。将来可能提出的要求将来可能提出的要求共同理解!共同理解!2.2.分析与综合分析与综合:导出软件的逻辑模型。对获取的需求导出软件的逻辑模型。对获取的需求进行一致性的分析检查,在分析、综合中逐步细化进行一致性的分析检查,在分析、综合中逐步细化软件功能,划分成各个子功能。也对数据域进行分软件功能,划分成各个子功能。也对数据域进行分解,分配到各个子功能上,并用图文结合的形式,解,分配到各个子功能上,并用图文结合的形式,建立起新系统的逻辑模型。建立起新系统的逻辑模型。3.3.编写文档:编写文档: 编写需求说明书编写需求说明书 编写初步用户使用手册编写初步用户使用手册 编写确认测试
10、计划编写确认测试计划 修改完善项目开发计划修改完善项目开发计划用户需求报告用户需求报告需求规格说明书需求规格说明书对外的,验收依据对外的,验收依据对内的,设计依据对内的,设计依据是合同的产物是合同的产物是立项建议书的产是立项建议书的产物物由用户需求报告可产生需求规格说明书由用户需求报告可产生需求规格说明书当前系统,目标系当前系统,目标系统统目标系统(数据字目标系统(数据字典,算法分析)典,算法分析)需求分析研究的对象是需求分析研究的对象是用户的要求用户的要求。必须必须全面理解全面理解用户的各项要求,用户的各项要求,准确表达准确表达被接受的用户要求。被接受的用户要求。只有经过确切描述的软件需求才
11、能成为软只有经过确切描述的软件需求才能成为软件设计的基础。件设计的基础。4.4.技术审查和管理复审技术审查和管理复审验证需求的一致性验证需求的一致性验证需求的完整性验证需求的完整性验证需求的现实性验证需求的现实性验证需求的有效性验证需求的有效性方法:方法: 人工审查人工审查 开发原型系统探索型开发原型系统探索型 使用软件工具使用软件工具 完整性、一致性完整性、一致性基线基线4.4.技术审查和管理复审技术审查和管理复审 软件需求分析的原则软件需求分析的原则需要能够表达和理解问题的信息域和功能域需要能够表达和理解问题的信息域和功能域u 信息流:数据和控制通过一个系统时的变化方式。两信息流:数据和控
12、制通过一个系统时的变化方式。两个功能之间的数据个功能之间的数据/ /控制传递就确定了功能间的接口。控制传递就确定了功能间的接口。 u 信息内容:单个数据或控制对象,它们构成了某个更信息内容:单个数据或控制对象,它们构成了某个更大的由软件变换生成的信息的集合。大的由软件变换生成的信息的集合。u 信息结构:各种数据和控制项的内部组织信息结构:各种数据和控制项的内部组织。u描述作为外部事件结果的软件行为,建立行为模型描述作为外部事件结果的软件行为,建立行为模型u对描述信息、功能和行为的模型进行分解,用层次的对描述信息、功能和行为的模型进行分解,用层次的方式展示细节方式展示细节需求获取需求获取需求提炼
13、:需求提炼:分析建模分析建模( (导出软件逻辑模型导出软件逻辑模型) )需求描述:编写需求描述:编写 需求验证需求验证方法:进行调查研究方法:进行调查研究w调查研究的目的:是了解用户的真正需要调查研究的目的:是了解用户的真正需要w调查研究的方法调查研究的方法访谈:正式访谈和非正式访谈。访谈:正式访谈和非正式访谈。分发调查表。分发调查表。开会开会 讨论讨论 确认的方法。确认的方法。编号编号提出问题提出问题1 1您在哪个部门工作?您在哪个部门工作?2 2出版业务流程是什么?出版业务流程是什么?3 3您每日都处理那些文件、数据、报表?您每日都处理那些文件、数据、报表?4 4工作中手工处理特别麻烦的事
14、情是什么?工作中手工处理特别麻烦的事情是什么?5 5工作中手工处理什么问题解决不了?影响效率的问题有工作中手工处理什么问题解决不了?影响效率的问题有哪些?哪些?6 6您认为提高工作效率,节省工作时间,减轻工作强度可您认为提高工作效率,节省工作时间,减轻工作强度可采取哪些办法?采取哪些办法?编编号号提出问题提出问题7 7您的部门需要成本核算和统计的内容有哪些?您的部门需要成本核算和统计的内容有哪些?8 8您的部门采用计算机管理工作情况如何?您的部门采用计算机管理工作情况如何?9 9如何改进业务流程使之更合理?如何改进业务流程使之更合理?1010哪些问题是目前传统手工方法根本无法解决的?哪些问题是
15、目前传统手工方法根本无法解决的?1111出版社计算机管理信息系统需要解决什么问题?出版社计算机管理信息系统需要解决什么问题?1) 1)业务需求业务需求 反映了组织或客户对系统、产品高层次的反映了组织或客户对系统、产品高层次的目标要求,它们一般在项目视图和范围文档中给予说目标要求,它们一般在项目视图和范围文档中给予说明。明。2) 2)用户需求用户需求 描述用户使用软件需要完成哪些任务,它描述用户使用软件需要完成哪些任务,它们可通过使用实例图或脚本说明加以阐明。们可通过使用实例图或脚本说明加以阐明。3) 3)功能功能非功能需求非功能需求 定义了开发者必须实现的软件功定义了开发者必须实现的软件功能,
16、而非功能需求如表所示能,而非功能需求如表所示: : 性性能能要要求求实实时时性性; 其其他他时时间间要要求求, 如如响响应应时时间间、 处处理理时时间间、包包传传送送时时间间等等; 资资源源配配置置要要求求; 精精确确度度、处处理理量量等等要要求求可可靠靠性性要要求求有有效效性性; 数数据据完完整整性性安安全全保保密密要要求求 安安全全性性; 保保密密性性运运行行要要求求使使用用频频度度、 运运行行期期限限; 控控制制方方式式; 对对操操作作员员要要求求产产品品要要求求物物理理要要求求系系统统的的规规模模等等开开发发类类型型实实用用性性开开发发或或试试验验性性开开发发项项目目估估算算开开发发工
17、工作作量量估估计计开开发发方方法法质质量量控控制制标标准准; 里里程程碑碑和和评评审审; 验验收收标标准准优优先先顺顺序序权权衡衡各各种种质质量量目目标标要要求求,排排定定优优先先实实现现次次序序过过程程要要求求可可维维护护性性可可理理解解性性、可可测测试试性性、可可修修改改性性、可可移移植植性性 (1) (1) 功能功能(2) (2) 性能性能(3) (3) 环境环境(4) (4) 界面界面(5) (5) 用户或人的因素用户或人的因素(6) (6) 文档文档 (7) (7) 数据数据(8) (8) 资源资源(9) (9) 安全保密安全保密(10)(10)软件成本消耗与开发进度软件成本消耗与开
18、发进度(11)(11)质量保证质量保证系统做什么?系统何时做什么?系统做什么?系统何时做什么?系统何时及如何修改或升级?系统何时及如何修改或升级?软件开发的技术性指标。例软件开发的技术性指标。例如:存储容量限制、执行速如:存储容量限制、执行速度、相应时间、吞吐量度、相应时间、吞吐量机型、外设、接口、地点、机型、外设、接口、地点、分布、温度、湿度、磁场干扰等。分布、温度、湿度、磁场干扰等。操作系统、网络、数据库操作系统、网络、数据库有来自其它系统的输入吗?有来自其它系统的输入吗?到自其它系统的输出吗?到自其它系统的输出吗?对数据格式有规定吗?对数据格式有规定吗?对数据存储介质有规定吗?对数据存储
19、介质有规定吗?输入、输出数据的格式?接收、发送输入、输出数据的格式?接收、发送数据的频率?数据的准确性和精度?数据的频率?数据的准确性和精度?数据流量?数据需保持的时间?数据流量?数据需保持的时间?软件运行时所需的数据、软件。软件运行时所需的数据、软件。内存空间等资源。软件开发、内存空间等资源。软件开发、维护所需的人力、支撑软件、维护所需的人力、支撑软件、开发设备等开发设备等需对访问系统或系统信息加以控需对访问系统或系统信息加以控 制吗?如何隔制吗?如何隔离用户之间的数据?用户程序如何与其它程序离用户之间的数据?用户程序如何与其它程序和操作?系统隔离?系统备份要求?和操作?系统隔离?系统备份要
20、求?开发有规定的时间表吗?软开发有规定的时间表吗?软硬件投资有无限制?硬件投资有无限制?系统的可靠性要求?系统必须监测和隔系统的可靠性要求?系统必须监测和隔离错误吗?规定系统平均出错时间?出离错误吗?规定系统平均出错时间?出错后,重启系统允许的时间?系统变化错后,重启系统允许的时间?系统变化如何反映到设计中?维护是否包括对系如何反映到设计中?维护是否包括对系统的改进?系统的可移植性?统的改进?系统的可移植性?需求获取包括以下活动:需求获取包括以下活动:1) 1)发现和分析问题发现和分析问题 发现问题症结,并分析问题的原发现问题症结,并分析问题的原因因/ /结果关系。结果关系。2) 2)获取需求
21、获取需求 根据对问题的理解定义需求。根据对问题的理解定义需求。a) a)使用调查研究方法收集信息;使用调查研究方法收集信息;b)b)遵循需求获取框架,按照三个成分观察:即数据遵循需求获取框架,按照三个成分观察:即数据、过程和接口。、过程和接口。3) 3)需求归档需求归档 以草稿形式归档调查结果。形式有用例以草稿形式归档调查结果。形式有用例、决策表、需求表等。、决策表、需求表等。好的需求获取技术,对于规范需求获取活动,高效准好的需求获取技术,对于规范需求获取活动,高效准确地获取需求定义,是十分重要的。确地获取需求定义,是十分重要的。好的需求获取技术,应具有如下基本特征:好的需求获取技术,应具有如
22、下基本特征:提供便于沟通的提供便于沟通的工具工具,如易于理解的语言和直观的,如易于理解的语言和直观的图表;图表;提供定义系统提供定义系统边界边界(交互)的(交互)的方法方法;提供支持抽象的提供支持抽象的机制机制,如,如“分解分解”、“映射映射”等;等;软件工程29鼓励分析员使用面向问题的术语思考问题,编写文档鼓励分析员使用面向问题的术语思考问题,编写文档;为分析员提供多种可供选择的解决方案;为分析员提供多种可供选择的解决方案;适应需求的变化。适应需求的变化。适于以上特征的需求获取方法:适于以上特征的需求获取方法:基于数据流图的结构化分析方法;基于数据流图的结构化分析方法;基于用例(基于用例(u
23、se caseuse case)的建模方法。)的建模方法。需求获取技术的关键点在于:需求获取技术的关键点在于:a. a.深入浅出深入浅出 需求获取要尽可能全面、细致。需求获取要尽可能全面、细致。软件工程30需求获取技术的关键点在于:需求获取技术的关键点在于:a. a.深入浅出深入浅出 需求获取要尽可能全面、细致。需求获取要尽可能全面、细致。 获取的需求是个全集,系统真正实现的是个子集。获取的需求是个全集,系统真正实现的是个子集。分析时的调研内容并不都纳入到新系统中,目的在于分析时的调研内容并不都纳入到新系统中,目的在于以后的扩充。以后的扩充。b. b.以流程为主线以流程为主线 在与用户交流的过
24、程中,应该用流程将所有的内在与用户交流的过程中,应该用流程将所有的内容串起来。如信息、组织结构、处理规则等。这样便容串起来。如信息、组织结构、处理规则等。这样便于交流沟通。于交流沟通。流程描述有宏观,也有微观。既要强调总体的业务流流程描述有宏观,也有微观。既要强调总体的业务流程、全生存周期的业务流程,又要对流程细化,有分程、全生存周期的业务流程,又要对流程细化,有分支的业务流程。支的业务流程。抽象和分解是在人们认识世界和改造世界的长期实践中总抽象和分解是在人们认识世界和改造世界的长期实践中总结出来的行之有效的原则,在需求获取的过程中需遵循的结出来的行之有效的原则,在需求获取的过程中需遵循的三个
25、原则:三个原则:a. a.分解:捕获问题空间的分解:捕获问题空间的整体整体 部分关系部分关系。 如问题子问题分解;如问题子问题分解;b. b. 抽象:捕获问题空间的抽象:捕获问题空间的一般化一般化 特殊化关系特殊化关系。 如问题的不同变型;如问题的不同变型;c. c. 投影:捕获问题空间的投影:捕获问题空间的多维视图多维视图。 即从不同角度考察。即从不同角度考察。软件开发项目和组织文化的不同,对于需求开发没有软件开发项目和组织文化的不同,对于需求开发没有一个简单的、公式化的途径。一个简单的、公式化的途径。下面下面9 9个步骤,针对个步骤,针对信息系统信息系统的需求获取。的需求获取。1) 1)定
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 课件 第四 需求 分析
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内