《软件工程》课件第四章-需求分析23062.pptx





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

限制150内