




已阅读5页,还剩73页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件工程 2 第3章需求分析 3 1需求分析的任务3 2与用户沟通获取需求的方法3 3分析建模与规格说明3 4实体 联系图3 5数据规范化3 6状态转换图3 7其他图形工具3 8验证软件需求3 9小结 3 项目需求分析是一个项目的开端 也是项目建设的基石 软件项目中40 60 的问题都是在需求分析阶段埋下的 祸根 4 需求分析是软件定义时期的最后一个阶段 它的基本任务是准确地回答 系统必须做什么 这个问题 而不是 怎样实现 分析结果 系统分析员应该写出软件需求规格说明书 以书面形式准确地描述软件需求 掌握内容 对一个软件系统来说 数据是稳定的 事务处理可能是变化的 5 需求分析的原则 1 必须理解并描述问题的信息域 根据这条准则应该建立数据模型 2 必须定义软件应完成的功能域 这条准则要求建立功能模型 3 必须描述作为外部事件结果的软件行为 这条准则要求建立行为模型 4 必须对描述信息 功能和行为的模型进行分解 用层次的方式展示细节 信息流 信息内容和信息结构 事件的状态 可用以后的状态转换图建立行为模型 6 分解示意图 7 系统分析员在软件开发中的作用 在系统分析过程中 系统分析员除了起用户和设计人员的接口作用以外 还应充分代表用户的利益 在整个开发过程中起着关键作用 8 3 1需求分析的任务 3 1 1确定对系统的综合要求 功能需求性能需求可靠性和可用性需求出错处理接口需求约束与环境需求逆向需求将来可能提出的要求 用户和人的因素需求文档需求数据需求资源使用需求成本消耗与进度需求安全保密需求质量保证 9 1 功能需求 系统做什么 系统何时做什么 系统何时及如何修改或升级 2 性能需求 软件开发的技术性指标 例如 存储容量限制执行速度 相应时间吞吐量 10 3 可靠性和可用性需求可靠性需求定量地指定系统的可靠性 可用性与可靠性密切相关 它量化了用户可以使用系统的程度 4 出错处理需求有选择地提出这类出错处理需求 我们的目的是开发出正确的系统 而不是用无休止的出错处理代码掩盖自己的错误 11 5 接口需求接口需求描述应用系统与它的环境通信的格式 常见的接口需求有 用户接口需求 硬件接口需求 软件接口需求 通信接口需求 例如 有来自其它系统的输入吗 到自其它系统的输出吗 对数据格式有规定吗 对数据存储介质有规定吗 12 6 约束与环境需求描述在设计或实现应用系统时应遵守的限制条件 是用户或环境强加给项目的限制条件 常见的约束有 精度 开发工具和语言约束 设计约束 数据库约束 应该使用的标准 应该使用的硬件平台及现场环境等 7 逆向需求逆向需求说明软件系统不应该做什么 理论上有无限多个逆向需求 我们应该仅选取能澄清真实需求 且可消除可能发生的误解的那些逆向需求 13 8 将来可能提出的要求应该明确地列出那些虽然不属于当前系统开发范畴 但是分析将来很可能会提出来的要求 目的 在设计过程中对系统将来可能的扩充和修改预做准备 以便一旦确实需要时能比较容易地进行这种扩充和修改 14 9 用户或人的因素 用户类型 各种用户熟练程度 需受何种训练 用户理解 使用系统的难度 用户错误操作系统的可能性 15 10 文档需求 需哪些文档 文档针对哪些读者 11 数据需求 输入 输出数据的格式 接收 发送数据的频率 数据的准确性和精度 数据流量 数据需保持的时间 16 12 资源需求 软件运行时所需的数据 软件 内存空间等资源 软件开发 维护所需的人力 支撑软件 开发设备等 13 软件成本消耗与开发进度需求 开发有规定的时间表吗 软硬件投资有无限制 17 14 安全保密要求 需对访问系统或系统信息加以控制吗 如何隔离用户之间的数据 用户程序如何与其它程序和操作系统隔离 系统备份要求 18 15 质量保证 系统的可靠性要求 系统必须监测和隔离错误吗 规定系统平均出错时间 出错后 重启系统允许的时间 系统变化如何反映到设计中 维护是否包括对系统的改进 系统的可移植性 19 3 1 2分析系统的数据要求 是需求分析的一个重要任务 主要体现在 如何定义数据 数据的作用 如何用 如何表达数据间的关系 如何存储 为减少数据冗余 如何简化数据 并进行规范化 分析系统的数据要求通常采用建立数据模型的方法 见3 4节E R关系图 20 3 1 3导出系统的逻辑模型 通过对系统的综合要求和数据要求分析的结果可以导出系统的详细的逻辑模型 通常用以下内容描述这个逻辑模型 数据流图实体 联系图状态转换图逻辑模型组成数据字典主要的处理算法 21 3 1 4修正系统开发计划 根据在分析过程中获得的对系统的更深入更具体的了解 可以比较准确地估计系统的成本和进度 修正以前制定的开发计划 22 需求分析技巧 需求的收集贯穿于整个项目过程中 解释技术 使甲方积极参与 使用用户的术语 用共同的语言进行交流 取得管理层的支持 一把手工程 已有的文档是需求的很好来源 复用已有的资源 记住今天的用户就是明天的分析者和以后的开发者 首先 应该努力的去熟悉用户的行业 学习用户使用的术语 标准 以便能够准确的理解用户 其次避免用IT行业的术语 而采用浅显易懂的口头语言来解释IT行业中高深莫测的术语 以便用户能够很好的理解 例如 向用户解释10M带宽网络和100M带宽网络有什么区别 10M带宽的网络就像是双车道的柏油路 容易堵车 而100M带宽的网络却是二十车道的高速公路 堵车的可能性非常小 23 3 2与用户沟通获取需求的方法 3 2 1访谈 访谈是最早开始使用的获取用户需求的技术 也是迄今为止仍然广泛使用的需求分析技术 访谈有两种基本形式 正式访谈时 系统分析员将提出一些事先准备好的具体问题 非正式访谈 分析员将提出一些用户可以自由回答的开放性问题 以鼓励被访问人员说出自己的想法 24 注意 访谈时不要使用行话 就是计算机术语 需求分析最重要的是和用户沟通 另外还要引导用户如何讲出与系统有关的业务 不要陷到 客户总是对的 的陷阱中去 25 3 2 2面向数据流自顶向下求精 目的 通过可行性研究中目标系统的高层数据流图 需求分析的目标之一就是把数据流和数据存储定义到元素级 实施方法 在实际业务中 数据决定了需要的处理和算法 是需求分析的出发点 所以重点围绕数据流中数据元素的来源 用途 去向获取需求 并进行详细细化分解 26 图3 1面向数据流自顶向下求精过程 27 3 2 3简易的应用规格说明技术 使用传统的访谈或面向数据流自顶向下求精方法定义需求时 用户处于被动地位而且往往有意无意地与开发者区分 彼此 为了解决上述问题 人们研究出一种面向团队的需求收集法 称为简易的应用规格说明技术 这种方法提倡用户与开发者密切合作 共同标识问题 提出解决方案要素 商讨不同方案并指定基本需求 28 简易的应用规格说明技术并不是解决需求分析阶段遇到的所有问题的 万能灵药 但是 这种面向团队的需求收集方法确实有许多突出优点 开发者与用户不分彼此 齐心协力 密切合作 即时讨论并求精 有能导出规格说明的具体步骤 29 3 2 4快速建立软件原型 快速原型就是快速建立演示目标系统主要功能的可运行的程序 构建原型的要点 它应该实现用户看得见的功能 例如 屏幕显示或打印报表 省略目标系统的 隐含 功能 例如 修改文件 30 在实际开发软件产品时 原型的 修改 试用 反馈 过程可能重复多遍 才能得到符合实际系统的需求 如果修改耗时过多 势必延误软件开发时间 快速构建和修改原型的方法和工具有3种 1 第四代技术 2 可重用的软件构件 31 3 形式化规格说明和原型环境在过去的20多年中 人们已经研究出许多形式化规格说明语言和工具 参见第4章 用于替代自然语言规格说明技术 32 3 3分析建模与规格说明 3 3 1分析建模 为了更好地理解复杂事务 人们常常采用建立事务模型的方法 所谓模型 就是为了理解事务而对事务做出的一种抽象 是对事务的一种无歧义的书面描述 通常 模型由一组图形符号和组织这些符号的规则组成 其目标如下 描述用户需要建立创建软件设计的基础定义软件完成后可被确认的一组需求 33 分析模型的结构 数据字典 数据流图 E R图 状态变迁图 加 工 规 约 控制规约 数 据 对象 描述 34 分析模型的元素 数据字典 DD 模型核心 中心库 E R图 ERD 数据流图 DFD 指明数据在系统中移动时如何被变换 描述对数据流进行变换的功能 DFD中每个功能的描述包含在加工规约 事务处理说明 状态变迁图 STD 指明作为外部事件的结果 系统将如何动作 35 数据流图 DataFlowDiagram 简称DFD图 数据流图表达数据和处理过程的关系 36 3 3 2软件需求规格说明 通过需求分析除了创建分析模型之外 还应该写出软件需求规格说明书 它是需求分析阶段得出的最主要的文档 通常用自然语言完整 准确 具体地描述系统的数据要求 功能需求 性能需求 可靠性和可用性要求 出错处理需求 接口需求 约束 逆向需求以及将来可能提出的要求 自然语言的规格说明具有容易书写 容易理解的优点 为大多数人所欢迎和采用 见软件工程文档模版 三 需求规格说明书 37 进一步改进 为了消除用自然语言书写的软件需求规格说明书中可能存在的不一致 歧义 含糊 不完整及抽象层次混乱等问题 有些人主张用形式化方法描述用户对软件系统的需求 第4章将简要地介绍形式化说明技术 38 3 4实体 联系图 E R图 为了把用户的数据要求清楚 准确地描述出来 系统分析员通常建立一个概念性的数据模型 也称为信息模型 这是一种面向问题的数据模型 是按照用户的观点对数据建立的模型 该模型只是描述了现实业务系统的数据关系 它是需求分析过程中系统分析员与用户非常有效的业务交互工具 数据模型主要由3种相互关联的信息组成 数据对象 实体 属性 联系 关系 E R Entity Relationship 39 3 4 1数据对象 实体 定义 是对软件必须理解的复合信息的抽象 所谓复合信息是指具有一系列 多个值的不同性质或属性的事物 举例 数据对象可以是外部实体 例如 产生或使用信息的任何事物 事物 例如 报表 行为 例如 打电话 事件 例如 响警报 角色 例如 教师 学生 单位 例如 会计科 地点 例如 仓库 或结构 例如 文件 等 总之 每个实体都有一组特征或性质 称为实体的属性 一个实体可以有多个属性 40 实体与实体之间是有关联的 例如 教师 教 课程 学生 学 课程 教或学的关系表示教师和课程或学生和课程之间的一种特定的连接 数据对象只封装了数据而没有对施加于数据上的操作的引用 这是数据对象与面向对象范型 参见本书第9章 中的 类 或 对象 的显著区别 41 3 4 2属性 属性定义了数据对象的性质 即属性可能的取值集合称为属性的值域 每个属性可用唯一的 标识符 来定义 实体中的关键字称为 键 它是实体型的一个重要完整性约束 规定不同的实体不能取相同的键值 属性的需求定义来自实际业务活动 42 3 4 3联系 关系 数据对象彼此之间相互连接的方式称为联系 也称为关系 联系可分为以下3种类型 1 一对一联系 1 1 例如 一个部门有一个经理 而每个经理只在一个部门任职 则部门与经理的联系是一对一的 2 一对多联系 1 N 例如 某校教师与课程之间存在一对多的联系 教 即每位教师可以教多门课程 但是每门课程只能由一位教师来教 见图3 2 43 例如 学生具有学号 姓名 性别 年龄 专业 其它略 等属性 课程具有课程号 课程名 学分 学时数等属性 教师具有职工号 姓名 年龄 职称等属性 此外 学生通过学号 分数与课程和教师发生联系 如此可得教学实体模型 E R图见图3 2 44 图3 2某校教学管理E R图 45 3 多对多联系 M N 例如 图3 2表示学生与课程间的联系 学 是多对多的 即一个学生可以学多门课程 而每门课程可以有多个学生来学 联系也可能有属性 例如 学生 学 某门课程所取得的成绩 既不是学生的属性也不是课程的属性 46 3 4 4实体 联系图的符号 用E R图描绘的数据模型称为E R模型 E R图中包含了实体 即数据对象 关系和属性3种基本成分 符号如下所示 实体 联系或关系 属性 连接线 或 47 例 学生管理系统的基本E R图 48 例 公司车队信息系统的ER模型 49 3 5数据规范化 为什么要规范化 为减少数据冗余 避免出现插入 更新或删除异常 为了便于数据库的设计 常常要对这种结构做一些简化 其中最常见的一种方法就是规范化技术 规范化 将数据的逻辑结构归结为满足一定条件 m行n列 的二维表 关系 范式 normalforms 规范化的目的是 消除数据冗余 即消除表格中数据的重复 消除多义性 使关系中的属性含义清楚 单一 50 范式的优缺点 第一范式 1NF 数据冗余程度最大 第五范式 5NF 数据冗余程度最小 第一 范式级别越高 消除数据冗余的程度越大 但是 存储同样数据就需要分解成更多张表 因此 存储自身 的过程也就越复杂 第二 随着范式级别的提高 数据的存储结构与基于问题域的结构间的匹配程度也随之下降 因此 在需求变化时数据的稳定性较差 第三 范式级别提高则需要访问的表增多 因此性能 速度 将下降 实用范式 第三范式 3NF 51 用教学管理例说明如何规范化 有三个实体型 即课程 学生和教师 用三个关系保存它们的信息 学生 学号 姓名 性别 年龄 专业 籍贯 教师 职工号 姓名 年龄 职称 工资级别 工资 课程 课程号 课程名 学分 学时 课程类型 52 为表示实体型之间的联系 又建立两个关系 选课 学号 课程号 听课出勤率 作业完成率 分数 教课 职工号 课程号 这五个关系 组成了数据库的模型 在每个关系中 属性名下加下划线 指明关键字 并规定关键字能唯一地标识一个元组 53 教师 职工号 姓名 年龄 其中 属性 姓名 年龄 等都函数依赖于属性 职工号 属性 可以是复合属性 如 选课 学号 课程号 听课出勤率 54 3 6状态转换图 来源 结构化需求分析的第3条准则 建立软件系统的行为模型 作用 状态转换图 简称为状态图 通过描绘系统的状态及引起系统状态转换的事件 来表示系统的行为 55 3 6 1状态 状态是任何可以被观察到的系统行为模式 一个状态代表系统的一种行为模式 在状态图中定义的状态主要有 初态 即初始状态 终态 即最终状态 和中间状态 在一张状态图中只能有一个初态 而终态则可以有0至多个 56 状态图既可以表示系统循环运行过程 也可以表示系统单程生命期 57 3 6 2事件 事件是在某个特定时刻发生的事情 它是对引起系统做动作或 和 从一个状态转换到另一个状态的外界事件的抽象 例如 内部时钟表明某个规定的时间段已经过去 用户移动或点击鼠标等都是事件 总之 事件就是引起系统做动作或 和 转换状态的控制信息 58 3 6 3符号 活动表的语法格式 事件名 参数表 动作表达式活动表中经常用下述3种标准事件 entry事件指定进入该状态的动作 exit事件指定退出该状态的动作 do事件则指定在该状态下的动作 需要时可以为事件指定参数表 活动表中的动作表达式描述应做的具体动作 状态变迁通常是由事件触发的 在这种情况下应在表示状态转换的箭头线上标出触发转换的事件表达式 如果在箭头线上未标明事件 则表示在源状态的内部活动执行完之后自动触发转换 59 图3 3状态图中使用的主要符号 初态 终态 中间状态 上面部分为状态的名称 这部分是必须有的 中间部分为状态变量的名字和值 这部分是可选的 下面部分是活动表 这部分也是可选的 连线为状态装换 箭头为转换方向 上方为具体事件 60 3 6 4例子 怎样用状态图建立系统的行为模型 图3 4 见书57页 是人们非常熟悉的电话系统的状态图 图中表明 没有人打电话时电话处于闲置状态 有人拿起听筒则进入拨号音状态 到达这个状态后 电话的行为是响起拨号音并计时 这时如果拿起听筒的人改变主意不想打了 他把听筒放下 挂断 电话重又回到闲置状态 如果拿起听筒很长时间不拨号 超时 则进入超时状态 61 3 7其他图形工具 3 7 1层次方框图 层次方框图用树形结构的一系列多层次的矩形框描绘数据的层次结构 树形结构的顶层是一个单独的矩形框 它代表完整的数据结构 下面的各层矩形框代表这个数据的子集 最底层的各个框代表组成这个数据的实际数据元素 不能再分割的元素 如 学校行政组织结构图 例如 描绘一家计算机公司全部产品的数据结构可以用图3 5中的层次方框图表示 62 图3 5层次方框图的一个例子 63 3 7 2Warnier图 法国计算机科学家Warnier提出了表示信息层次结构的另外一种图形工具 和层次方框图类似 Warnier图也用树形结构描绘信息 但是这种图形工具比层次方框图提供了更丰富的描绘手段 64 3 7 3IPO图 IPO图是输入 处理 输出图的简称 它是美国IBM公司发展完善起来的一种图形工具 能够方便地描绘输入数据 对数据的处理和输出数据之间的关系 65 图3 7IPO图的一个例子图 66 改进的IPO图 本书建议使用一种改进的IPO图 也称为IPO表 这种图中包含某些附加的信息 在软件设计过程中将比原始的IPO图更有用 在需求分析阶段可以使用IPO图简略地描述系统的主要算法 即数据流图中各个处理的基本算法 优点 需求分析阶段用IPO图作为描述算法 67 图3 8改进的IPO图的形式 68 3 8验证软件需求 3 8 1从哪些方面验证软件需求的正确性 大量统计数字表明 软件系统中15 的错误起源于错误的需求 为了提高软件质量 确保软件开发成功 降低软件开发成本 目标系统需求规格确定后 必须严格验证这些需求的正确性 一般说来 应该从下述5个方面进行验证 69 1 一致性 所有需求必须是一致的 任何一条需求不能和其他需求互
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 古建筑地下水位调控与排水方案
- 接地工程施工组织设计
- 煤矿井下水处理站升级改造项目建设工程方案
- 深远海养殖成本控制与利润提升方案
- 离婚协议签订后子女抚养权及共同债务承担协议
- 离婚双方关于房产处置及租金收入分配补充协议
- 双方自愿离婚及财产分配与子女抚养权协议书
- 离婚协议执行受阻起诉范本与维权策略
- 燃煤发电项目能源审计与优化方案
- 非公有制企业劳动合同主体变更与员工权益保护协议
- 德国国家概况
- 服装立体裁剪课件
- 整本书读写《一颗遗失的扣子》(课件)三年级下册语文统编版
- 检测室安全操作规程
- 2023新能源集控中心功能应用配置方案
- 教育研究方法课件《教育研究方法》
- 《write.as》手机版怎么看文
- 【课件】用空间向量研究距离夹角问题(第二课时角度-线线、线面角)
- (全册)教学设计(教案)新纲要云南省实验教材小学信息技术四年级第3册全册
- 桥梁监测方案
- 高速冲床操作规程
评论
0/150
提交评论