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

下载本文档

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

文档简介

第二章可行性研究 FeasibilityStudy 2 1可行性研究的任务2 2可行性研究过程2 3系统流程图2 4数据流图2 5数据字典2 6成本 效益分析2 7小结 1 第二章可行性研究 FeasibilityStudy 1 任务 不是解决问题 而是确定是否可解 值得解 例 图书管理系统 可从下述3方面考虑 Technically 技术上 machines languages Operationally 操作上 canourcustomersuseit Economically 经济上 budget profit 2 注 不要花过多精力 占总成本的5 10 2 步骤 1 确定项目的规模和目标我们认为用户要的用户要的 3 2 研究老系统 解决老系统问题 老系统功能 新增功能 新系统效益 注 只了解老系统做什么 而不管怎样做 注意了解与其它系统的接口 老系统效益 2 步骤 3 导出高层逻辑模型 conceptualdesign 4 老系统 模型 新模型 新系统 报告应该告诉用户 What 而不是 How 2 步骤 3 逻辑模型4 重新定义1 复查定义注 此时合同未签 应考虑成本 不宜反复太多次 5 5 导出和评价供选择的多种解法 2 步骤 6 推荐行动方针 6 7 开发计划 粗略 任务分解 确定负责人 大致进度规划 财务预算 风险分析及对策 8 审查 存档 3 系统流程图 SystemFlowDiagram 系统流程图是概括地描绘物理系统的传统工具 反映信息在各部件之间流动的情况 控制 处理信息 不同于程序流程图 1 符号 名称 7 处理输入输出连接换页连接数据流 8 3 系统流程图 2 例1 某装配厂的仓库 仓库中现有的各种零件的数量以及每种零件的库存量临界值等数据记录在库存清单主文件中 当仓库中零件数量有变化时 应该及时修改库存清单主文件 如果哪种零件的库存量少于它的库存量临界值 则应该报告给采购部门以便定货 规定每天向采购部门送一次定货报告 9 3 系统流程图 注 符号 系统部件箭头 信息流动路径 10 3分层 分层次地描绘复杂系统 首先用一张高层次的系统流程图描绘系统总体概貌 表明系统的关键功能 然后分别把每个关键功能扩展到适当的详细程度 画在单独的一页纸上 这种分层次的描绘方法便于阅读者按从抽象到具体的过程逐步深入地了解一个复杂的系统 11 4 数据流图 DataFlowDiagram System data functionDFD是一种图形化技术 描绘信息流和数据从输入移动到输出的过程中所经受的变换 在数据流图中没有任何具体的物理部件 它只是描绘数据在软件中流动和被处理的逻辑过程 1 符号 4种成分 源点或终点 处理 数据存储和数据流 12 13 附加符号 4 数据流图 4 数据流图 14 2 例子1 一家工厂的采购部每天需要一张定货报表 报表按零件编号排序 表中列出所有需要再次定货的零件 对于每个需要再次定货的零件应该列出下述数据 零件编号零件名称定货数量目前价格主要供应者次要供应者零件入库或出库称为事务 通过放在仓库中的CRT终端把事务报告给定货系统 当某种零件的库存数量少于库存量临界值时就应该再次定货 4 数据流图 15 成分分析 1源点 终点 仓库管理员是数据源点 采购员是数据终点 处理 任何改变数据的操作都是处理 产生报表 数据流 定货报表 零件编号 零件名称 定货数量 目前价格 主要供应者 次要供应者 事务 零件入库或出库 4数据存储 定货信息 库存清单 4 数据流图 16 定货系统的基本系统模型 定货系统的功能级数据流图 17 4 数据流图 把处理事务的功能进一步分解后的数据流图 18 4 数据流图 4 数据流图 例2 2 摘自 FundamentalsofSoftwareEngineering InformationSystemofaPublicLibraryIF userrequestsabook title author user sname THEN Getabook book anduser slistofbooksborrowed IF usersearchesabookbytopics THEN Searchbytopics listofbooktitlesreferringtothetopic 19 4 数据流图 20 21 4 数据流图 Refinement Bookrequest Findbookposition Getabook 注 与程序流程图不同 DFD不描述流动条件 忽略出错处理 命名尽可能清楚 具体 3 命名 数据流图中每个成分的命名是否恰当 直接影响数据流图的可理解性 为数据流 或数据存储 命名 1 名字应代表整个数据流 或数据存储 的内容 而不是仅仅反映它的某些成分 2 不要使用空洞的 缺乏具体含义的名字 如 数据 信息 输入 之类 3 如果在为某个数据流 或数据存储 起名字时遇到了困难 则很可能是因为对数据流图分解不恰当造成的 应该尝试重新分解 22 4 数据流图 为处理命名 1 通常先为数据流命名 然后再为与之相关联的处理命名 这样命名比较容易 而且体现了人类习惯的 由表及里 的思考过程 2 名字应该反映整个处理的功能 而不是它的一部分功能 3 名字最好由一个具体的及物动词加上一个具体的宾语组成 应该尽量避免使用 加工 处理 等空洞笼统的动词作名字 4 通常名字中仅包括一个动词 如果必须用两个动词才能描述整个处理的功能 则把这个处理再分解成两个处理可能更恰当些 23 4 数据流图 5 如果在为某个处理命名时遇到困难 则很可能是发现了分解不当的迹象 应考虑重新分解 数据源点 终点并不需要在开发目标系统的过程中设计和实现 它并不属于数据流图的核心内容 只不过是目标系统的外围环境部分 可能是人员 计算机外部设备或传感器装置 通常 为数据源点 终点命名时采用它们在问题域中习惯使用的名字 如 采购员 仓库管理员 等 24 4 数据流图 4 用途 画数据流图的基本目的 交流信息的工具 分析员把他对现有系统的认识或对目标系统的设想用数据流图描绘出来 供有关人员审查确认 在数据流图中通常仅仅使用4种基本符号 而且不包含任何有关物理实现的细节 绝大多数用户都可以理解和评价它 数据流图应该分层 在把功能级数据流图细化后得到的处理超过9个时 应该采用画分图的办法 把每个主要功能都细化为一张数据流分图 原有的功能级数据流图用来描绘系统的整体逻辑概貌 25 4 数据流图 分析和设计的工具 分析员在研究现有的系统时常用系统流程图表达他对这个系统的认识 这种描绘方法形象具体 比较容易验证它的正确性 开发工程的目标不是完全复制现有的系统 而是创造一个能够完成相同的或类似的功能的新系统 用系统流程图描绘一个系统时 系统的功能和实现每个功能的具体方案是混在一起的 因此 分析员希望以另一种方式进一步总结现有的系统 这种方式应该着重描绘系统所完成的功能而不是系统的物理实现方案 数据流图是实现这个目标的极好手段 26 4 数据流图 辅助物理系统的设计 以图中不同处理的定时要求为指南 能够在数据流图上画出许多组自动化边界 每组自动化边界可能意味着一个不同的物理系统 例1中 事务随时可能发生 处理1 1 接收事务 必须是联机的 采购员每天需要一次定货报表 处理2 产生报表 应该以批量方式进行 问题描述并没有对其他处理施加限制 可以联机地接收事务并放入队列中 更新库存清单 处理定货和产生报表以批量方式进行 这种方案需要增加一个数据存储以存放事务数据 27 4 数据流图 一种划分自动化边界的方法 以批量方式更新库存清单 28 4 数据流图 改变自动化边界 把处理1 1 1 2和1 3放在同一个边界内 这个系统将联机地接收事务 更新库存清单和处理定货及输出定货信息 处理2将以批量方式产生定货报表 思考 建立自动化边界的其他方案 如果把处理1 1和处理1 2放在一个自动化边界内 把处理1 3和处理2放在另一个边界内 意味着什么样的物理系统 29 4 数据流图 另一种划分自动化边界的方法 以联机方式更新库存清单 30 4 数据流图 5 数据字典 DataDictionary 数据字典 是关于数据的信息的集合 是对数据流图中包含的所有元素的定义的集合 作用 在软件分析和设计的过程中给人提供关于数据的描述信息 数据流图和数据字典共同构成系统的逻辑模型 与DFD结合 构成系统的规格说明 specifications 改进分析员和用户之间的通信 改进在不同的开发人员或不同的开发小组之间的通信 是开发数据库的第一步 31 1数据字典的内容 定义4类元素的组成 1 数据流 2 数据流分量 即数据元素 3 数据存储 4 处理对数据处理的定义可用其他工具 如IPO图或PDL 描述 32 5 数据字典 数据字典中记录数据元素的信息 一般信息 名字 别名 描述等等 定义 数据类型 长度 结构等等 使用特点 值的范围 使用频率 使用方式 输入 输出 本地 条件值等等 控制信息 来源 用户 使用它的程序 改变权 使用权等等 分组信息 父结构 从属结构 物理位置 记录 文件和数据库等等 33 5 数据字典 数据元素的别名 该元素的其他等价的名字 出现别名的原因 1 对于同样的数据 不同的用户使用了不同的名字 2 一个分析员在不同时期对同一个数据使用了不同的名字 3 两个分析员分别分析同一个数据流时 使用了不同的名字 应该尽量减少出现别名 但是不可能完全消除别名 34 5 数据字典 2定义数据的方法 对数据自顶向下的分解 数据分解的程度 当分解到不需要进一步定义 每个和工程有关的人也都清楚其含义的元素时停止 由数据元素组成数据的方式有4种类型 1 顺序 以确定次序连接两个或多个分量 2 选择 从两个或多个可能的元素中选取一个 3 重复 把指定的分量重复零次或多次 4 可选 一个分量是可有可无的 重复零次或一次 可以使用上述关系算符定义数据字典中的任何条目 35 5 数据字典 符号 等价于 定义为 和 连接两个分量 或 从方括弧内列出的若干个分量中选择一个 通常用 号隔开供选择的分量 重复 重复花括弧内的分量 可选 圆括弧里的分量可有可无 36 5 数据字典 例 某程序设计语言规定 用户说明的标识符是长度不超过8个字符的字符串 其中第一个字符必须是字母字符 随后的字符既可以是字母字符也可以是数字字符 定义标识符 标识符 字母字符 字母数字串字母数字串 0 字母或数字 7字母或数字 字母字符 数字字符 37 5 数据字典 38 名字 定货报表别名 定货信息描述 每天一次送检采购员的需要定货的零件表定义 定货报表 零件编号 零件名称 定货数量 目前价格 主要供应者 次要供应者位置 输出到打印机 struct定货报表 char零件编号 8 char零件名称 20 int定货数量 float目前价格 structsupplier主要供应者 structsupplier次要供应者 卡片形式 包含信息 名字 别名 描述 定义 位置 例子 3数据字典的实现 5 数据字典 5 数据字典 名字 零件编号别名 描述 唯一地标识库存清单中一个特定零件的关键域定义 零件编号 8 字符 8位置 定货报告定货信息库存清单 39 若修改 零件编号 的定义 则受到影响的数据均列于此 6成本 效益分析 Cost Benefit 1 成本估计 CostEstimation 代码行技术 每行代码的平均成本 源代码行数 任务分解技术 人力 工资 经验公式及软件 40 软件 Boehm sConstructiveCostModel COCOMO v1 0in1980s v2 0in1995 详细讨论见第十三章 6成本 效益分析 2 效益估计 BenefitEstimation 例 假设某软件生命周期为5年 现在投资20万元 平均年利率3 从第一年起 每年年底收入4 2万元 问该项目是否值得投资 41 6成本 效益分析 到第5年底结算时 投资额 200000 1 3 5 231855 元 收入 42000 1 3 4 1 3 3 1 3 2 1 3 1 222984 元 42 不合算 6成本 效益分析 衡量工程价值的经济指标有 纯收入 折合现价的总收入 当前投资额 43 投资回收期例 第6年底可收回 6成本 效益分析 投资回收率

温馨提示

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

评论

0/150

提交评论