第三章 软件需求分析基础.ppt
《第三章 软件需求分析基础.ppt》由会员分享,可在线阅读,更多相关《第三章 软件需求分析基础.ppt(100页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三章第三章 软件需求分析基础软件需求分析基础 主要内容n需求分析的概念和原则需求分析的概念和原则 n传统的软件需求分析基础传统的软件需求分析基础 3.1 需求分析的概念和原则需求分析的概念和原则 n需求分析的基本任务是准确地回答需求分析的基本任务是准确地回答“系统必须做什么系统必须做什么?”这一核心问题。这一核心问题。n需求分析是发现、求精、建模和规约的过程。这一过需求分析是发现、求精、建模和规约的过程。这一过程包括:详细精化最初由系统分析员建立在软件项目程包括:详细精化最初由系统分析员建立在软件项目计划中确定的软件范围,创建所需数据流、控制流以计划中确定的软件范围,创建所需数据流、控制流以
2、及操作行为的模型,在此基础上选择解决方案。及操作行为的模型,在此基础上选择解决方案。问题定义阶段n在需求分析之前,需要描述和定义问题。问题在需求分析之前,需要描述和定义问题。问题定义阶段必须回答的关键问题是定义阶段必须回答的关键问题是“要解决的问要解决的问题是什么题是什么”。n系统分析员扼要地写出对问题的理解,提出关系统分析员扼要地写出对问题的理解,提出关于问题性质、工程目标和规模的书面报告,最于问题性质、工程目标和规模的书面报告,最后得出使用户和使用部门负责人都满意的文档。后得出使用户和使用部门负责人都满意的文档。n问题定义阶段是软件生存周期中最简短的阶段,问题定义阶段是软件生存周期中最简短
3、的阶段,一般只需要一天甚至更少的时间。一般只需要一天甚至更少的时间。可行性研究阶段 n这个阶段要回答的关键问题是这个阶段要回答的关键问题是“对于上一个阶对于上一个阶段所确定的问题有行得通的解决办法吗?段所确定的问题有行得通的解决办法吗?”n系统分析员需要进行一次大大压缩和简化了的系统分析员需要进行一次大大压缩和简化了的系统分析和设计的过程系统分析和设计的过程。n只有当投资取得较大效益时,该工程项目才值只有当投资取得较大效益时,该工程项目才值得继续进行下去。得继续进行下去。n系统分析员得出该工程项目不值得做的结论,系统分析员得出该工程项目不值得做的结论,应该及时中止投资该工程项目,避免更大的浪应
4、该及时中止投资该工程项目,避免更大的浪费。费。可行性研究n问题识别问题识别n市场调查市场调查n分析准备分析准备n环境分析环境分析n物理分析物理分析n功能分析功能分析n信息分析信息分析n动态分析动态分析n确立系统方案,确立系统方案,作出各种估算作出各种估算n模型评审模型评审问题的初步认识n了解系统应解决的问题,这些问题了解系统应解决的问题,这些问题是如何提出的是如何提出的n设想这些问题如何解决才能满足要设想这些问题如何解决才能满足要求求n了解问题的结构了解问题的结构市场调查n了解市场对待开发软件的需求情况了解市场对待开发软件的需求情况n调查市场上已有的类似软件系统的功能、调查市场上已有的类似软件
5、系统的功能、性能、价格情况性能、价格情况分析准备n确立分析计划确立分析计划n规定由谁参加分析作业,任务分配规定由谁参加分析作业,任务分配n对参加分析的人员进行必要的培训对参加分析的人员进行必要的培训环境分析明确系统的目的和限制条件明确系统的目的和限制条件n使用单位的状况、经营方针和组织机构使用单位的状况、经营方针和组织机构n使用单位的计算机利用情况使用单位的计算机利用情况n相关的硬件、软件及其它接口部分相关的硬件、软件及其它接口部分n用户的操作环境及操作要求用户的操作环境及操作要求n习惯、法律、制度上对软件的制约习惯、法律、制度上对软件的制约n开发能具备的技术条件和设备条件开发能具备的技术条件
6、和设备条件物理分析n了解实际业务活动状况,特别对一些活了解实际业务活动状况,特别对一些活动要点进行分析动要点进行分析n明确在这些要点之间什么东西在流动,明确在这些要点之间什么东西在流动,如何进行流动如何进行流动n对物理流量进行分析对物理流量进行分析n对其模型化,得到实际业务系统(当前对其模型化,得到实际业务系统(当前系统)的物理模型系统)的物理模型功能分析功能分析n决定系统应具备的功能决定系统应具备的功能(工作域工作域)n分析功能的结构:功能展开和功能分配分析功能的结构:功能展开和功能分配n分析各功能之间的关系,整理它们之间分析各功能之间的关系,整理它们之间传递的信息传递的信息n利用数据流图,
7、描述信息在系统流动与利用数据流图,描述信息在系统流动与处理的情况处理的情况信息分析n调查系统的输入、输出、保存信息调查系统的输入、输出、保存信息n明确信息的结构及各信息之间的关系明确信息的结构及各信息之间的关系n调查各信息的信息量调查各信息的信息量n调查各种报表和文件的格式调查各种报表和文件的格式n建立粗略的数据词典,定义系统中使用建立粗略的数据词典,定义系统中使用的数据的数据动态分析n系统内每一部分有几种状态系统内每一部分有几种状态n各种状态转换的条件各种状态转换的条件n同步产生的条件与同步后状态的变化同步产生的条件与同步后状态的变化确立系统方案,进行各种估算n粗略地估算成本粗略地估算成本n
8、估算可能取得的效益估算可能取得的效益n提出可能需要的资源,包括人员、硬件、提出可能需要的资源,包括人员、硬件、软件等软件等n提出大概的进度安排提出大概的进度安排模型评审n将目标系统的逻辑模型提出管理部分与将目标系统的逻辑模型提出管理部分与用户进行评审用户进行评审n复查问题定义、工程规模和系统目标复查问题定义、工程规模和系统目标系统建模n为了开发系统模型,可通过构造模型进一步分析系为了开发系统模型,可通过构造模型进一步分析系统统。n可以用系统流程图,数据流图和数据字典。可以用系统流程图,数据流图和数据字典。3.1.1 需求分析需求分析 n需求分析需求分析是一种软件工程活动,使得系统分析是一种软件
9、工程活动,使得系统分析员能够刻划出软件的功能和性能、指明软件和员能够刻划出软件的功能和性能、指明软件和其他系统元素的接口、并建立软件必须满足的其他系统元素的接口、并建立软件必须满足的约束。约束。n需求分析是软件设计师进行软件分解的基础,需求分析是软件设计师进行软件分解的基础,需求分析建造了软件处理的需求分析建造了软件处理的数据模型数据模型、功能模功能模型型和和行为模型行为模型。n需求规约为软件设计师和客户提供了软件建造需求规约为软件设计师和客户提供了软件建造完后,进行质量评估的依据。完后,进行质量评估的依据。1.软件需求的概念和分类软件需求的概念和分类 n比比较较权权威威的的需需求求的的定定义
10、义来来自自于于IEEE软软件件工工程程标标准准词词汇汇表中的定义:表中的定义:nl l用户解决问题或达到目标所需要的条件。用户解决问题或达到目标所需要的条件。nl l系系统统或或系系统统部部件件要要满满足足合合同同、标标准准、规规范范或或其其他他正式规定的文档所要具有的条件。正式规定的文档所要具有的条件。nl l反映上面两条的文档说明。反映上面两条的文档说明。n需求一方面反映了系统的外部行为,另一方面反映了需求一方面反映了系统的外部行为,另一方面反映了系统的内部特性,反映的方式是系统的内部特性,反映的方式是需求文档需求文档。n比较通俗的需求定义如下比较通俗的需求定义如下:需求是指明系统必须实现
11、:需求是指明系统必须实现什么的规格说明,它描述了系统的行为、特性或属性,什么的规格说明,它描述了系统的行为、特性或属性,是在开发过程中对系统的约束。是在开发过程中对系统的约束。需求的类别 n功能需求:功能需求:指定系统必须提供的服务,通过需指定系统必须提供的服务,通过需求分析应该划分出系统必须完成的所有功能;求分析应该划分出系统必须完成的所有功能;n性能需求:性能需求:指定系统必须满足的定时约束或容指定系统必须满足的定时约束或容量约束,通常包括速度(响应时间)、信息量量约束,通常包括速度(响应时间)、信息量速率、主存容量、磁盘容量、安全性等方面的速率、主存容量、磁盘容量、安全性等方面的需求;需
12、求;n可靠性和可用性需求:可靠性和可用性需求:定量地指定系统的可靠定量地指定系统的可靠性与可用性;性与可用性;n出错处理需求:出错处理需求:说明系统对环境错误应该怎样说明系统对环境错误应该怎样响应;响应;n接口需求:接口需求:描述应用系统与其环境通信的格式,描述应用系统与其环境通信的格式,常见的接口需求有用户接口需求、硬件接口需常见的接口需求有用户接口需求、硬件接口需求、软件接口需求和通信接口需求;求、软件接口需求和通信接口需求;n约束:约束:描述了应用系统应遵守的限制条件,常描述了应用系统应遵守的限制条件,常见的约束有:精度约束、工具和语言约束、设见的约束有:精度约束、工具和语言约束、设计约
13、束、应该使用的标准、应该使用的硬件平计约束、应该使用的标准、应该使用的硬件平台等;台等;n逆向需求:逆向需求:说明软件系统不应该做什么。理论说明软件系统不应该做什么。理论上有无限多个逆向需求,我们应该仅选取能澄上有无限多个逆向需求,我们应该仅选取能澄清真实需求且可消除发生误解的那些逆向需求;清真实需求且可消除发生误解的那些逆向需求;n将来可能提出的要求:将来可能提出的要求:应该明确地列出那些虽应该明确地列出那些虽然不属于当前系统开发范畴,但是据分析将来然不属于当前系统开发范畴,但是据分析将来很可能会提出来的要求。很可能会提出来的要求。另一种分类n功能性需求功能性需求n产品的范围产品的范围n功能
14、与数据需求功能与数据需求n非功能性需求非功能性需求n观感需求观感需求n易用性易用性n性能性能n限制条件限制条件n 操作需求操作需求n 可维护性和可以执行需求可维护性和可以执行需求n 安全性需求安全性需求n 文化与政策文化与政策n法律需求法律需求需求的质量n完整性完整性n正确性正确性n可行性可行性n必要性必要性n划分优先级划分优先级n无二义性无二义性n可验证性可验证性n设计无关性设计无关性2.需求分析的任务需求分析的任务 n需求分析的任务需求分析的任务是借助于当前系统的物理模型是借助于当前系统的物理模型导出目标系统的逻辑模型,解决目标系统导出目标系统的逻辑模型,解决目标系统“做做什么什么”的问题
15、。的问题。n所要做的工作是深入描述软件的所要做的工作是深入描述软件的功能和性能功能和性能,确定软件设计的限制和软件同其他系统元素的确定软件设计的限制和软件同其他系统元素的接口细节,定义软件的其他有效性需求。接口细节,定义软件的其他有效性需求。n必须全面理解用户的各项要求,但只能接受合必须全面理解用户的各项要求,但只能接受合理的要求。理的要求。n要将软件的需求准确地表达出来,形成要将软件的需求准确地表达出来,形成软件需软件需求说明书求说明书。目标系统目标系统当前系统当前系统物理模型物理模型逻辑模型逻辑模型模型化抽象化物理模型物理模型逻辑模型逻辑模型具体化实例化理理解解需需求求表表达达需需求求导出
16、怎么做怎么做做什么做什么需求分析的任务需求分析的任务 n获得当前系统的物理模型获得当前系统的物理模型:首先,分析、理解:首先,分析、理解当前系统是如何运行的,并用一个具体的模型来当前系统是如何运行的,并用一个具体的模型来反映自己对当前系统的理解。反映自己对当前系统的理解。n 抽象出当前系统的逻辑模型:抽象出当前系统的逻辑模型:在理解当前系统在理解当前系统“怎样做怎样做”的基础上,取出非本质因素,抽取出的基础上,取出非本质因素,抽取出“做什么做什么”的本质。的本质。n建立目标系统的逻辑模型:建立目标系统的逻辑模型:分析目标系统与当分析目标系统与当前系统逻辑上的差别,明确目标系统要前系统逻辑上的差
17、别,明确目标系统要“做什么做什么”,从而从当前系统的逻辑模型中,导出目标系,从而从当前系统的逻辑模型中,导出目标系统的逻辑模型。统的逻辑模型。n 对目标系统逻辑模型进行补充:对目标系统逻辑模型进行补充:具体内容如具体内容如用户界面、启动和结束、出错处理、系统输入输用户界面、启动和结束、出错处理、系统输入输出、系统性能、其他限制等等。出、系统性能、其他限制等等。3需求分析的主要工作需求分析的主要工作 n软件需求分析可被划分成软件需求分析可被划分成5个工作阶段:问题分个工作阶段:问题分析;问题评估和方案综合;建模;规约;复审。析;问题评估和方案综合;建模;规约;复审。n例1.汽车零件的主要供应商需
18、要一个库存控制汽车零件的主要供应商需要一个库存控制系统,系统分析员发现与当前的手工系统相关系统,系统分析员发现与当前的手工系统相关的问题包括:(的问题包括:(1)不能快速地获得部件的状况;)不能快速地获得部件的状况;(2)更新卡片文件需要)更新卡片文件需要2至或至或3天的工作量;天的工作量;(3)由于没有办法查找相关厂商的部件信息,)由于没有办法查找相关厂商的部件信息,而使得对同一厂商同一货品多次再订货,等等。而使得对同一厂商同一货品多次再订货,等等。一旦问题被标识出来,系统分析员将确定新系一旦问题被标识出来,系统分析员将确定新系统该产生什么信息,以及将提供什么信息。统该产生什么信息,以及将提
19、供什么信息。n例2.客户希望得到指明什么零件从库存中取出、客户希望得到指明什么零件从库存中取出、以及还剩余多少相似零件的日报表。客户指明以及还剩余多少相似零件的日报表。客户指明一旦当该零件离开仓库时库存管理员就该记载一旦当该零件离开仓库时库存管理员就该记载每个零件的标号。通过对当前问题和希望的信每个零件的标号。通过对当前问题和希望的信息(输入和输出)进行的评估,系统分析员开息(输入和输出)进行的评估,系统分析员开始综合一个或多个解决方案。为了便于开始,始综合一个或多个解决方案。为了便于开始,必须详细地定义系统的数据、处理功能和行为。必须详细地定义系统的数据、处理功能和行为。n例3.在例在例1与
20、例与例2的基础上,一些可以进一步的基础上,一些可以进一步思考内容是,一旦已经建立这些信息,就该考思考内容是,一旦已经建立这些信息,就该考虑针对实现的基本体系结构,那么客户虑针对实现的基本体系结构,那么客户/服务服务器方法似乎是合适的,但是它确实属于软件计器方法似乎是合适的,但是它确实属于软件计划的范围吗?似乎需要一个数据库管理系统,划的范围吗?似乎需要一个数据库管理系统,但是,该数据库系统真的是用户需要的吗?继但是,该数据库系统真的是用户需要的吗?继续这种评估和综合的过程,直至分析员和客户续这种评估和综合的过程,直至分析员和客户均确信针对后面的开发步骤软件确实已被适当均确信针对后面的开发步骤软
21、件确实已被适当地刻划了。地刻划了。n在整个评估和综合过程中,分析员的主要焦点在整个评估和综合过程中,分析员的主要焦点是是“做什么做什么”,而不是,而不是“怎么做怎么做”,即应该思,即应该思考的是:系统会产生和使用什么数据?系统必考的是:系统会产生和使用什么数据?系统必须完成什么功能?将定义什么界面?会应用什须完成什么功能?将定义什么界面?会应用什么约束?么约束?n在问题评估和综合解决方案的活动中,系统分在问题评估和综合解决方案的活动中,系统分析员创建系统模型,以便可以更好地理解数据析员创建系统模型,以便可以更好地理解数据流和控制流、处理功能和操作行为以及信息内流和控制流、处理功能和操作行为以及
22、信息内容。容。4.系统分析员的主要能力系统分析员的主要能力 n在整个系统分析活动中,系统分析员起着关键在整个系统分析活动中,系统分析员起着关键的作用,其本人应该具备突出的能力,如:的作用,其本人应该具备突出的能力,如:n能掌握抽象概念,能对其进行分类,能从中综合能掌握抽象概念,能对其进行分类,能从中综合出解的能力;出解的能力;n能从冲突或者混淆中吸取恰当事实的能力;能从冲突或者混淆中吸取恰当事实的能力;n能弄清用户环境的能力;能弄清用户环境的能力;n能为用户系统恰当配置软硬件的能力能为用户系统恰当配置软硬件的能力n能较好地用书面和口头形式进行沟通的能力能较好地用书面和口头形式进行沟通的能力n有
23、有“从树木见森林从树木见森林”的能力。的能力。3.1.2 需求获取需求获取 n软件需求分析中需要很好的的相互沟通,沟通软件需求分析中需要很好的的相互沟通,沟通总是要在两方或多方间进行。总是要在两方或多方间进行。n客户和系统分析员之间最常用的交流方式,是客户和系统分析员之间最常用的交流方式,是通过通过预备会议预备会议或或访谈访谈进行的。进行的。n获取用户需求的主要方法是调查研究。获取用户需求的主要方法是调查研究。n做好准备做好准备n制定调研计划制定调研计划n准备调研资料准备调研资料n访谈用户访谈用户n写调研报告写调研报告n评审评审n系统分析员所问的第一组问题可以关注客户、系统分析员所问的第一组问
24、题可以关注客户、整体目标和收益,例如:谁是本工作的最初请整体目标和收益,例如:谁是本工作的最初请求者?谁将使用该解决方案?成功的解决方案求者?谁将使用该解决方案?成功的解决方案的经济收益是什么?的经济收益是什么?n接下来的下一组问题使得系统分析员能够对问接下来的下一组问题使得系统分析员能够对问题做更好的理解,使得客户能够表达其关于解题做更好的理解,使得客户能够表达其关于解决方案的感觉,决方案的感觉,n最后一组问题关注于会议的效果。例如:你是最后一组问题关注于会议的效果。例如:你是回答这些问题的合适人员吗?你的回答是回答这些问题的合适人员吗?你的回答是“正正式的式的”吗?其他人员可以提供附加信息
25、吗?有吗?其他人员可以提供附加信息吗?有其他我应该问你的问题吗?其他我应该问你的问题吗?3.1.3分析原则分析原则 n在过去在过去20年,研究者已经开发出一些实用分析方年,研究者已经开发出一些实用分析方法及相应的建模符号,每种分析方法有独特的观法及相应的建模符号,每种分析方法有独特的观点,然而,所有分析方法都遵循以下操作原则:点,然而,所有分析方法都遵循以下操作原则:n必须表示可理解的问题信息域。必须表示可理解的问题信息域。n必须定义软件将完成的功能。必须定义软件将完成的功能。n必须表示软件的行为(作为外部事件的结果)。必须表示软件的行为(作为外部事件的结果)。n必须划分描述信息、功能和行为的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第三章 软件需求分析基础 第三 软件 需求 分析 基础
限制150内