二章软件需求分析.ppt

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

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

1、第二章 软件需求分析,计算机信息工程学院 2004年9月,现代软件工程,授课教师:李德生 答疑时间:周三下午 答疑地点:计算机应用教研室 E_mail: Lids_,2.1 需求分析的任务 准确地定义未来系统的目标,确定为了满足用户的需求系统必须做什么。用 规范的形式准确地表达用户的需求。 的要求(P16),软件需求分析的任务,深入描述软件的功能和性能 确定软件设计的约束和软件同其它系统元素的接口细节 定义软件的其它有效性需求,需求分析研究的对象是软件项目的用户要求 准确地表达被接受的用户要求 确定被开发软件系统的系统元素 将功能和信息结构分配到这些系统元素中,常用的分析方法,面向数据流的结构

2、化分析方法 (SA) 面向数据结构的Jackson方法 (JSD) 面向数据结构的结构化数据系统开发方法 (DSSD) 面向对象的分析方法 (OOA) 等,软件需求分析的几个阶段,问题分析及识别 问题评估和方案综合 建模 规约 复审 系统分析员的主要焦点是 “做什么(what)” ,不是 “怎样做(how)”,2.2 需求分析的过程,(1) 问题识别 从系统的角度来理解软件并评审软件范围是否恰当 确定对目标系统的综合要求,即软件的需求 提出这些需求实现条件,以及需求应达到的标准,思考、涉及的几个问题,如何定义系统需求? 如何识别、获取需求? 你能够采取何种手段与用户进行交流沟通? 何为需求建模

3、? 你如何理解模型与建模?,需求获取的目的 清楚地理解所要解决的问题 完整地获取用户需求,需求获取面临的挑战:,(1)问题空间理解 (2)人与人之间的通信 (3)需求的不断变化,某出版社系统调查表,某出版社系统调查表,需求获取的内容,1.用户需求分类 (1)功能性需求: 定义了系统做什么(描述系统必须支持 的功能和过程) (2)非功能性需求(技术需求): 定义了系统工作时的特性 (描述操作环境和性能目标),2. 两类需求包括的内容,(1) 功能 (2) 性能 (3) 环境 (4) 界面 (5) 用户或人的因素 (6) 文档 (7) 数据 (8) 资源 (9) 安全保密 (10)软件成本消耗与开

4、发进度 (11)质量保证,(1) 功能需求,系统做什么? 系统何时做什么? 系统何时及如何修改 或升级?,(2) 性能需求,软件开发的技术性指标 例如: 存储容量限制 执行速度、相应时间 吞吐量,(3) 环境需求,硬件设备:机型、外设、接口、 地点、分布、温度、 湿度、磁场干扰等 软件: 操作系统 网络 数据库,(4) 界面需求,有来自其它系统的输入吗? 到/自其它系统的输出吗? 对数据格式有规定吗? 对数据存储介质有规定吗?,(5) 用户或人的因素,用户类型? 各种用户熟练程度? 需受何种训练? 用户理解、使用系统的难度? 用户错误操作系统的可能性?,(6) 文档需求,需哪些文档? 文档针对

5、哪些读者?,(7) 数据需求,输入、输出数据的格式? 接收、发送数据的频率? 数据的准确性和精度? 数据流量? 数据需保持的时间?,(8) 资源需求,软件运行时所需的数据、软件。 内存空间等资源。 软件开发、维护所需的人力、 支撑软件、开发设备等。,(9) 安全保密要求,需对访问系统或系统信息加以控 制吗? 如何隔离用户之间的数据? 用户程序如何与其它程序和操作 系统隔离? 系统备份要求?,(10) 软件成本消耗 与开发进度需求,开发有规定的时间表吗? 软硬件投资有无限制?,(11) 质量保证,系统的可靠性要求? 系统必须监测和隔离错误吗? 规定系统平均出错时间? 出错后,重启系统允许的时间?

6、 系统变化如何反映到设计中? 维护是否包括对系统的改进? 系统的可移植性?,问题识别的另一项工作是建立分析所需要的通信途径,以保证能顺利地对问题进行分析。,建 模,模型化或模型方法是通过抽象、概括和一般化,把研究的对象或问题转化为本质(关系或结构)相同的另一对象或问题,从而加以解决的方法。模型化方法要求所建立的模型能真实反映所研究对象的整体结构、关系或某一过程、某一局部、某一侧面的本质特征和变化规律。,计算机学科的发展,计算机科学 (CS),计算机科学 (CS),计算机工程 (CE),软件工程 (SE),信息系统 (IS),计算学科 (computing discipline),计算学科是研究

7、通过在计算机上建立模型 并模拟物理过程来进行科学调查和研究的学科.,计算机科学与技术学科的方法论,学科的3个形态 理论 抽象(模型化) 设计 重复出现的概念 绑定(binding) 概念与形式模型 一致性和完备性 抽象层次 重用 典型的学科方法: 数学方法 系统科学方法 ,计算中抽象的本质和使用。在处理复杂事务、构造系统、隐藏细节和获取重复模式方面使用抽象,通过具有不同层次的细节和指标的抽象,能够表达一个实体和系统,抽象(模型化),源于实验科学,主要要素为数据采集方法和假设的形式说明,模型的构造与预测实验分析结果分析. 在为可能的算法数据结构和系统结构等构造模型时使用此过程. 抽象的结果是概念

8、符号模型,模型(model),模型: 现实世界某些重要方面的表示。 有时我们使用术语“抽象”来表示模型,因为我们从现实世界中抽象出对我们特别有用的东西。,模型的类型,数学模型 描述模型 图形模型,模型的作用,建模的原因: 在建模过程中了解系统 通过抽象降低复杂性 有助于回忆所有的细节 有助于开发小组间的交流 有助于与用户的交流 为系统的维护提供文档,(2) 分析与综合 从信息流和信息结构出发,逐步细化所有的软件功能,找出系统各元素之间的联系、接口特性和设计上的约束,分析它们是否满足功能要求,是否合理。剔除其不合理的部分,增加其需要部分。最终综合成系统的解决方案,给出目标系统的详细逻辑模型。,需

9、求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统的 “做什么” 的问题。,逻辑模型和物理模型 模型是对对象系统的形式化的特征 抽象,概括性或近似地表示; 构造模型的过程是一个抽象、分 析的过程。,对象 系统,模型 系统,抽象(映射),模型应用,模型构造的过程,通常软件开发项目是要实现目标系统的物理模型 目标系统的具体物理模型是由它的逻辑模型经实例化,即具体到某个业务领域而得到的,逻辑模型 物理模型 (本质模型、概念模型) (实施模型、技术模型),现 行 系 统,目 标 系 统,描述重要的业务功能,无论系统是如何实施的。,描述现实系统是如何在物理上实现的。,描述新系统

10、的主要业务功能和用户新的需求,无论系统应如何实施。,描述新系统是如何实施的(包括技术)。,需求分析过程示意,学 生,(1) 通过对现实环境的调查, 获得当前系统的物理模型,学 生,购 书 申 请,购书 单,发 票,领 书 单,书,107 张,教务科,206 王,会计室,206 李,出纳员,303 赵,教材科,学生购买教材的物理模型,需求分析过程示意,(2) 去掉具体模型中的非本质因素, 抽象出当前系统的逻辑模型,学生购买教材的逻辑模型,学 生,学 生,购 书 申 请,购书 单,发 票,领 书 单,书,审查 有效性,开发票,开领 书单,发书,需求分析过程示意,(3) 分析当前系统与目标系统的差别

11、, 建立目标系统的逻辑模型,计算机售书系统的逻辑模型,学 生,学 生,购书单,发票,领书单,审查并 开发票,开领,书单,无效书单,分析阶段中常用的模型(逻辑模型),数据流图(DFD) 实体联系图( ERD ) 类图 实例图 时序图 状态图 协作图 事件列表 数据流定义 数据元素定义 ,(3) 编制需求分析阶段的文档 软件需求说明书 数据要求说明书 初步的用户手册 修改、完善与确定软件开发实施计划,需求规格说明书格式:P23。,(4) 需求分析评审,系统定义的目标是否与用户的要求一致; 系统需求分析阶段提供的文档资料是否齐全; 文档中的所有描述是否完整、清晰、准确反映用户要求; 与所有其它系统成

12、分的重要接口是否都已经描述;,被开发项目的数据流与数据结构是否足够,确定; 所有图表是否清楚,在不补充说明时能否理解; 主要功能是否已包括在规定的软件范围之内,是否都已充分说明; 设计的约束条件或限制条件是否符合实际; 开发的技术风险是什么;,是否考虑过软件需求的其它方案; 是否考虑过将来可能会提出的软件需求; 是否详细制定了检验标准,它们能否对系统定义是否成功进行确认;,需求分析流程,软件需求分析的原则,需要能够表达和理解问题的信息域和功能域 要能以层次化的方式对问题进行分解和不断细化 要给出系统的逻辑视图和物理视图,软件需求规格说明的原则,从现实中分离功能,即描述要“做什么”而不是“怎样实

13、现” 要求使用面向处理的规格说明语言(或称系统定义语言) 如果被开发软件只是一个大系统中的一个元素,那么整个大系统也包括在规格说明的描述之中,规格说明必须包括系统运行环境 规格说明必须是一个认识模型 规格说明必须是可操作的 规格说明必须容许不完备性并允许扩充 规格说明必须局部化和松散耦合,软件需求方法,需求分析方法由对软件问题的信息域和功能域的系统分析过程及其表示方法组成 大多数的需求分析方法是由信息驱动的 信息域具有三种属性: 信息流、信息内容和信息结构。,结构化分析方法,面向数据流进行需求分析的方法 结构化分析方法适合于数据处理类型软件的需求分析 具体来说,结构化分析方法就是用抽象模型的概

14、念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直到找到满足功能要求的所有可实现的软件为止,结构化分析方法使用工具: 数据流图 数据词典 结构化英语 判定表与判定树,数据流图,数据流图中的主要图形元素,数据加工 (数据变换),数据源点或终点 (外部实体),数据流,数据存储文件,描述银行取款过程的数据流图,数据流与数据加工之间的关系,数据流图的层次结构,为了表达数据处理过程的数据加工情况,需要采用层次结构的数据流图。按照系统的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系,能清楚地表达和容易理解整个系统,分层的数据流图,在多层数据流图中,顶层流图仅包含一个加工,它代表被开发系统

15、。它的输入流是该系统的输入数据,输出流是系统所输出数据 底层流图是指其加工不需再做分解的数据流图,它处在最底层 中间层流图则表示对其上层父图的细化。它的每一加工可能继续细化,形成子图。,结构化分析方法步骤示例 商店业务处理系统,这个数据流图只是一个高层的系统逻辑模型,它反映了目标系统要实现的功能 数据流图绘制步骤 首先确定系统的输入和输出 根据商店业务,画出顶层数据流图,以反映最主要业务处理流程,经过分析,商店业务处理的主要功能应当有销售、采购、会计三大项。主要数据流输入的源点和输出终点是顾客和供应商。 然后从输入端开始,根据商店业务工作流程,画出数据流流经的各加工框,逐步画到输出端,得到第一

16、层数据流图,第一层数据流图,加细每一个加工框 销售细化,采购细化,检查和修改数据流图的原则,数据流图上所有图形符号只限于前述四种基本图形元素 数据流图的主图必须包括前述四种基本元素,缺一不可 数据流图的主图上的数据流必须封闭在外部实体之间 每个加工至少有一个输入数据流和一个输出数据流,在数据流图中,需按层给加工框编号。编号表明该加工所处层次及上下层的亲子关系 规定任何一个数据流子图必须与它上一层的一个加工对应,两者的输入数据流和输出数据流必须一致。此即父图与子图的平衡 数据流平衡:父图、子图之间的I/O一致性 子图继承父图的I/O 子图I/O是父图I/O的加细和分解-借助DD 错误处理放在底层

17、,1.3,发票,领书单,1.3.1,1.3,2,1.3.3,学生,教材,领书单,例:,一般不应该在数据流图中加入物质流 图上每个元素都必须有名字 数据流图中不可夹带控制流 初画时可以忽略琐碎的细节,以集中精力于主要数据流,顶层和上层的数据流图往往仅涉及与相邻加工有关的数据文件 使用点记法进行编号:父加工号.子加工号。例如,1.3.1 掌握分解速度。每一加工每次可分为2-4个加工,最多不要超过7个 局部文件和局部外部项。不要在父图中画子图的外部文件,也不应在子图中漏画了应添的外部项。一般地,除底层DFD需画出全部文件外,各中间层的DFD仅显示处于加工之间的接口文件,数据词典,数据词典与数据流图配

18、合,能清楚地表达数据处理的要求 词条描述 对于在数据流图中每一个被命名的图形元素,均加以定义,其内容有: 名字,别名或编号,分类,描述,定义,位置,其它,等,数据字(词)典包括对数据项(数据元素)、数据流和数据文件的描述。 数据项(数据元素):表达有效信息的最基本单位; 数据流:相关数据项构成数据流; 数据文件:由若干数据项按照一定的组织方式组成。,(1)数据流词条描述,数据流名: 说明:简要介绍作用即它产生的原因和结果 数据流来源:来自何方 数据流去向:去向何处 数据流组成:数据结构 数据量流通量:数据量,流通量,数据流词条说明举例,数据流名:发票 别名: 无 简述: 学生购书时填写的项目

19、来源: 学生 去向: 加工1“审查并开发票” 组成: (学号)姓名书号数量 数据流量:1000次/周 高峰值:开学期间1000次/天,(2)数据元素(数据项)词条描述,数据元素名: 类型:数字(离散值,连续值),文字(编码类型) 长度: 取值范围: 相关的数据元素及数据结构:,数据项条目说明举例,数据项名:货物编号 别名:G-No,G-num 简述:本公司的所有货物的编号 类型:字符串 长度:10 取值范围及含义: 第1位:JG (进口/国产) 第24位:LB01 LB29 (类别) 第57位:“A00”“A99” (规格) 第810位:“001”“999”(品名编号),(3)数据文件词条描述

20、,数据文件名: 简述:存放的是什么数据 输入数据: 输出数据: 数据文件组成:数据结构 存储方式:顺序,直接,关键码 存取频率:,数据文件词条说明举例,文件名:库存记录 别名: 无 简述:存放库存所有可供货物的信息 组成:货物名称编号生产厂家 单价库存量 组织方式:索引文件,以货物编号为 关键字 查询要求:要求能够立即查询,(4)加工逻辑词条描述,加工名: 加工编号:反映该加工的层次 简要描述:加工逻辑及功能简述 输入数据流: 输出数据流: 加工逻辑:简述加工程序,加工顺序,(5)源点及汇(终)点词条描述,名称:外部实体名 简要描述:什么外部实体 有关数据流: 数目:,数据结构的描述,符 号

21、含 义 举 例 被定义为 与 x = ab .,. 或 .|. 或 x = a , b,x = a | b . 或 m.n 重复 x = a, x = 3a8 (.) 可选 x = (a) “.” 基本数据元素 x = “a” 连结符 x = 19,存折格式,存折户名所号帐号开户日性质(印密)1存取行50 户名2字母24 所号“001”“999” 帐号“00000001”“99999999” 开户日年月日 性质“1”“6” 注:“1”表示普通户,“5”表示工资户等 印密“0” 注:印密在存折上不显示 存取行日期(摘要)支出存入余额操作复核,年2001200220032004 月“01”“12”

22、 日“01”“31” 摘要1字母4(注:表明该存取是存?是取? 还是换?) 支出金额(注:金额规定不超过9999999.99元) 存入金额 余额金额 金额“0000000.01”“9999999.99” 操作“00001”“99999” 复核“00001”“99999” 字母“a”“z”“A”“Z”,F1:航班信息文件航空公司名称航班号 起点终点日期 起飞时间降落时间 航空公司名称2字母4 航班号3十进制数字3 字母“A”“Z” 十进制数字“0”“9” 起点终点1汉字10 起飞时间降落时间时分 时“00”“23” 分“00”“59” 日期年月日 年2000200120022004 月“01”“

23、12” 日“01”“31”,具有数据库的系统,除了DFD、DD之外,还可以使用ER图、DSD(Data Structure Diagram)图等说明文件之间的联系。如,不同的表通过关键字建立联系。,DD的实现,(1)人工方法 (2)自动方法(利用字典管理程序) DD应具特点 (1)通过名字可方便查阅数据定义 (2)无冗余 (3)易更新修改,对数据流图的每一个基本加工,必须有一个基本加工逻辑说明 基本加工逻辑说明必须描述基本加工如何把输入数据流变换为输出数据流的加工规则,即加工说明由输入数据、加工逻辑和输出数据组成 加工逻辑说明必须描述实现加工的策略而不是实现加工的细节 加工逻辑说明中包含的信息

24、应是充足的,完备的,有用的,无冗余的,基本加工逻辑说明,加工说明(加工逻辑说明),加工说明即数据处理描述,也称为小说明。描述实现加工的策略而不是实现加工的细节。 可以在DD定义中只说明每个加工的组 成(每个处理分解成多少小处理),而在 小说明中详细描述它的处理逻辑.,加工条目(加工逻辑说明),加工逻辑名:登记报名单 编号:1.0 激活条件:收到报名单 加工逻辑:1.1 检查报名单 + 1.2 编准考证号 + 1.3 登记考生 执行频率:2000次/日,小说明(加工逻辑说明的另一种形式),描述的内容: (1) 处理逻辑 描述基本加工如何把输入数据流变化为输出数据流的加工原则,不涉及具体处理方法。

25、 (2) 执行条件 (3) 输入 (4) 输出 (3) 优先级 (4) 执行频率 (5) 出错处理对策,小说明举例,加工名: 分类采购(CG111MD) 编号: 1.1.1 加工激活条件: 受到图书采购员分类 采购操作命令 加工逻辑: (1) 1.1.1.1 预定图书 (2) 1.1.1.2 外采图书 (3) 1.1.1.3 赠送图书 执行频率: 随时,小说明举例,处理名:月票额统计(MHCW713MD) 编号: 7.1.3 激活条件:收到每日售票额信息 处理逻辑:1 统计月保险金总合 月保险金信息=每日日保险 金信息之和 2 统计月合计 月合计信息=每日日合计信息之和 执行频率: 1次/月,

26、用于写加工逻辑说明的工具,结构化英语 判定表 判定树,(1)结构化英语,结构化英语的词汇表由 英语命令动词 数据词典中定义的名字 有限的自定义词 逻辑关系词 IF_THEN_ELSE、 CASE_OF 、 WHILE_DO、 REPEAT_UNTIL等组成。,是一种介于自然语言和形式化语言之间的语言 语言的正文用基本控制结构进行分割,加工中的操作用自然语言短语来表示 其基本控制结构有三种: 简单陈述句结构:避免复合语句; 重复结构:while_do 或 repeat_until 结构。 判定结构:if_then_else 或 case_of 结构;,商店业务处理系统中“检查发货单”,if 发货

27、单金额超过$500 then if 欠款超过了60天 then 在偿还欠款前不予批准 else (欠款未超期) 发批准书,发货单 else (发货单金额未超过$500) if 欠款超过60天 then 发批准书,发货单及赊欠报告 else (欠款未超期) 发批准书,发货单,处理名:核实订票处理(MHGP3200MD) 编号: 3.2 激活条件:收到取订票信息 处理逻辑:1读订票旅客信息文件 2搜索此文件中是否有与输入信息 中姓名及身份证号相符的项 IF 有 THEN 判断余项是否与文件中信 息相符 IF 是 THEN 输出已订票信息 ELSE 输出未订票信息 ELSE 输出未订票信息 执行频率

28、: 实时,(2)判定表,如果数据流图的加工需要依赖于多个逻辑条件的取值,使用判定表来描述比较合适,以“检查发货单”为例,处理名:计算折扣率(MHGP534MD) 编号: 5.3.4 激活条件:收到预订票信息 处理逻辑:计算折扣率 执行频率: 实时,旅游时间,订 票 量,折 扣 量,79,12月,16,10,11月,20,20, 20, 20,15%,5%,20%,30%,(3)判定树,判定树也是用来表达加工逻辑的一种工具。有时侯它比判定表更直观。,检 查 发 货 单,金额$500,金额$500,欠款60天,不发出批准书,欠款60天,发货单,发出批准书、,欠款60天,发出批准书、,发货单及赊欠报

29、告,欠款60天,发出批准书、,发货单,考务处理系统的分层DFD,顶层数据流图,考 生,考务 处理系统,考 试 中 心,阅卷站,不合格报名单,报名单,准考证,考生通知单,成 绩 清 单,合格标准,错误成绩 清单,考生名 单,统计分析表,登记 报名单,报名单,准考证,1,统计成绩,2,不合格 报名单,考生通知单,成,统计分析表,0层数据流图,考生名册,绩,清,单,合 格 标 准,考生名 单,成,绩,清,单,错,误,一层数据流图 (a),检查 报名单,报名单,准考证,1.1,编准考证号,1.2,不合格 报名单,考生名册,考生名单,合格 报名单,登记 考生,1.3,一层数据流图 (b),检查 成绩清单

30、,2.1,审定 合格者,2.2,考生名册,正确 成绩清单,制作 通知单,2.3,分析 统计成绩,2.4,分析 试题难度,2.5,试题得分清单,考生 通知单,难度 分析表,合格 标准,分类 统计表,成绩清单,错误 成绩清单,经审定的 成绩清单,二. 结构化分析实施步骤,1. 确定系统边界, 画出系统环境图 2. 自顶向下,画出各层数据流图 3. 定义数据字典 4. 定义小说明,DFD可以用来表示一个系统或软件在任何层次上的抽象。 较大型软件系统DFD分成多层(子图、父图概念),可以表示数据流和功能的进一步的细节。,需求规格说明书(SRS),(Software Requirement Specif

31、ication) 需求分析阶段要完成的文档。 SRS的作用: 开发者与用户间事实上的技术合同书 开发者下一步设计和编码的基础 测试验收目标系统的依据,SRS大纲(模板),引言 任务概述(项目概述) 数据描述(DFD、DD) 功能描述 接口 性能需求 属性 其它需求,三. 需求验证,(1) 正确性 (2) 无二义性 (3) 完整性 (4) 可验证性 (5) 一致性 (6) 可理解性 (7) 可修改性 (8) 可被跟踪性 (9) 可跟踪性 (10)设计无关性 (11)注释,需求文档的陈述与改进举例(1),产品必须在固定的时间间隔内提供状态消息,并且每次时间间隔不得小于60秒。,后台任务管理器(BT

32、M)应该在用户界面的指定区域显示状态消息。 a. 在后台任务进程启动之后,消息必须每隔60(10)秒更新一次,并且保持连续的可见性。 b. 如果正在正常处理后台任务进程,那么后台任务管理器(BTM)必须显示后台任务进程已完成的百分比。 c. 当完成后台任务时,后台任务管理器(BTM)必须显示一个“已完成”的消息。 d. 如果后台任务中止执行,那么后台任务管理器(BTM)必须显示一个出错信息。,需求不完整, 导致需求不可验证,改 进,需求文档的陈述与改进举例(2),产品必须在显示和隐藏非打印字符之间进行瞬间切换。,用户在编辑文档时,通过激活特定的机制,可以在显示和隐藏所有HTML标记之间进行切换。,需求不可行、不完整、 不确定性,导致需求 不可验证,改 进,

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

当前位置:首页 > 其他


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