第三讲 需求分析基础.ppt
《第三讲 需求分析基础.ppt》由会员分享,可在线阅读,更多相关《第三讲 需求分析基础.ppt(96页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、西北大学信息学院西北大学信息学院需求分析需求分析u需求分析是介于系统分析和软件设计阶段之间需求分析是介于系统分析和软件设计阶段之间的桥梁。一方面,需求分析以系统规格说明和的桥梁。一方面,需求分析以系统规格说明和项目规划作为分析活动的出发点,并从软件角项目规划作为分析活动的出发点,并从软件角度对他们进行检查与调整;另一方面,需求规度对他们进行检查与调整;另一方面,需求规格说明又是软件设计、实现、测试直至维护的格说明又是软件设计、实现、测试直至维护的主要基础主要基础主要主要内内容容需求获取的技术需求获取的技术 需求建模需求建模 需求分析的任务和目标需求分析的任务和目标结构化的分析方法结构化的分析方
2、法 LOGO需求规格说明需求规格说明u需求分析阶段研究的对象是软件项目的用户要需求分析阶段研究的对象是软件项目的用户要求。一方面,必须全面理解用户的各项要求,求。一方面,必须全面理解用户的各项要求,但又不能全盘接受所有的要求,另一方面,但又不能全盘接受所有的要求,另一方面,要准确地表达被接受的用户要求。只有经过要准确地表达被接受的用户要求。只有经过确切描述的软件需求才能成为软件设计的基确切描述的软件需求才能成为软件设计的基础。础。需求的层次需求的层次u业务层次业务层次:是组织或客户对于系统的高层次目标要求,定义了:是组织或客户对于系统的高层次目标要求,定义了项项目目的远景和范围,即确定软件产品
3、的发展方向、功能范围、目的远景和范围,即确定软件产品的发展方向、功能范围、目标客户和价值来源。这种需求通常来源于标客户和价值来源。这种需求通常来源于项目项目投资人、购买产投资人、购买产品的客户、市场营销部门或产品策划部门,一般使用远景和范品的客户、市场营销部门或产品策划部门,一般使用远景和范围文档进行记录。围文档进行记录。u用户层次用户层次:用户需求是从用户角度描述的系统功能需求和非功能:用户需求是从用户角度描述的系统功能需求和非功能需求,通常只涉及系统的外部行为,而不涉及系统的内部特性。需求,通常只涉及系统的外部行为,而不涉及系统的内部特性。用户需求的描述应该易于用户的理解,一般不采用技术性
4、很强用户需求的描述应该易于用户的理解,一般不采用技术性很强的语言,而是采用自然语言和直观图形相结合的方式进行描述。的语言,而是采用自然语言和直观图形相结合的方式进行描述。u功能需求功能需求:功能需求描述系统应该提供的功能或服务,通常涉及:功能需求描述系统应该提供的功能或服务,通常涉及用户或外部系统与该系统之间的交互,一般不考虑系统的实现用户或外部系统与该系统之间的交互,一般不考虑系统的实现细节。非功能需求是从各个角度对系统的约束和限制,反映了细节。非功能需求是从各个角度对系统的约束和限制,反映了应用对软件系统质量和特性的额外要求。应用对软件系统质量和特性的额外要求。需求的层次需求的层次u系统需
5、求:系统需求:是描述整个系统体系结构的高层需求,它可以只包含是描述整个系统体系结构的高层需求,它可以只包含软件子系统,也可以同时包含软件和硬件子系统,甚至某些系软件子系统,也可以同时包含软件和硬件子系统,甚至某些系统功能可能要由人完成。系统需求是更加详细地描述系统应该统功能可能要由人完成。系统需求是更加详细地描述系统应该做什么,通常包括许多分析模型,诸如对象模型、数据模型、做什么,通常包括许多分析模型,诸如对象模型、数据模型、状态模型等,它是开发人员进行软件设计的基础。状态模型等,它是开发人员进行软件设计的基础。u非功能需求:非功能需求:包括过程需求、产品需求和外部需求等类型,其中包括过程需求
6、、产品需求和外部需求等类型,其中过程需求包含交付、实现方法和标准等方面的需求,产品需求过程需求包含交付、实现方法和标准等方面的需求,产品需求包含性能、可用性、实用性、可靠性、可移植性、包含性能、可用性、实用性、可靠性、可移植性、安全安全性、容性、容错性等方面的需求,外部需求有法规、成本、互操作性等需求。错性等方面的需求,外部需求有法规、成本、互操作性等需求。用户的需求分类用户的需求分类u基基本本的的需需求求:用用户户明明确确提提出出的的系系统统应应达达到到的的目目标标,如如果果产产品品实实现现了了这这些些需需求求,用用户户会会感感到到满满意意。例例如如,用用户户所所要要求求的的图图形形界界面面
7、的的类类型型,特特定定的的系系统统功功能能,以以及及指定的性能。指定的性能。u期期望望的的需需求求:这这些些需需求求隐隐含含于于产产品品或或系系统统中中,用用户户没没有有明明确确的的陈陈述述。但但如如果果没没有有实实现现这这些些需需求求,用用户户会会感感到到失失望望。例例如如产产品品的的易易于于安安装装,超超负负载载时时的的正正确确性性和和可靠性等。可靠性等。u感感兴兴趣趣的的需需求求:这这些些需需求求在在用用户户的的期期望望之之外外,但但如如果果被被实实现现了了,用用户户会会感感到到非非常常满满意意。例例如如字字处处理理软软件件除除了标准的特性之外,提供了许多页面的排列功能。了标准的特性之外
8、,提供了许多页面的排列功能。需求分析的任务需求分析的任务u深入描述软件的功能和性能深入描述软件的功能和性能深入描述软件的功能和性能深入描述软件的功能和性能u确定软件设计的约束和软件同其它系统元素的确定软件设计的约束和软件同其它系统元素的确定软件设计的约束和软件同其它系统元素的确定软件设计的约束和软件同其它系统元素的接口细节接口细节接口细节接口细节u定义软件的其它有效性需求定义软件的其它有效性需求定义软件的其它有效性需求定义软件的其它有效性需求n n通常软件开发项目是要实现目标系统的物理模型。作通常软件开发项目是要实现目标系统的物理模型。作通常软件开发项目是要实现目标系统的物理模型。作通常软件开
9、发项目是要实现目标系统的物理模型。作为目标系统的参考,需求分析的任务就是借助于当前为目标系统的参考,需求分析的任务就是借助于当前为目标系统的参考,需求分析的任务就是借助于当前为目标系统的参考,需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统的逻辑模型导出目标系统的逻辑模型,解决目标系统的逻辑模型导出目标系统的逻辑模型,解决目标系统的逻辑模型导出目标系统的逻辑模型,解决目标系统的系统的系统的系统的“做什么做什么做什么做什么”的问题的问题的问题的问题 需求分析的原则需求分析的原则u必须能够表达和理解问题的数据域和功能域必须能够表达和理解问题的数据域和功能域u必须按自顶
10、向下、逐层分解的方式对问题进必须按自顶向下、逐层分解的方式对问题进行分解和不断细化行分解和不断细化 u分析过程中不应该关注问题的实现细节分析过程中不应该关注问题的实现细节需求分析的过程需求分析的过程 u问题识别问题识别 n首先系统分析人员要确定对目标系统的综合要求,首先系统分析人员要确定对目标系统的综合要求,即软件的需求。并提出这些需求即软件的需求。并提出这些需求实现条件实现条件,以及需,以及需求求应达到的标准应达到的标准。这些需求包括功能需求、性能需。这些需求包括功能需求、性能需求、环境需求、可靠性需求、安全保密要求、用户求、环境需求、可靠性需求、安全保密要求、用户界面需求、资源使用需求、软
11、件成本消耗与开发进界面需求、资源使用需求、软件成本消耗与开发进度需求,并预先估计以后系统可能达到的目标度需求,并预先估计以后系统可能达到的目标需求分析的过程需求分析的过程n n问题识别的另一项工作是建立分析所需要的通信途问题识别的另一项工作是建立分析所需要的通信途问题识别的另一项工作是建立分析所需要的通信途问题识别的另一项工作是建立分析所需要的通信途径,以保证能顺利地对问题进行分析。径,以保证能顺利地对问题进行分析。径,以保证能顺利地对问题进行分析。径,以保证能顺利地对问题进行分析。需求分析的过程需求分析的过程u分析与综合分析与综合 n n从从从从信息流信息流信息流信息流和和和和信息结构信息结
12、构信息结构信息结构出发,出发,出发,出发,逐步细化所有的软件功逐步细化所有的软件功逐步细化所有的软件功逐步细化所有的软件功能能能能,找出,找出,找出,找出系统各元素之间的联系系统各元素之间的联系系统各元素之间的联系系统各元素之间的联系、接口特性接口特性接口特性接口特性和和和和设计设计设计设计上的约束上的约束上的约束上的约束,分析它们是否满足功能要求,是否合理。,分析它们是否满足功能要求,是否合理。,分析它们是否满足功能要求,是否合理。,分析它们是否满足功能要求,是否合理。剔除其不合理的部分,增加其需要部分。最终综合剔除其不合理的部分,增加其需要部分。最终综合剔除其不合理的部分,增加其需要部分。
13、最终综合剔除其不合理的部分,增加其需要部分。最终综合成系统的解决方案,给出成系统的解决方案,给出成系统的解决方案,给出成系统的解决方案,给出目标系统的详细逻辑模型目标系统的详细逻辑模型目标系统的详细逻辑模型目标系统的详细逻辑模型。需求分析的过程需求分析的过程u需求分析评审需求分析评审n作为需求分析阶段工作的复查手段,应该对功能的作为需求分析阶段工作的复查手段,应该对功能的正确性、文档的一致性、完备性、准确性和清晰性,正确性、文档的一致性、完备性、准确性和清晰性,以及其它需求给予评价。以及其它需求给予评价。n n系统定义的目标是否与用户的要求一致系统定义的目标是否与用户的要求一致系统定义的目标是
14、否与用户的要求一致系统定义的目标是否与用户的要求一致;n n系统需求分析阶段提供的文档资料是否齐全系统需求分析阶段提供的文档资料是否齐全系统需求分析阶段提供的文档资料是否齐全系统需求分析阶段提供的文档资料是否齐全;n n文档中的所有描述是否完整、清晰、准确反映用户要求文档中的所有描述是否完整、清晰、准确反映用户要求文档中的所有描述是否完整、清晰、准确反映用户要求文档中的所有描述是否完整、清晰、准确反映用户要求;n n与所有其它系统成分的重要接口是否都已经描述与所有其它系统成分的重要接口是否都已经描述与所有其它系统成分的重要接口是否都已经描述与所有其它系统成分的重要接口是否都已经描述;需求分析的
15、过程需求分析的过程n n被开发项目的数据流与数据结构是否足够,确定被开发项目的数据流与数据结构是否足够,确定被开发项目的数据流与数据结构是否足够,确定被开发项目的数据流与数据结构是否足够,确定;n n所有图表是否清楚,在不补充说明时能否理解所有图表是否清楚,在不补充说明时能否理解所有图表是否清楚,在不补充说明时能否理解所有图表是否清楚,在不补充说明时能否理解;n n主要功能是否已包括在规定的软件范围之内,是否都已主要功能是否已包括在规定的软件范围之内,是否都已主要功能是否已包括在规定的软件范围之内,是否都已主要功能是否已包括在规定的软件范围之内,是否都已充分说明充分说明充分说明充分说明;n n
16、设计的约束条件或限制条件是否符合实际设计的约束条件或限制条件是否符合实际设计的约束条件或限制条件是否符合实际设计的约束条件或限制条件是否符合实际;n n开发的技术风险是什么开发的技术风险是什么开发的技术风险是什么开发的技术风险是什么;是否考虑过软件需求的其它方案是否考虑过软件需求的其它方案是否考虑过软件需求的其它方案是否考虑过软件需求的其它方案;n n是否考虑过将来可能会提出的软件需求是否考虑过将来可能会提出的软件需求是否考虑过将来可能会提出的软件需求是否考虑过将来可能会提出的软件需求;n n是否详细制定了检验标准,它们能否对系统定义是否成是否详细制定了检验标准,它们能否对系统定义是否成是否详
17、细制定了检验标准,它们能否对系统定义是否成是否详细制定了检验标准,它们能否对系统定义是否成功进行确认功进行确认功进行确认功进行确认;需求的获取技术需求的获取技术u如果需求获取不正确或在需求开发过程中很多如果需求获取不正确或在需求开发过程中很多功能没有挖掘出来的话,那么在后期选择弥功能没有挖掘出来的话,那么在后期选择弥补时,将会造成项目延期以及成本的大幅度补时,将会造成项目延期以及成本的大幅度增加。增加。u需求获取的目的是通过各种途径获取用户的需需求获取的目的是通过各种途径获取用户的需求信息,由于在实际工作中,大部分客户是求信息,由于在实际工作中,大部分客户是无法完整地讲述其需求,因此需求获取是
18、一无法完整地讲述其需求,因此需求获取是一件看似简单,做起来很难的一件事情。在需件看似简单,做起来很难的一件事情。在需求获取过程中,主要需要弄清楚求获取过程中,主要需要弄清楚3 3个问题,即:个问题,即:明确需要获取的信息(明确需要获取的信息(WhatWhat)、明确所获取)、明确所获取信息的来源和渠道(信息的来源和渠道(WhereWhere)和怎样获取需求)和怎样获取需求(HowHow)。)。需求获取技术需求获取技术u明确需要获取的信息(明确需要获取的信息(WhatWhat)n与问题域相关的背景信息(如业务资料,组织结构与问题域相关的背景信息(如业务资料,组织结构图,业务处理流程等);图,业务
19、处理流程等);n与要求解决的问题直接相关的信息;与要求解决的问题直接相关的信息;n用户对系统的特别期望与施加的任何约束信息。用户对系统的特别期望与施加的任何约束信息。需求获取技术需求获取技术u明确所获取信息的来源和渠道(明确所获取信息的来源和渠道(WhereWhere)n用户或客户;用户或客户;n公司研发管理部门;公司研发管理部门;n公司技术管理部门公司技术管理部门n项目实施部门;项目实施部门;n营销管理部门;营销管理部门;n旧有系统的研发项目组;旧有系统的研发项目组;n来自项目组内。来自项目组内。需求获取技术需求获取技术u访谈与会议。访谈与会议。u观察用户的工作流程观察用户的工作流程u用户和
20、开发人员共同组成联合小组用户和开发人员共同组成联合小组实例:某出版社系统实例:某出版社系统u需求获取方式:调查表需求获取方式:调查表提出问题提出问题1 1您在您在哪个部门工作?哪个部门工作?2 2出版业务流程是什么?出版业务流程是什么?3 3您您每日都处理那些文件、数据、报表?每日都处理那些文件、数据、报表?4 4工作中手工处理特别麻烦的事情是什么?工作中手工处理特别麻烦的事情是什么?5 5工作中手工处理什么问题解决不了?影响效率的问题有哪些?工作中手工处理什么问题解决不了?影响效率的问题有哪些?6 6您认为提高工作效率,节省工作时间,减轻工作强度可采取哪些办法?您认为提高工作效率,节省工作时
21、间,减轻工作强度可采取哪些办法?7 7您的部门需要成本核算和统计的内容有哪些?您的部门需要成本核算和统计的内容有哪些?8 8您的部门采用计算机管理工作情况如何?您的部门采用计算机管理工作情况如何?9 9如何改进业务流程使之更合理?如何改进业务流程使之更合理?1010哪些问题是目前传统手工方法根本无法解决的?哪些问题是目前传统手工方法根本无法解决的?1111出版社计算机管理信息系统需要解决什么问题?出版社计算机管理信息系统需要解决什么问题?需求建模需求建模u建立软件模型是分析活动的焦点,在很多时候建立软件模型是分析活动的焦点,在很多时候我们需要把文本表示的需求与图形表示的需我们需要把文本表示的需
22、求与图形表示的需求结合起来绘制出对预期系统的完整描述,求结合起来绘制出对预期系统的完整描述,并帮助检测并帮助检测不一致性、模糊性、错误和遗漏不一致性、模糊性、错误和遗漏。这些图形化的表示或者分析模型可以增强你这些图形化的表示或者分析模型可以增强你对系统需求的理解,而且对某些类型的信息,对系统需求的理解,而且对某些类型的信息,图形化交互比文本交互更高效,可以清除不图形化交互比文本交互更高效,可以清除不同开发组成员间语言和词汇上的障碍。同开发组成员间语言和词汇上的障碍。分析模型须达到的目标分析模型须达到的目标u描述客户的需求是什么?描述客户的需求是什么?u为软件的设计提供基础。为软件的设计提供基础
23、。u定义当软件建立后可被验证的一组需求定义当软件建立后可被验证的一组需求数数据字典据字典对象描述对象描述过程描述过程描述 控制描述控制描述TEXT分析模型分析模型u对象描述的图形一般包括实体关系图(对象描述的图形一般包括实体关系图(ERDERD)、)、类图,过程描述一般包括数据流图(类图,过程描述一般包括数据流图(DFDDFD)、)、功能图等,控制描述的图形一般为状态转化功能图等,控制描述的图形一般为状态转化图(图(STDSTD)等。另外还有一些其它的用于特殊等。另外还有一些其它的用于特殊系统的描述,如系统的描述,如PetriPetri网。常用的分析方法有网。常用的分析方法有面向数据流的结构化
24、分析方法(简称面向数据流的结构化分析方法(简称SASA)、)、面面向数据结构的向数据结构的JacksonJackson方法(简称方法(简称JSDJSD)、)、面向面向对象的分析方法(简称对象的分析方法(简称OOAOOA)等,这些方法都等,这些方法都采用图文结合的方式,可以直观的描述软件采用图文结合的方式,可以直观的描述软件的逻辑模型。的逻辑模型。原型化方法原型化方法原型化方法原型化方法u在开发初期,要想得到一个完整准确的在开发初期,要想得到一个完整准确的规格说明不是一件容易的事。特别是对规格说明不是一件容易的事。特别是对一些大型的软件项目。一些大型的软件项目。u用户往往对系统只有一个模糊的想法
25、,用户往往对系统只有一个模糊的想法,很难完全准确地表达对系统的全面要求。很难完全准确地表达对系统的全面要求。u软件开发者对于所要解决的应用问题认软件开发者对于所要解决的应用问题认识更是模糊不清识更是模糊不清原型化方法原型化方法原型化方法原型化方法u随着开发工作向前推进,用户可能会产生新的随着开发工作向前推进,用户可能会产生新的随着开发工作向前推进,用户可能会产生新的随着开发工作向前推进,用户可能会产生新的要求,或因环境变化,要求系统也能随之变要求,或因环境变化,要求系统也能随之变要求,或因环境变化,要求系统也能随之变要求,或因环境变化,要求系统也能随之变化;开发者又可能在设计与实现的过程中遇化
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第三讲 需求分析基础 第三 需求 分析 基础
限制150内