《第3章需求分析详解ppt课件.ppt》由会员分享,可在线阅读,更多相关《第3章需求分析详解ppt课件.ppt(80页珍藏版)》请在三一办公上搜索。
1、第三章 需求分析,3.1、需求分析的任务3.2、与用户沟通获取需求的方法3.3、分析建模与规格说明3.4、实体-联系图3.5、层次图和IPO图3.6、验证软件需求,知识点,需求分析概述需求分析的步骤获取需求的方法分析建模与工具验证软件需求,需求分析概述,可行性研究从概念上定义软件的总体目标,粗略地了解了用户的需求。需求分析进一步精化软件的作用范围,明确系统必须完成的功能,对目标系统提出完整、准确、清晰、具体的要求。,需求获取面临的挑战,客户说不清楚需求;需求易变性;问题的复杂性;对问题空间理解的不完备性与不一致性。,需求分析由软件分析人员与用户共同完成。,优秀需求具有的特性,正确性:需求描述必
2、须与用户对系统的期望相符;无歧义性:对用户、软件工程师而言,任何术语只能有惟一的语义解释;完整性:不能遗漏任何用户要求;一致性:需求的各个部分不能相互矛盾;可理解性:需求描述不应该使用太多专业化词汇;可修改性:应该保证能够比较容易接纳修改;可追踪性:将分析后的需求与原始需求联系起来。,通过对目标问题、用户要求和目标环境的研究、分析和综合,建立抽象级的分析模型(Analysis Model);,准确地、完整地体现用户需要的功能、性能及其他要求,规范地通过“软件需求规格说明书”(SRS,Software Requirement Specification)表达出来。,3.1 需求分析的任务,3.1
3、 需求分析的任务,确定系统的综合要求分析系统的数据要求建立系统的逻辑模型修正系统开发计划复审、验证需求分析编写软件需求规格说明书,7,3.1.1确定系统的综合要求,提问并思考:如果你是一个用户,你会对将要开发的软件有哪些要求?,3.1.1.确定系统的综合要求,1、功能需求,系统必须完成的所有功能(输入、输出、加工);,2、性能需求,系统必须满足的时间、空间约束,通常包括响应时间、信息量速率、容量、安全性等;,1)强制的需求;2)希望的需求;3)可选的需求。,系统与环境通信的格式:用户接口、硬件接口、软件接口、通信接口等;,4、出错处理需求,系统对环境错误如何处理,这类错误并不是由系统本身造成的
4、。仅限于关键部分,尽可能少;,5、接口需求,3、可靠性需求,定量指出系统的故障率和使用程度,一个衡量可靠性的参数是平均失效前时间(MTTF,Mean Time To Failure),定义为随机变量、出错时间等的期望值。,明确列出当前不属于系统开发范畴,将来很可能会提出的要求。,7、逆向需求,系统不应该做什么,选取澄清真实需求且可消除误解的逆向需求,且不需定量分析;,8、将来可能出现的要求,6、约束,在设计或实现系统时应遵守的条件:精度、工具和语言约束、设计约束、标准、硬件平台;,因此系统应该具备以下功能:基本数据维护功能 基本业务功能 数据库管理功能 信息查询功能,例1:有一个大学图书管理系
5、统,该系统除了一般的图书管理功能外,还能够为学生和教工从其他图书馆借阅图书和文献资料提供服务。,1.功能需求基本数据维护功能:提供使用者录入,修改并进行维护基本数据的途径。基本数据包括读者的信息、图书资料的相关信息,可以对这些信息进行修改,更新。基本业务功能:读者借、还书籍的登记管理功能,随时根据读者借、还书籍的情况更新数据库系统,如果书籍已经借出,可以进行预留操作,书籍的编目、入库、更新等操作。,数据库管理功能:对所有图书信息及读者信息进行统一管理维护的功能,对书籍的借还也要进行详细的登记,以便协调整个图书馆的运作。信息查询功能:提供对各类信息的查询功能,如对本图书馆的用户借书信息,还书的信
6、息,书籍源信息,预留信息等进行查询,对其他图书馆的书籍、资料源信息的查询功能。,2.非功能需求 系统安全性需求:为保证系统安全性,对本图书馆的各项功能进行分级、分权限操作,对各类用户进行确认。对其它图书馆借阅图书和文献资料服务控制访问范围:如限IP、限用户等。对系统可用性的需求:为了方便使用者,要求对所有交互操作提供在线帮助功能。对系统查询速度的需求:要求系统在20S之内响应查询服务请求。对系统可靠性的需求:要求系统失败发生率小于1%。,3.领域需求 例如:对“大学图书管理系统”,提出一些与图书管理的业务相关的需求:图书编目要求按照中国图书馆分类法进行;由于版权限制,某些文献资料只能在图书馆规
7、定的阅览室阅读,并限制复制和打印。第一条需求是对遵循我国图书管理的规定,执行对图书的分类管理的标准。而第二条需求则是版权法对图书馆文献资料的保护的需要,描述了对一类文献资料有限制的使用和服务。,16,3.1.2 分析系统的数据要求,提问并思考:如果你是设计者,除了上述需求以外,你觉得还需要得到哪些要求?,答:软件系统本质上是信息处理系统,要考虑数据和数据处理的问题。,3.1.2.分析系统的数据要求,数据字典:不够直观;层次方框图;Warnier 图;,任何软件系统的本质都是信息处理系统。信息很大程度上决定了系统概貌。,描绘数据结构:,数据结构规范化:范式(Normal Forms),消除数据冗
8、余的程度。,3.1.3.导出系统的逻辑模型,数据流图数据字典实体-联系图状态转换图主要的处理算法,导出详细的系统逻辑模型。,3.1.4.修正系统的开发计划,修正在可行性分析阶段制定的初步的开发计划。,3.2 与用户沟通获取需求的方法,20,图:软件需求分析的通信途径,分析小组成员主要包括领域专家、系统分析员;客户访谈问题分析与确认,21,与用户沟通的方法,1、访谈2、面向数据流自顶向下求精3、简易的应用规格说明技术4、快速建立软件原型,正式的访谈:具体问题的问答形式;非正式的访谈:开放式、交互性的问答。,3.2.1.访谈,书面调查:调查大量人员意见;,情景分析技术:对用户将来使用目标系统解决某
9、个具体问题的方法和结果进行分析。,1)能在某种程度上演示目标系统的行为,便于理解;2)用户在需求分析过程中始终扮演积极主动的角色。,某出版社系统调查表,3.2.2.面向数据流自顶向下求精,分析的对象:可行性分析中得到的数据流图。主要目标:把数据流和数据存储定义到元素级别。,结构化分析方法:面向数据流自顶向下逐步求精进行需求分析的方法。,从数据流图的输出端数据流开始分析:确定数据元素的来源,初步定义有关的算法;确定数据元素的新的信息。,决定了系统必须的最基本组成元素,在复查的过程中进行数据流图的细化。,面向数据流方法的分析过程,沿数据流图回溯用户复查细化数据流图修正开发计划书写文档审查和复审,1
10、、沿数据流图回溯,依次确定每个数据元素的来源;把数据元素的信息记录到数据字典中;在 IPO 图中记录算法的简明描述;在数据流图适当位置上补充数据流、数据存储和处理,2、用户复查,分析员向用户解释数据的来源;用户要及时纠正和补充分析员的认识;它验证了已知的元素,补充了未知的元素;分析员对系统的认识是一个螺旋式上升的过程。,3、细化数据流图,根据功能分解把数据流图细化到更低的层次;通过追踪这些细化的数据流图产生了新的问题,新的问题的答案可能在数据字典中增加新的条目,并且将产生新的算法;细化过程中注意及时的更新数据字典;,4、书写文档,系统规格说明数据要求用户系统描述修正的开发计划,必须理解并描述问
11、题的信息域,根据这条准则应该建立数据模型。必须定义软件应完成的功能,这条准则要求建立功能模型。必须描述作为外部事件结果的软件行为,这条准则要求建立行为模型。必须对描述信息、功能和行为的模型进行分解,用层次的方式展示细节。,所有的结构化分析方法都遵守下述准则:,3.2.3.简易的应用规格说明技术,是一种面向团队的需求收集方法,是一种主流技术。它提倡用户与开发者密切合作、共同标识问题、提出解决方案,确定基本需求。,前两种方法中,用户比较被动。,简易的应用规格说明技术,进行初步的访谈,初步确定待解决的问题的范围和解决方案。开发者和用户分别写出“产品需求”会议前准备 开会讨论 起草完整的软件需求规格说
12、明书,3.2.4 快速原型法,快速原型:快速建立起来的旨在演示目标系统主要功能的可运行的程序。,快速:快速的提供给用户一个可运行的软件;容易修改:根据用户的要求可迅速构建新的原型;,是最准确、有效和强大的需求分析技术。,问 题:,成本问题;方法和工具问题。,快速建立软件原型,为了快速地构建和修改原型,通常使用下述3种方法和工具:(1)第四代技术(2)可重用的软件构件(3)形式化规格说明,3.3 分析建模与规格说明,什么是模型?模型,就是为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义的书面描述。模型通常由一组图形符号和组织这些符号的规则组成。,模型的作用,在建模过程中了解系统;通过抽象
13、降低复杂性;有助于回忆所有的细节;有助于开发小组间的交流;有助于与用户的交流;为系统的维护提供文档。,3.3.1 分析建模,结构化分析实质上是一种创建模型的活动。需求分析过程应该建立3种模型,它们分别是数据模型、功能模型和行为模型。,36,结构化分析方法(Structured Analysis,SA),面向数据流进行需求分析的方法适合于数据处理类型软件的需求分析,结构化分析模型的组成结构,结构化分析方法的本质是创建模型的活动,数据模型:E-R图(ERD),描述数据对象,数据对象之间的关系;功能模型:数据流图(DFD),描述数据在系统中流动,变换的逻辑过程;行为模型:状态转换图(STD),描绘了
14、系统的各种行为模式和在不同状态之间转换的方式;模型中心:数据字典(DD)。,3.3 分析建模与规格说明,3.3.2.软件需求规格说明(SRS)Software Requirement Specification 通常用自然语言+模型,完整、准确、具体地描述系统的数据要求、功能需求、性能需求、可靠性和可用性要求、出错处理需求、接口需求、约束、逆向需求以及将来可能提出的要求。软件需求规格说明书,是需求分析阶段得出的最主要的文档。,软件需求说明书的编写提示(GB856T88),软件需求说明书的编写提示,1 引言 1.1 编写目的 1.2 背景 1.3 定义 1.4 参考资料,2 任务概述 2.1 目
15、标 2.2 用户的特点 2.3 假定和约束,软件需求说明书的编写提示,3 需求规定 3.1 对功能的规定 3.2 对性能的规定 3.2.1 精度 3.2.2 时间特性要求 3.2.3 灵活性 3.3 输人输出要求 3.4 数据管理能力要求 3.5 故障处理要求 3.6 其他专门要求,4 运行环境规定 4.1 设备 4.2 支持软件 4.3 接口 4.4 控制,3.4 数据模型的表示方法:实体-联系图,在数据处理中用数据模型描述客观世界中的事物及其联系。,数据模型中包含3种相互关联的信息:数据对象(实体),数据对象的属性,数据对象间相互连接的关系。,3.4.1 数据对象(实体)数据对象:是对软件
16、必须理解的复合信息的抽象。复合信息:是指具有一系列不同性质或属性的事物,仅有单个值的事物(例如,宽度)不是数据对象。可以由一组属性来定义的实体都可以被认为是数据对象。如:外部实体、事物、行为、事件、角色、单位、地点或结构等。数据对象彼此间是有关联的。,3.4.2 属性 属性定义了数据对象的性质。必须把一个或多个属性定义为“标识符”,也就是说,当我们希望找到数据对象的一个实例时,用标识符属性作为“关键字”(通常简称为“键”)。应该根据对所要解决的问题的理解,来确定特定数据对象的一组合适的属性。如:学生具有学号、姓名、性别、年龄、专业(其它略)等属性;课程具有课程号、课程名、学分、学时数等属性;教
17、师具有职工号、姓名、年龄、职称等属性。,3.4.3 联系 数据对象彼此之间相互连接的方式称为联系,也称为关系联系可分为以下3种类型:a.一对一联系(11)如:一个部门有一个经理,而每个经理只在一个部门任职,则部门与经理的联系是一对一的。b.一对多联系(1N)如:某校教师与课程之间存在一对多的联系“教”,即每位教师可以教多门课程,但是每门课程只能由一位教师来教。c.多对多联系(MN)如:学生与课程间的联系(“学”)是多对多的,即一个学生可以学多门课程,而每门课程可以有多个学生来学。联系也可能有属性。如:学生“学”某门课程所取得的成绩,既不是学生的属性也不是课程的属性。由于“成绩”既依赖于某名特定
18、的学生又依赖于某门特定的课程,所以它是学生与课程之间的联系“学”的属性。,3.4.4 实体联系类型符号表示,ER图中包含了实体(即数据对象)、关系和属性等3种基本成分。通常用矩形框代表实体;用连接相关实体的菱形框表示关系;用椭圆形或圆角矩形表示实体(或关系)的属性;并用直线把实体(或关系)与其属性连接起来。,3.4.4 实体联系类型符号表示,举 例,图3.2 某校教学管理ER图,对象,教师属性,学生属性,课程属性,联系属性,关系,举例:用E-R图表示某个工厂的物资管理,涉及的实体:仓库:仓库号,仓库面积,电话号码零件:零件号,名称,规格,单价,描述职工:职工号,姓名,年龄,职称实体间的联系:一
19、个仓库可以存放多种零件,一种零件可以存放在多个仓库中一个仓库有多个职工当仓库保管员,一个职工只能在一个仓库工作职工之间具有领导和被领导关系,即仓库主任领导若干保管员,E-R图表示,3.5 数据规范化,为什么数据要规范化?,规范化的目的是:消除数据冗余,即消除表格中数据的重复;消除多义性,使关系中的属性含义清楚、单一;使关系的“概念”单一化,让每个数据项只是一个简单的数或字符串,而不是一个组项或重复组;方便操作。使数据的插入、删除与修改操作可行并方便;使关系模式更灵活,易于实现接近自然语言的查询方式。,如 何 规 范 化?,规范化-将数据的逻辑结构归结为满足一定条件的二维表(关系)。即:1.表格
20、中每个信息项必须是一个不可分割的数据项,不可是组项。2.表格中每一列(列表示属性)中所有信息项必须是同一类型,各列的名字(属性名)互异,列的次序任意。3.表格中各行(行表示元组)互不相同,行的次序任意。,用教学管理例说明如何规范化,有三个实体型,即课程、学生和教师,用三个关系保存它们的信息:学生(学号,姓名,性别,年龄,年级,专业,籍贯)教师(职工号,姓名,年龄,职称,职务,工资级别,工资)课程(课程号,课程名,学分,学时,课程类型),为表示实体型之间的联系,又建立两个关系:选课(学号,课程号,听课出勤率,作业完成率,分数)教课(职工号,课程号,授课效果)这五个关系,组成了数据库的模型。在每个
21、关系中,属性名下加下划线)指明关键字。并规定关键字能唯一地标识一个元组。,通常用“范式(Normal Forms)”定义消除数据冗余的程度。第一范式(1 NF)数据冗余程度最大,第五范式(5 NF)数据冗余程度最小。但是:,1、范式级别越高,存储同样数据就需要分解成更多张表,因此,“存储自身”的过程也就越复杂。,2、随着范式级别的提高,数据的存储结构与基于问题域的结构间的匹配程度也随之下降,因此,在需求变化时数据的稳定性较差。,3、范式级别提高则需要访问的表增多,因此性能(速度)将下降。从实用角度看来,在大多数场合选用第三范式都比较恰当。,所以,从实用角度看来,在大多数场合选用第三范式都比较恰
22、当。,第 一 范 式,每个属性值都必须是原子值,即仅仅是一个简单值而不含内部结构。如:,学生(学号,姓名,性别,年龄,年级,专业,籍贯)教师(职工号,姓名,年龄,职称,职务,工资级别,工资)课程(课程号,课程名,学分,学时,课程类型),第 二 范 式,满足第一范式条件,而且每个非关键字属性都由整个关键字决定(而不是由关键字的一部分来决定)。如:,选课(学号,课程号,听课出勤率,作业完成率,分数)教课(职工号,课程号,授课效果),第 三 范 式,符合第二范式的条件,每个非关键字属性都仅由关键字决定,而且一个非关键字属性不能仅仅是对另一个非关键字属性的进一步描述(即一个非关键字属性值不依赖于另一个
23、非关键字属性值)。如:,教师(职工号,姓名,年龄,职称,职务,工资)-工资依赖于职称或职务教师(职工号,姓名,年龄,职称,职务,工资级别,工资),3.6 状态转换图,状态转换图(简称为状态图)通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。此外,状态图还指明了作为特定事件的结果系统将做哪些动作(例如,处理数据)。,1).状 态,状态是任何可以被观察到的系统行为模式,一个状态代表系统的一种行为模式。状态规定了系统对事件的响应方式。系统对事件的响应,既可以是做一个(或一系列)动作,也可以是仅仅改变系统本身的状态,还可以是既改变状态又做动作。初态(即初始状态)状态 终态(即最终状态)中
24、间状态,一张状态图中只能有一个初态,而终态则可以有0至多个。,2).事 件,事件是在某个特定时刻发生的事情,它是对引起系统做动作或(和)从一个状态转换到另一个状态的外界事件的抽象。例如,内部时钟表明某个规定的时间段已经过去,用户移动或点击鼠标等都是事件。简而言之,事件就是引起系统做动作或(和)转换状态的控制信息。,3)符号,事件名(参数表)/动作表达式,活动表的语法,entry:指定进入该状态的动作;exit:指定退出该状态的动作;do:指定该状态下的动作。,事件表达式的语法,事件名(参数表)守卫条件/动作表达式,事件说明,布尔表达式,and,动作表达式是一个过程表达式,当状态转换开始时执行该
25、表达式。,4).举 例,3.7 其他图形工具,层次方框图 Warnier图 IPO图,3.7.1 层次方框图,层次方框图用树形结构的一系列多层次的矩形框描绘数据的层次结构。树形结构的顶层是一个单独的矩形框,它代表完整的数据结构,下面的各层矩形框代表这个数据的子集,最底层的各个框代表组成这个数据的实际数据元素(不能再分割的元素)。随着结构的精细化,层次方框图对数据结构也描绘得越来越详细,这种模式非常适合于需求分析阶段的需要。系统分析员从对顶层信息的分类开始,沿图中每条路径反复细化,直到确定了数据结构的全部细节时为止。,举 例,3.7.2 Warnier图,法国计算机科学家Warnier提出了表示
26、信息层次结构的另外一种图形工具。Warnier图也用树形结构描绘信息,但是这种图形工具比层次方框图提供了更丰富的描绘手段。用Warnier图可以表明信息的逻辑组织。它可以指出一类信息或一个信息元素是重复出现的,也可以表示特定信息在某一类信息中是有条件地出现的。重复和条件约束是说明软件处理过程的基础,所以很容易把Warnier图转变成软件设计的工具。,举 例,信息/数据元素出现的条件,重复次数,五.IPO 图,Input-Process-Output Diagram(输入/处理/输出图),描述输入数据、输出数据和数据处理之间的关系。,排列顺序暗示执行的顺序,数据通信情况,IPO 表,用PDL进行
27、处理流程描述,3.8 验证软件需求,验证软件需求的正确性,一般应从4个方面进行:(1)一致性 所有需求必须是一致的,任何一条需求不能和其他需求互相矛盾。(2)完整性 需求必须是完整的,规格说明书应该包括用户需要的每一个功能或性能。(3)现实性 指定的需求应该是用现有的硬件技术和软件技术基本上可以实现的。(4)有效性 必须证明需求是正确有效的,确实能解决用户面对的问题。,2 验证软件需求的方法,1.验证需求的一致性 用形式化的需求陈述语言书写2.验证需求的现实性 分析用现有的软、硬件技术实现目标系统的可能性。3.验证需求的完整性和有效性 开发原型系统,3 用于需求分析的软件工具,这类软件工具应该满足下列要求:(1)必须有形式化的语法(或表),因此可以用计算机自动处理使用这种语法说明的内容;(2)使用这个软件工具能够导出详细的文档;(3)必须提供分析(测试)规格说明书的不一致性和冗余性的手段,并且应该能够产生一组报告指明对完整性分析的结果;(4)使用这个软件工具之后,应该能够改进通信状况。,3.9 小结,全面理解需求分析阶段(方法 过程 工具)理解获取需求的方法和原则掌握分析建模与结构化分析方法综合使用多种工具描述逻辑模型,