第9章软件工程_第1页
第9章软件工程_第2页
第9章软件工程_第3页
第9章软件工程_第4页
第9章软件工程_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

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

文档简介

第9章软件工程 内容提要本章对软件工程中相关的概念和内容作介绍 通过本章学习应理解软件工程和软件生存期的含义 了解软件开发的工程化方法 知道软件开发的瀑布模型 渐增模型 演化模型 螺旋模型 喷泉模型和智能模型 了解软件开发的工程化方法 特别应对面向对象方法和软件复用技术有比较深入的了解 了解软件过程工程和过程改进的概念 特别应对软件能力成熟度模型有比较深入的了解 为什么提出软件工程 从20世纪40年代开始到软件工程术语提出为止的20多年时间里 对软件开发的理解就是编程序 那时的编程有以下特点 软件规模相对较小 人们关心的是计算机硬件的发展 作为一个计算机专业人员 他必须懂得计算机的结构 作为一个机构 其大量资金也是用于计算机硬件开销上 软件只是作为展现其硬件性能的一种手段而投入的少量资金 编程仅作为一门技艺 大部分软件技术人员不太关心他人的工作 决定软件质量的惟一因素就是该编程人员的素质 缺少有效方法与软件工具的支持 由于重视个人技能 软件开发过程能见度低 许多管理人员不知道他们的软件技术人员工作究竟做得如何 由于人们重视个人技能 一旦需要做某些修改 就要原编程人员进行修改 这使得软件开发后的维护工作很难进行 为什么提出软件工程 20世纪60年代 国外在开发一些大型软件系统时 遇到了许多困难 有些系统最终彻底失败了有些系统虽然完成了 但比原定计划推迟了好几年 而且费用大大超过了预算 有些系统未能圆满地符合用户当初的期望 有些系统则无法进行修改维护 为什么提出软件工程 这是由于大型软件系统大大增加了软件复杂性 软件规模的增加使技术复杂性和管理复杂性呈指数上升 20世纪60年代末期所发生的软件危机 体现在软件可靠性没有保障 软件维护费用不断上升 进度无法预测 成本增长无法控制 程序人员无限度地增加等各个方面 以致形成人们难以控制软件开发的局面 软件开发工程化的概念和方法应运而生 什么是软件工程 软件工程定义 软件工程是研究和应用如何以系统性的 规范化的 可定量的过程化方法去开发和维护软件 以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来 什么是软件工程 续 软件工程的内涵 是应用计算机科学 数学及管理科学等原理 借鉴传统工程的原则 方法来创建软件 从而达到提高质量 降低成本的目的 其中计算机科学和数学用于构造模型 分析算法 工程科学用于制定规范 明确样例 评估成本 确定权衡 管理科学用于进度 资源 质量 成本等的管理 什么是软件工程 续 软件工程的目标 研制开发与生产出具有良好的软件质量和费用合理的产品 费用合理是指软件开发运行的整个开销能满足用户要求的程度 软件质量是指该软件能满足明确的和隐含的需求能力的有关特征和特性的总和 软件质量可用功能性 可靠性 易使用性 有效性 可维护性和易移植性6个特性来评价 软件工程的指导性原则 软件工程的指导性原则软件工程的基础是一些指导性原则 目前有4条基本原则必须认识软件需求的变动性 采取适当措施来保证结果产品能满足用户要求 用稳妥的设计方法能方便软件开发 以达到软件工程的目标 软件工程项目的质量与经济开销直接取决于对工程所提供的支撑的质量与效用 有效的软件工程只有在对软件过程进行有效管理的情况下才能实现 软件生存周期 软件 的定义 软件是程序以及开发 使用和维护程序所需的所有文档 亦即 软件 程序 文档 软件生存周期 概念 是一个从用户需求开始 经过开发 交付使用 在使用中不断地增补修订 直至让位于新的软件的全过程 是指软件产品从考虑其概念开始 到该软件产品不再能使用为止的整个时期 一般包括 概念阶段 需求阶段 设计阶段 实现阶段 测试阶段 安装阶段以及交付使用阶段 运行阶段和维护阶段 软件生存周期 续 从经济学的意义上来说 考虑到软件的庞大的维护费用远比软件开发费用要高 因而开发软件不能只考虑开发期间的费用 而且应考虑软件生存期的全部费用 因此 软件生存期的概念就变得特别重要 软件开发模型 软件开发过程建模的重要性 在整个软件开发的发展过程中 为了要从宏观上管理软件的开发和维护 就必须对软件的开发过程有总体的认识和描述 即要对软件开发过程建模 几十年来 人们提出了一系列的模型以适应软件开发发展的需要 软件开发模型定义 它是软件开发全部过程 活动和任务的结构框架 软件开发模型能清晰 直观地表达软件开发全过程 明确规定了要完成的主要活动和任务 用来作为软件项目开发工作的基础 瀑布模型 瀑布模型 WaterfallModel 是1970年WinstonRoyce提出的最早出现的软件开发模型 它将软件开发过程中的各项活动规定为依固定顺序连接的若干阶段工作 形如瀑布流水 最终得到软件系统或软件产品 制定计划 需求分析和定义 软件设计 程序编写 软件测试 运行和维护6个步骤见 图9 1 瀑布模型 图9 1 瀑布模型 瀑布模型中每项开发活动具有以下特点 从上一项开发活动接受该项活动的工作对象 作为输入 利用这一输入 实施该项活动应完成的工作内容 给出该项活动的工作成果 作为输出传给下一项开发活动对该项活动的实施工作成果进行评审 若其工作成果得到确认 则继续进行下一项开发活动 如图9 1中的向下箭头所表示 否则返回前一项 甚至更前项的活动 渐增模型 渐增模型 IncrementalModel 亦称有计划的产品改进型 它从一组给定的需求开始 通过构造一系列可执行中间版本来实施开发活动 第一个中间版本纳入一部分需求 下一个中间版本纳入更多的需求 依此类推 直到系统完成 每个中间版本都要执行必要的过程 活动和任务 这种模型在开发每个中间版本时 开发过程中的活动和任务顺序地或部分平行地使用 当相继中间版本在部分并行开发时 开发过程中的活动和任务可以在各中间版本间平行地采用 演化模型 演化模型 EvolutionaryModel 主要针对事先不能完整定义需求的软件项目开发 许多软件开发项目由于人们对软件需求的认识模糊 很难一次开发成功 返工再开发难以避免 为此 人们对需开发的软件给出基本需求 作第一次试验开发 其目标仅在于探索可行性和弄清需求 取得有效的反馈信息 以支持软件的最终设计和实现 通常把第一次试验性开发出的软件称为原型 prototype 演化模型 演化模型也有多种形式 丢弃型 方式为当原型开发后 已获得了更为清晰的需求反馈信息 原型无需保留而丢弃 开发的原型仅以演示为目的 这往往用在软件的用户界面的开发上 样品型 方式为原型规模与最终产品相似 只是原型仅供研究用 渐增式演化型 把原型作为最终产品的一部分 它可满足用户的部分需求 经用户试用后提出精化系统 增强系统能力的需求 开发人员根据反馈信息 实施开发的迭代过程 图9 2演化模型的例子 螺旋模型 螺旋模型 SpiralModel 是由TRW公司的BarryBoehm于1988年提出的 它将瀑布模型和演化模型等结合起来 并且强调了其他模型均忽略了的风险分析 螺旋模型更适合于大型软件的开发 应该说它对于具有高度风险的大型复杂软件系统的开发是较为实际的方法 该模型通常用来指导大型软件项目的开发 它将开发划分为制订计划 风险分析 实施开发和客户评估4类活动 沿着螺旋线每转一圈 表示开发出一个更完善的新的软件版本 如果开发风险过大 开发机构和客户无法接受 项目有可能就此终止 多数情况下 会沿着螺旋线继续下去 自内向外逐步延伸 最终得到满意的软件产品 喷泉模型 喷泉模型 FountainModel 是由B H Sollers和J M Edwards于1990年提出的一种新开发模型 喷泉模型主要用于采用对象技术的软件开发项目 喷泉一词本身就体现了迭代和无间隙的特性 软件的某个部分常常被重复工作多次 相关对象在每次迭代中随之加入渐进的软件成分 无间隙指在各项活动之间无明显边界 如分析和设计活动之间没有明显的界限 由于对象概念的引入 表达分析 设计 实现等活动只用对象类和关系 从而可以较为容易地实现活动的迭代和无间隙 使其开发自然地包括复用 转换模型 转换模型是用形式化的方法自动生成程序 转换的主要步骤为采用形式化的规格说明书 通过自动系统自动地变换成代码 必要时做一些优化 改进性能 交付用户使用 根据使用的经验来调整形式化的规格说明书 返回第一步重复整个过程 转换模型的优点是解决了代码结构经多次修改而变坏的问题 减少了许多中间步骤 如设计 编码 测试等等 是软件自动生产的有意义的尝试 但是 转换模型仍有较大局限 智能模型 智能模型 IntelligentModel 也称为基于知识的软件开发模型 它是知识工程与软件工程在开发模型上结合的产物 它有别于上述的几种开发模型 并可协助软件开发人员完成开发工作 图9 3智能模型 图9 3智能模型 软件开发方法 由于软件和程序是两个不同的概念 因此软件开发方法与程序设计方法亦是不同的概念 软件开发方法有些是针对某一活动的 属于局部性的软件开发方法 但实践表明 针对分析和设计活动的软件开发方法更为重要 评价一种具体软件开发方法的4个特征 1 技术特征 2 使用特征 3 管理特征 4 经济特征 软件开发的几种典型方法 模块化方法 模块化方法 ModularMethod 是把一个待开发的软件分解成若干较为简单的部分 称为模块 modules 每个模块分别独立地开发 测试 最后再组装出整个软件 这种开发方法是对待复杂事物的 分而治之 的一般原则在软件工程领域的具体体现 即将软件开发的复杂性在分解过程中降低 把系统分解成模块 应遵循以下规则 软件开发的几种典型方法 模块化方法 1 在一个模块内部体现最大程度的关联 只实现单一功能的模块具有这种特性 2 最低的耦合度 即不同的模块之间的关系尽可能弱 3 模块的层次不能过深 一般应尽量控制在7层以内 4 接口清晰 信息隐蔽性好 5 模块大小适度 6 尽量采用已有的模块 提高模块复用率 软件开发的几种典型方法 结构化方法 结构化方法是强调结构的合理性以及所开发的软件的结构合理性 由此提出了一组提高软件结构合理性的准则 如分解和抽象 模块的独立性 信息隐蔽等 针对不同的开发活动 它有结构化分析 结构化设计 结构化编程和结构化测试 结构化分析方法给出一组产生功能规约的原理和技术 利用图形表示用户需求 以数据流图和控制流图为基础 伴以数据词典 并配上结构化语言 判定表和判定树等等手段 达到为问题的解决建立模型 软件开发的几种典型方法 结构化方法 续 数据流图 以图形的方式表达问题中信息的变换和传递过程 它有4个基本要素 即数据流 加工 文件 数据源或数据宿主 数据流由一组固定成分的数据组成 它有名字和流向 加工是对数据流的变换 文件是可储存的信息 数据源或数据宿主是存在于计算机系统之外的实体 分别表示数据处理过程的数据来源及数据去向 与数据流图配合使用的是数据词典 它对数据流图中出现的所有数据元素给出逻辑定义 用以对数据流图中的各要素给予确切的解释 软件开发的几种典型方法 结构化方法 续 结构化分析的步骤 分析当前情况 作出反映当前物理模型的数据流图 推导出等价的逻辑模型的数据流图 设计新的逻辑系统 生成数据词典和基元描述 建立人机接口界面 提出可供选择的目标系统的物理模型数据流图 确定各种方案的成本和风险等级 据此对各种方案进行分析选择一种方案 建立完整的需求规约 软件开发的几种典型方法 面向数据结构方法 面向数据结构方法是结构化方法的变形 它注重数据结构而不是数据流 结构化方法以分析信息流为主 用数据流图来表示信息流 面向数据结构方法 是从数据结构方面分析 即分析信息结构 并用数据结构图 特指该类方法所用的图形描述工具 如Jackson结构图 Warnier图 来表示 再在此基础上进行需求分析 导出软件的结构 软件开发的几种典型方法 面向数据结构方法 续 面向数据结构的开发方法包括分析和设计活动 由于一些应用领域的信息都有层次分明的信息结构 如输入数据 内部存储数据和输出数据都有层次性 因此在分析活动时可以用数据结构来分析和表示问题的信息域 在设计活动时 不同性质的数据结构可以用具有相应的控制结构的程序来处理 面向数据结构方法有Warnier法 Jackson法以及DSSD 数据结构系统开发 方法等 软件开发的几种典型方法 面向对象方法 在软件开发过程中把面向对象的思想运用其中并指导开发活动的系统方法 称为面向对象方法 ObjectOrientedMethod 简称OO方法 对象是由数据和容许的操作组成的封装体 与客观实体有直接的对应关系 所谓面向对象就是基于对象概念 以对象为中心 以类和继承为构造机制 来认识 理解 刻画客观世界和设计 构建相应的软件系统 用面向对象方法开发的软件 其结构基于客观世界界定的对象结构 因此与传统的软件相比较 软件本身的内容结构发生了质的变化 其易复用性和易扩充性都得到了提高 而且能支持需求的变化 面向对象方法的历史 面向对象的方法起源于面向对象的编程语言 20世纪60年代后期在Simula 67语言中出现了类和对象的概念 类作为语言机制用来封装数据和相关操作 70年代前期 KayAllen在Xerox公司设计出了Smalltalk语言 奠定了面向对象程序设计的基础1980年Xerox公司推出了商品化的Smalltalk 80 标志着面向对象的程序设计进入实用阶段 面向对象方法的历史 续 80年代相继出现了一系列面向对象的编程语言 如 C Object C CLOS Eiffel等 自80年代中期到90年代 OO的研究重点已经从语言转移到设计方法学方面 统一建模语言 UnifiedModelingLanguage 简记为UML 使面向对象技术领域内有了占主导地位的标准建模语言 面向对象分析 面向对象分析从问题陈述入手 分析和构造所关心的现实世界问题的模型 并用相应的符号系统表示 面向对象分析的步骤为 确定问题域 包括定义论域 选择论域 根据需要细化和增加论域 区分类和对象 包括定义对象 定义类 命名 区分整体对象及组成部分 确定类的关系及结构 包括一般 具体结构 整体 部分结构 多重结构 定义属性 包括确定属性 安排属性 确定实例联结 定义服务 包括确定对象状态 确定所需服务 确定消息联结 确定附加的系统约束 面向对象设计 面向对象设计具体设计步骤如下 应用面向对象分析对用其他方法得到的系统分析的结果进行改进和完善 设计交互过程和用户接口 包括描述用户及任务并根据需要分成子系统 把交互作用设计成类 设计命令层次 设计交互作用过程及接口并用相应符号系统表示 设计任务管理 包括根据前一步骤确定是否需要多重任务 确定并发性 确定以何种方式驱动任务 设计子系统及任务之间的协调与通信方式 确定优先级 设计全局资源协调 包括确定边界条件 确定任务或子系统的软 硬件分配 设计类等 包括各个类的存储和数据格式 设计实现类所需的算法 将属性和服务加入到各个类的存储对象中 设计对象库或数据库 面向对象的实现 设计阶段设计的对象和关联最终都必须用具体的编程语言或数据库实现 使用OO语言来实现OO设计相对来说比较容易 因为语言的构造与设计的构造是相似的 OO语言支持对象 运行多态性和继承 在传统的面向功能的方法学中 强调的是确定和分解系统功能 这种作法虽然是目标的最直接的实现方式 但由于功能是软件系统中最不稳定 最容易变化的方面 因而获得的程序往往难于维护和扩充 OO方法首先强调认识来自应用域的对象 然后围绕对象设置属性和操作 面向对象的实现 续 用OO方法开发的软件 其结构源于客观世界稳定的对象结构 与传统软件相比 软件本身的内部结构发生了质的变化 易重用性和易扩充性都得到提高 围绕对象来组织软件和进行软件设计 可将现实世界模型直接自然地映射到软件结构中 可望从根本上解决软件的复杂性问题 基于这种新的软件结构 可使软件通过构造的方法自动生成 从而提高软件的生产率和质量 统一建模语言 由于国际上出现了多种面向对象的方法 每种方法都有自己的表示法 过程和工具 甚至各种方法所使用的术语也不尽相同 这一现状导致开发人员经常为选择何种面向对象方法而争论 但是每种方法都各有短长 很难找到一个最佳答案 UML的初衷是结束面向对象领域中的方法大战 形成了大家公认的一套建模方法 采用UML作为统一建模语言的重要性体现在能统一过去数十种面向对象的建模语言的表示方法 可以消除一些潜在的不必要的差异 以免用户混淆 通过统一语义和符号表示 能够稳定面向对象技术市场 使项目植根于一个成熟的标准建模语言 从而可以大大拓宽所研制与开发的软件系统的适用范围 并大大提高其灵活程度 统一建模语言 UML中最基本的9种图 图9 4 统一建模语言 UML中最基本的9种图 续 11 例图展示各类外部行为者与系统所提供的用例之间的连接 2 类图展示了系统中类的静态结构 即类与类之间的相互联系 3 对象图是类图的实例 它展示了系统执行在某一时间点上的一个可能的快照4 状态图通常是对类描述的补充 它说明该类的对象所有可能的状态以及哪些事件将导致状态的改变 5 时序图展示了几个对象之间的动态协作关系 它主要是用来显示对象之间发送消息的顺序 它还显示了对象之间的交互 即系统执行的某一特定时间点所发生的事 统一建模语言 UML中最基本的9种图 续 6 协作图展示对象间的动态协作关系 它除了说明消息的相互作用外 还显示对象间的关系 通常可在时序图或协作图中选择一个来表示协作关系 7 活动图展示了连续的活动流 活动图通常用来描述完成一个操作所需要的活动 活动图由动作状态组成 它包含完成一个动作的活动的规约 即规格说明 8 构件图以代码构件为单位展示了代码的物理结构 UML中的构件可以是源代码构件 二进制构件或可执行构件 9 部署图展示了系统中硬件和软件的物理结构 计算机和设备用结点表示 图中显示它们间的相互连接以及连接的方式 在结点内部可分配可执行构件和对象 并表示这些构件和对象在这个结点上运行 软件复用和构件技术 软件复用是1968年由D McIlroy在第一届NATO软件工程会议上首先提出的 可作为复用候选的10种软件制品 项目计划成本估计体系结构需求模型和规约设计源代码用户文档和技术文档用户界面数据测试案例 软件复用和构件技术 构件是一种可复用的一段软件 可为二进制形式 构件技术的形成开发和使用可复用的构件是从面向对象的技术发展而来的一项重要技术 通过构件达到全面应用对象技术与概念 成为开发出高效 低成本应用程序的重要的实现途径 软件复用和构件技术 续 构件技术的特点构件技术是一种更高层次的对象技术 它独立于语言和面向应用程序 只规定构件的外在表现形式 不关心其内部实现方法 它既可用面向对象编程语言实现 也可用非面向对象的过程语言实现 只要遵循构件技术的规范 各个软件开发商就可以用自己方便的语言去实现可被复用的构件 应用程序的开发人员就有可能实现在计算机硬件领域早已实现的梦想 挑选构件 组合新的应用软件 利用构件技术 应用程序的开发变得简单 快速并且成本低廉 构件软件必须解决两个重要问题 一是复用 即构件具有通用的特性 所提供的功能能为多种系统使用 二是互操作 即不同来源的构件能相互协调 通信 共同完成更复杂的功能 软件复用和构件技术 构件技术的优点 提高开发速度 由于构件开发商已经编制好了大量的构件模型 因此减少了用户开发的工作量 使开发周期大大缩短 降低开发成本 由于用户进行软件开发的工作量大大降低 因此开发成本也相应减少 从某种意义看 构件模型软件的费用相对于传统方法开发的成本来说是微不足道的 增加应用软件的灵活性 由于应用软件是在构件上编制的 因此对于使用者的不同需要 往往通过更换 修改应用中的一个或几个构件就可以实现 降低软件维护费用 由于基于构件的应用软件修改起来比较简单 一般都是通过修改构件来实现 而不需要对整个软件进行全方位的大规模修改 因此 软件的维护费用也大大降低 软件复用和构件技术 续 构件技术标准CORBACOM DCOM OLE ActiveX技术基于Java的构件技术标准 JavaBeansAPI 软件过程和过程改进 软件过程软件过程概念所涵盖的范围 已不再限于传统意义上的软件开发及管理 它涵盖了软件采购 软件开发 软件维护 软件运作 软件获取 软件管理 软件支持等7大类的软件活动 软件过程应当包含以下3个含义 1 个体含义 2 整体含义 3 工程含义 软件过程和过程改进 软件过程的工程含义 软件过程不仅要有工程视面 也要有合同视面 软件过程应当涉及获取过程和供应过程 软件过程包含管理视面 提高生产率和软件质量这两个目标能否实现 其关键还在于管理和支持能力 为此软件过程应当涉及管理过程和支持过程 软件过程应包含运作视面 需要考虑与软件运作相关的问题 运作过程要从工程过程中单独考虑 形成相对独立的过程 由于参与软件过程人员类型不同 如管理者从管理层面参与的是管理过程 用户和操作人员按其运作层面参与的是运作过程 开发和维护人员按其工程层面参与的是开发过程和维护过程 介入支持活动的人员 如培训工程师 设备管理员等 按他们支持的目标负责支持过程的某些工作 因而软件过程研究的对象应扩展到从事软件活动的各类人员上 软件过程工程 软件过程工程是为建立软件过程所必须实施的一系列工程化的活动 它涉及与此有关的方法 工具和环境的研究 软件过程模型软件过程模型是对软件过程的结构及其属性的抽象描述与定义 是软件过程工程中过程定义活动的结果 过程建模是指通过过程设计和过程定义而建立过程模型的活动 过程建模活动是软件过程工程整个系列活动中最主要的活动之一 所有其他的工程活动都是基于过程建模活动的结果来进行的 过程建模的目的 支持对软件过程的理解和交流 支持对软件过程的分析 支持软件过程中的通信 支持对软件过程的管理 支持对软件过程的度量 支持对软件过程的改进 支持软件过程的复用 软件过程实施 在软件过程工程中 过程实施是针对特定的软件项目将过程模型转化为过程实例 并执行过程实例 同时不断优化软件过程的一系列工程化的活动 过程实施阶段所涉及的活动内容主要有 1 通过过程实例化活动对过程模型加以剪裁和实例化 使其真正转化为过程实例 软件过程实施 续 2 通过过程模拟活动 虚拟执行该过程实例 并以虚拟执行所产生的过程信息为依据 再次通过过程实例化活动改进和完善过程实例 并通过该活动的反复进行而得到改进和优化了的过程实例 同时 这些过程信息还可以作为改进和优化过程模型所进行的各项活动的依据 3 将过程实例投入实际的执行和运作中 使特定项目的软件开发进入实际的运作过程 4 通过过程运作活动 在监控 管理和辅助等活动的同时 收集有关过程实例的反馈信息 这些信息将为过程实例及过程模型的改进和优化等诸多活动的持续开展提供依据 软件过程实施 过程建模阶段活动和过程实施阶段活动的不同点 从抽象层次的角度看 过程建模阶段活动的结果是对软件过程进行抽象的描述 而过程实施阶段活动所面对的是对软件过程的具体描述和具体的执行运作 从普遍性和特殊性的角度来看 过程建模阶段活动针对的是非特定的软件项目 也就是某一特定的软件项目所属的一类软件项目 其结果是针对该类软件项目 具有普遍性和通用性 而过程实施活动所针对的是某一个特定的软件项目 其过程实例只能独用 其实际运作情况是相对特殊的 其最终结果也是区别于其他的软件而特有的 软件过程实施 续 从适用性角度来看 过程建模阶段活动的结果对实际的执行运作具有指导意义 但是不可直接投入实际的执行运作 而过程实施阶段活动将过程模型转化为过程实例并投入实际的执行运作 其最终结果是软件 从软件项目工程的角度看 过程建模阶段活动是软件项目工程活动得以开展的基础 而过程实施阶段活动具体而直接地支持软件项目工程活动的开展 软件过程改进 软件过程改进是在软件过程工程中为了更有效地达到优化软件过程的目的所实施的改善或改变其软件过程的一系列活动 过程改进的关键是发现软件过程中所存在的问题和缺陷 软件能力成熟度模型软件能力成熟度模型 CapabilityMaturityModelforSoftware 简记为CMM 是在1990年提出草案 1991年8月提出CMM1 0版本的 其后于1993年提出了CMM1 1版 经过4年在广泛范围内的实施 从软件过程评估中获得了大量反馈 软件过程改进 续 并据此不断改进 于1998年初出版CMM2 0版 通过详细阐述软件开发成熟度框架得到的模型 为各软件组织提供了更有

温馨提示

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

评论

0/150

提交评论