《第3章需求分析.ppt》由会员分享,可在线阅读,更多相关《第3章需求分析.ppt(59页珍藏版)》请在优知文库上搜索。
1、第三章 需求分析 需求分析的任务 需求分析的过程 需求分析的文档需求分析 任务:确定待开发软件的功能,性能,数据,接口等要求,从而确定系统的逻辑模型.参与人员 两个阶段:需求获取阶段和需求规约阶段 成果:软件需求说明书 方法:结构化分析(SA)需求分析的任务 确定对系统的综合要求 分析系统的数据要求 导出系统的逻辑模型 修正系统开发计划需求分析的结果 需求分析所要做的工作是深入描述软件的功能和性能,确定软件设计的约束和软件同其他系统元素的接口细节,定义软件的其他有效性需求。分析员通过需求分析,逐步细化软件分配,描述软件要处理的信息域,并给软件开发提供一种可转化为数据设计、结构设计和过程设计的信
2、息与功能表示。需求分析的过程 二个阶段:需求获取和需求规约.系统分析员 对象:用户 目标:对要达到的目标或所解决的问题有一个清楚而明确的认识.成果:需求规格说明书获取需求 需求就是对系统特征以及为了完成用户任务,系统必须能够做什么的一个描述.三大挑战:问题的复杂性 人与人之间的通信 需求不断变化软件需求的挑战之一:问题的复杂性需求获取技术 访谈与会议访谈有两种基本形式:正式的:系统分析员将提出一些事先准备好的具体问题。非正式的:分析员将提出一些用户可以自由回答的开放性问题,以鼓励被访问人员说出自己的想法。观察用户工作流程 用户和开发人员共同组成联合小组 以下方式:参观、面谈、电话、问卷、索取资
3、料需求获取的内容 功能性需求和非功能性需求.功能性需求:定义系统做什么,包括系统的所有输入,输出,以及如何从输入到输出.非功能性需求(性能):系统对效率,可靠性,安全性,可维护性,可移植性,吞吐量及符合某种标准等要求.需求内容功能 系统将做什么?系统何时及如何修改?需求内容数据 输入输出数据的格式 数据的取值范围 接收或发送数据的频率 数据的精确性如何?数据必须保存多久时间?需求内容接口 有来自其它系统的输入吗 有到其它系统的输出吗 对数据格式有规定吗 对数据存储介质有特殊要求需求内容性能 对执行速度有无限制?对响应时间有无限制?对吞吐率有无限制?对存储容量有无限制?有关性能需求的阅读材料需求
4、内容用户或人的因素 谁将使用该系统?存在多种类型的用户吗 每种类型的用户熟练程度?用户的理解和使用系统有难度吗?需求内容环境 操作设备的地点要求 位置是集中还是分散的 采用什么机型、外部设备 系统运行的系统软件需求内容质量保证 系统的可靠性如何?系统必须监测和隔离错误吗?平均出错时间为多少?系统可移植性如何?需求内容安全性 必须对访问系统或系统信息加以控制吗?一个用户的数据与其他用户的数据关系如何?用户程序与其它程序或操作系统要隔离开来吗?多长时间需要备份?备份数据存放位置 需要防火或防盗吗?需求内容资源 开发者必须具有怎么样的技能?系统将占用多大的物理空间 开发有规定的时间表?资金使用情况?
5、分析员和用户的责任 分析员:负责沟通用户和开发人员的认识和见解。负责编写软件需求规格说明书。用户:包括业务负责人、部门负责人、操作人员。配合分析员了解业务,阐述对数据处理工作的考虑。软件需求规格说明书 A01 系统需求简要说明表 A02 数据流图 A03 数据流/存贮/组合元素描述表 A04 数据元素描述表 A05 数据概念结构图 A06 基本处理说明 A07 系统I/O描述表 A08 数据元素代码表 A09 系统流程图v软件系统本质上是信息处理系统v任何信息处理系统的基本功能都是把输入数据转变成需要的输出信息。v数据是需求分析的出发点。数据决定了需要的处理和算法。v典型的面向过程的软件需求分
6、析方法就是:结构化分析方法(SA),是面向数据流进行需求分析的方法。软件需求分析方法 结构化分析 结构化分析方法是抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直到找到满足功能要求的所有可实现的软件为止。抽象和分解是这个方法的主要手段,由于数据传递与变换而形成的数据流,是这个方法的主要依据。面向数据流自顶向下求精过程图 面向数据流自顶向下求精过程 结构化分析工具 结构化方法使用了以下几个工具:数据流图,数据词典,IPO图。数据流图用于表达系统内数据的运动情况。数据词典定义系统中的数据。IPO图用于描述数据流的加工。数据流图 数据流图是一种描述数据变换的图形工具,系统接受输
7、入的数据,经过一系列的变换,最后输出结果数据。数据流图有四个基本成份:加工 (用 表示)数据流 (用 表示)数据存储 (用 表示)数据源和数据终点(用 表示)数据源和数据终点是系统与环境的接口,是系统之外的实体。可以是人物或其它软件。数据源是起点,数据终点是终点。画数据流图的方法第一步第一步,从问题描述中提取数据流图的四种成分;源点和终点源点和终点 处理处理数据流和数据存储数据流和数据存储第二步第二步,根据分离的四种成分,画基本系统模型;第三步第三步,进一步对基本系统模型细化,得到功能 级数据流图;第四步第四步,进一步对功能级数据流图进行细化,当 进一步分解将涉及如何具体实现一个功能 时就不应
8、该再分解了。软件系统软件系统源点源点终点终点输入输入数据流数据流输出输出数据流数据流注意事项注意事项1.并不是所有数据存储和数据流都能直接从问题描述中提取出来;2.在对数据流图分层细化时,必须保持信息的连续性。即:分解前、后的输入/输出数据流必须相同。3.在功能级数据流图中,可根据需要给处理和数据存储增加编号,便于引用和追踪。同时编号应反映处理的分解层次;4.一张数据流图中的包含的处理控制在59个,因此数据流图应该使用分层和画分图的方法。分层的数据流图 为了表达数据处理过程的数据加工情况,用一个数据流图是不够的。层次结构的数据流图能很好地解决这一问题。在多层数据流图中,我们可以把顶层流图、底层
9、流图和中间层流图区分开来。顶层流图(仅包含一个加工,它代表被开发系统)表明被开发系统的范围以及它和周围环境的数据交换关系。其输入流是该系统的输入数据,输出流是系统所输出数据。分层的数据流图(续)底层流图是指其加工不需再做分解的数据流图。它处在最底层,有时也称其加工为“原子加工”。中间层流图则表示对其上层父图的细化。其每一加工可能继续细化,形成子图。中间层次的多少视系统的复杂程度而决定。数据流图的步骤 1 先找系统的数据源点与终点。它们是外部实体,找到了它们,则系统与外部世界的接口就得到了确定。2 找出外部实体的输出数据流与输入数据流。3 在图的边上画出系统的外部实体。4 从外部实体的输出数据流
10、出发,按照系统的逻辑需要,逐步画出一系列逻辑加工,直到找到外部实体所需的输入数据流,形成数据流的封闭。5 按照下面所给的原则进行检查和修改。6 按照上述步骤,再从各加工出发,画出所需的子图。数据流图的原则(一)1 数据流图顶层图必须包括4种基本元素。2 适当为数据流,加工,存贮,源/终取名。3 每个加工至少有一个输入数据流和一个输出数据流。4 在数据流图中需按层给加工框编号。数据流图的原则(二)5 允许一个加工有多个数据流流向另一个加工,也允许一个加工有两个相同的输出数据流流向两个不同的加工.6 保持父图与子图平衡:父图某加工的输入输出数据流必须与子图的输入输出流在数量和名字上相同.7 保持数
11、据守恒数据流图的用途 作为交流信息的工具 描绘系统分析员对系统的设想,供审查 作为分析和设计的工具 描绘系统所完成的功能 有助于更详细的设计步骤 面向数据流的设计方法易混淆的知识 数据流是在处理、数据存贮和源点/终点之间传递的动态数据,不是控制的转移流向。数据流图只能表示软件对数据的处理动作,而不反映处理的执行顺序。在数据流图中应描绘所有可能的数据流向,而不应该描绘出现某个数据流的条件。结构化分析工具 结构化方法使用了以下几个工具:数据流图,数据词典,IPO图。数据流图用于表达系统内数据的运动情况。数据词典定义系统中的数据。IPO图用于描述数据流的加工。1.2更新更新库存库存清单清单仓库仓库管
12、理员管理员采购员采购员事务事务定货报表定货报表2产生产生报表报表D2 定货信息定货信息D1 库存清单库存清单库存清单库存清单定货信息定货信息定货信息定货信息1.1接受接受事务事务1.3处理处理定货定货事务事务库存信息库存信息 定货系统数据流图定货系统数据流图数据词典 数据词典(data dictionary)记录有关数据方面的信息,作为对数据流图的补充和解释。数据流图和数据词典共同构成全面描述软件需求说明书的核心。数据词典的任务是对于数据流图中出现的所有被命名的图形元素,包括数据流,数据元素,数据存贮和处理,在数据词典中作为一个词条加以定义。数据词典的用途 作为分析阶段的工具 模块间的统一接口
13、 开发人员的依据 数据库设计的第一步词条描述内容 一般信息:名字,别名,描述 定义:数据类型,长度,结构 使用特点:值的范围,使用频率,使用方式 控制信息:来源,用户,使用它的程序,改变权,使用权 分组信息:父结构,从属结构,物理位置定义式 X=a|b+3c8+(d)a=“001”.“999”本地电话号码=非零数字+2数字10 非零数字=1|2|3|4|5|6|7|8|9 数字=0|1|2|3|4|5|6|7|8|9 名字:名字:定货报表别名:别名:定货信息描述:描述:每天一次送给采购员的需要定货的零件表定义:定义:定货报表=零件编号+零件名称+定货数量+主要供应者+次要供应者位置:位置:输出
14、到打印机名字:名字:零件编号别名:别名:描述:描述:唯一标识库存清单中一个特定零件的关键域定义:定义:零件编号=8数字8必须是必须是8位的编号位的编号位置:位置:定货报表 定货信息 库存清单名字:名字:定货报表描述:描述:每天一次送给采购员的需要定货的零件表定义:定义:定货报表=零件编号+零件名称+定货数量+主要供应者+次要供应者名字:名字:定货数量别名:别名:描述:描述:某个零件一次定货的数量定义:定义:定货数量=1数字5值域值域1-99999位置:位置:定货报表 定货信息名字:名字:定货报表描述:描述:每天一次送给采购员的需要定货的零件表定义:定义:定货报表=零件编号+零件名称+定货数量+
15、主要供应者+次要供应者层次方框图Warnier图思考:1.试比较层次方框图和Warnier图的差异。2.请分别用层次方框图和Warnier图表达:定货报表的组成。图形工具定货报表 零件编号主要供应商供应商编号供应商名称供应商地址零件名称定货数量目前价格次要供应商供应商编号供应商名称供应商地址定货报表的层次方框图定货报表 零件编号字符(8)零件名称字符(1,20)定货数量整数(1,5)目前价格实数主要供应商供应商编号字符(8)供应商名称字符(1,20)供应商地址字符(1,50)次要供应商供应商编号字符(8)供应商名称字符(1,20)供应商地址字符(1,50)定货报表的Warnier图加工的描述
16、对数据流图的每一个基本加工,必须有一个基本加工逻辑说明。基本加工逻辑说明必须描述基本加工如何把输入数据流变换为输出数据流的加工规则。加工逻辑说明必须描述实现加工的策略而不是实现加工的细节。IPO图常用于描述数据流的加工。IPO图1.事务2.库存清单1.更新库存清单主文件2.判断零件的库存数量是否少于库存量临界3.向“处理定货”加工输出需定货的库存信息。1.更新后的库存清单2.需定货的库存信息 输入(I)处理(P)输出(O)“更新库存清单”加工的IPO图v大量统计数字表明,软件系统中15%的错误起源于错误的需求v从下述4个方面进行验证:(1)一致性.(2)完整性.(3)现实性.(4)有效性.3.8 验证软件需求1 从哪些方面验证软件需求的正确性 验证需求的一致性 形式化的描述、软件工具验证需求的现实性 经验、仿真 验证需求的完整性和有效性 原型系统2 验证软件需求的方法这类软件工具应该满足下列要求:(1)必须有形式化的语法(或表),因此可以用计算机自动处理使用这种语法说明的内容;(2)使用这个软件工具能够导出详细的文档;(3)必须提供分析(测试)规格说明书的不一致性和冗余性的手段,并且应