软件工程需求分析.ppt
《软件工程需求分析.ppt》由会员分享,可在线阅读,更多相关《软件工程需求分析.ppt(96页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、信息科学与技术学院 闵笛软件工程软件工程第三章第三章 软软件需求分析件需求分析v3.1 需求分析的任务需求分析的任务 v3.2 与用户沟通获取需求的方法与用户沟通获取需求的方法v3.3 分析建模与规格说明分析建模与规格说明 v3.4 实体实体-联联系图系图 v3.5 数据规范化数据规范化v3.6 状态转换图状态转换图 v3.7 其他图形工具其他图形工具 v3.8 验证软件需求验证软件需求 v3.9 小结小结v习题习题信息科学与技术学院 闵笛软件工程软件工程教学要求教学要求v教学目的:了解需求分析的任务和步骤、评教学目的:了解需求分析的任务和步骤、评审标准和过程;掌握基本技术,理解需求规审标准和
2、过程;掌握基本技术,理解需求规格说明书的作用与组成。格说明书的作用与组成。v教学重点:基本技术、需求规格说明书的作教学重点:基本技术、需求规格说明书的作用与组成。用与组成。v教学难点:基本技术。教学难点:基本技术。信息科学与技术学院 闵笛软件工程软件工程需求分析简介需求分析简介v 软件需求指用户对所开发的软件在功软件需求指用户对所开发的软件在功能、性能、环境、可靠性等各方面的要求。能、性能、环境、可靠性等各方面的要求。v 需求分析主要回答待开发的系统必须需求分析主要回答待开发的系统必须“做什么做什么”,并用,并用 需求规格说明书需求规格说明书 的形的形式准确、详细、规范地表达出来。式准确、详细
3、、规范地表达出来。信息科学与技术学院 闵笛软件工程软件工程注意注意v需求分析阶段,系统分析员的主要关注点需求分析阶段,系统分析员的主要关注点是是“做什么(做什么(what)”,不是,不是“怎样做(怎样做(how)”;v需求分析阶段,系统分析员应该给出软件需求分析阶段,系统分析员应该给出软件需求规格说明书。需求规格说明书。信息科学与技术学院 闵笛软件工程软件工程3.1需求分析的任务需求分析的任务v四项主要任务:四项主要任务:v1、确定对系统的综合要求、确定对系统的综合要求 v2、分析系统的数据要求、分析系统的数据要求 v3、导出系统的逻辑模型、导出系统的逻辑模型 v4、修正系统开发计划、修正系统
4、开发计划信息科学与技术学院 闵笛软件工程软件工程提问并思考:提问并思考:v 如果你是一个用户,你会对将要开发如果你是一个用户,你会对将要开发的软件有哪些要求?的软件有哪些要求?信息科学与技术学院 闵笛软件工程软件工程3.1.1确定对系统的综合要求确定对系统的综合要求v 功能需求。指定系统必须提供的服务。功能需求。指定系统必须提供的服务。v 性能需求。指定系统必须满足的定时约束或容量性能需求。指定系统必须满足的定时约束或容量约束等。约束等。v 可靠性和可用性需求。可靠性和可用性需求。应定量指定。应定量指定。v 出错处理需求。出错处理需求。指环境错误,非系统本身的错误。指环境错误,非系统本身的错误
5、。v 接口需求。接口需求。常见的接口需求:用户接口需求;硬常见的接口需求:用户接口需求;硬件接口需求;软件接口需求;通信接口需求。件接口需求;软件接口需求;通信接口需求。v 信息科学与技术学院 闵笛软件工程软件工程v 约束。约束。常见的约束:精度;工具和语言约束;常见的约束:精度;工具和语言约束;设计约束;应该使用的标准;应该使用的硬件平台。设计约束;应该使用的标准;应该使用的硬件平台。v逆向需求。指定系统不应该做什么。逆向需求。指定系统不应该做什么。v将来可能提出的要求。将来可能提出的要求。信息科学与技术学院 闵笛软件工程软件工程3.1.2分析系统的数据要求分析系统的数据要求v提问并思考:提
6、问并思考:v 如果你是设计者,除了上述需求以外,如果你是设计者,除了上述需求以外,你觉得还需要得到哪些要求?你觉得还需要得到哪些要求?v 答:软件系统本质上是信息处理系统,答:软件系统本质上是信息处理系统,要考虑要考虑数据和数据处理数据和数据处理的问题。的问题。信息科学与技术学院 闵笛软件工程软件工程对系统数据的分析对系统数据的分析v建立数据建立数据(3.4 节实体节实体联系图)联系图);v描绘数据结构描绘数据结构(3.7 节其他图形工具)节其他图形工具);v数据结构规范化(数据结构规范化(3.5 节)节)信息科学与技术学院 闵笛软件工程软件工程3.1.3 导出系统的逻辑模型导出系统的逻辑模型
7、v 用数据流图、实体一联系图、状态转用数据流图、实体一联系图、状态转换图、数据字典和主要的处理算法描述这个换图、数据字典和主要的处理算法描述这个逻辑模型。逻辑模型。v 3.1.4 修正系统开发计划修正系统开发计划v 根据在分析过程中获得的对系统的更根据在分析过程中获得的对系统的更深入更具体的了解,可以比较准确地估计系深入更具体的了解,可以比较准确地估计系统的成本和进度,修正以前制定的开发计划。统的成本和进度,修正以前制定的开发计划。信息科学与技术学院 闵笛软件工程软件工程图图:软件需求分析的通信途径软件需求分析的通信途径v分析小组成员主要包括领域专家、系统分析分析小组成员主要包括领域专家、系统
8、分析员;员;v客户访谈客户访谈v问题分析与确认问题分析与确认信息科学与技术学院 闵笛软件工程软件工程3.2 与用户沟通获取需求的方法与用户沟通获取需求的方法v1、访谈、访谈v2、面向数据流自顶向下求精、面向数据流自顶向下求精v3、简易的应用规格说明技术、简易的应用规格说明技术v4、快速建立软件原型、快速建立软件原型信息科学与技术学院 闵笛软件工程软件工程3.2.1 访谈访谈v分正式和非正式访谈。分正式和非正式访谈。可采用调查表形式可采用调查表形式可使用情景分析技术可使用情景分析技术信息科学与技术学院 闵笛软件工程软件工程例:某出版社系统调查表例:某出版社系统调查表编号编号提出问题提出问题1您在
9、哪个部门工作?每日都处理哪些文件、数据、报表?您在哪个部门工作?每日都处理哪些文件、数据、报表?2出版业务流程是什么?出版业务流程是什么?3工作中手工处理特别麻烦的事情是什么?工作中手工处理特别麻烦的事情是什么?4手工处理有什么问题解决不了?影响效率的问题有哪些?手工处理有什么问题解决不了?影响效率的问题有哪些?5您认为提高工作效率,节省工作时间,减轻工作强度可采取哪些办法?您认为提高工作效率,节省工作时间,减轻工作强度可采取哪些办法?6您的部门需要成本核算和统计的内容有哪些?您的部门需要成本核算和统计的内容有哪些?7您的部门采用计算机管理工作情况如何?您的部门采用计算机管理工作情况如何?8如
10、何改进业务流程使之更合理?如何改进业务流程使之更合理?9哪些问题是目前传统手工方法根本无法解决的?哪些问题是目前传统手工方法根本无法解决的?10出版社计算机管理信息系统需要解决什么问题?出版社计算机管理信息系统需要解决什么问题?信息科学与技术学院 闵笛软件工程软件工程3.2.2 面向数据流自顶向下求精面向数据流自顶向下求精v 结构化分析方法的实质。结构化分析方法的实质。v 进一步细化可行性研究阶段获得到高层数进一步细化可行性研究阶段获得到高层数据流图。包括建立:据流图。包括建立:详细的数据流图详细的数据流图,描绘数据在软件系统内从输入,描绘数据在软件系统内从输入移动到输出的过程中所经受到变换;
11、移动到输出的过程中所经受到变换;数据字典数据字典:定义数据流图中包含的元素;:定义数据流图中包含的元素;实体关系(实体关系(ER)图)图:从用户角度描述数据;:从用户角度描述数据;IPO 图图:描述数据流图中处理框的功能和算法。:描述数据流图中处理框的功能和算法。信息科学与技术学院 闵笛软件工程软件工程面向数据流自顶向下求精过程面向数据流自顶向下求精过程信息科学与技术学院 闵笛软件工程软件工程3.2.3简易的应用规格说明技术简易的应用规格说明技术v 一种一种面向团队面向团队的需求收集法,提倡用户与的需求收集法,提倡用户与开发者密切合作,开发者密切合作,共同标识问题共同标识问题,提出解决,提出解
12、决方案要素,商讨不同方案并指定基本需求。方案要素,商讨不同方案并指定基本需求。v 具体过程见教材具体过程见教材 P60 面面v 提问:此方法将产生什么样的产品?提问:此方法将产生什么样的产品?信息科学与技术学院 闵笛软件工程软件工程3.2.4快速建立软件原型快速建立软件原型v快速原形就是快速建立起来的旨在演示目标快速原形就是快速建立起来的旨在演示目标系统主要功能的可运行的程序。系统主要功能的可运行的程序。v要点:要点:实现用户看得见的功能,省略目标系统实现用户看得见的功能,省略目标系统“隐含隐含”功能。功能。v具有具有“快速快速”和和“容易修改容易修改”两大特性。两大特性。信息科学与技术学院
13、闵笛软件工程软件工程3.2.4快速建立软件原型快速建立软件原型v 建立和修改原型的方法和工具:建立和修改原型的方法和工具:v(1)第四代技术。第四代技术。包括众多数据库查询和报表语言、包括众多数据库查询和报表语言、程序和应用系统生成器以及其他非常高级的非过程程序和应用系统生成器以及其他非常高级的非过程语言。能快速生成可执行的代码。语言。能快速生成可执行的代码。v(2)可重用的软件构件。可重用的软件构件。使用一组已有的软件构件使用一组已有的软件构件(也称为组件)来装配(而不是从头构造)原型。(也称为组件)来装配(而不是从头构造)原型。v(3)形式化规格说明和原型环境。形式化规格说明和原型环境。在
14、在交互式环境交互式环境下,下,用自动工具把基于形式语言的规格说明翻译成可执用自动工具把基于形式语言的规格说明翻译成可执行的程序代码。行的程序代码。信息科学与技术学院 闵笛软件工程软件工程3.3分析建模与规格说明分析建模与规格说明v3.3.1 分析建模分析建模v什么是模型?什么是模型?v 为了理解事物而对事物做出的一种抽象,是为了理解事物而对事物做出的一种抽象,是对事物的一种对事物的一种无歧义无歧义的书面描述。的书面描述。v 模型通常由模型通常由一组图形符号一组图形符号和组织这些符号和组织这些符号的的规则规则组成。组成。信息科学与技术学院 闵笛软件工程软件工程模型的作用模型的作用在建模过程中了解
15、系统。在建模过程中了解系统。通过抽象降低复杂性。通过抽象降低复杂性。有助于回忆所有的细节。有助于回忆所有的细节。有助于开发小组间的交流。有助于开发小组间的交流。有助于与用户的交流。有助于与用户的交流。为系统的维护提供文档为系统的维护提供文档信息科学与技术学院 闵笛软件工程软件工程例:结构化分析方法建立的需求模型例:结构化分析方法建立的需求模型v 结构化分析(结构化分析(Structured Analysis,SA)是面向数据流)是面向数据流进行分析的方法,主要建立以下几种模型:进行分析的方法,主要建立以下几种模型:v实体关系图实体关系图(Entity-Relationship Diagram,
16、E-R图图)来创建来创建数据模型数据模型,描述系统中所有重要的数据对象;,描述系统中所有重要的数据对象;v 数据流图(数据流图(Data Flow Diagram,DFD):用来创建:用来创建功能模功能模型型,描述了信息流和数据转换。,描述了信息流和数据转换。v 状态转换图状态转换图(State-Transition Diagram,STD)用来创建用来创建行为模型行为模型,描述系统状态如何响应外部事件,而进行转换。,描述系统状态如何响应外部事件,而进行转换。教材教材p56信息科学与技术学院 闵笛软件工程软件工程例:面向对象分祈方法(例:面向对象分祈方法(OOA)所建立的)所建立的摸型摸型v对
17、象模型对象模型(Object model):定义实体,描述:定义实体,描述系统的静态结构,定义系统的静态结构,定义“对谁做对谁做”v动态模型动态模型(Dynamic model):描述对象之间的描述对象之间的交互过程,规定交互过程,规定“何时做何时做”v功能模型作功能模型作(Functional model):描述内部描述内部数据的处理,指明系统应数据的处理,指明系统应“做什么做什么”信息科学与技术学院 闵笛软件工程软件工程软件需求规格说明软件需求规格说明v 软件需求规格说明书软件需求规格说明书 是需求分析阶段是需求分析阶段最主要的文档。对目标进行完善和补充,并最主要的文档。对目标进行完善和补
18、充,并写出完整的需求说明。写出完整的需求说明。v 为消除自然语言中可能存在的不一致、歧为消除自然语言中可能存在的不一致、歧义、含糊、不完整及抽象层次混乱等问题,义、含糊、不完整及抽象层次混乱等问题,有主张用有主张用形式化方法形式化方法描述用户对软件系统的描述用户对软件系统的需求。需求。v 例例:GB 8567-88:GB 8567-88 计算机软件产品开发文件计算机软件产品开发文件编制指南编制指南信息科学与技术学院 闵笛软件工程软件工程结构化分析方法结构化分析方法(Structured Analysis,SA)v面向数据流面向数据流进行需求分析的方法进行需求分析的方法v适合于适合于数据处理类型
19、数据处理类型软件的需求分析软件的需求分析信息科学与技术学院 闵笛软件工程软件工程结构化分折模型的组成结构结构化分折模型的组成结构信息科学与技术学院 闵笛软件工程软件工程3.4实体实体-联系图联系图v 实体实体-联系图(联系图(E-R 图)描绘系统的图)描绘系统的数据关系。数据关系。v 分析实体分析实体-联系有助于对业务或系统数据组成的理解联系有助于对业务或系统数据组成的理解和交互。和交互。v 一、基本概念(一、基本概念(1)v 实体:实体:客观世界中存在的,可区分的事物。客观世界中存在的,可区分的事物。v 数据对象:数据对象:实体在数据模型中的体现,能实体在数据模型中的体现,能由一组属由一组属
20、性性来定义的实体都可以被认为是数据对象。来定义的实体都可以被认为是数据对象。v 属性:属性:实体或数据对象所具有的性质。实体或数据对象所具有的性质。信息科学与技术学院 闵笛软件工程软件工程v联系:联系:客观事物之间的联系。联系分为三种:客观事物之间的联系。联系分为三种:一对一(一对一(1:1)一对多联系(一对多联系(1:N)多对多联系(多对多联系(M:N)v二、二、E-R 图的结构图的结构v三种基本元素:三种基本元素:信息科学与技术学院 闵笛软件工程软件工程 例例:教学教学E-R图图信息科学与技术学院 闵笛软件工程软件工程三、如何建立实体一联系图?三、如何建立实体一联系图?v1、在需求收集的过
21、程中,列出应用软件或业务过、在需求收集的过程中,列出应用软件或业务过程涉及到的所有程涉及到的所有“事物事物”,将其演化成数据对象;,将其演化成数据对象;v2、一次考虑一个对象,定义这个对象和其他对象、一次考虑一个对象,定义这个对象和其他对象之间是否存在连接;之间是否存在连接;v3、如果存在连接,应创建一个或多个关系;、如果存在连接,应创建一个或多个关系;v4、对每一个关系,确定其关联类型;、对每一个关系,确定其关联类型;v5、重复步骤(、重复步骤(2)到步骤()到步骤(4),直到定义了所),直到定义了所有关系。有关系。v6、定义每个实体的属性;、定义每个实体的属性;v7、形式化并复审实体关系图
22、;、形式化并复审实体关系图;v8、重复步骤(、重复步骤(1)到()到(7),直到数据建模完成。,直到数据建模完成。信息科学与技术学院 闵笛软件工程软件工程2.4 数据流图数据流图(DFD,Data Flow Diagram)v描述描述数据处理数据处理过程的工具。过程的工具。v通过图形的方法,从数据传递和数据处理的通过图形的方法,从数据传递和数据处理的角度,刻画数据流从输入到输出的移动变换角度,刻画数据流从输入到输出的移动变换过程。过程。v数据流三个重要属性:数据流三个重要属性:v数据流名字数据流名字v数据组成数据组成v流向流向信息科学与技术学院 闵笛软件工程软件工程2.4.1符号(符号(1)v
23、说明:用图形符号以黑盒子形式描绘组成系说明:用图形符号以黑盒子形式描绘组成系统的每个部件(程序,文档,数据库,人工统的每个部件(程序,文档,数据库,人工过程等),表达数据在系统各部件之间流动过程等),表达数据在系统各部件之间流动的情况。的情况。信息科学与技术学院 闵笛软件工程软件工程符号(符号(2)信息科学与技术学院 闵笛软件工程软件工程例例 1:描述银行取款过程的数据流图:描述银行取款过程的数据流图信息科学与技术学院 闵笛软件工程软件工程应该注意的几个问题应该注意的几个问题v适当地命名。(详见教材适当地命名。(详见教材 p45)v“数据存储数据存储”代表数据代表数据静止状态静止状态,“数据流
24、数据流”代表数据的代表数据的运动状态运动状态;v注意数据流与控制流的区别;注意数据流与控制流的区别;v通常数据流图中忽略出错处理、打开或关闭通常数据流图中忽略出错处理、打开或关闭文件之类的内务处理。文件之类的内务处理。v若数据的源点和终点相同,则应该有两个箭若数据的源点和终点相同,则应该有两个箭头和这个数据源(终)点相连;或重复画一头和这个数据源(终)点相连;或重复画一个源(终)点。个源(终)点。信息科学与技术学院 闵笛软件工程软件工程数据流图的层次结构数据流图的层次结构v 对于大型系统,往往采用对于大型系统,往往采用自顶向下逐层分自顶向下逐层分解解的方法,用分层数据流图表示所有数据流的方法,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 需求 分析
限制150内