软件工程第三章(需求分析) PPT课件_第1页
软件工程第三章(需求分析) PPT课件_第2页
软件工程第三章(需求分析) PPT课件_第3页
软件工程第三章(需求分析) PPT课件_第4页
软件工程第三章(需求分析) PPT课件_第5页
已阅读5页,还剩112页未读 继续免费阅读

下载本文档

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

文档简介

第三章软件需求分析 需求分析概述准确地定义未来系统的目标 确定为了满足用户的需求 系统必须做什么 用规范的形式准确地表达用户的需求 在需求分析阶段 系统分析员的主要焦点是 做什么 what 不是 怎样做 how 2 下面是一组漫画这组漫画形象地刻画了一个事实获取完整正确的需求是一项十分困难的工作 3 4 3 1需求分析的任务3 1 1需求的概念 需求 requirements Jones定义为用户所需要的软件必须达到的目标和能力 Lethbridge定义为需求是关于系统将要完成什么工作的一段描述 他们必须经过所有相关人员的认可 其目的是彻底的解决用户的问题 5 需求是一段描述 意思是每个需求是相对短小简明的一段信息 表现为一个事实 它可以是一段话或用各种图表示 一组需求的集合成为需求文档 关于系统将要完成什么工作 需求描述了系统应当完成的任务 不描述系统将如何实现 必须经过所有相关人员的认可 意指需求必须经过评审 才能成为正式的需求 其目的是彻底的解决用户的问题 有助于解决用户的问题 该需求才有存在的价值 6 1 功能需求这方面的需求指定系统必须提供的服务 通过需求分析应该划分出系统必须完成的所有功能 2 性能需求性能需求指定系统必须满足的定时约束或容量约束 通常包括速度 响应时间 信息量速率 主存容量 磁盘容量 安全性等方面的需求 3 1 2需求的内容 7 3 可靠性和可用性需求可靠性需求定量地指定系统的可靠性 4 出错处理需求这类需求说明系统对环境错误应该怎样响应5 接口需求接口需求描述应用系统与它的环境通信的格式 常见的接口需求有 用户接口需求 硬件接口需求 软件接口需求 通信接口需求 8 6 约束设计约束或实现约束描述在设计或实现应用系统时应遵守的限制条件 常见的约束有 精度 工具和语言约束 设计约束 应该使用的标准 应该使用的硬件平台 7 逆向需求逆向需求说明软件系统不应该做什么 8 将来可能提出的要求应该明确地列出那些虽然不属于当前系统开发范畴 但是据分析将来很可能会提出来的要求 9 分析系统的数据要求 这是软件需求分析的一个重要任务 分析系统的数据要求通常采用建立数据模型的方法 1 结构化语言 2 图形化表示 3 数学描述 形式化描述 3 1 3需求的描述方法 10 3 1 4需求分析的过程 1 对问题的识别和理解 需求获取是一个调查研究的过程分析人员需要具有较高的技能2 对需求信息的分析和综合 需求规约充分理解需求 包括功能 性能和数据需求采用需求分析方法3 编制 需求规格说明书 需求规格说明书使用的语言书写要求4 需求分析的复审 3 2需求获取 3 2 1需求获取的目的清楚地理解所要解决的问题完整准确地表达用户的需求 需求获取面临的挑战 问题的复杂性和对问题空间理解的不完备性与不一致性交流障碍需求易变性 3 2 2需求获取的常用方法 1 个别访谈和召集会议 2 观察用户工作流程 3 利用原型 4 使用实例 用例 用例把系统分成一组逻辑的 互相联系很少的部分 每一部分都描述了系统运行的某种方式 因此容易理解每个用例达到的功能 某出版社系统调查表 某出版社系统调查表 16 快速原型就是快速建立起来的旨在演示目标系统主要功能的可运行的程序 构建原型的要点 它应该实现用户看得见的功能 例如 屏幕显示或打印报表 省略目标系统的 隐含 功能 例如 修改文件 3 2 3快速建立软件原型 17 快速原型应该具备的第一个特性是 快速 快速原型的目的是尽快向用户提供一个可在计算机上运行的目标系统的模型 以便使用户和开发者在目标系统应该 做什么 这个问题上尽可能快地达成共识 18 快速原型应该具备的第二个特性是 容易修改 在实际开发软件产品时 原型的 修改 试用 反馈 过程可能重复多遍 如果修改耗时过多 势必延误软件开发时间 19 3 3需求建模 所谓模型 就是为了理解事物而对事物做出的一种抽象 是对事物的一种无歧义的书面描述 通常 模型由一组图形符号和组织这些符号的规则组成 3 3 1需求表达的途径一 建模 20 模型化或模型方法是通过抽象 概括和一般化 把研究的对象或问题转化为本质 关系或结构 相同的另一对象或问题 从而加以解决的方法 21 软件开发过程实际是 人通过抽象 归纳把客观系统变换到软件系统 并保证软件系统的解等价客观系统的解 客观系统 客观系统的解 软件系统 软件系统的解 变换 解的等价 22 二 模型的描述方法 数学模型描述模型图形模型 23 三 模型的作用 在建模过程中了解系统通过抽象降低复杂性有助于回忆所有的细节有助于开发小组间的交流有助于与用户的交流为系统的维护提供文档 24 3 3 2需求分析的过程 1 通过对现实环境的调查 获得当前系统的物理模型 学生购买教材的实际处理流程 当前系统物理模型 交款单现金 25 2 去掉具体模型中的非本质因素 抽取现实系统的实质 抽象出当前系统的逻辑模型 学生购买教材的逻辑模型 26 3 分析当前系统与目标系统的差别 建立目标系统的逻辑模型 计算机教材管理系统的逻辑模型 学生 购书单 交款单 领书单 审查并开交款单 开领书单 无效书单 学生 27 需求分析过程示意 4 对目标系统的逻辑模型进行改进与优化 5 需求分析的验证 28 3 4需求分析建模方法 3 4 1分析建模方法分析建模是使用文本和图表形式的组合 以相对容易理解和能直接评审正确性 完整性和一致性的方式来描述数据 功能和行为的需求 结构化分析SA 传统建模方法 面向对象分析 OOA 29 计算机世界 现实世界 结构化开发方法 结构化分析 结构化设计 结构化编程 OOA OOD OOP 面向对象开发方法 30 结构化分析模型的组成结构 数据流图 DFD E R图 状态变迁图 STD图 加 工 说 明 控制说明 数 据 对象 说明 数据字典 DD 31 数据字典 包含了软件生产或使用的所有数据对象描述的中心存储库 实体 关系图 ERD 描述数据对象间的关系 每个对象的属性由 数据对象描述 来描述 数据流图 DFD 用于两个目的 指明数据在系统中移动时如何被变换 反映对数据流进行变换的功能 和子功能 在DFD中出现的每个功能的描述包含在 加工规约 中 状态转换图 STD 指明作为外部事件的结果系统将如何动作 有哪些行为 软件控制方面的附加信息包含在 控制规约 中 32 面向对象分析模型的组成结构 对象 关系模型 类 对象模型 对象 行为模型 使用实例 UseCase 操作 属性 协作者 33 3 4 2结构化分析方法 StructuredAnalisys SA 面向数据流进行需求分析的方法结构化分析方法适合于数据处理类型软件的需求分析 一 结构化分析方法 34 具体来说 结构化分析方法就是用抽象模型的概念 按照软件内部数据传递 变换的关系 自顶向下逐层分解 直到找到满足功能要求的所有可实现的软件为止结构化分析方法使用工具 数据流图 数据词典 结构化英语 判定表与判定树 35 二数据流图 DFD DataFlowDiagram 1 数据流图中的主要图形元素 36 描述银行取款过程的数据流图 37 数据流与数据加工之间的关系 38 2 数据流图的层次结构 为了表达数据处理过程的数据加工情况 需要采用层次结构的数据流图 按照系统的层次结构进行逐步分解 并以分层的数据流图反映这种结构关系 能清楚地表达和容易理解整个系统 39 分层数据流图 40 图数据流图的分解 41 在多层数据流图中 顶层流图仅包含一个加工 它代表被开发系统 它的输入流是该系统的输入数据 输出流是系统所输出数据底层流图是指其加工不需再做分解的数据流图 它处在最底层中间层流图则表示对其上层父图的细化 它的每一加工可能继续细化 形成子图 42 3 结构化分析方法步骤示例商店业务处理系统 43 数据流图绘制步骤首先确定系统的输入和输出根据商店业务 画出顶层数据流图 以反映最主要业务处理流程 44 经过分析 商店业务处理的主要功能应当有销售 采购 会计三大项 主要数据流输入的源点和输出终点是顾客和供应商 然后从输入端开始 根据商店业务工作流程 画出数据流流经的各加工框 逐步画到输出端 得到第一层数据流图 45 另外也可以先画出系统的输入数据流和输出数据流 沿数据流图从输出端往输入端回溯 可以确定每个数据元素的来源 逐渐定义出系统的详细功能 每一个加工也是先画其输入输出 再考虑其内部 46 第一层数据流图 47 加细每一个加工框销售细化 48 采购细化 49 4 检查和修改数据流图的原则 数据流图上所有图形符号只限于前述四种基本图形元素数据流图的数据流必须封闭在外部实体之间每个加工至少有一个输入数据流和一个输出数据流 50 在数据流图中 需按层给加工框编号 编号表明该加工所处层次及上下层的亲子关系规定任何一个数据流子图必须与它上一层的一个加工对应 两者的输入数据流和输出数据流必须一致 此即父图与子图的平衡 51 图上每个元素都必须有名字 1 数据流名应代表整个数据流的内容 而不是它的某些成分 2 如果为某个数据流命名困难 可能分解不当 尝试重新分解 3 加工名一般为动宾词组 4 如果用两个动词组成的加工 最好分解为两个加工 5 如果对加工命名困难 尝试重新分解 52 流图中不能出现判断分支的控制流 如果需要每个分支必须单独出现流图中可以出现封闭在局部的实体和存储文件初画时可以忽略琐碎的细节 以集中精力于主要数据流 53 三 数据字典 DD DataDictionary DD是对数据流图中所有定义的数据元素 数据结构 数据文件 数据流等进行严密而精确的一个有组织的列表 以及精确的 严格的定义 使得用户和系统分析员对于输入 输出 存储成分和中间计算有共同的理解 54 1 数据词典的构造准则 数据流图中出现的名字都应编制一个数据条目 而且只能有一个条目 不能重复定义 应按自底向上的方式对数据进行定义 先定义数据元素 后定义数据结构 再定义数据流或数据文件 数据组成的层次关系 55 1 数据词典的构造准则 续 定义时所用的词汇都应是有明确的含义 只能有一种理解 条目应有序编排 56 2 数据元素定义举例 例1 日期名字 日期 年 月 日 说明 年 1990 2010 月 1 12 日 1 31 例2 账号名字 账号说明 00000 99999 例3 婚姻状况名字 婚姻状况说明 M 已婚S 未婚D 离婚 从以上例子可以看出 说明信息就是给出数据元素的取值范围或内容 数据元素的说明信息除了主要说明以上内容外 还应考虑包含 别名 数据元素长度 相关的数据元素和数据结构 编辑方面的要求等 57 数据元素条目的书写格式 3种 一般书写格式 数据元素卡 用卡片的形式记载每个元素的相关性质 数据元素表 数据元素名 类型 长度 取值范围 相关的数据元素及数据结构 其它 58 3 数据结构描述所需要的符号 符号集 由 构成 与 顺序结构 或 选择结构 重复 循环结构 可选的数据 限定的注释 59 例 发票的描述方式如下 发票 客户名称 支票号 编号 商品名称 规格 单位 数量 单价 金额 3 合计 开票单位 开票人 60 例 F1 航班信息文件 航空公司名称 航班号 起点 终点 日期 起飞时间 降落时间 航空公司名称 2 字母 4航班号 3 十进制数字 3字母 A Z 十进制数字 0 9 起点 终点 1 汉字 10起飞时间 降落时间 时 分时 00 23 分 00 59 日期 年 月 日年 2000 2001 2002 2004 月 01 12 日 01 31 61 重复项 起点 终点 1 汉字 10航空公司名称 2 字母 4航班号 3 十进制数字 3组合项 日期 年 月 日起飞时间 降落时间 时 分选择项 年 2000 2001 2002 2004 原数据项 字母 A Z 十进制数字 0 9 时 00 23 分 00 59 月 01 12 日 01 31 62 4 数据流条目的描述 实际上 数据流是 流动 的数据结构 或者说数据流由数据结构组成 对它的定义应当包含以下内容 数据流包含的数据结构数据流来自何处 数据流源数据流的去处 数据流目标每个数据结构的流通量 可以省略 简要说明该数据流的产生原因和后果 可以省略 数据流条目的书写格式如下 数据流名 别名 组成结构 流量 来源 去向 63 例 数据流条目举例 例1 数据流名 银行对账单别名 对账单组成结构 月 日 银行支票号 余额 流量 2张 天 每张约40笔数据来源 开户银行去向 资金管理组 例2 名称 领料单内容 职工到仓库领料时填写的单据组成结构 零件编号 零件名称 数量 100 领料人 车间主任 领料时间 64 5 数据文件条目的描述 数据文件是保存数据结构的载体 数据文件条目的定义主要说明文件由哪些数据项 可以是数据元素 也可以是数据结构 组成 存储方式和存取频率等 数据文件条目的书写格式如下 数据文件名 别名 组成 存储方式 存储频率 数据文件名 现金日记帐别名 现金日记帐组成 月 日 摘要 收入 支出 结存存储方式 顺序存储频率 0笔 天 例如 现金日记帐 条目 65 6 数据词典的使用 在结构化分析的过程中 可以通过名字 方便地查阅数据的定义 同时可按各种要求 随时列出各种表 以满足分析员的要求 还可以按描述内容 或定义 来查询数据的名字 通过检查各个加工的逻辑功能 可以实现和检查在数据与程序之间的一致性和完整性 在以后的设计和实现阶段以至于到维护阶段 都要参考数据词典进行设计 修改和查询 66 四 加工说明 在数据流图中 每一个加工框中只是简单地赋予了一个加工名 这显然不能表述加工的全部内容 一个软件系统的功能就是由这些加工的协同配合才得以实现的 因此 需求分析中必须对每一个加工进行说明 67 四 加工说明 不必为一套DFD图的所有加工都定义加工条目 但必须为每个基本加工提供一个条目 即最底层的DFD图的加工说明 也可在DD中只定义说明每个加工的组成 每个处理分解成多少基本加工 而在基本加工中详细描述它的处理逻辑 68 1 加工说明的规则 数据流图中的每一个基本加工 必须有一个加工说明 加工说明应当描述这个加工需要获得的输入数据流和产生的输出数据流加工说明主要描述的是这个加工对数据流的处理策略 不应该设计如何用计算机技术实现这个策略的方法 也就是说 要指出加工应该做什么 而不是如何去做 加工说明应当采用结构化或图示化的方式表达 以使它的内容和结构保持简单 扼要 精练和具有较高的可读性 69 小说明 加工逻辑说明的另一种形式 描述的内容 1 处理逻辑描述基本加工如何把输入数据流变化为输出数据流的加工原则 不涉及具体处理方法 2 执行条件 3 输入 4 输出 3 优先级 4 执行频率 5 出错处理对策 70 加工逻辑名 登记报名单编号 1 0激活条件 收到报名单加工逻辑 1 1检查报名单 1 2编准考证号 1 3登记考生 执行频率 2000次 日 小说明举例 71 小说明举例 加工名 分类采购 CG111MD 编号 1 1 1加工激活条件 收到图书采购员分类采购操作命令加工逻辑 1 1 1 1 1预定图书 2 1 1 1 2外采图书 3 1 1 1 3赠送图书执行频率 随时 72 五 描述加工逻辑的工具 结构化语言判定表判定树 73 1 结构化语言 介于自然语言和形式语言之间的语言结构化语言的特点 无确定语法可分层 嵌套 74 处理名 核实订票处理 MHGP3200MD 编号 3 2激活条件 收到取订票信息处理逻辑 1读订票旅客信息文件2搜索此文件中是否有与输入信息中姓名及身份证号相符的项IF有THEN判断其余项是否与文件中信息相符IF是THEN输出已订票信息ELSE输出未订票信息ELSE输出未订票信息执行频率 实时 75 2 判定表 决策表 描述多条件 多目标动作的形式化工具 判定表举例 计算机票折扣率 旅游时间 订票量 折扣量 7 9 12月 20 20 20 20 15 5 20 30 条件类别 四种条件组合 操作 条件组合下操作的执行 1 6 10 11月 76 处理名 计算折扣率 MHGP534MD 编号 5 3 4激活条件 收到预订票信息处理逻辑 计算折扣率执行频率 实时 旅游时间 订票量 折扣量 7 9 12月 1 6 10 11月 20 20 20 20 15 5 20 30 77 3 判定树 Decision决策树 条件1条件2结果计7 9 订票量 20 15 算12月订票量 20 5 折扣1 6 订票量 20 30 量10 11月订票量 20 5 78 数据模型中包含3种相互关联的信息即数据对象 数据对象的属性及数据对象彼此间相互连接的关系 3 5实体 联系图 79 数据对象也叫实体 Entity 数据对象可以是外部实体即产生或使用信息的任何事物 行为 事件 角色 单位 地点或结构 总之 可以由一组属性来定义的实体都可以被认为是数据对象事物 例如 报表 行为 例如 打电话 事件 例如 响警报 角色 例如 教师 学生 单位 例如 会计科 地点 例如 仓库 或结构 例如 文件 等 一 数据对象 80 数据对象彼此间是有关联的 例如 教师 教 课程 学生 学 课程 教或学的关系表示教师和课程或学生和课程之间的一种特定的连接 81 属性 Attribute 实体所具有的某一特性 一个实体可由若干个属性来刻画 必须把一个或多个属性定义为 标识符 也就是说 当我们希望找到数据对象的一个实例时 用标识符属性作为 关键字 通常简称为 键 二 属性 82 数据对象彼此之间相互连接的方式称为联系 也称为关系 联系可分为以下3种类型 1 一对一联系 1 1 例如 一个部门有一个经理 而每个经理只在一个部门任职 则部门与经理的联系是一对一的 2 一对多联系 1 N 例如 某校教师与课程之间存在一对多的联系 教 即每位教师可以教多门课程 但是每门课程只能由一位教师来教 三 联系 83 3 多对多联系 M N 例如 图表示学生与课程间的联系 学 是多对多的 即一个学生可以学多门课程 而每门课程可以有多个学生来学 84 实体 联系图简称为ER图 把ER图描绘的数据模型称为ER模型 ER图中包含了实体 即数据对象 关系和属性等3种基本成分 通常用矩形框代表实体 用连接相关实体的菱形框表示关系 用椭圆形或圆角矩形表示实体 或关系 的属性 并用直线把实体 或关系 与其属性连接起来 四 实体 联系图的符号 85 某校教学管理ER图 86 某校教学管理ER图 87 层次方框图用树形结构的一系列多层次的矩形框描绘数据的层次结构 树形结构的顶层是一个单独的矩形框 它代表完整的数据结构 下面的各层矩形框代表这个数据的子集 最底层的各个框代表组成这个数据的实际数据元素 不能再分割的元素 3 6其他图形工具一 层次方框图 88 图3 5层次方框图的一个例子 例如 描绘一家计算机公司全部产品的层次方框 HC 图 89 表示信息层次结构的另外一种图形工具 但是这种图形工具比层次方框图提供了更丰富的描绘手段 二 Warnier图 90 图3 6Warnier图的一个例子 91 IPO图是输入 处理 输出图的简称 它是美国IBM公司发展完善起来的一种图形工具 能够方便地描绘输入数据 对数据的处理和输出数据之间的关系 三 IPO图 92 IPO图使用的基本符号既少又简单 它的基本形式是在左边的框中列出有关的输入数据 在中间的框内列出主要的处理 在右边的框内列出产生的输出数据 处理框中列出处理的次序暗示了执行的顺序 93 图3 7IPO图的一个例子图 94 图3 8改进的IPO图的形式 95 销售管理系统的HIPO图 96 97 98 3 7系统行为描述 采用动态分析方法 直观地分析系统的动作 最常用的动态分析方法 状态迁移图时序图状态转换图 99 状态迁移图 就绪 t1 t4 t2 t3 等待 运行 状态 事件 运行 就绪 等待 t1 t2 t3 t4 运行 就绪 就绪 等待 进程的状态迁移图和状态迁移表 100 时序图 T1 功能3 线路 事件e 时序图例通信流例 功能2 功能1 T2 T3 T 主机1 主机2 前端机 前端机 C1 C2 R2 R1 C2 C1 R1 R2 101 状态转换图 状态模型是一种描述系统对内部或者外部事件响应的行为模型 它描述系统状态和事件 以及事件引发系统在状态间的转换 状态模型一般采用状态转换图 状态图 标记方法 状态图提供了行为建模机制 状态图描述了系统中某些复杂对象的状态变化 主要有状态 变迁和事件三种描述 状态1 状态2 事件 触发行为 41 图3 3状态图中使用的主要符号 103 1 状态 状态是任何可以被观察到的系统行为模式 一个状态代表系统的一种行为模式 状态规定了系统对事件的响应方式 系统对事件的响应可以是做一个 或一系列 动作 也可以只是改变系统本身的状态 还可以既改变状态又做动作 状态图中定义的状态有 初态 终态和中间状态 在一张状态图中只能有一个初态 而终态可以有若干个 2 事件事件是引起系统做动作或转换状态的控制信息 42 为了具体说明怎样用状态图建立系统的行为模型 下面举一个例子 图3 4 见书57页 是人们非常熟悉的电话系统的状态图 图中表明 没有人打电话时电话处于闲置状态 有人拿起听筒则进入拨号音状态 到达这个状态后 电话的行为是响起拨号音并计时 这时如果拿起听筒的人改变主意不想打了 他把听筒放下 挂断 电话重又回到闲置状态 如果拿起听筒很长时间不拨号 超时 则进入超时状态 例子 图3 4电话系统状态图 106 需求分析阶段的工作结果是开发软件系统的重要基础 大量统计数字表明 软件系统中15 的错误起源于错误的需求 为了提高软件质量 确保软件开发成功 降低软件开发成本 一旦对目标系统提出一组要求之后 必须严格验证这些需求的正确性 3 8验证软件需求 需求分析示例 教材购销管理系统 学生 教材购销管理系统 书库保管员 1 教材购销管理系统的顶层DFD 学生 书库保管员 2 第二层DFD图 教材购销系统 购书单 领书单 缺书单 进书通知 购书单 领书单 1销售 2采购 进书通知 F2 缺书登记表 F1 教材存量表 缺书单 进书通知 需求分析示例 教材购销管理系统 进书通知 需求分析示例 教材购销管理系统 2 3修改教材库存和待购量 2 1按书号汇总缺书 F2 缺书登记表 销售子系统 书库保管员 F1 教材存量表 进书通知 3 第三层DFD图 采购子系统 2 2按出版社统计缺书 F5 待购教材表 F6 教材一览表 进书通知 110 教材购销管理系统系统流程图 学生 开购书证明 购书证明 开购书发票 发票 收书费 领书单 发书 学生 需求分析示例 教材购销管理系统 数据字典 DataDirectory DD 领书单 学院 专业 班级 学号 姓名 书号 书名 数量 日期有效购书单 领书单发票 学号 姓名 书号 书名 单价 数量 总价 书费合计教材存量表 书号 单价 数量 暂缺书单 学号 姓名 书号 数量 补

温馨提示

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

评论

0/150

提交评论