软件工程导论复习_第1页
软件工程导论复习_第2页
软件工程导论复习_第3页
软件工程导论复习_第4页
软件工程导论复习_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

精品文档 1欢迎下载 软件工程导论软件工程导论 信计 13 1 韩慧 珊 第一章第一章 软件工程学概述软件工程学概述 1 1 软件危机 软件危机 软件危机 是指在计算机软件的开发和维护过程中所遇到的一系列严重问题 软件危机包含下述两个方面的问题 1 如何开发软件 以满足对软件日益增长 的需求 2 如何维护数量不断膨胀的已有软件 2 2 软件工程及软件工程的特性 软件工程及软件工程的特性 1 软件工程关注于大型程序的构造 2 软件工程的中心课题是控制复杂性 3 软件经常变化 4 开发软件的效率非常重要 5 和谐地合作是开发软件的关键 6 软件必须有效地支持它的用户 7 在软件工程领域中通常由具有一种文化背 景的人替具有另一种文化背景的人创造产品 3 3 软件工程的基本原理 软件工程的基本原理 1 用分阶段的生命周期计划严格管理 2 坚持进行阶段评审 3 实行严格的产 品控制 4 采用现代程序设计技术 5 结构应能清楚的审查 6 开发小组的人员 应该少而精 7 承认不断改进软件工程实践的必要性 4 4 软件工程方法学 软件工程方法学 包含 3 个要素 方法 工具和过程 使用最广泛的分别是传统方法学和面向 对象方法学 5 5 软件生存周期 软件生存周期 3 个时期 软件定义 软件开发和运行维护 软件定义 问题定义 可行性研究和需求分析 开发时期 总体设计 详细设计 编码和单元测试 综合测试 前两个阶段称 为系统设计 后 两个称为系统实现 维护时期的主要任务是使软件持久的满足用户的需求 6 6 瀑布模型 瀑布模型 模型严格按照软件生存周期各个阶段来进行开发 上一阶段的输出即是下 一阶段的输入 并强调每一阶段的严格性 它规定了各阶段的任务和应提交的 精品文档 2欢迎下载 成果及文档 每一阶段的任务完成后 都必须对其阶段性产品 主要是文档 进行评审 通过后才能开始下一阶段的工作 因此 它是一种以文档作为驱动 的模型 瀑布模型特点 1 阶段间具有顺序性和依赖性 2 推迟实现的观点 3 质 量保证的观点 以下看一下 快速原型 是快速建立起来的可以在计算机上运行的程序 它所能完成的 功能往往是最终产品能完成功能的一个子集 增量模型 它分批地逐步向用户提交产品 整个软件产品被分解成许多个 增量构件 开发人员一个构件一个构件地向用户提交产品 螺旋模型 基本思想是使用原型及其他方法来尽量降低风险 理解这种模 型的一个简单方法 是把它看作在每个阶段之前都增加了风险分析过程的快速 原型模型 使用于内部开发的大规模软件项目 喷泉模型 是典型的面向对象的软件过程模型之一 第二章第二章 可行性研究可行性研究 1 1 可行性研究的任务 可行性研究的任务 主要任务 可行性研究的 3 个方面 1 首先需要进一步分析和澄清问题定义 2 在澄清了问题之后分析员应该导出系统的逻辑模型 然后从系统逻辑模型 出发 探索若干种可选择的主要解法即系统实现方案 一般说来 至少应该 从下述 3 个方面研究每种解法的可行性 1 技术可行性 2 经济可行性 3 操 作可行性 3 分析员应该为每个可行的解法制定一个粗略的实现进度 2 2 可行性研究的步骤可行性研究的步骤 1 1 复查系统规模和目标 2 研究目前正在使用的系统 3 导出新系统的高层逻辑 模型 4 进一步定义问题 5 导出和评价供选择的解法 6 推荐行动方针 7 草拟开发计 划 8 书写文档提交审查 3 3 系统流程图 系统流程图 系统流程图是概括地描绘物理系统的传统工具 4 4 数据流图 数据流图 是一种图形化技术 它描绘信息流和数据从输入移动到输出的过程中所经 受的变换 在数据流图中没有任何具体的物理部件 它只是描绘数据在软件中 流动和被处理的逻辑过程 数据流图是系统逻辑功能的图形表示 容易理解 5 5 数据字典 数据字典 数据字典 是关于数据的信息的集合 也就是对数据流图中包含的所有元 精品文档 3欢迎下载 素的定义的集合 数据字典的作用 在软件分析和设计的过程中给人提供关于数据的描述信 息 6 6 成本效益分析 成本效益分析 1 货币的时间价值 设年利率 i 现存 p 元 n 年后得到的钱 n iPF 1 N 年后收入 F 元 这些钱现在价值 n 1 iFP 2 投资回收期 就是累积的经济效益等于最初投资所需要的时间 3 纯收入 就是在整个生命周期之内系统的累积经济效益 折合成现在值 与 投资之差 4 投资回收率 n jFFFP 1 j1 j1 n 2 21 第三章第三章 需求分析需求分析 1 1 需求分析的任务 需求分析的任务 1 确定对系统的综合要求 2 分析系统的数据要求 3 导出系统的逻辑模型 4 修正 系统开发计划 2 2 与用户沟通获取需求的方法 与用户沟通获取需求的方法 1 访谈 2 面向数据流自顶向下求精 3 简易的应用规格说明技术 4 快速建立软件 原型 3 3 实体 实体 联系图联系图 P 64 图 3 2 4 4 状态转换图 状态转换图 定义 状态转换图通过描绘系统的状态及引起系统状态转换的事件 来表示系统的行为 此外 状态图还指明了作为特定事件的结果系统将做哪些动作 例如处理数据 4 4 层次方框图 在需求分析阶段使用 层次方框图 在需求分析阶段使用 定义 层次方框图用树形结构的一系列多层次的矩形框秒回数据的层次结构 5 5 WarnierWarnier 图 在需求分析阶段使用 图 在需求分析阶段使用 Warnier 图用树形结构描绘信息 但是这种图形工具比层次方框图提供了更丰富的描 绘手段 并且可以表明信息的逻辑组织 6 6 IPOIPO 图 在需求分析阶段使用 图 在需求分析阶段使用 IPO 图是输入 处理 输出图的简称 能够方便的描绘输入数据 对数据的处理和暑 精品文档 4欢迎下载 促数据之间的关系 7 7 验证软件需求 验证软件需求 从以下四个方面验证 1 一致性 2 完整性 3 现实性 4 有效性 第五章第五章 总体设计 概要设计 总体设计 概要设计 1 1 总体设计过程 总体设计过程 总体设计过程通常由两个主要阶段组成 系统设计阶段 确定系统的具体实 现方案 结构设计阶段 确定软件结构 典型的总体设计过程包括下述 9 个步骤 1 设想供选择的方案 2 选取合 理的方案 3 推荐最佳方案 4 功能分解 5 设计软件结构 6 设计数据库 7 制定 测试计划 8 书写文档 9 审查和复审 2 2 设计原理 模块化 抽象 逐步求精 信息隐藏与局部化 设计原理 模块化 抽象 逐步求精 信息隐藏与局部化 1 模块化 就是把程序划分成独立命名且可独立访问的模块 每个模块完 成一个子功能 把这些模块集成起来够成一个整体 可以完成指定的功能满足 用户的需求 2 抽象 3 逐步求精 4 信息隐藏和局部化 3 3 模块独立原理 模块独立原理 模块独立 模块独立的概念是模块化 抽象 信息隐藏和局部化概念的 直接结果 每个模块完成一个相对独立的特定子功能 并且和其他模块之间的 关系很简单 模块的独立程度可以由两个定性标准度量 这两个标准分别称为内聚和耦 合 耦合衡量不同模块彼此间互相依赖 连接 的紧密程度 内聚衡量一个模 块内部各个元素彼此结合的紧密程度 4 4 耦合和内聚 耦合和内聚 耦合 在软件设计过程中应该追求尽可能松散耦合的系统 内聚 设计好的软件标准 尽可能做到高内聚 5 5 启发规则 启发规则 1 改进软件结构提高模块独立性 2 模块规划应该适中 3 深度 宽 度 扇出和扇入都应适当 一个设计的好的典型性系统的平均扇出通常是 3 或 4 扇出的上限通常是 5 9 4 模块的作用域应该在控制域之内 5 力争降低 模块接口的复杂程度 6 设计单入口单出口的模块 7 模块功能应该可以预 测 6 6 描绘软件结构的图形工具 层次图 描绘软件结构的图形工具 层次图 HIPOHIPO 图 结构图 图 结构图 精品文档 5欢迎下载 看例子看例子 7 7 面向数据流的设计方法 面向数据流的设计方法 变换流 定义 信息沿输入通路进入系统同时由外部形式变换成内部 形式 进入系统的信息通过变换中心 经加工处理以后再沿输出通路变换 成外部形式离开软件系统 当数据流图具有这些特征时 这种信息流就叫 做变换流 设计步骤 1 复查基本系统模型 2 复查并精化数据流图 3 确定数 据流图具有变换特性还是事物特性 4 确定输入流和输出流的边界 从此 孤立出变换中心 5 完成 第一级分解 6 完成 第二级分解 7 使用设计度量和启发式规则对第一次分割得到的软件结构进一步精化 事务流 定义 数据沿输入通路到达一个处理 T 这个处理根据输入数 据的类型在若干个动作序列中选出一个来执行 这类数据流称为事务流 这种数据流是 以事务为中心的 图 5 9 P105 中的处理 T 称为事务中心 它完成一下任务 1 接收输入数 据 输入数据又称为事务 2 分析每个事务以确定它的类型 3 根据事 务类型选取一条活动通路 第六章第六章 详细设计详细设计 1 1 结构程序设计 结构程序设计 结构化程序设计是一种设计程序的技术 它采用自顶向下逐步求精的设计 方法和单入口单出口的控制结构 结构化程序设计的特点 1 整个程序模块化 2 每个模块只有一个入口和一个出口 3 每个模块都应能单独执行 且无死循环 4 采用自顶向下 逐步求精的方法 2 2 人机界面设计 设计问题 设计过程 人机界面设计指南 人机界面设计 设计问题 设计过程 人机界面设计指南 设计问题 设计问题 1 系统响应时间 2 用户帮助设施 3 出错信息处理 4 命令交 互 设计过程设计过程 用户界面设计是一个迭代过程 直至与用户模型和系统假想一致为止 人机界面指南人机界面指南 1 一般交互指南 2 信息显示指南 3 数据输入指南 3 3 详细设计工具 过程设计工具 绘图要求 详细设计工具 过程设计工具 绘图要求 精品文档 6欢迎下载 程序流程图程序流程图 盒图 盒图 N SN S 图 图 PADPAD 图图 判定表判定表 一张判定表通常由四部分组成 左上部列出所有的条件 左下部为所有可能做的动作 右上部分表示各种条件组合的一个矩阵 右下部分是和每种条件组合相对应的动作 判定表的右半部的每一列实质上是一条规则 规定了与特定的条件组合相对应的动作 判定树判定树 PDLPDL 定义 PDL 是一种伪码 它是用正文形式表示数据和处理过程的设计工具 4 4 面向数据结构的设计方法 面向数据结构的设计方法 JacksonJackson 图图 1 顺序结构 2 选择结构 3 重复结构 JacksonJackson 方法方法 5 5 程序复杂度的度量 程序复杂度的度量 McCabeMcCabe 方法方法 1 流图 2 计算环形复杂度的方法 1 控制流图中区域的数量对应于环形复杂度 2 给定控制流图 G 的环形复杂度 V G 定义为 V G E N 2 其中 E 是控 制流图中边的数量 N 是控制流图中的节点数量 3 给定控制流图 G 的环形复杂度 V G 也可定义为 V G P 1 其中 P 是 控制流图 G 中判定节点的数量 HalsteadHalstead 方法方法 精品文档 7欢迎下载 第七章第七章 实现实现 1 1 编码中需要注意的地方 编码中需要注意的地方 A 选择程序设计语言 B 编码风格 2 2 软件测试基本知识 软件测试基本知识 软件测试目标软件测试目标 1 系统测试软件测试是为了发现程序中的错误而执行程序的过程 2 好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案 3 成功的测试时发现了至今为止尚未发现的错误的测试 软件测试准则软件测试准则 P150 了解就行 软件测试方法软件测试方法 测试任何产品都有两种方法 1 黑盒测试 又称为功能测试 如果已经知道了产品应该具有的功能 可以通过测试来检验是否每个功能 都能正常使用 2 白盒测试 又称为结构测试 如果知道产品的内部工作过程 可以通过测试来检验产品内部动作是否按 照规格说明书的规定正常进行 软件测试步骤软件测试步骤 1 模块测试 2 子系统测试 3 系统测试 4 验收测试 5 平行运行 3 3 测试阶段的信息流 测试阶段的信息流 1 软件配置 包括需求说明书 设计说明书和源程序清单等 2 测试配置 包括测试计划和测试方案 4 4 单元测试 单元测试 单元测试集中检测软件设计的最小单元 模块 通常 单元测试和编码属于软件过 程的同一个阶段 在编写出源程序代码并通过了编译程序的语法检查之后 就可以用详细 设计描述作指南 对重要的执行通路进行测试 以便发现模块内部的错误 精品文档 8欢迎下载 测试重点测试重点 1 模块接口 对通过模块接口的数据流进行测试 2 局部数据结构 局部数据结构是常见的错误来源 3 重要的执行通路 由于通常不可能进行穷尽测试 因此 在单元测试期 间选择最有代表性 最可能发现错误的执行通路进行测试就是十分关键的 4 出错处理通路 5 边界条件 单元测试中最后的也可能是最重要的任务 5 5 计算机测试计算机测试 模块并不是一个独立的程序 因此必须为每个单元测试开发驱动软件和 或 存根软件 通常驱动软件也就是一个 主程序 它接收测试数据 把这些数 据传送给被测试的模块 并且印出有关的结果 存根程序代替被测试的模块所 调用的模块 因此存根程序也可以称作 虚拟子程序 它使用被它代替的模 块的接口 可能做最少量的数据操作 印出对入口的检验或操作结果 并且把 控制归还给调用它的模块 6 6 集成测试 集成测试 1 自顶向下集成 2 自底向上集成 混合策略 1 改进的自顶向下集成 2 混合法 7 确认测试 确认测试 8 8 白盒测试 白盒测试 逻辑覆盖 逻辑覆盖 8 8 种逻辑覆盖 种逻辑覆盖 1 语句覆盖 2 判定覆盖 3 条件覆盖 4 判定 条件覆盖 5 条件组合 覆盖 6 点覆盖 7 边覆盖 8 路径覆盖 控制结构测试 基本路径测试 控制结构测试 基本路径测试 1 根据过程设计结果画出相应的流图 2 计算流图的环形复杂度 3 确定线性独立路径的基本集合 4 设计可强制执行基本集合中每条路径的测试用例 9 9 黑盒测试 黑盒测试 等价划分 边界值分析 错误推测 组合数据 1010 调试 调试 精品文档 9欢迎下载 调试也称作纠错 作为作为成功测试的后果出现 也就是说调试时在测试 发现错误之后排除错误的过程 第八章第八章 维护维护 1 1 软件维护的定义 软件维护的定义 软件维护就是在软件已经交付使用之后 为了改正错误或满足新的需要而 修改软件的过程 2 2 软件维护分类 软件维护分类 改正性维护 为改正软件系统中潜藏的错误而进行的活动 适应性维护 为适应软件运行环境的变化而修改软件的活动 完善性维护 根据用户在软件使用过程中提出的建设性意见而进行的维 护活动 预防性维护 为了进一步改善软件系统的可维护性和可靠性 并为以后 的改进奠定基础 第九章第九章 面向对象面向对象 1 1 面向对象的几个概念 面向对象的几个概念 A 对象 对象是现实世界中个体或事物的抽象表示 是其属性和相关操作的封装 属 性表示对象的性质 属性值规定了对象所有可能的状态 对象的操作是指该对 象可以展现的外部服务 对象的特点 1 以数据为中心 2 对

温馨提示

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

评论

0/150

提交评论