第三章需求分析.ppt

上传人:本田雅阁 文档编号:3142770 上传时间:2019-07-16 格式:PPT 页数:56 大小:1.29MB
返回 下载 相关 举报
第三章需求分析.ppt_第1页
第1页 / 共56页
第三章需求分析.ppt_第2页
第2页 / 共56页
第三章需求分析.ppt_第3页
第3页 / 共56页
第三章需求分析.ppt_第4页
第4页 / 共56页
第三章需求分析.ppt_第5页
第5页 / 共56页
点击查看更多>>
资源描述

《第三章需求分析.ppt》由会员分享,可在线阅读,更多相关《第三章需求分析.ppt(56页珍藏版)》请在三一文库上搜索。

1、第三章 需 求 分 析,第3章 需求分析,意义 软件需求的深入理解是软件开发工作获得成功的前提条件,不论我们把设计和编码做得如何出色,不能真正满足用户需求的程序只会令用户失望,给开发带来烦恼。,需求分析是软件定义时期的最后一个阶段,它的基本任务不是确定系统怎样完成它的工作,而是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。 并在在需求分析阶段结束之前,由系统分析员写出软件需求规格说明书,以书面形式准确地描述软件需求。即: - 准确地回答“系统必须做什么?”。,在分析软件需求和书写软件需求规格说明书的过程中,分析员和用户都起着关键的、必不可少的作用。,3.1 需求分

2、析的任务,需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统的 “做什么” 的问题。,通常软件开发项目是要实现目标系统的物理模型,即确定待开发软件系统的系统元素,并将功能和数据结构分配到这些系统元素中。目标系统的具体物理模型是由它的逻辑模型经实例化而得到的。作为目标系统的参考,需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,步骤如下: 获得当前系统的物理模型 抽象出当前系统的逻辑模型 建立目标系统的逻辑模型 为了对目标系统做完整的描述,还需要对得到的逻辑模型做一些补充。,业务需求,项目范围文档,用户需求,用例文档,功能需求,质量属性,其他非功能需求

3、,设计约束,需求规约(specification),非功能需求,系统需求,需求组成的全景图,软件需求的组成,其中: 业务需求:反映组织机构和客户对系统、产品高层次的目标要求。 用户需求:从用户使用的角度给出需求的描述。 如一个小型超市需要一个商品的查询系统。 业务需求:进货人员需要查询商品库存以便保证及时进货;收款员需要查询商品的销售价格以便结账;经理需要查询商品的销售及盈利情况。 用户需求:这三类用户怎样去查询系统,查询哪些信息,还需要哪些操作。, 系统需求:从系统的角度描述要提供的服务以及所受到的约束。 功能性需求:描述系统应该做什么,即为用户和其它系统完成的功能、提供的服务。 非功能性需

4、求:产品必须具备的属性或品质。 设计约束:设计与实现必须遵循的标准、约束条件。如运行平台、协议、选择的技术、编程语言和工具等。 软件需求的描述 结构化语言、PDL 图形化表示 数学描述(形式化语言描述),1 确定对系统的综合要求 -功能需求、性能需求、可靠性和可用性需求、出错处理需求、接口需求、约束、 逆向需求、将来可能提出的要求。,需求分析的具体任务,分析系统的数据要求,3 导出系统的逻辑模型,4 修正系统开发计划,3.2 软件需求获取,需求分析是一个包括创建和维持系统需求文档所必需的一切活动的过程。它包含了如下活动: 系统可行性研究、需求获取和分析、需求描述和文档编写、需求有效性验证、需求

5、管理(管理需求工程的变更)。,可行性研究,需求获取和分析,需求描述,需求有效性验证,可行性研究报告,系统模型,用户需求和系统需求,需求规约,软件需求过程,需求管理,需求获取是开发人员与客户或用户一起对应用领域进行调查研究,收集系统需求的过程。 需求分析是将获取到的需求准确的理解、求精,并将其转化为完整的需求定义(包括建模),进而生成需求规约的过程。 需求获取和分析有一定的难度,因为: 1)项目相关人员通常并不真正知道希望计算机做什么,让他们清晰的表达出需要系统做什么是件困难的事,他们或许提出不切实际的要求。,2) 项目相关人员用自己的语言表达需求,这些语言包含很多工作中的专业术语和专业知识。系

6、统分析员没有这些知识和经验,而他们又必须了解这些需求。 3)不同的项目相关人员有不同的需求,可能以不同的方式表达,分析人员必须发现所有潜在的需求资源,而且能发现这些需求的相容或冲突之处。 4)经济和业务环境决定了分析是动态的,需求在分析过程中会发生变更。个别需求的重要程度会改变,新的需求会从新的项目相关人员那里得到。,软件工程思想(林锐 P38P48) 需求分析为什么困难? 如何进行需求分析?,需求获取技术, 建立由客户(用户)、系统分析员、领域专家参加的联合小组。 需求获取的方法:个别访谈、召集会议、文档研究、问卷调查、观察用户工作流程、建立原型。 获取的需求的表达方式: (1)需求列表 需

7、求与系统的特殊视角或环境的关系 (2)业务流程图(状态/活动图) (3)用例(Use-Case)/场景(Scenario) (4)数据流图 (5)实体关系图 (6)类图、活动图、时序图等。,用例把系统分成一组逻辑的、互相联系较少的部分,每一部分都描述了系统与外部角色交互所提供的服务,即用例的集合代表了所有将会在系统需求中出现的交互。因此容易从使用的角度理解系统应达到的功能。 例:列出图书馆系统中以下参与者的最小用例集:借阅者、借书员、图书管理员、会计系统。 借阅者: 按题目查询书籍 按作者查询书籍 按主题查询书籍 预定已被其他人借出的书籍 查询借阅者的个人信息并列出借阅的书籍,借书员: 所有借

8、阅者的用例,再加上 为借阅者查找某一书籍 登记已归还的书籍 续借一本书 登记缴纳的罚款 添加新的借阅者 更新借阅者的个人信息(地址、电话号码等) 图书管理员: 所有借阅者和借书员的用例,再加上 添加藏书 删除藏书 改变系统中对已有书籍的记录信息 会计系统(独立运行) 获得借阅者支付的超期罚款,3.3 需求分析方法,常见的需求分析方法有: 功能分析方法 将系统看作若干功能模块的集合,每个功能又可以分解为若干子功能,子功能还可继续分解,分解的结果已经是系统的雏形。 结构化分析方法 是一种以数据、数据的封闭性为基础,从问题空间到某种表示的映射方法,由数据流图(DFD图)表示。 信息建模法 是从数据的

9、角度对现实世界建立模型的,基本工具是ER图。 面向对象的分析方法 面向对象的分析方法(OOA)的关键是识别问题域内的对象,分析它们之间的关系,并建立起三类模型。,3.3.1、结构化分析方法(Structured Analysis 简称SA) SA的基本思想 结构化分析方法的基本思想是“分解”和“抽象”。 分解:对于一个复杂的系统,为了将复杂性降低到可以 掌握的程度,可以把大问题分解成若干小问题,然后分别解决。 抽象:分解可以分层进行,即先考虑问题最本质的属性,暂把细节略去,以后再逐层添加细节,直至涉及到最详细的内容,这种用最本质的属性表示一个系统的方法就是“抽象”。,SA法的步骤 建立当前系统

10、的“具体模型”。 抽象出当前系统的逻辑模型。 建立目标系统的逻辑模型。 为了对目标系统做完整的描述,还需要考虑人机界面 和其他一些问题。 SA法的描述方法 分层的数据流图 数据词典 描述加工逻辑的结构化语言、判定表及判定树,实例:医院病房监护系统,监视病情,更新病历,系统功能要求: 1、监视病员的病症(血压、体温、脉搏等) 2、定时更新病历 3、病员出现异常情况时报警。 4、随机地产生某一病员的病情报告。,顶层:,医院病房监护系统,第一层:,医院病房监护系统顶层DFD图,第二层:加工“中央监视”分解,医院病房监护系统二层DFD图,医院病房监护系统分层DFD图,图 215,图 216,3.3.2

11、、E-R方法(Entity-Relationship Approach) 和实体模型,E-R方法,即实体-联系方法。用于数据库逻辑设计过程,可定义实体模型。 实体模型,是客观世界的纯表示,不涉及具体的数据结构、存取路径、存取效率等问题。 实体模型中包含3种相互关联的信息:实体(数据对象)、实体的属性及实体彼此间相互连接的关系。,举 例,图3.2 某校教学管理ER图,实体,教师属性,学生属性,课程属性,联系属性,关系,(1). 实体-联系图的符号,ER图中包含了实体、关系和属性等3种基本成分。 通常用矩形框代表实体; 用连接相关实体的菱形框表示关系; 用椭圆形或圆角矩形表示实体(或关系)的属性;

12、 并用直线把实体(或关系)与其属性连接起来。,(2). 属 性,属性定义了实体的性质。 必须把一个或多个属性定义为“标识符”,也就是说,当我们希望找到数据对象的一个实例时,用标识符属性作为“关键字”(通常简称为“键”)。 应该根据对所要解决的问题的理解,来确定特定数据对象的一组合适的属性。 如:学生具有学号、姓名、性别、年龄、专业(其它略)等属性; 课程具有课程号、课程名、学分、学时数等属性; 教师具有职工号、姓名、年龄、职称等属性。,(3). 联 系,数据对象彼此之间相互连接的方式称为联系,也称为关系。 联系可分为以下3种类型: a. 一对一联系(11) 如:一个部门有一个经理,而每个经理只

13、在一个部门任职,则部门与经理的联系是一对一的。 b. 一对多联系(1N) 如:某校教师与课程之间存在一对多的联系“教”,即每位教师可以教多门课程,但是每门课程只能由一位教师来教。 c. 多对多联系(MN) 如:学生与课程间的联系(“学”)是多对多的,即一个学生可以学多门课程,而每门课程可以有多个学生来学。 联系也可能有属性。 如:学生“学”某门课程所取得的成绩,既不是学生的属性也不是课程的属性。由于“成绩”既依赖于某名特定的学生又依赖于某门特定的课程,所以它是学生与课程之间的联系“学”的属性。,规范化的目的是: 消除数据冗余,即消除表格中数据的重复; 消除多义性,使关系中的属性含义清楚、单一;

14、 使关系的“概念”单一化,让每个数据项只是一个简单的数或字符串,而不是一个组项或重复组; 方便操作。使数据的插入、删除与修改操作可行并方便; 使关系模式更灵活,易于实现接近自然语言的查询方式。,数据规范化,如何规范化?,规范化 - 将数据的逻辑结构归结为满足一定条件的二维表 (关系)。即: 1. 表格中每个信息项必须是一个不可分割的数据项,不可 是组项。 2. 表格中每一列 (列表示属性)中所有信息项必须是同一 类型,各列的名字 (属性名) 互异,列的次序任意。 3. 表格中各行 (行表示元组) 互不相同,行的次序任意。,用教学管理例说明如何规范化,有三个实体型,即课程、学生和教师,用三个关系

15、保存它们的信息: 学生(学号,姓名,性别,年龄,年级,专业,籍贯) 教师(职工号,姓名,年龄,职称,职务,工资级别,工资) 课程(课程号,课程名,学分,学时,课程类型) 为表示实体型之间的联系,又建立两个关系: 选课 (学号,课程号,听课出勤率,作业完成率,分数) 教课 (职工号,课程号,授课效果) 这五个关系,组成了数据库的模型。 在每个关系中,属性名下加(下划线)指明关键字。关键字能唯一地标识一个元组。,1、范式级别越高,存储同样数据就需要分解成更多张表,因此, “存储自身”的过程也就越复杂。,2、随着范式级别的提高,数据的存储结构与基于问题域的结构 间的匹配程度也随之下降,因此,在需求变

16、化时数据的稳定 性较差。,3、范式级别提高则需要访问的表增多,因此性能(速度)将下降。 从实用角度看来,选用第三范式都比较恰当。,通常用“范式(Normal Forms)”定义消除数据冗余的程度。第一范式(1 NF)数据冗余程度最大,第五范式(5 NF)数据冗余程度最小。但是:,第 一 范 式,每个属性值都必须是原子值,即仅仅是一个简单值 而不含内部结构。 如:,学生(学号,姓名,性别,年龄,年级,专业,籍贯) 教师(职工号,姓名,年龄,职称,职务,工资级别,工资) 课程(课程号,课程名,学分,学时,课程类型),第 二 范 式,满足第一范式条件,而且每个非关键字属性完全依赖 于关键字。 如:,

17、选课 ( 学号,课程号,听课出勤率,作业完成率,分数 ) 教课 ( 职工号,课程号,授课效果 ),第 三 范 式,符合第二范式的条件,非主属性相互独立,即任何非主属性间不存在函数依赖。 如:,教师(职工号,姓名,年龄,职称,职务,工资) - 工资依赖于职称或职务 教师(职工号,姓名,年龄,职称,职务,工资级别,工资),3.4 状态转换图,状态转换图(简称为状态图) 通过描绘系统的状态及引起系统状态转换的事件,来表 示系统的行为。此外,状态图还指明了作为特定事件的 结果系统将做哪些动作(例如,处理数据)。,1). 状 态,状态是任何可以被观察到的系统行为模式,一个状态代表系统的一种行为模式。状态

18、规定了系统对事件的响应方式。系统对事件的响应,既可以是做一个(或一系列)动作,也可以是仅仅改变系统本身的状态,还可以是既改变状态又做动作。 初态 (即初始状态) 状态 终态 (即最终状态) 中间状态,一张状态图中只能有一个初态,而终态则可以有0至多个。,2). 事 件,事件是在某个特定时刻发生的事情,它是对引起 系统做动作或(和)从一个状态转换到另一个状态 的外界事件的抽象。 例如,内部时钟表明某个规定的时间段已经过去, 用户移动或点击鼠标等都是事件。 简而言之,事件就是引起系统做动作或(和)转换 状态的控制信息。,初态用实心圆表示,终态用一对同心圆(内圆为实心圆)表示。 中间状态用圆角矩形表

19、示,可以用两条水平横线把它分成上、中、下3个部分。上面部分为状态的名称,这部分是必须有的;中间部分为状态变量的名字和值,这部分是可选的;下面部分是活动表,这部分也是可选的。,3). 符 号,活动表的语法格式:事件名(参数表)/动作表达式 其中,“事件名”可以是任何事件的名称。在活动表中经常使用下述3种标准事件:entry,exit和do。entry事件指定进入该状态的动作,exit事件指定退出该状态的动作,而do事件则指定在该状态下的动作。需要时可以为事件指定参数表。活动表中的动作表达式描述应做的具体动作。,3). 符 号,状态图中两个状态之间带箭头的连线称为状态转换,箭头指明了转换方向。 状

20、态变迁通常是由事件触发的,在这种情况下应在表示状态转换的箭头线上标出触发转换的事件表达式;如果在箭头线上未标明事件,则表示在源状态的内部活动执行完之后自动触发转换。 事件表达式的语法: 事件说明守卫条件动作表达式 事件说明的语法为:事件名(参数表)。 守卫条件是一个布尔表达式。如果同时使用事件说明和守卫条件,则当且仅当事件发生且布尔表达式为真时,状态转换才发生。如果只有守卫条件没有事件说明,则只要守卫条件为真状态转换就发生。 动作表达式是一个过程表达式,当状态转换开始时执行该表达式。,3). 符 号,4). 举 例,电话系统的状态图,3.5 其他图形工具,层次方框图 Warnier图 IPO图

21、,举 例,3.5.1 层次方框图,层次方框图用树形结构的一系列多层次的矩形框描绘数据的层次结构。 树形结构的顶层是一个单独的矩形框,它代表完整的数据结构,下面的各层矩形框代表这个数据的子集,最底层的各个框代表组成这个数据的实际数据元素(不能再分割的元素)。 随着结构的精细化,层次方框图对数据结构也描绘得越来越详细,这种模式非常适合于需求分析阶段的需要。系统分析员从对顶层信息的分类开始,沿图中每条路径反复细化,直到确定了数据结构的全部细节时为止。,3.5.2 Warnier图,法国计算机科学家Warnier提出了表示信息层次结构的另外一种图形工具。 Warnier图也用树形结构描绘信息,但是这种

22、图形工具比层次方框图提供了更丰富的描绘手段。 用Warnier图可以表明信息的逻辑组织。 它可以指出一类信息或一个信息元素是重复出现的,也可以表示特定信息在某一类信息中是有条件地出现的。 重复和条件约束是说明软件处理过程的基础,所以很容易把Warnier图转变成软件设计的工具。,举 例,图中表示一种软件产品要么是系统软件要么是应用软件。系统软件中有P1种操作系统,P2种编译程序,此外还有软件工具。软件工具是系统软件的一种,它又可以进一步细分为编辑程序、测试驱动程序和设计辅助工具,图中标出了每种软件工具的数量。,3.5.3 IPO图,左边的框中列出有关的输入数据。 中间的框内列出主要的处理,处理

23、框中列出处理的次序暗示了执行的顺序,但是用这些基本符号还不足以精确描述执行处理的详细情况。 在右边的框内列出产生的输出数据。 在IPO图中还用类似向量符号的粗大箭头清楚地指出数据通信的情况。,一种改进的IPO图(也称为IPO表),在需求分析阶段可以使用IPO表简略地描述系统的主要算法(即数据流图中各个处理的基本算法)。 需求分析阶段,IPO表中的许多附加信息暂时还不具备,但在设计阶段可以进一步补充修正这些图,作为设计阶段的文档。 这正是在需求分析阶段用IPO表作为描述算法的工具的重要优点。,3.6 验证软件需求,验证软件需求的正确性,一般应从4个方面进行: (1) 一致性 所有需求必须是一致的

24、,任何一条需求不能和其 他需求互相矛盾。 (2) 完整性 需求必须是完整的,规格说明书应该包括用户需 要的每一个功能或性能。 (3) 现实性 指定的需求应该是用现有的硬件技术和软件技术 基本上可以实现的。 (4) 有效性 必须证明需求是正确有效的,确实能解决用户面 对的问题。,3.7 软件需求规格说明(SRS),Software Requirement Specification 通常用自然语言+模型,完整、准确、具体地描述系统的数据要求、功能需求、性能需求、可靠性和可用性要求、出错处理需求、接口需求、约束、逆向需求以及将来可能提出的要求。 软件需求规格说明书,是需求分析阶段得出的最主要的文档

25、。,软件需求说明书的编写提示(GB856T88),1 引言 1.1 编写目的 1.2 背景 1.3 定义 1.4 参考资料,2 任务概述 2.1 目标 2.2 用户的特点 2.3 假定和约束,软件需求说明书的编写提示(GB856T88),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 控制,作 业 1)为什么要进行需求分析?通常软件系统有哪些需求? 2)第二章作业2的银行计算机储蓄系统。请用实体-联系图描 绘系统中的数据对象。 3)办公室复印机的工作过程大致如下:未接收到复印命令时处于闲 置状态,一旦接收到复印命令则进入复印状态,完成一个复印命令规定 的工作后又回到闲置状态,等待下一个复印命令;如果执行复印命令时 发现缺纸,则进入缺纸状态,发出警告,等待装纸,装满纸后进入闲置 状态,准备接收复印命令;如果复印时发生卡纸故障,则进入卡纸状态, 发出警告等待维修人员来排除故障,故障排除后回到闲置状态。 请用状态转换图描绘复印机的行为。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1