[工学]第3章需求分析.ppt_第1页
[工学]第3章需求分析.ppt_第2页
[工学]第3章需求分析.ppt_第3页
[工学]第3章需求分析.ppt_第4页
[工学]第3章需求分析.ppt_第5页
已阅读5页,还剩94页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章 需求分析,需求分析的概念 需求分析的目标和任务 获取需求的方法 需求规格说明书 结构化分析方法,软件需求是指用户对目标软件系统在功能、性能、行为、设计约束等方面的期望。 需求分析就是通过对应用问题及其环境的分析与理解,采用一系列的分析方法和技术,将用户的需求逐步精确化、完全化、一致化,最终形成需求规格说明文档的过程。,3.1 需求分析的概念,需求分析阶段的成果主要是需求规格说明,该成果又是软件设计、编码、测试直至维护的主要基础。 需求分析是软件生存周期的关键性阶段。良好的分析活动能够减少错误和遗漏,从而可提高软件生产率和产品质量、降低开发与维护成本。,3.1 需求分析的概念,功能性需求和非功能性需求 功能性需求:描述了系统应该做什么,即具备的功能或服务。(输入、输出和计算等) 非功能性需求:描述了系统必须遵守的约束条件。(响应时间、吞吐量 、可靠性、可移植性、可扩展性、易用性、安全性、资源要求、可复用性、技术要求、文化和政策需求、法律需求、道德要求、隐私要求,等等),软件需求分类,参与需求分析的人员,需求分析的重要性 软件开发的基础和前提 最终目标软件系统验收的标准 避免或者尽早剔除早期的错误,3.1 需求分析的概念,需求获取 困难 原因有三,一是用户需求的动态性(不稳定性),二是需求的模糊性(不准确性),三是需求必须得到用户的确认,否则毫无意义,4.1 需求分析基础-需求分析的重要性,3.1 需求分析的概念,获取需求困难的原因:,因此必须使用系统的方法、借助于一系列行之有效的技术和工具进行需求分析。,一副关于软件项目需求的漫画,一副关于软件项目的漫画,3.2 需求分析的目标和任务,需求分析的目标 构造一个完全地、精致地目标系统逻辑模型; 确定设计约束。,软件规格说明,需求分析的任务 准确的回答“系统必须做什么?” 仍然回答“What”,而不是“How” 但更细致、精确(合同的拟定),3.2 需求分析的目标和任务,实现步骤: (1)分析现实世界,充分理解当前系统,并用一个具体模型描述,获得当前系统的物理模型。 (2)在理解当前系统“怎么做”的基础上,抽取“作什么”的本质,抽象出系统的逻辑模型。 (3)分析目标系统与当前系统逻辑上的差别,导出目标系统的逻辑模型。 (4)对目标系统逻辑模型进行补充,以求完整地描述。,3.2 需求分析的目标和任务,当前系统,逻辑模型,物理模型,目标系统,理解需求,表达需求,由当前系统建立目标系统模型过程,3.2 需求分析的目标和任务,例:从用户调查中了解到某高校向学生销售教材的手续是:先由系办公室的张秘书开购书证明,学生凭证明找教材科的王会计开购书发票,向李出纳员交付书款,然后到书库找赵保管员领书。现欲将上述的手工操作改为计算机处理,试对教材销售软件做需求分析,给出售书系统的模型。,建立目标系统模型举例,步骤:(1)通过对现实环境的调查研究,获取当前系统的具体模型(物理模型);,建立目标系统模型举例,步骤:(2)去掉具体模型中的非本质因素,提炼出当前系统的逻辑模型;,建立目标系统模型举例,步骤:(3)分析当前系统与目标系统的差别,建立目标系统的逻辑模型;,建立目标系统模型举例,需求分析的过程 需求分析阶段的工作有以下四个方面:,问题识别,分析与综合,编制需求分析阶段文档,需求分析评审,3.2 需求分析的目标和任务,需求获取,功能要求 性能要求 运行和扩充要求 维护要求 系统文档规格要求 ,问题识别:,3.2 需求分析的目标和任务,编写需求分析阶段文档: (1)需求规格说明包含对目标软件系统的外部行为的完整描述、需求验证标准以及用户在性能、质量、可维护性等方面的要求。 (2)初步用户手册包括用户界面描述以及有关目标系统使用方法的初步构想。 (3)在需求分析中确立测试标准,作为系统开发目标是否完成的验收依据。 (4)修改的项目开发计划是根据新的分析结果,对可行性分析和软件计划阶段中制订的初步的项目开发计划作必要的修改、补充和完善。,3.2 需求分析的目标和任务,需求评审: 由专家、分析人员、开发人员、用户组成评审组,对需求分析所得的结果进行评审。 完整性 正确性 一致性 可理解性 无歧义性 可验证性 可修改性,3.2 需求分析的目标和任务,个人成果,妥善保存,请勿传播,需求分析流程,3.3 获取需求的方法,需求分析至今仍是公认为的软件开发中最为困难、亟待解决的一个问题。软件项目中40%60%的问题都是在需求阶段埋下的祸根! 1、存在问题 (1)对需求的理解问题。 (2)分析人员与用户的通信问题。 (3)用户需求的可变性问题。 分析方法和分析工具问题。,3.3 获取需求的方法,2、 常用方法 (1)访谈:正式的和非正式的访谈 (2)问卷调查 问卷调查即把需要调查的内容制成表格交给用户填写。该方法对需要调查大量人员的意见时,十分有效。 (3)需求专题讨论会 常用的需求获取技术。有利于培养高效团队。 (4)实地考察 (5)构造原型,例:某出版社系统调查表,例:某出版社系统调查表,3.4 需求规格说明书,1、需求规格书明书的主体内容: 1)概述:软件需求的简要说明 2)界面描述:软件系统的实现环境 3)模型分析:系统模型的形式规定、限制和说明 4)质量评审要求 5)其他,3.4 需求规格说明书,2、需求规格书明书的基本要求: 1)完整:考虑细致 2)一致:前后内容一致 3)精确:数据、任务要精确 4)无二义性:不提模棱两可的问题 5)符合标准:按国家、国际标准书写 6)易维护:应便于修改,3.4 需求规格说明书,3、主要负责人:分析员 1)资历较高:要有概括能力、分析能力和社交活动能力。 2)熟悉计算机技术:要有一定的计算机硬件和软件系统的开发经验。 3)对用户的相关业务了解:要能理解用户提出的要求。 4)发挥中间人的作用:要善于在用户和软件开发机构之间进行良好的联系工作。,3.4 需求规格说明书,需求规格说明书的书写格式 查看标准文档及示例,3.5 结构化分析方法,数据流图 数据字典 加工逻辑描述工具,分析 方法,结构化分析方法,面向对象的分析方法,面向数据的方法,以数据流为中心 。其核心概念包括:进程、数据流、数据存储、外部实体、数据组和数据元素。有代表性的模拟工具有:数据流图、数据字典、原始进程规格说明。,面向对象分析以对象及其服务作为建模标准,比较自然,对象也具有相对的稳定性。主要模拟的元素有:对象、类、属性、关系、方法、消息传递、用例等。其主要原理包括分类、继承、层次、信息隐藏、汇集关系等。,需求分析方法,结构化分析方法,结构化分析方法: 是面向数据流进行需求分析,以结构化的方式进行系统分析的方法。适用于分析大型的数据处理系统。 结构化分析方法特点: 利用数据流图来帮助人们理解问题,对问题进行分析,即利用图形工具来模拟数据处理过程。,结构化分析方法,结构化分析方法核心: 核心是数据流图。数据流图是一种用来表示信息流程和信息变换过程的图解方法,它将系统看成是由数据流联系的各种功能的组合。数据流图可以方便的描述用数据流的流动所联系的各种功能。通过各种功能的输入/输出结果, 表现现有系统或待开发系统的功能。,结构化分析方法,此外,用数据字典定义数据流图中的各项数据;结构化英语(汉语)、判定树和判定表对数据流图中的基本功能进行描述。通过将系统分解成多层处理后,在较低层次上,可以看到数据流图的高层次加工的细节和相关的数据流。,结构化分析方法,结构化分析方法的实质就是采用一组分层的数据流图及相应的数据字典作为系统的模型。 结构化分析方法从总体上看是一种强烈依赖数据流的自顶向下的建模方法,它不仅是需求分析技术,也是完成规格说明文档的技术手段。,结构化分析方法 (structured analysis),结构化分析法 使用的工具,结构化分析方法 (structured analysis),结构化分析法 使用的工具,结构化分析方法 (structured analysis),结构化分析法 使用的工具,结构化分析方法 (structured analysis),数据流图,1、组成元素:四种基本图形符号 圆框:表示从输入到输出的数据流中的一个加工,在框内注明加工的名称; 方框:表示数据的源点或数据的汇点,即外部实体,在框内注明实体的名称; 箭头:表示被加工数据的路径和流向,即数据流,可用名词和或名词性短语命名; 双杠:表示数据存储,可以是一个记录或一个数据文件,可用名词和或名词性短语命名。,结构化分析方法 (structured analysis),加工是对数据执行某种操作或变换,是把输入数据流变成输出数据流的一种变换。每个加工应有一个名字代表它的意义。分层的DFD中每个加工还应进行编号。,加工,结构化分析方法 (structured analysis),源点和终点是代表系统之外的人、物或组织。它们发出或接受系统的数据,其作用是提供系统和外界环境之间关系的注释性说明,说明数据的来龙去脉,使数据流图更清晰。,源点和终点,结构化分析方法 (structured analysis),数据流描述DFD中各成分的接口。数据流的方向可以: 从加工流向加工; 从加工流向数据存储; 从源点流向加工; 从加工流向终点。,数据流:,结构化分析方法 (structured analysis),数据流的含义: (1)数据流是一组成分已知的数据。可以是一个数据,也可以是一组数据。 (2)两个加工之间可以有多个数据流。 (3)数据流应有良好的命名,它不仅作为数据的标识,还有利于深化对系统的认识。 (4)同一数据流可流向不同加工,不同加工也可流出相同的数据流。(合并与分解)。,数据流:,结构化分析方法 (structured analysis),(5)流入/流出数据存储的数据流不需要命名。因为数据存储名已有足够的信息来表示数据流的意义。 (6)数据流不能是控制流。数据流反映了处理的对象,控制流是一种选择或用来影响加工的性质。 (7)数据流不能是实物,不能把现实环境中的实物名作为数据流名,软件只能处理数据,不能处理实物。,数据流:,含控制流的例子,含实物的例子,提货单,结构化分析方法 (structured analysis),数据存储可以表示文件、文件的一部分、数据库的元素或记录的一部分等。数据可以存储在磁盘、磁带、存储器和其他任何介质上。应对数据文件进行命名。在DFD中应注意指向数据文件的箭头的方向(可以是双向的)。,数据存储,结构化分析方法 (structured analysis),数据流图实例,学生选课系统的数据流图,结构化分析方法 (structured analysis),数据流图实例,结构化分析方法 (structured analysis),2、数据流图的分层 结构化控制复杂性的方法是采用分层技术,用一套分层DFD来分解复杂性。分层体现了抽象和信息隐藏。 一套分层DFD图包括顶层DFD 、中间层DFD和底层DFD组成。 (1)父图和子图 (2)分层图编号 (3)父图和子图的平衡性 (4)局部文件 (5)分解度(3-4层、每层=7),结构化分析方法 (structured analysis),S,2,1,3,F,F,F,F,DFD/L0,DFD/L1,DFD/L2.1,DFD/L2.2,DFD/L2.3,分层数据流图,顶层,0层,1层,返回,结构化分析方法 (structured analysis),父图和子图的平衡,父图,子图,返回,结构化分析方法 (structured analysis),局部文件,父图,子图,返回,结构化分析方法 (structured analysis),数据流图的画法: 基本原则: 数据流图中所使用的图形符号有四种; 数据流图的主图必须封闭在外部实体之间,实体可以有多个; 加工框至少有一个输入数据流和一个输出数据流; 任何一个数据流子图必须与它的父图上的一个加工框对应,两者的输入/输出数据流必须保持平衡; 图中的每一个元素都必须有名字。,结构化分析方法 (structured analysis),不可在数据流图中夹带控制流和实物; 初画时,可忽略一些细节。 注意:画数据流图时,不考虑初始化,暂不考虑出错路径等细节,不画控制流和控制信息。基本原则是“先外后内”。,结构化分析方法 (structured analysis),画数据流图的步骤: 1、找外部实体,找到外部实体即可确定系统与外部世界的界面,也就可确定数据流源点和终(汇)点; 2、找出外部实体的输入和输出数据流; 3、画出外部实体; 4、从外部实体的输出流(源)出发,按照系统的逻辑需要,逐步画出一系列逻辑加工框,直至数据终点; 5、按照一般原则进行检查和修改; 6、按上述步骤画出所需的子图。,数据流图举例,教学购销系统是某高校早期使用过的一个教材管理系统,主要用于对计划供应教材的控制销售与补充采购。该系统主要具有以下功能。 1、根据学校的教学计划,向选课的学生及时供应所需教材 审查学生(个人或班级)购书单的有效性,对有效单发售教材并开发票; 对属于计划供应但暂时缺货的教材进行缺书登记。 2、根据缺书登记补充采购所缺的教材,通知学生补购 将缺书登记表汇总为待购教材计划; 待购教材到货后,及时通知学生补购。 请分层画出数据流图。,顶层图,第0层图,第1层 销售子系统,第1层 采购子系统,数据字典,数据字典 数据字典是对数据流图上的每一个成分进行定义和说明的工具。 数据字典中有系统的详细信息,是以后进行系统设计及维护的重要依据。 数据字典编写的基本要求: 1、对数据流图上的各种元素的定义必须明确,一致且易理解。 2、命名、编号应与数据流图一致。 3、对数据流图的成分定义与说明无遗漏,无同名异义,或异名同义。 4、格式规范,文字精练,符号正确。,数据字典,数据字典定义式中的符号 符号 含义 举例 = 被定义为 日期=年+月+日 + 与 学生基本数据=学号+姓名 | 或 城市名=北京|天津|上海 重复 帐目=账号+户名 +款额+存期+地址 mn 重复 姓名=4 字符 10 () 选择 登录信息=用户名+(密码) 连接符 学号=“00001”“99999”,数据字典,例1:,数据字典,例2:,数据字典,数据字典中的条目包括5种形式: 1、数据项:数据处理中基本的不可分割的逻辑单位(如学号等) 。 2、数据流:定义数据流图中的数据流,包括名字、编号、来源去向、数据组成等。 3、数据存储:说明存储文件的名称、编号、组成、记录数等。 4、处理功能:说明加工的名称、编号、激活条件、加工逻辑概括描述等。 5、外部实体:说明外部实体的名称、编号,输入/输出数据流等。但由于源点和汇点不在系统之内,可以不描述。,数据字典,数据流条目举例:,数据字典,数据项条目举例:,数据字典,文件条目举例:,数据字典,加工条目举例,加工逻辑描述工具,结构化语言: 用自然语言描述加工逻辑,是一种最自然的方法。但自然语言有不精确、容易产生二义性等问题。因此在自然语言上增加一些限制,形成半形式化语言。结构化语言在自然语言的基础上发展了3种规范化的语言表达方式。 三种基本控制结构: 简单陈述结构:自然语言,一般用祈使句 判定结构:IF_THEN_ELSE或CASE结构 重复结构:FOR或REPEAT_UNTIL结构等,处理名:核实订票处理 编号:3.2 激活条件:收到订票信息 处理逻辑:1 读订票旅客信息文件 2 搜索此文件中是否有与信息中姓名及身份证号相符的项 IF 有 THEN 判断余项是否与文件中信息相符 IF 是 THEN 输出已订票信息 ELSE 输出未订票信息 ELSE 输出未订票信息 执行频率:实时,核实订票处理说明,加工逻辑描述工具,处理名:月票额统计处理 编号:7.1.3 激活条件:收到每日售票额信息 处理逻辑:1 统计月保险金总和 月保险金信息=日保险金信息之和 2 统计月合计 月合计信息=日合计信息之和 执行频率:1次/月,月票额统计处理说明,加工逻辑描述工具,判定表: 在某些数据处理问题中,处理过程需要依赖于多个逻辑条件的取值,这些取值可能构成多种不同的情况,相应执行不同的动作。这类问题适合使用判定树或判定表作为描述加工小说明的补充工具。 判定表为说明复杂的决策逻辑提供了一种描述机制,它以一种形式化的表格为基础。,加工逻辑描述工具,判定表通常由四部分组成: (1)基本条件区:列出所有可能的条件,通常这些条件的次序无关; (2)基本动作区:列出所有可能采取的动作,通常次序无关; (3)条件组合区:各种条件给出的多种取值,即多个条件所取真假值的组合。 (4)执行动作区:和条件项紧密相关,指出在各种条件的特定取值下应采取的动作。 任何一个条件取值组合及其相应要执行的动作,称为规则(在判定表中贯穿条件项和动作项一列)。,加工逻辑描述工具,基本条件区 条件的组合 基本动作区 执行的动作,加工逻辑描述工具,BEGIN 输入学生成绩纪录 REPEAT IF 总分 600分 THEN IF 单科成绩不合格 THEN 发升级通知书 AND 发重修单科通知书 ELSE 发升级通知书 ELSE IF 单科成绩有满分 THEN 发留级通知书 AND 发免修单科通知书 ELSE 发留级通知书 UNTIL 学生成绩记录处理结束 END,例:学生升留级处理逻辑说明如下,试用判定表表示各条件与动作间的关系。,加工逻辑描述工具,加工逻辑描述工具,加工逻辑描述工具,加工逻辑描述工具,判定表另一种形式:,构造步骤: 1、计算所有可能的条件组合,确定规则个数, 通常N个条件,最多可以有2N个条件组合数。 2、列出所有的基本条件和基本动作。 3、对每一种状态找出所有的条件,填入条件项。 4、对每一种规则指定动作,填入动作项。,加工逻辑描述工具,判定树: 是判定表的一种变化,它是一种树状的图形工具,适合于描述处理中具有多种策略,要根据若干条件来确定所需采用策略的情况。,加工逻辑描述工具,判定树: 是一个树状图 根节点 表示问题的名字 内部节点 表示条件,叶子节点表示活动。,加工逻辑描述工具,判定树 例1,判定树 例2,判定树优点: 理解容易,不需要用户培训 绘制方法直观 判定树缺点: 繁琐,同一条件要书写多次,加工逻辑描述工具,软件分析模型: 功能模型 数据模型 行为模型,软件需求建模,功能模型可以用数据流图描述,所以也称数据流模型。 数据流模型描绘信息流和数据从输入到输出,以及被加工处理(变换)的过程。 人们常用数据模型和数据流模型来描述系统的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论