软件工程期末考前笔记(老师考前画的重点).pdf_第1页
软件工程期末考前笔记(老师考前画的重点).pdf_第2页
软件工程期末考前笔记(老师考前画的重点).pdf_第3页
软件工程期末考前笔记(老师考前画的重点).pdf_第4页
软件工程期末考前笔记(老师考前画的重点).pdf_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

会画 2 系统流程图 数据流图 3 E R 图 层次方框图 5 层次层次 图图 6 程序流程图程序流程图 PADPAD 图图 判定表判定表 判定树判定树 7 语句覆盖 路径 覆盖的测试用例 等价划分 设计测试用例 第第 1 章章 软件工程概述软件工程概述 软件危机软件危机是指在计算机软件的开发和维护过程中所遇到的一系列 严重问题 软件软件是程序 数据及相关文档的完整集合 软件工程软件工程是应用计算机科学 数学及管理科学等原理开发软件的过 程 它借鉴传统工程的原则 方法 以提高质量 降低成本为目的 软件工程包括技术技术和管理管理 通常把在软件生命周期全过程中使用的一整套技术方法的集合称 为方法学方法学 methodology 也称为范型范型 paradigm 软件工程方法学包含 3 个要素个要素 方法 工具和过程 最基本的测试是集成测试集成测试和验收测试验收测试 软件过程软件过程是为了获得高质量软件所需要完成的一系列任务的框架 它规定了完成各项任务的工作步骤 瀑布模型的特点瀑布模型的特点 阶段间具有顺序性和依赖性 推迟实现的观点 质 量保证的观点 实际的瀑布模型是带反馈环的 瀑布模型的优缺点瀑布模型的优缺点 瀑布模型适合于用户需求明确适合于用户需求明确 完整 无重大变化的软件项 目开发 瀑布模型的成功在很大程度上是由于它基本上是一 种文档驱动文档驱动的模型 瀑布模型是由文档驱动文档驱动的 这个事实也是它的一个主要缺点缺点 实际项目很少按照该模型给出的顺序进行 用户常常难以清楚地给出所有需求 用户必须有耐心 等到系统开发完成 快速原型模型快速原型模型用于用户不能给出完整 准确的需求说明 或者开发者 不能确定算法的有效性 操作系统的适应性或人机交互的形式等许多 情况 增量模型增量模型的优点 逐渐增加产品功能使用户有充分的时间来适应和学 习新产品 缺点缺点 软件体系结构必须是开放的 螺旋模型螺旋模型的基本思想是降低风险 可看作在每个阶段之前都增加了风 险分析过程的快速原型模型 螺旋模型的优点螺旋模型的优点 1 对可选方案和约束条件的强调有利于已有软件的重用 也有助 于把软件质量作为软件开发的一个重要目标 2 减少了过多测试或测试不足 3 维护和开发之间并没有本质区别 主要适用于内部开发的大规模软件项目 优势是 风险驱动 面向对象对象模型 喷泉模型喷泉模型 特点特点 主要用于支持面向对象开发过程体现了软件创建所固有的迭代 和无间隙的特征 RUPRUP 软件开发生命周期是一个二维的生命周期模型二维的生命周期模型 有 9个核心的工 作流 前 6 个 过程工作流程 后 3个 支持工作流程 极限编程极限编程 XPXP 是敏捷过程中最负盛名的一个 极限 的含义 把好的开发实践运用到极致 微软过程基本准则 微软软件生命周期微软软件生命周期 5 阶段 规划阶段 设计阶段 开发阶段 稳定阶 段 发布阶段 第二章 可行性研究 可行性研究的目的可行性研究的目的 用最小的代价在尽可能短的时间里确定问题是否 可以得以解决 可行性研究的 3方面 技术可行性技术可行性 使用现有的技术能实现这个系统吗 经济可行性经济可行性 这个系统的经济效益能超过它的开发成本吗 操作可行性操作可行性 系统的操作方式在这个用户组织内行得通吗 法律 社会效益等 可行性研究最根本的任务最根本的任务 对以后的行为方针提出建议 系统流程图系统流程图是概括地描绘物理系统物理系统的传统工具 数据字典数据字典 是关于数据的信息的集合 也就是对数据流图中包含的所 有元素的定义的集合 数据流图数据流图和数据字典数据字典共同构成系统的逻辑模型 成本成本 效益分析的目的效益分析的目的 从经济角度分析开发一个特定的新系统是否 划算 从而帮助客户组织的负责人正确地作出是否投资于这项开发工 程的决定 投资回收期投资回收期 使累计的经济效益等于最初投资所需要的时间 第三章 需求分析 需求分析的任务需求分析的任务 确定系统必须必须完成哪些工作 及对目标系统提出完 整 准确 清晰 具体的要求 准确地回答 系统必须做什么 逆向需求逆向需求说明软件系统不应该做什么 简易的应用规格说明技术简易的应用规格说明技术 一种面向团队的需求需求收集方法 过程 如下 进行初步的访谈 开发者和用户双方组织的代表出席会议 每个小组为每张列表中的项目制定小型规格说明 根据会议成果起草完整的软件需求规格说明书 第四代技术第四代技术 包含大量数据库查询 报表语言 程序 应用系统生 成器及其他高级的非过程语言 数据模型中包含 3 种相互关联的信息种相互关联的信息 数据对象 数据对象的属性 数据对象彼此间相互连接的关系 一般用 范式 定义消除 冗余的程度 第一范式 数据冗余程度最大 第五范式数据冗余程度最小 第一范式第一范式 每个属性值都必须是原子值 即仅仅是一个简单值 不含 内部结构 第二范式第二范式 满足第一范式的条件 并且每个非关键字的属性都由整个 关键字决定 而不是有关键字的一部分来决定 第三范式第三范式 符合第二范式的条件 每个非关键字的属性仅由关键字决 定 并且一个非关键字的属性不能仅仅是对另一个非关键字的属性的 进一步描述 即一个非关键字的属性值并不依赖于另一个非关键字的 属性值 状态状态 是任何可以被观察到的系统行为模型 一个状态代表系统的一 种行为模型 事件事件 在某个特定时刻发生的事情 它是引起系统做动作或从一个状 态转换到另一个状态的外界事件的抽象 初态 用实心圆表示 终态 用一对同心圆表示 守卫条件是一个布尔表达式布尔表达式 验证软件需求的正确性 一致性 完整性 现实性 有效性 一致性一致性 所有需求必须一致 任何一条需求不可以和其他需求相矛盾 完整性完整性 需求须是完整的 规格说明书应包含用户需要的每一个功能 现实性现实性 指定的需求应该是软硬件相互结合的 硬件技术易预测 软 件技术难预测 只能从现有的水平出发判断 有效性有效性 必须证明需求是正确有效 确实可以解决用户的问题 第四章 形式化说明技术 二义性二义性 读者可以用不同方式理解的陈述 应用形式化方法的准则应用形式化方法的准则 1 应该选用适当的表示方法 2 应该形式化 但不要过分形式化 3 应该估算成本 4 应该有形式化方法的顾问随时的进行咨询 5 不应该放弃传统的开发方法 6 不应该放弃质量标准 7 应该建立详尽的文档 8 不应该盲目的依赖形式化方法 9 应该测试在测试 10 应该重用 第五章 总体设计 总体设计过程通常由两个主要阶段两个主要阶段组成 系统设计系统设计 确定系统的具体实现方案 结构设计结构设计 确定软件结构 总体设计的总体设计的 9 个步骤 个步骤 1 设想供选择的方案 2 选取合理的方案 3 推荐最佳方案 4 功能分解 5 设计软件结构 6 设计数据库 7 制定测试计划 8 书写文档 9 审查和复查 模块模块是构成程序的基本基本构件 模块化模块化 把程序划分成可以独立命名和独立访问的模块 每个模块完 成一个子功能 把这些模块集合起来构成一个整体 可以完成指定的 功能 满足用户的需求 抽象抽象 把事物相似的方面集中和概括起来 展示忽略他们之间的差异 就叫做抽象 或抽出事物的本质特性暂时不考虑他们的细节 软件工程过程的每一部都是对软件解决的的抽象层次抽象层次的一次精化一次精化 逐步求精定义逐步求精定义 为了能集中精力解决主要问题尽力推迟对于问题细节 的考虑 MillerMiller 法则法则 一个人在任何时候都只能把注意集中在 7 2 个知识 块上 局部化局部化 把一些关系密切的软件元素物理地放的彼此靠近 模块独立模块独立 是模块化 抽象 信息隐藏和局部化概念的直接结果 模块的独立程度的衡量两个标准 内聚内聚和耦合耦合 耦合耦合 对一个软件结构内的不同模块之间互联程度的度量 内聚内聚 标志着一个模块内各个元素彼此结合的紧密程度 它是信息隐 藏和局部化概念的自然扩展 深度深度 表示软件结构中控制的层数 它可以粗略的标志一个系统的大 小和复杂程度 宽度宽度 软件结构内同一个层次上的模块总数的最大值 扇出扇出 一个模块直接控制 调用 的模块数目 一个好的系统的平均 扇出是 3或 4 上限 5 9 扇入 表明有多少个上级模块直接调用它 设计单入口单出口的模块设计单入口单出口的模块 不要出现内容耦合 从顶部进入模块 从底部退出模块 易理解 易维护 模块功能应该可以预测 变换分析变换分析 是一系列设计步骤的总称 经过这些步骤把具有变换流特 点的数据流图按预先确定的模式映射成软件结构 变换分析的设计步骤变换分析的设计步骤 1 复查基本系统模型 2 复查并精化数据流图 3 确定数据流图具有变换特性还是事物特性 4 确定输入流和输出流的边界 从而孤立出变换中心 5 完成 第一级分解 6 完成 第二级分解 7 使用设计度量和启发式规则对第一次分割的到的软件结构进 一步精化 应该在设计的早期阶段早期阶段尽量的对软件的结构进行精化精化 对时间起决定性作用的软件进行优化的方法 1 在不考虑时间因素的前提下开发并精化软件结构 2 再详细设计阶段选出最耗时间的模块 仔细设计他们的处理过 程 提高效率 3 使用高级程序设计语言进行编写 4 在软件中孤立出那些占用大量处理及资源的模块 5 必要时重新设计或依赖于机器的语言重写那些占用大量资源 的模块 抽象抽象和求精求精是互补互补的概念 自顶向下逐步求精自顶向下逐步求精是进行软件结构设计的常用途径 第六章 详细设计 结构程序设计结构程序设计是尽可能地少使用 GO TO 语句的程序设计方法 最好 仅在检查出错误时才使用 GO TO 而且是使用向前的 GO TO 语句 人机界面设计是接口接口设计的一个重要组成部分 用户界面用户界面设计是一个迭代迭代的过程 第七章 实现 编码编码和测试测试统称为实现 编码编码 把软件设计结果翻译成用某种程序设计语言书写的程序 软件测试在软件的生命周期中横跨两个阶段横跨两个阶段 程序内部的文档内部的文档包含恰当的标志符标志符 适当的注解注解 程序的视觉组织视觉组织等 效率主要指处理机时间处理机时间和存储器容量存储器容量两个方面 提高设备输入 输出效率的指导原则 1 安排适当的缓冲区缓冲区 2 选择尽可能简单简单的 可接受的存取方法 3 以信息组信息组为单位进行 测试是为了发现程序中的错误而执行程序的过程 好的测试方案 是及可能发现迄今为止尚未发现的错误的测试方案 成功的测试是为了发现至今为止尚未发现的错误的测试 测试准则测试准则 1 所有的测试都应该可以追溯到用户的需求 2 测试发现的错误中 80 可能是由于程序中 20 的模块造成的 3 为了达到最佳的测试效果 应该有独立的第三方进行测试工作 同归测试集同归测试集包含下列 3 种不同的测试用例测试用例 1 检测软件全部功能的代表性测试用例 2 专门针对可以受修改影响的软件功能的附加测试 3 针对被修改过的软件成分的测试 AlphaAlpha 测试测试 由用户在开发者的场所进行 并且在开发者对用户的 指 导 下进行的测试 BetaBeta 测试测试 有软件的最终用户们在一个或多个客户场所进行 白盒测试 以程序内部的逻辑结构逻辑结构为基础 黑盒测试 测试软件功能功能 软件可靠性软件可靠性 是在给定的时间间隔内 按照规格说明书的规定成功的 运行的概率 软件的平均无故障时间平均无故障时间 MTTF 是一个重要的质量指标 往往作为对软 件的一项要求 由用户用户提出来 第八章 维护 软件工程的主要目的目的 提高软件的可维护可维护性 软件可维护性软件可维护性是指纠正软件系统出现的错误和缺陷 以及为满足新的 要求进行修改 扩充或压缩的容易程度 决定软件可维护性的因素决定软件可维护性的因素 可理解性 可测试性 可修改性 可移植 性 可重用性 文档文档 是影响软件可维护性的决定性决定性因素 用户文档包含 5方面的内容 功能描述 安装文档 使用手册 参考手册 操作员指南 预防性维护预防性维护方法定义 方法定义 把今天的方法学应用到昨天的系统上 以支持 明天的需求 软件再工程软件再工程是一类软件工程活动 是一个工程过程 它将逆向工程 重构和正向工程组合起来 将现存系统重新构造为新的形式 第九章第九章 面向对象方法学引论面向对象方法学引论 面向对象方法学的出发点和基本原则面向对象方法学的出发点和基本原则 尽可能模拟人类习惯的思维方式 使开发软件的方法与过程 尽可能接近人类认识世界解决问题的方法与过程 也就是使描述问题的问题空间 也称为问题域 与实现解法 预防性维护预防性维护 的解空间 也称为求解域 在结构上尽可能一致 面向对象方法的四个要点面向对象方法的四个要点 认为客观世界是由各种对象组成的 把所有对象都划分成各种类 按照子类 或称为派生类 与父类 或称为基类 的关系 把若干个对象类组成一个层次结构的系统 也称为类等级 对象彼此之间仅能通过传递消息互相联系 面向对象方法的主要优点面向对象方法的主要优点 与人类习惯的思维方法一致 稳定性好 可重用性好 较易开发大型软件产品 可维护性好 对象对象是封装了数据结构及可以施加在这些数据结构上的操作的封 装体 封装封装定义定义 把数据和实现操作的代码集中起来放在对象内部 对外 部 表示对象状态的数据和实现操作的代码与局部数据都不可见 更不能从外面直接访问或修改这些数据和代码 继承继承 广义地说 继承是指能够直接获得已有的性质和特征 而不 必重复定义它们 在面向对象的软件技术中 继承是子类自动地共 享基类中定义的数据和方法的机制 多态性多态性是指在类等级的不同层次中可以共享 公用 一个行为 方 法 的名字 然而不同层次中的每个类却各自按自己的需要来实现 这个行为 重载重载有两种重载 函数重载函数重载 是指在同一作用域内的若干个参数特征不同的函数可以 使用相同的函数名字 运算符重载运算符重载 是指同一个运算符可以施加于不同类型的操作数上面 静态结构 对象模型 3 个子模型 交互次序 动态模型 数据变换 功能模型 对象模型对象模型表示静态的 结构化的系统的 数据 性质 它是对模拟 客观世界实体的对象以及对象彼此间的关系的映射 描述了系统的 静态结构 类图类图描述类及类与类之间的静态关系 类图是一种静态模型 它是 创建其他 UML 图的基础 关联关联表示两个类的对象之间存在某种语义上的联系 两种特殊的聚集关系两种特殊的聚集关系 分别是共享聚集和组合聚集 UML 中的泛化关系泛化关系就是通常所说的继承关系继承关系 抽象类通常具有抽象操作 依赖关系依赖关系描述两个模型元素 类 用例等 之间的语义连接关系 动态模型动态模型表示瞬时的 行为化的系统的 控制 性质 它规定了对 象模型中的对象的合法变化序列 状态有持续性 占用一段时间间隔 功能模型功能模型表示变化的系统的 功能 性质 它指明了系统应该 做 什么 通常 功能模型由一组数据流图组成 一个用例是可以被行为者感受到的 系统的一个完整的功能 3 种模型之间的关系种模型之间的关系 针对每个类建立的动态模型 描述了类实例的生命周期或运 行周期 状态转换驱使行为发生 这些行为在数据流图中被映射成处 理 在用例子图中被映射成用例 它们同时与类图中的服务 相对应 功能模型中的处理 或用例 对应于对象模型中的类所提供 的服务 通常 复杂的处理对应于复杂对象提供的服务 简 单的处理对应于更基本的对象提供的服务 有时一个处理对 应多个服务 也有一个服务对应对个处理的时候 数据流图中的数据存储 以及数据的源点 终点 通常是对象 模型中的对象 数据流图中的数据流 往往是对象模型中对象的属性值 也 可能是整个对象 用例图中的行为者 可能是对象模型中的对象 功能模型中的处理 或用例 可能产生动态模型中的事件 对象模型描述了数据流图中的数据流 数据存储以及数据源 点 终点的结构 第十章第十章 面向对象分析面向对象分析 5 个层次个层次 建立动态模型的三步建立动态模型的三步 1 编写典型交互行为的脚本 不遗漏常见的交互行为 2 从脚本中提取出事件 确定触发每个事件的动作对象以及接 受事件的目标对象 3 排列事件发生的次序 确定每个对象可能有的状态及状态间 的转换关系 并用状态图描绘它们 状态图描绘事件与对象状态的关系 应该尽量利用继承机制利用继承机制以减少所需定义的服务数目 第第 11 章章 面向对象设计面向对象设计 60 以上的软件费用用于软件维护 面向对象方法支持过程抽象过程抽象和数据抽象数据抽象 对象之间的两类耦合 对象之间的两类耦合 1 交互耦合交互耦合 交换消息 使交互耦合尽可能松散的准则 减少消息中包含的参数个数 降低 参数的复杂程度 减少消息数 2 继承耦合继承耦合 互为基类和派生类 非模块之间 与交互耦合相反 应该提高继承耦合程度 启发规则启发规则 一个中等规模 大约包含 100 个类 的系统中 类等级层次数应保持 为 7 2 设计小而简单的类便于开发和管理 高内聚 消息中的参数最好不要超过 3 个 设计结果重用设计结果重用 重用某个软件系统的设计模型 面向对象技术中的类构件有类构件有 3 种重用方式 种重用方式 实例重用 继承重用和 多态重用 面向对象设计模型模型在逻辑上逻辑上都有 4 个子系统个子系统 问题域子系统 人机 交互子系统 任务管理子系统和数据管理子系统 子系统之间的两种交互方式两种交互方式 客户 供应商关系 Client supplier 平等伙伴关系 peer to peer 关系 组织系统的两种方案组织系统的两种方案 水平层次和垂直块 层次结构层次结构又可进一步划分成分成两种模式两种模式 1 封闭式封闭式 每层仅使用其直接下层提供的服务 2 开放式开放式 每层可以使用任何下层提供的服务 更容易理解和修改 优缺点 简单 高效 设计数据管理子系统设计数据管理子系统 设计数据格式 又要又要设计相应的服务 一张状态图描绘了一类对象的生命周期 图中的状态转换是执行对 象服务的结果 用指针用指针可以方便地实现单向关联单向关联 实现一元一元关联的简单指针简单指针 属性 实现多元多元关联的指针集合指针集合 委托 委托 把一类对象作为另一类对象的属性 从而在两类对象间建立 组合关系 第十二章 面向对象实现 面向对象语言重要优点 面向对象语言重要优点 一致的表示方法 可重用性 可维护性 选择面向对象语言着重考察的技术特点选择面向对象语言着重考察的技术特点 所有面向对象语言都允许用户动态创建对象 两种实现方法 分别使用指针和独立的关联对象实现整体 部分结 构 既包括实现继承的机制也包括解决名字冲突的机制 什么叫开发环境 什么叫开发环境 两方面 面向对象中 生命周期中 提高可重用性提高可重用性的主要准则 的主要准则 提高方法的内聚 减小方法的规模 保持方法的一致性 把策略与实现分开 全面覆盖 尽量不使用全局信息 利用继承机制 第十三章 代码行技术 代码行技术 依据以往开发类似产品的经验和历史数据 估计实现 一个功能所需要的源程序行数 把实现每个功能所需要的源程序行数累加起来 就可得到实现整个 软件所需要的源程序行数 功能点技术功能点技术 依据软件信息域特性和软件复杂性 用功能点 FP 为单位度量软件规模 信息域特性信息域特性 5 个特性 输入项数 Inp 输出项数 Out 查询数 Inq 主文件数 Maf 和外部接口数 Inf Brooks规律的下述现象 规律的下述现象 向一个已经延期的项目增加人力 可能 只 会使得它更加延期 不在关键路径上的作业有一定程度的机动余地 3 种典型的组织方式种典型的组织方式 民主制程序员组 主程序员组和现代程序员 组 民主制程序员组民主制程序员组 小组成员完全平等 通信信道共有 n n 1 2 条 程序设计小组的规模应该以 2 8 名成员为宜 优点优点 组员们对发现程序错误持积极的态度 这种态度有助于更快 速地发现错误 从而导致高质量的代码 缺点缺点 由于没有明确的权威指导开发工程的进行 组员间将缺乏必 要的协调 最终可能导致工程失败 主程序员组主程序员组 用经验多 技术好 能力强的程序员作为主程序员 同时 组内分 工 给主

温馨提示

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

评论

0/150

提交评论