软件工程导论第五版答案和复习ppt.ppt_第1页
软件工程导论第五版答案和复习ppt.ppt_第2页
软件工程导论第五版答案和复习ppt.ppt_第3页
软件工程导论第五版答案和复习ppt.ppt_第4页
软件工程导论第五版答案和复习ppt.ppt_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

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

文档简介

第二章可行性研究 主要内容 1可行性研究的任务2可行性研究过程3系统流程图4数据流图5数据字典6成本 效益分析 2 1可行性研究的任务 用最小的代价在尽可能短的时间内确定问题是否能够解决 可行性研究需要的时间长短取决于工程的规模 一般来说 其成本只能占预期的工程总成本的5 10 1 首先需要进一步分析和澄清问题定义明确系统目标 规模和约束条件2 分析员应该导出系统的逻辑模型系统流程图 数据流图等 3 从逻辑模型出发 导出若干可供选择的方案仔细研究每种解法的可行性 技术可行性经济可行性操作可行性 可行性应该从下述几方面进行 1 技术可行性 指使用现有的技术能否完成这个项目 开发风险分析 最新技术成熟度等 资源分析 人力消耗 财力消耗 时间消耗等 相关技术的发展 现有技术能否实现新系统 技术难点 建议采用技术的先进性 2 经济可行性 指通过对软件开发项目进行成本 效益估计 以确定软件系统可能带来的经济效益能否超过研制和维护此系统所需的费用 度量系统解决方案的性能价格比 成本 效益分析 有形成本 效益 无形成本 效益 3 操作可行性 用户使用可能性 公共汽车非接触式感应卡用输入密码或指纹来代替 时间进度可行性 组织和文化上的可行性 4 社会因素的考虑 软件开发是否会侵犯他人 集体或国家的利益 2 2可行性研究过程 1 复查系统规模和目标复查定义阶段的报告书 清晰限制 制约 目标 2 研究目前正在使用的系统分析现行系统的应用状况 找问题 重点分析在于 能做什么 而不是 如何做什么 只关心高层系统流程图避免花费过多时间分析现有系统约束条件 3 导出新系统的高层逻辑模型现有的物理系统 现有系统的逻辑模型 目标的逻辑模型 新的物理系统 4 进一步定义问题以数据流图 数据字典为基础得到用户认可 避免疏漏 误解是一个循环过程 直到完全达到要求 5 导出和评价供选择的解法从操作方面 经济方面 6 推荐行动方针分析员给出结论 给出理由7 草拟开发计划进度表人力资源 系统分析员 程序员 设备资源8 书写文档提交审查 2 3系统流程图 系统流程图是描绘物理系统的传统工具 表达的是数据在系统各部件之间流动的情况 系统流程图使用的某些符号和程序流程图所用的符号相同 但系统流程图表达的是信息在系统中各个部件之间流动的情况 而不是对信息进行加工处理的控制过程 符号当以概括的方式抽象地描绘一个实际系统时 符号使用图1 需要更具体描绘一个物理系统时 符号使用图2 举例某装配厂有一座存放零件的仓库 仓库中现有各种零件的数量和每种零件的库存临界值 数据存放在库存清单主文件中 当仓库中零件数量有变化时 应及时修改库存清单主文件 如果哪种零件的库存量少于它的库存量临界值 则应该报告给采购部门以便定货 规定每天向采购部门送一次定货报告 2 4数据流图 数据流图英文DataFlowDiagram 简称DFD DFD是一种描述逻辑模型的图形工具 表示数据在系统内的变化 图中没有任何具体的物理元素 只是描绘信息在系统中流动和处理的情况 DFD从数据传递和加工的角度 以图形的方式刻画数据流从输入到输出的移动变换过程 特点 1 描绘系统的逻辑模型 图中没有具体的物理元素 只是描绘信息在系统中流动和处理的情况 2 设计数据流图只需考虑系统必须完成的基本逻辑功能 完全不需要考虑如何具体的实现这些功能 符号 数据流图有四种基本符号 正方形 或立方体 表示数据的源点或终点 圆角矩形 或圆形 代表变换数据的处理 开口矩形 或两条平行横线 代表数据存储 箭头表示数据流 即特定数据的流动方向 数据流图的基本图形元素 1 数据流 是一组数据 在数据流图中数据流用带箭头的线表示 在其线旁标注数据流名 2 加工 是对数据流执行的某种操作或变换 在数据流图中加工用圆圈表示 在圆圈内写上加工名 3 数据流的源点和终点 在数据流图中用方框表示 在框内写上相应的名称 注意 数据流与程序流程图中用箭头表示的控制有本质不同 千万不要混淆 熟悉程序流程图的初学者在画数据流程图时 往往试图在数据流程图中表现分支条件或循环 殊不知这样将造成混乱 画不出正确的数据流图 在数据流图中应该描绘所有可能的数据流向 而不应该描绘出现某个数据流的条件 2 4 1符号 由外向里画数据流图的步骤 画法 1 确定系统的输入输出 由于系统究竟包括哪些功能可能一时难于弄清楚 可使范围尽量大一些 把可能有的内容全部都包括进去 应该向用户了解 系统从外界接受什么数据 系统向外界送出什么数据 等信息 根据用户的答复画出数据流图的外围 2 由外向里画系统的顶层数据流图 首先 将系统的输入数据和输出数据用一连串的加工连接起来 在数据流的值发生变化的地方就是一个加工 给各个加工命名 然后 给加工之间的数据命名 最后 给文件命名 3 自顶向下逐层分解 绘出分层数据流图 对于大型的系统 为了控制复杂性 便于理解 需要采用自顶向下逐层分解的方法进行 即用分层的方法将一个数据流图分解成几个数据流图来分别表示 DFD可以用来表示一个系统或软件在任何层次上的抽象 较大型软件系统DFD分成多层 子图 父图概念 可以表示数据流和功能的进一步的细节 假设一家工厂的采购部每天需要一张定货报表 报表按零件编号排序 表中列出所有需要定货的零件 对于每个需要定货的零件应该列出下述数据 零件编号 零件名称 定货数量 目前价格 主要供应者 次要供应者 零件入库或出库称为 事务 通过放在仓库中的终端把事务报告给定货系统 当某种零件的库存数量少于库存量临界值时就应该再次定货 2 4 2举例 怎样画出上述定货系统的数据流图呢 分析数据流图有4种成分 可以从问题描述中提取数据流图的4种成分 即 源点或终点 处理 数据存储和数据流 第一步 考虑数据的源点和终点 从上面对系统的描述可以知道 采购部每天需要一张定货报表 通过放在仓库中的终端把事务报告给定货系统 所以采购员是数据终点 而仓库管理员是数据源点 第二步 考虑处理 再一次阅读问题描述 采购部需要报表 显然他们还没有这种报表 因此必须有一个用于产生报表的处理 事务的后果是改变零件库存量 然而任何改变数据的操作都是处理 因此对事务进行的加工是另一个处理 产生报表处理事务 第三步 考虑数据流和数据存储 系统把定货报表送给采购部 事务需要从仓库送到系统中 显然事务是一个数据流 处理事务后产生定货报表 定货报表是一个数据流 产生报表和处理事务这两个处理在时间上明显不匹配 每当有一个事务发生时立即处理它 然而每天只产生一次定货报表 因此 用来产生定货报表的数据必须存放一段时间 也就是应该有一个数据存储 数据存储和数据流都是数据 仅仅所处的状态不同 数据存储是处于静止状态的数据 数据流是处于运动中的数据 总结了上面分析的结果源点 终点 采购员 仓库管理员处理 处理事务 产生报表数据流 订货报表 事务数据存储订货信息一旦把数据流图的4种成分都分离出来以后 就可以着手画数据流图了 任何系统的基本模型都由若干个数据源点 终点以及一个处理组成 基本系统模型 从基本系统模型这样非常高的层次开始画数据流图是一个好办法 上图太抽象了 从这张图上对定货系统所能了解到的信息非常有限 下一步应该把基本系统模型细化 描绘系统的主要功能 产生报表 和 处理事务 是系统必须完成的两个主要功能 它们将代替上图 定货系统 细化后的数据流图中还增加了两个数据存储 两个数据流 它们与数据存储相同 数据存储和数据流只不过是同样数据的两种不同形式 对功能级数据流图中描绘的系统主要功能进一步细化 考虑通过系统的逻辑数据流 当发生一个事务时必须首先接收它 随后按照事务的内容修改库存清单 最后如果更新后的库存量少于库存量临界值时 则应该再次定货 也就是需要处理订货信息 因此 把 处理事务 这个功能分解为下述3个步骤 这在逻辑上是合理的 接收事务 更新库存清单 和 处理订货 2 4 3命名 数据流图中每个成分的命名是否恰当 直接影响数据流图的可理解性 1 为数据流 或数据存储 命名1 名字应代表整个数据流的内容 而不是仅仅反映它的某些成分 2 不要使用空洞的 缺乏具体含义的名字 3 若取名遇到困难 可能因为对流程图分解不当 应重新分解 2 为处理命名1 先为数据流命名 后为相关的处理命名 2 名字应反映整个处理的功能 3 名字最好是动宾结构 4 若取名遇到困难 可能因为对流程图分解不当 应重新分解 2 4 4用途 数据流图的基本目的 1 是利用它作为交流信息的工具 2 分析员把对现有系统的认识或对目标系统的设想用数据流图描绘出来 供有关人员审查确认 由于在数据流图中通常仅仅使用4种基本符号 而且不包含任何有关物理实现的细节 因此 绝大多数用户都可以理解和评价它 3 数据流图的另一个主要用途是作为分析和设计的工具 即用数据流图辅助物理系统的设计时 以图中不同处理的定时要求为指南 能够在数据流图上画出许多组自动化边界 每组自动化边界可能意味着一个不同的物理系统 因此可以根据系统的逻辑模型考虑系统的物理实现 考虑事务随时可能发生 因此处理1 1 接收事务 必须是联机的 采购员每天需要一次定货报表 因此处理2 产生报表 应该以批量方式进行 问题描述并没有对其他处理施加限制 更新库存清单 处理定货和产生报表以批量方式进行 当然 这种方案需要增加一个数据存储以存放事务数据 改变自动化边界 把处理1 1 1 2和1 3放在同一个边界内 这个系统将联机地接收事务 更新库存清单和处理定货及输出定货信息 然而处理2将以批量方式产生定货报表 2 5数据字典 数据字典是关于数据的信息的集合 提供关于数据的描述信息 使用DD的目的 查阅不了解的条目的解释 尽量减少出现别名 DD中所有的定义都应是严密的 精确的 不可有半点含混 不可有二义性 数据流图和数据字典共同构成系统的逻辑模型 2 5 1数据字典的内容 对4类元素的定义组成1 数据流2 数据元素3 数据存储4 处理 2 5 2定义数据的方法 由数据元素组成数据的方式只有3种基本类型顺序 以确定次序连接两个或多个分量 选择 从两个或多个可能元素中选取一个 重复 指定的分量重复零次或多次 可以用上述3种关系算符定义数据字典中的任何条目 为了表达更简洁 可使用下列符号 等价于 连接两个分量 或 重复 可选例如 标识符 字母字符 字母数字串字母数字串 0 字母或数字 7字母或数字 字母字符 数字字符 2 5 3数据字典的用途 数据字典中建立的一组严密一致的定义有助于改进分析员和用户之间通讯 消除许多可能的误解 所有开发人员都根据公共的数据字典和设计模型 能避免许多麻烦的接口问题 2 5 4数据字典的实现 如果没有数据字典处理程序 采用卡片形式书写数据字典 包含信息 名字 别名 描述 定义 位置 名字 定货数量别名 描述 某个零件一次定货的数量定义 定货数量 1 数字 5位置 定货报表定货信息 2 6成本 效益分析 成本 效益分析的目的 是从经济角度评价开发一个新项目是否可行 是否划算 从而帮助使用部门的负责人正确地作出是否投资于这项开发的决定 2 6 1成本估计1 代码行技术代码行技术 通常先根据经验和历史数据来估计实现一个功能所需要的源程序行数 然后用每行代码的平均成本乘以行数就可以确定软件的成本 2 任务分解技术每个模块需要的人力乘以每人每月的平均工资首先把软件开发工程分解为若干个相对独立的任务 再分别估计每个单独的开发任务的成本 最后累加起来得出软件开发工程的总成本 估计每个任务的成本时 通常先估计完成该项任务所需要使用的人力 以人月为单位 再乘以每人每月的平均工资而得出每个任务的成本 划分任务时最常用的办法是按开发阶段进行 3 自动估计成本技术必须有长期历史数据为基础 2 6 2成本 效益分析的方法度量效益的方法 货币的时间价值 货币的时间价值通常用利率的形式表示 假设年利率为i 如果现在存入P元 则n年后可以得到的钱数为 F P 1十i n 这也就是P元钱在n年后的价值 反之 如果n年后能收入F元钱 那么这些钱的现在的价值是 P F 1十i n 2 投资回收期 投资回收期 所谓投资回收期就是使累计的经济效益等于最初投资所需要的时间 显然 投资回收期越短就能越快获得利润 这项工程也就越值得投资 3 纯收入纯收入 纯收入就是在整个生命周期之内系统累计经济效益 折合成现在值 与投资之差 这相当于比较投资开发一个软件系统和把钱存在银行中 或贷给其他企业 这两种方案的优劣 4 投资回收率 小结 1 阅读全章内容 深入领会可行性研究的主要内容 2 总结 领会系统流程图 数据流图和数据字典三种逻辑建模工具的用法系统流程图 描绘物理系统的一种传统工具 它的基本思想是用图形符号以黑盒子形式描绘系统里面的每一个部件 程序 文件 数据库 表格 人工过程等 数据流图 DataFlowDiagram DFD 描绘系统的一种逻辑模型 图中没有任何具体的物理元素 只是描绘信息在系统中流动和处理的情况 数据

温馨提示

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

评论

0/150

提交评论