软件工程第三章课件.ppt_第1页
软件工程第三章课件.ppt_第2页
软件工程第三章课件.ppt_第3页
软件工程第三章课件.ppt_第4页
软件工程第三章课件.ppt_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

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

文档简介

第3章需求分析 3 1需求分析的任务3 2与用户沟通获取需求的方法3 3分析建模与规格说明3 4实体 联系图3 5数据规范化3 6状态转换图3 7其他图形工具3 8验证软件需求3 9小结 1 为什么要进行需求分析 在需求阶段修复一个错误的费用是编码阶段的1 5到1 10 是维护阶段修复费用的1 100到1 200 因此 我们可以认为 设计错误的修复费用要远远高于编码错误的修复费用 通过 分析 理解用户的各种问题 通过 规格说明 把问题表达出来 要求大家 1 掌握具体的步骤和方法 2 提高分析问题和解决问题的能力 3 熟练运用一些图形工具 2 基本概念开发过程的两大阶段 1 正确地确定问题 2 为问题寻找合适的解答目的澄清用户的各种需求基本任务用户和软件人员双方一起来充分理解用户的要求 并把双方共同的理解明确地表达成一份书面文档 软件需求规格说明书 3 在软件生命期的每个阶段中 分析阶段是面向 问题 的 它主要是对用户的业务活动进行分析 明确在用户的业务环境中 软件系统应该 做什么 4 需求分析的任务 确定对系统的综合要求 1 确定系统的功能要求提出系统必须完成的全部所有功能2 确定系统的性能要求 1 系统的响应时间 2 系统需要的存储容量 3 后援存储器容量 系统重新启动 4 系统的安全性和可靠性3 确定系统的运行要求 1 支持系统运行的软件环境 2 工具软件和系统软件 3 支持系统运行的硬件环境 4 外存储器 通信接口 输入和输出4 确定系统的扩充要求 5 分析系统的数据要求建立数据模型 层次方框图 Warnier图 导出系统的逻辑模型数据流图实体 联系图状态转换图数据字典主要的处理算法修正系统开发计划 6 需求分析的过程需求分析阶段可分为四个过程 调查研究 分析与综合 书写需求分析的文档和评审 1 调查研究目的 需求调查的目的是通过各种途径获取用户需求信息产生 用户需求说明书 角色与职责 需求分析员调查 分析用户的需求 客户与最终用户提供必要需求信息 7 2 分析与综合从信息流和信息结构出发 逐步细化所有的软件功能 找出系统各元素之间的联系 接口特性和设计上的约束 分析它们是否满足功能要求 3 书写需求分析文档软件需求说明书数据要求说明书初步的用户手册修改 完善与确定软件开发实施计划 8 4 需求分析的评审系统定义的目标是否与用户的要求一致系统需求分析阶段提供的文档资料是否齐全文档中的所有描述是否完整 清晰 准确反应用户要求与所有其它系统成分的重要接口是否都已经描述 9 主要步骤 过程 准备调查调查与记录分析需求信息撰写 用户需求说明书 需求确认 9 1 准备调查需求分析员起草需求调查问题表将调查重点锁定在该问题表内 否则调查工作将变得漫无边际 随着调查的深入问题表将不断被细化确定需求调查的方式 与用户交谈 向用户提问参观用户工作流程 观察用户操作发调查问卷与同行 专家交谈 听取他们的意见分析已存在的同类产品 提取需求从行业标准与规则中提取需求etc 与被调查者取得联系 馔写需求调查计划 9 访谈访谈有正式访谈和非正式访谈两种形式 非正式访谈以一种较自由的形式 交换对问题的看法 主要是了解问题的性质 需要解决的方案 所需的人数和能力 关注客户的目标和收益 正式访谈将根据一些事先准备好的议题全面展开讨论 得出结论性的意见 11 2 调查和记录需求分析员按计划执行调查表1 需求信息表格示例 9 3 书写用户需求说明书需求分析员对收集到的所有需求信息进行分析 消除错误 归纳与总结共性的用户需求 然后按指定的文档模板书写 用户需求说明书 调查过程中获取的需求信息 可以作为 用户需求说明书 的附件 用户需求说明书 撰写完毕后 需求分析员应当邀请同行专家和用户一起评审 用户需求说明书 尽最大努力使得 用户需求说明书 能够正确无误的反映用户的真实意愿 之后才进一步定义产品的需求 产生 产品需求规格说明书 9 需求获取的方法系统分析员建立需求的过程中所遇到的困难 分析员与领域专家交流的过程中 容易产生误解 大型系统有时会有不同的用户群体 他们往往会提出相互矛盾的要求 分析员要寻求令所有用户满意的答案很难 需求永远不会稳定 系统工程环境一旦改变 用户对软件的需求也会改变 而且这种需求往往无法预测 10 需求分析是指在需求开发的过程中 对所获取的各种需求信息进行分析 消除错误 刻画细节等 确保需求文档能正确反映用户的真实意图 常见的需求分析方法有问答分析和建模分析两类问答分析比较适合用户需求调查阶段 而建模分析比较适合产品需求定义阶段 10 问答分析法自问自答或者 研讨 问答分析最重要的问题是 是什么 和 为什么 每个需求都应当用陈述句说明 是什么 如果 是什么 的内涵不够清晰 则应补充说明 不是什么 解释 为什么 是为了加深读者的理解其他常见问题 需求存在二义性吗 需求上下文存在矛盾吗 需求完备吗 需求是必要的吗 需求是可以实现的吗 需求是可以验证的吗 需求的优先级确定吗 10 建模分析法在需求开发过程中 对某些类型的信息 用图形表示要比用文本表示更有效 需求建模就是指用图形符号来表示 刻画需求 10 面向数据流自顶向下求精结构化分析方法 SA 就是面向数据流自顶向下逐步求精进行需求分析的方法 结构化分析 StructuredAnalysis 是一个简单实用 使用广泛的方法 它适用于分析大型的数据处理系统 尤其是企事业管理方面的系统 这个方法通常与设计阶段的结构化设计方法 SD 衔接起来 14 软件工程技术中 控制复杂性的两个基本手段是 分解 和 抽象 分解 把大问题分割成若干个小问题 然后分别解决 15 对于一个复杂的系统 比如银行管理系统 如何理解和表达它的功能呢 SA方法使用了 自顶向下逐层分解 的方法 16 逐层分解 体现了分解和抽象的原则 它使我们不至于一下子陷入细节 而是有控制地逐步地了解更多的细节 这是有助于理解问题的 无论系统多么复杂 分析工作都可以有计划有步骤 有条不紊地来进行 系统规模再大 分析工作的复杂程度不会随之增大 而只是多分解几层而已 所以SA方法有效地控制了复杂性 18 描述方式SA方法采用了介于形式语言和自然语言之间的描述方式 用SA方法获得的需求说明书由以下几部分组成 一套分层的数据流图一本数据字典一组小说明补充材料 19 数据流图 描述系统的分解 即描述系统由哪些部分组成 每个部分之间有什么样的联系等 数据字典 描述系统中的每一个数据 小说明 详细描述系统中的每一个加工 补充材料 是根据需要对系统的补充 以上就可以明确而完整地描述一个系统的功能 20 小说明SA方法的基本思想 将一个大型复杂的系统逐层分解成许多个足够简单的基本加工 然后分别理解每个基本加工 并为每个基本加工详尽地写下 小说明 再将所有这些 小说明 组织起来 就得到了整个系统的说明书 23 小说明中应精确地描述用户要求一个加工 做什么 这包括加工的激发条件 加工逻辑 优先级 执行频率 出错处理等等 其中最基本的部分是加工逻辑 24 注意对一个加工应描述的是用户要求这个加工 做什么 而不是用编程语言来描述具体的加工过程 25 结构化分析方法步骤细化数据流图确定数据定义与加工策略最低一层数据流图包含了系统全部的数据和加工 从哪里开始分析呢 从数据流图的终点开始回溯 因为终点的数据代表系统的输出 其要求是明确的 由这里开始沿数据流图回溯 较易看清每一个数据元素的来源去向 有利于减少错误和遗漏 2 1确定输出数据的数据元素 2 2沿数据流图回溯寻求每个数据问题的源 在此过程中确定必要的算法和补充必要的数据元素 随着问题理解的加深 可以划分出更多的数据元素 DD 和给出更明确的算法 IPO 用户复查分析员 从数据流图的输入开始 借助数据流图 数据字典 IPO图向用户解释如何把输入数据 输出数据用户 复查验证已知的数据元素 补充未知元素 22 快速原型法基本思想 在很短的时间内建立起一个只包含基本数据库和一些基本功能的原型给用户使用 然后根据用户意见对原型进行修改 直到满意为止 26 短时间内建立原型 用户满意 修改 完善原型 否 是 完成原型 27 结构化分析模型的体系结构 28 结构化分析法 主要包括 一个中心三个图 数据字典 是中心 它包含了软件中所有数据对象的描述 E R图 是用图形符号来标识数据对象及它们之间的关系 表达用户对数据的需求 数据流图 指明数据在系统中流动时如何被变换 状态图 表示了系统存在的状态及它们之间的变化 24 实体 联系图实体 实体 是信息世界中描述客观事物的概念 实体可以是现实世界的人 物 抽象的概念 事物之间的联系等 如一个人 一件物品 一个部门 一种思想等都可以是实体 实体有总体和个体之分 2 属性 属性 是指实体具有的某种特性 属性是对实体的进一步描述 如学生实体可由学号 姓名 年龄 性别 系 年级等属性来刻画 属性有属性名和属性值的概念 29 3 联系现实世界里的事物总是存在着这样或那样的联系 这种联系必然要在信息世界中得到反映 在信息世界中 事物之间的联系可分为两类 一是实体内部的联系 如组成实体的各属性之间的关系 另一是实体之间的联系 这里我们主要讨论实体与实体之间的联系 30 系统建模的一个重要方面是定义系统处理的数据的逻辑结构 实体 关系模型描述数据实体 关联以及实体属性 该模型用实体 关系图描述现实世界中的实体 而不涉及实体在系统中的实现方法 实体彼此间的联系分为三类 一对一 1 1 联系 一对多 1 N 联系 多对多 M N 联系 31 实体 矩形框 联系 菱形框 属性 椭圆形 符号 37 设A B为两个包含若干个体的总体 其间建立了某种联系 其联系方式可分为三类 一对一联系 一对多联系 包括多对一联系 多对多联系 32 A B 1 n n m A B 33 一对一联系 如果对于A中的每一个实体 B中至多有一个实体与其对应 B中的每一个实体也至多对应A中的一个实体 则称A与B是一对一的 记作1 1 比如 学校 校长 领导 1 1 工厂 厂长 管理 1 1 科室主任 病区 负责 1 1 属性1 属性n 属性1 属性n 校名 属性n 属性1 校址 姓名 职称 属性1 属性n 属性1 属性n 属性1 属性n 属性1 属性n 34 一对多联系 如果对于A中的一个实体 B中有一个以上的实体与之对应 B中的每一个实体至多对应A中的一个实体 则称A与B是一对多的 记作1 n 比如 学校 班级 下设 1 n 工厂 车间 有 1 n 病区 医生 拥有 1 n 属性1 属性n 属性1 属性n 属性1 属性n 校名 校址 属性1 属性n 属性1 属性n 班名 人数 属性1 属性n 属性1 属性n 35 多对多联系 M N 如果A中有实体对应B中一个以上实体 B中也有实体对应A中一个以上实体 则称A与B为多对多的 记作m n 比如 学生 课程 选课 m n 项目 职工 参加 m n 医生 病人 诊治 m n 成绩 属性1 属性n 记录 学号 姓名 属性1 属性n 属性1 属性n 课程号 课程名 属性1 属性n 属性1 属性n 36 4 如何设计E R图考察客观事物及其联系 抽象出实体 并一一命名 不能重名 根据需求确定实体的属性根据属性外在的联系 描述实体间的联系先作出局部E R图 再综合产生总体E R图 总体E R图不是各局部E R图的简单拼合 而是有可能增加了某些联系 也有可能减少了某些联系 38 4 实例一个学生管理系统的实体 关系图 步骤 1 考察客观事物及其联系 抽象出实体 并一一命名 不能重名 实体 教师 学生 课程 2 根据需求确定实体的属性教师 教工号 姓名 性别 职称 职务学生 学号 姓名 性别 系 年级课程 课程号 课名 学时 学分 39 3 根据属性外在的联系 描述实体间的联系教 教师教课程学 学生学课程 4 画出E R图 40 状态转换图 状态模型是一种描述系统对内部或者外部事件响应的行为模型 它描述系统状态和事件 以及事件引发系统在状态间的转换 状态模型一般采用状态转换图 状态图 标记方法 状态图提供了行为建模机制 状态图描述了系统中某些复杂对象的状态变化 主要有状态 变迁和事件三种描述 41 1 状态 状态是任何可以被观察到的系统行为模式 一个状态代表系统的一种行为模式 状态规定了系统对事件的响应方式 系统对事件的响应可以是做一个 或一系列 动作 也可以只是改变系统本身的状态 还可以既改变状态又做动作 状态图中定义的状态有 初态 终态和中间状态 在一张状态图中只能有一个初态 而终态可以有若干个 2 事件事件是引起系统做动作或转换状态的控制信息 42 状态变量的名字和值 状态转换 Entry 表示进入该状态的动作Exit 表示退出本状态的动作Do 在本状态下的动作 状态变迁通常是由事件触发的 这时应在状态转换上标出触发转换的事件表达式如果箭头上没有标明事件 则表示在源状态内部活动完成后自动出发转换 状态的名称 事件表达式的语法 事件说明 守卫条件 动作表达式事件说明的语法 事件名 参数表 守卫条件是一个布尔表达式动作表达式表示当状态转换开始时执行该表达式 符号 4 实例 一 电话系统状态图 43 其他图形工具 一 层次方框图层次方框图用树形结构的一系列

温馨提示

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

评论

0/150

提交评论