《软件工程导论》第三章需求分析.ppt
《《软件工程导论》第三章需求分析.ppt》由会员分享,可在线阅读,更多相关《《软件工程导论》第三章需求分析.ppt(102页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、需求分析需求分析第三章第三章山东师范大学信息科学与工程学院山东师范大学信息科学与工程学院 王化雨王化雨0 09-10 9-10 学学 年年 第第 一一 学学 期期张海藩张海藩软件工程导论软件工程导论(第第5 5版版)2002009 9年年1010月月主要内容主要内容引言引言需求分析的任务需求分析的任务与用户沟通获取需求的方法与用户沟通获取需求的方法分析建模与规格说明分析建模与规格说明实体实体-联系图联系图数据规范化数据规范化状态转换图状态转换图其他图形工具其他图形工具验证软件需求验证软件需求2023/2/262需求分析需求分析回顾:回顾:软件生命周期由 3个时期组成:软件定义、软件开发、软件维
2、护(运行维护)软件定义时期一般为3个阶段:问题定义、可行性研究、需求分析需求分析是软件定义时期的最后一个阶段,它的基需求分析是软件定义时期的最后一个阶段,它的基本任务是准确地回答本任务是准确地回答“系统必须做什么系统必须做什么?”这个问题。这个问题。需求分析的任务还需求分析的任务还不是确定系统怎样完成它的工作,不是确定系统怎样完成它的工作,而仅仅是确定系统必须完成哪些工作而仅仅是确定系统必须完成哪些工作,也就是对目,也就是对目标系统提出完整、准确、清晰、具体的要求。标系统提出完整、准确、清晰、具体的要求。2023/2/263需求分析的要点需求分析的要点为了开发出真正满足用户需求的软件产品,为了
3、开发出真正满足用户需求的软件产品,必须知道用户的需求,对软件需求的深入理必须知道用户的需求,对软件需求的深入理解是解是需求分析是为了知道用户的需求,它的基本需求分析是为了知道用户的需求,它的基本任务是回答任务是回答“做什么做什么”。它无法解决。它无法解决“如何如何做做”的问题。的问题。与可行性研究相比,需求分析的工作更为细与可行性研究相比,需求分析的工作更为细致。致。由由系统分析员系统分析员负责,通过与用户交流完成工负责,通过与用户交流完成工作。成果是作。成果是软件需求规格说明书软件需求规格说明书。2023/2/264需求分析的关键需求分析的关键在于在于分析员分析员和和用户用户的交流的交流在分
4、析软件需求和书写软件需求规格说明书在分析软件需求和书写软件需求规格说明书的过程中,分析员和用户都起着关键的、必的过程中,分析员和用户都起着关键的、必不可少的作用:不可少的作用:只有用户才真正知道自己需要什么,但是他们并不知道怎样用软件实现自己的需求,用户必须把他们对软件的需求尽量准确、具体地描述出来;分析员知道怎样用软件实现人们的需求,但是在需求分析开始时他们对用户的需求并不十分清楚,必须通过与用户沟通获取用户对软件的需求。2023/2/265需求分析与规格说明是艰巨复杂的工作需求分析与规格说明是艰巨复杂的工作用户与分析员之间需要的内容很多;用户与分析员之间需要的内容很多;双方交流信息的过程中
5、很容易出现误解或遗双方交流信息的过程中很容易出现误解或遗漏,也可能存在二义性。漏,也可能存在二义性。因此,因此,整个需求分析过程中应该采用行之有效的通信技术,集中精力细致工作。必须严格审查验证需求分析的结果。2023/2/266需求分析需要遵守的准则需求分析需要遵守的准则用于需求分析的用于需求分析的结构化分析方法结构化分析方法应遵守下述准则:应遵守下述准则:必须理解并描述问题的信息域,以此建立数据模型。o信息流:数据和控制通过一个系统时的变化方式。两个功能之间信息流:数据和控制通过一个系统时的变化方式。两个功能之间的数据的数据/控制传递就确定了功能间的接口。控制传递就确定了功能间的接口。o信息
6、内容:单个数据或控制对象,它们构成了某个更大的由软件信息内容:单个数据或控制对象,它们构成了某个更大的由软件变换生成的信息的集合。变换生成的信息的集合。o信息结构:各种数据和控制项的内部组织。信息结构:各种数据和控制项的内部组织。必须定义软件应完成的功能,它要求建立功能模型。必须描述作为外部事件结果的软件行为,要求建立行为模型。必须对信息、功能和行为模型进行分解,用层次的方式展示细节。2023/2/267数据模型、功能模型、行为模型的数据模型、功能模型、行为模型的两种视图两种视图逻辑视图逻辑视图给出的是软件要达到的给出的是软件要达到的功能功能和要处和要处理的理的数据数据之间的关系(是通过之间的
7、关系(是通过行为行为结合在一结合在一起的),而不是实现的细节。逻辑描述是软起的),而不是实现的细节。逻辑描述是软件设计的基础。件设计的基础。物理视图物理视图给出的是给出的是处理功能处理功能和和数据结构数据结构的实的实际表现形式,这往往是由设备本身决定的。际表现形式,这往往是由设备本身决定的。2023/2/268以层次化的方式对问题进行分解和不断细化 软件的功能域和信息域都能做进一步的分解。这种分解可以是同一层次上的,称为横向分解;也可以是多层次的纵向分解。纵纵向向分分解解横向分解横向分解两种层次化方式两种层次化方式2023/2/269需求分析的任务需求分析的任务就是借助于当前系统的逻辑模型导出
8、目标就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统系统的逻辑模型,解决目标系统“做什么做什么”的问题。的问题。通常软件开发项目是要实现目标系统的物理模型。通常软件开发项目是要实现目标系统的物理模型。目标系统的具体物理模型是由它的逻辑模型经实例化,即目标系统的具体物理模型是由它的逻辑模型经实例化,即具体到某个业务领域而得到的具体到某个业务领域而得到的。目标系统目标系统当前系统当前系统物理模型物理模型逻辑模型逻辑模型模型化抽象化物理模型物理模型逻辑模型逻辑模型具体化实例化理理解解需需求求表表达达需需求求导出怎么做怎么做做什么做什么需求分析的实现步骤需求分析的实现步骤需求分析流程需
9、求分析流程2023/2/2611主要内容主要内容引言引言需求分析的任务需求分析的任务与用户沟通获取需求的方法与用户沟通获取需求的方法分析建模与规格说明分析建模与规格说明实体实体-联系图联系图数据规范化数据规范化状态转换图状态转换图其他图形工具其他图形工具验证软件需求验证软件需求2023/2/2612需求分析的任务需求分析的任务内容内容确定对系统的综合要求分析系统的数据要求导出系统的逻辑模型修正系统的开发计划2023/2/2613确定对系统的综合要求确定对系统的综合要求功能需求功能需求是对软件系统的一项基本需求,但并是对软件系统的一项基本需求,但并不是唯一的需要。不是唯一的需要。通常对软件系统的
10、需要是综合性的,大约包括通常对软件系统的需要是综合性的,大约包括功能需求性能需求可靠性和可用性需求出错处理需求接口需求约束逆向需求将来可能提出的要求2023/2/2614系统的综合要求系统的综合要求-1功能需求功能需求指定系统必须提供的服务指定系统必须提供的服务划分出系统必须完成的所有功能。划分出系统必须完成的所有功能。2023/2/2615系统的综合要求系统的综合要求-2性能需求性能需求性能需求性能需求指定系统必须满足的定时约束或容量指定系统必须满足的定时约束或容量约束,通常包括:约束,通常包括:速度(响应时间)信息量速率主存容量磁盘容量安全性例如:例如:“应力分析程序必须在一分种之内生成应
11、力分析程序必须在一分种之内生成任何一个梁的应力报告。任何一个梁的应力报告。”2023/2/2616系统的综合要求系统的综合要求-3可靠性和可用性需求可靠性和可用性需求可靠性需求定量地指定系统的可靠性,如:可靠性需求定量地指定系统的可靠性,如:“机场雷达系统在一个月内不能出现机场雷达系统在一个月内不能出现2次以上次以上故障故障”;可用性:可用性:可用性与可靠性密切相关,它量化了用户可以使用系统的程度。例如:o“在任何时候,主机或备份机上的机场雷达系统应该在任何时候,主机或备份机上的机场雷达系统应该至少有一个是可用的,而且在一个月内在任何一台计至少有一个是可用的,而且在一个月内在任何一台计算机上该
12、系统不可用的时间不能超过总时间的算机上该系统不可用的时间不能超过总时间的2。”2023/2/2617系统的综合要求系统的综合要求-4出错处理需求出错处理需求这类需求说明系统对这类需求说明系统对环境错误环境错误应该怎样响应。应该怎样响应。环境错误:非应用系统本身造成的错误。例如:如果它接收到从另一个系统发来的违反协议的消息,应该做什么?某些情况下,某些情况下,“出错处理出错处理”指的是当应用系统指的是当应用系统发现它自己犯下一个错误时所采取的行为。发现它自己犯下一个错误时所采取的行为。应该有选择地提出这类错误处理需求。这是因为:o目标是开发出正确的系统目标是开发出正确的系统o不是用无休止的出错处
13、理代码掩盖自己的错误。不是用无休止的出错处理代码掩盖自己的错误。对应用系统本身错误的检测应该仅限于系统的关键部分,而且应该尽可能少。2023/2/2618系统的综合要求系统的综合要求-5接口需求接口需求接口需求描述应用系统与它的环境通信的格式。接口需求描述应用系统与它的环境通信的格式。常见的接口需求有:用户接口需求;硬件接口常见的接口需求有:用户接口需求;硬件接口需求;软件接口需求;通信接口需求。需求;软件接口需求;通信接口需求。例如:例如:“把商品从货源地运送到目的地所需要的成本,应该一直显示在成本正文框中。”应用系统与用户的接口。“向运输公司传送需运送的商品信息的格式是exp,其中是从商品
14、目录中选取的字符串。”应用系统与其他应用系统通信的信息格式。2023/2/2619系统的综合要求系统的综合要求-6约束约束设计约束设计约束(或实现约束或实现约束)描述在设计描述在设计(或实现或实现)应用应用系统时应遵守的限制条件。系统时应遵守的限制条件。在需求分析阶段提出这类需求,并不是要取代在需求分析阶段提出这类需求,并不是要取代设计设计(或实现或实现)过程,只是说明用户或环境强加过程,只是说明用户或环境强加给项目的限制条件。给项目的限制条件。常见的约束有:常见的约束有:精度工具和语言约束设计约束应该使用的标准应用使用的硬件平台2023/2/2620系统的综合要求系统的综合要求-7逆向需求逆
15、向需求逆向需求说明软件系统不应该做什么。逆向需求说明软件系统不应该做什么。理论上有无限多个逆向需求,人们应该理论上有无限多个逆向需求,人们应该仅注意仅注意能澄清真实需求且可消除可能发生的误解的那能澄清真实需求且可消除可能发生的误解的那些逆向需求些逆向需求。例如:例如:“应力分析程序无须分析桥梁倒塌数据。应力分析程序无须分析桥梁倒塌数据。”2023/2/2621系统的综合要求系统的综合要求-8将来可能提出的要求将来可能提出的要求应该明确地列出那些虽然不属于当前系统开发应该明确地列出那些虽然不属于当前系统开发范畴,但是据分析将来可能会提出来的要求。范畴,但是据分析将来可能会提出来的要求。这样做的目
16、的是:在设计过程中对系统将来可这样做的目的是:在设计过程中对系统将来可能的扩充和修改项做准备,以便一旦确实需要能的扩充和修改项做准备,以便一旦确实需要时能比较容易地进行这种扩充和修改。时能比较容易地进行这种扩充和修改。2023/2/2622需求分析的任务需求分析的任务内容内容确定对系统的综合要求分析系统的数据要求导出系统的逻辑模型修正系统的开发计划2023/2/2623分析系统数据要求分析系统数据要求必要性和方法必要性和方法任何一个软件系统都本质上都是信息处理系统:任何一个软件系统都本质上都是信息处理系统:系统必须处理的信息和系统应该产生的信息在很大程度上决定了系统的面貌,对软件的需求有深远的
17、影响。因此,必须分析系统的数据要求。分析系统的数据要求是软件需求分析的一个重要任务。分析系统的数据要求通常采用建立数据模型的分析系统的数据要求通常采用建立数据模型的方法。方法。2023/2/2624分析系统的数据要求分析系统的数据要求工具工具复杂的数据由许多基本的复杂的数据由许多基本的数据元素数据元素组成;组成;数据结构数据结构表示数据元素之间的逻辑关系表示数据元素之间的逻辑关系。数据字典数据字典可以全面准确地定义数据,但不够直可以全面准确地定义数据,但不够直观。观。为提高可理解性,常用为提高可理解性,常用层次方框图层次方框图和和Warnier图图来形象直观描述数据结构。来形象直观描述数据结构
18、。2023/2/2625分析系统的数据要求分析系统的数据要求数据需要规范化数据需要规范化软件系统中经常使用长期保存的信息。软件系统中经常使用长期保存的信息。信息通常以一定方式组织并存储在数据库或文信息通常以一定方式组织并存储在数据库或文件中。件中。为减少数据冗余,简化修改数据的过程,通常为减少数据冗余,简化修改数据的过程,通常要要把数据结构规范化把数据结构规范化。2023/2/2626需求分析的任务需求分析的任务内容内容确定对系统的综合要求分析系统的数据要求导出系统的逻辑模型修正系统的开发计划2023/2/2627导出系统的逻辑模型导出系统的逻辑模型通过确定对系统的综合要求、分析系统的数据要求
19、,通过确定对系统的综合要求、分析系统的数据要求,即可导出系统的逻辑模型。即可导出系统的逻辑模型。逻辑模型通常下列工具或方法描述:逻辑模型通常下列工具或方法描述:数据流图实体联系图状态转换图数据字典主要的处理算法前面介绍过:前面介绍过:逻辑视图给出的是软件要达到的功能和要处理的数据之间的关系(是通过行为结合在一起的),而不是实现的细节。逻辑描述是软件设计的基础。物理视图给出的是处理功能和数据结构的实际表现形式,这往往是由设备本身决定的。2023/2/2628需求分析的任务需求分析的任务内容内容确定对系统的综合要求分析系统的数据要求导出系统的逻辑模型修正系统的开发计划2023/2/2629修正系统
20、的开发计划修正系统的开发计划如果完成:如果完成:确定对系统的综合要求分析系统的数据要求导出系统的逻辑模型即可较为准确地估计开发系统的成本和进度,即可较为准确地估计开发系统的成本和进度,修正以前制定的开发计划。修正以前制定的开发计划。2023/2/2630主要内容主要内容引言引言需求分析的任务需求分析的任务与用户沟通获取需求的方法与用户沟通获取需求的方法分析建模与规格说明分析建模与规格说明实体实体-联系图联系图数据规范化数据规范化状态转换图状态转换图其他图形工具其他图形工具验证软件需求验证软件需求2023/2/2631与用户沟通获取需求的方法与用户沟通获取需求的方法内容内容访谈面向数据流自顶向下
21、求精简易的应用规格说明技术快速建立软件原型2023/2/2632访谈最早使用的,也是使用最为广泛的。最早使用的,也是使用最为广泛的。分正式和非正式访谈;既可访问用户,也可访分正式和非正式访谈;既可访问用户,也可访问用户领域的专家;可以考查现场,亦应考查问用户领域的专家;可以考查现场,亦应考查市场。市场。有时需要设计、分发、收集、分析调查表。有时需要设计、分发、收集、分析调查表。可以使用可以使用情景分析技术情景分析技术2023/2/2633情景分析技术的含义所谓情景分析技术是对用户所谓情景分析技术是对用户将来使用目标系统解决某将来使用目标系统解决某个具体问题个具体问题的方法和结果进行分析。例如:
22、的方法和结果进行分析。例如:目标系统是一个制定减肥计划的软件,当给出某个肥胖症患者的年龄、身高、体重、腰围及其他数据时,就出现一个可能的情景描述。系统分析员根据自己对目标系统应具备的功能的理解,给出适用于该患者的菜单。客户公司的饮食专家可能指出,那些菜单对于有特殊饮食需求的患者(如:糖尿病人、素食者等)是不合适的。这就使分析员认识到,目标系统在制定菜单之前还应该先询问患者的特殊饮食需求。系统分析员利用情景分析技术,往往能够获知用户系统分析员利用情景分析技术,往往能够获知用户的具体需求。的具体需求。2023/2/2634情景分析技术的用处能在某种程度上演示目标系统的行为:能在某种程度上演示目标系
23、统的行为:便于用户理解可以揭示出一些分析员目前还不知道的需求可以保证用户在需求分析过程中始终处于积极可以保证用户在需求分析过程中始终处于积极主动的地位。主动的地位。需求分析的目标是获知用户的真实需求,而这一信息的唯一来源是用户因此,让用户起积极主动的作用对需求分析工作获得成功是至关重要的。2023/2/2635与用户沟通获取需求的方法与用户沟通获取需求的方法内容内容访谈面向数据流自顶向下求精简易的应用规格说明技术快速建立软件原型2023/2/2636面向数据流自顶向下求精数据、数据流的重要性软件系统本质上是信息处理系统,而任何信息软件系统本质上是信息处理系统,而任何信息处理系统都是把处理系统都
24、是把输入数据输入数据变成需要的变成需要的输出信息输出信息。数据决定的需要的处理和算法,显然是需求分数据决定的需要的处理和算法,显然是需求分析的出发点。析的出发点。可行性研究可行性研究阶段许多实际的数据元素被忽略了,阶段许多实际的数据元素被忽略了,需求分析需求分析阶段则应定义所有数据元素。阶段则应定义所有数据元素。2023/2/2637面向数据流自顶向下求精如何实施结构化分析方法就是面向数据流自顶向下逐步求精进行需求分结构化分析方法就是面向数据流自顶向下逐步求精进行需求分析的方法:析的方法:可行性研究得到了目标系统的高层数据流图,需求分析的目标之一就是把数据流和数据存储定义到元素级。为此需要从数
25、据流图的输出端着手分析,因为系统的基本功能就是产生输出数据,而输出数据决定了系统必须具有的最基本组成元素输出数据决定了系统必须具有的最基本组成元素。沿数据流从输出端往输入端回溯,可确定每个数据元素的来源,同时初步定义了某个算法。有时,某个输出的数据元素尚未在数据流图中描述,或描述有误,或需要的算法还不明确。对这些,应及时纠正和补充。分析过程中得到的有关数据元素的信息记录在数据字典中,把对算法的简明描述记录在IPO图中。通过系统分析员的上述工作,数据流图会扩展到更低层次,从而完成数据流图的细化。必须请用户对数据分析得出的结果进行复查。最终得到对系统数据和功能要求的满意了解。2023/2/2638
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程导论 软件工程 导论 第三 需求 分析
限制150内