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