﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-hengheng123456789-随笔分类-CMMI</title><link>http://www.blogjava.net/hengheng123456789/category/21159.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 13 Apr 2007 11:04:08 GMT</lastBuildDate><pubDate>Fri, 13 Apr 2007 11:04:08 GMT</pubDate><ttl>60</ttl><item><title>选择持续集成服务器（转）</title><link>http://www.blogjava.net/hengheng123456789/archive/2007/04/13/110504.html</link><dc:creator>哼哼</dc:creator><author>哼哼</author><pubDate>Fri, 13 Apr 2007 09:52:00 GMT</pubDate><guid>http://www.blogjava.net/hengheng123456789/archive/2007/04/13/110504.html</guid><wfw:comment>http://www.blogjava.net/hengheng123456789/comments/110504.html</wfw:comment><comments>http://www.blogjava.net/hengheng123456789/archive/2007/04/13/110504.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hengheng123456789/comments/commentRss/110504.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hengheng123456789/services/trackbacks/110504.html</trackback:ping><description><![CDATA[<p id=subtitle><br>对开源 CI 服务器：CruiseControl、Luntbuild 和 Continuum 的调查</p>
<br>
<p><a href="http://www.ibm.com/developerworks/cn/java/j-ap09056/index.html#author"><font color=#996699>Paul Duvall</font></a> (<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#112;&#97;&#117;&#108;&#46;&#100;&#117;&#118;&#97;&#108;&#108;&#64;&#115;&#116;&#101;&#108;&#108;&#105;&#103;&#101;&#110;&#116;&#46;&#99;&#111;&#109;&#63;&#115;&#117;&#98;&#106;&#101;&#99;&#116;&#61;&#36873;&#25321;&#25345;&#32493;&#38598;&#25104;&#26381;&#21153;&#22120;"><font color=#5c81a7>paul.duvall@stelligent.com</font></a>), CTO, Stelligent Incorporated<br></p>
<p>2006 年 10 月 23 日</p>
<blockquote>由于有许多持续集成服务（CI）服务器可以选择，所以很难决定哪个适应自己。在 <a href="http://www.ibm.com/developerworks/cn/views/java/articles.jsp?view_by=search&amp;search_by=%E8%AE%A9%E5%BC%80%E5%8F%91%E8%87%AA%E5%8A%A8%E5%8C%96"><em><font color=#5c81a7>让开发自动化</font></em></a> 系列的第二篇文章中，开发自动化专家 Duvall 采用一致的评估标准和很多说明性示例，介绍了一些开源 CI 服务器，包括 Continuum、CruiseControl 和 Luntbuild。</blockquote><!--start RESERVED FOR FUTURE USE INCLUDE FILES--><!-- include java script once we verify teams wants to use this and it will work on dbcs and cyrillic characters --><!--end RESERVED FOR FUTURE USE INCLUDE FILES-->
<p>在我脑海里，我至少能想到 12 种在当前市场上可用的 CI 服务器，包括商业的和开源的。虽然它们都试图自动进行软件构建的过程，但是都有各自的优点和不足。而且，有太多工具可供选择的不良后果就是很难决定究竟应该选择使用哪个。 </p>
<p>在选用自动化过程的工具时，要时刻记住的就是：工具要 <em>确实适用</em>。选择错误的工具可能会限制整体的灵活性，会导致执行简单动作反而需要更长时间，或者会把人锁定在特定的支持工具或过程。 </p>
<p><a name=N1006C><span class=atitle>选择 CI 服务器的标准</span></a></p>
<p>通常，对一个新工具的决策分析可以归结如下： </p>
<blockquote>我听说 Tim 在使用 Acme Inc 的工具，而且我认为 Tim 是个聪明人。所以，我也要使用 Acme Inc 的工具。现在我也是个聪明人了。 </blockquote>
<table cellSpacing=0 cellPadding=0 width="40%" align=right border=0>
    <tbody>
        <tr>
            <td width=10><img height=1 alt="" src="http://www.ibm.com/i/c.gif" width=10></td>
            <td>
            <table cellSpacing=0 cellPadding=5 width="100%" border=1>
                <tbody>
                    <tr>
                        <td bgColor=#eeeeee><a name=N1007B><strong>关于本系列</strong></a><br>作为开发人员，我们的工作就是为用户提供自动化处理；但是，我们中的许多人却忽视了自动化自己的开发过程的机会。出于这个目的，<a href="http://www.ibm.com/developerworks/cn/views/java/articles.jsp?view_by=search&amp;search_by=%E8%AE%A9%E5%BC%80%E5%8F%91%E8%87%AA%E5%8A%A8%E5%8C%96"><em><font color=#5c81a7>让开发自动化</font></em></a> 这一系列的文章专门研究了自动化软件开发过程的实际应用，并教您 <em>什么时候</em> 和 <em>如何</em> 成功应用自动化。 </td>
                    </tr>
                </tbody>
            </table>
            </td>
        </tr>
    </tbody>
</table>
<p>反过来，如果您问 Tim <em>为什么</em> 他选择使用 Acme Inc 的工具，您可能会发现是他的公司强制要求使用的。这就是为什么重要的是要根据 <em>自己的</em> 具体技术和政策需求对工具进行分析。如果不这么做，可能就会选择到不符合需求的工具，甚至更糟糕的是，不能带来任何帮助的工具。 </p>
<p>在决策的时候，通常多数人都会把重点放在工具的特性上。但是要记住，虽然特性的确重要，但还有其他指标需要考虑。在我的实践中，我发现以下五个指标在评估工具时最有帮助：</p>
<table cellSpacing=0 cellPadding=0 width="40%" align=right border=0>
    <tbody>
        <tr>
            <td width=10><img height=1 alt="" src="http://www.ibm.com/i/c.gif" width=10></td>
            <td>
            <table cellSpacing=0 cellPadding=5 width="100%" border=1>
                <tbody>
                    <tr>
                        <td bgColor=#eeeeee><a name=N1009B><strong>什么是持续集成？</strong></a><br>
                        <p>持续集成（CI）是一种实践，可以让团队在持续的基础 上收到反馈并进行改进，不必等到开发周期后期才寻找和修复缺陷。诸如 CruiseControl 之类的检查工具是在后台运行的，它们轮询版本控制存储库，从中寻找更改之处。当发现某一更改时，这类工具就会通过 Ant 执行预定义的构建脚本。持续检查借助持续集成的实践得以改进。 </p>
                        </td>
                    </tr>
                </tbody>
            </table>
            </td>
        </tr>
    </tbody>
</table>
<ul>
    <li>特性
    <li>可靠性
    <li>寿命
    <li>目标环境
    <li>易用性 </li>
</ul>
<p>而且不要忘记，<em>客观地</em> 检查这五个方面也是重要的。</p>
<p><a name=N100BC><span class=smalltitle><strong><font face=Arial>产品特性</font></strong></span></a></p>
<p>说到 CI 服务器的特性，应当考虑该工具与版本控制系统的集成、处理构建平台（例如 Ant 和 Maven）的能力以及提供反馈和报告的能力。而且不要忘记检查其他特性，例如构建标号和管理项目的依赖项。最后，在需要做一些特定的增强时，理解产品的可扩展性会很有帮助。 </p>
<p>表 1 详细说明了每个特性： </p>
<br><a name=N100C8><strong>表 1. 详细的 CI 服务器评估特性</strong></a><br>
<table class=data-table-1 cellSpacing=0 cellPadding=0 width="100%" summary="Table using a caption tag, alternating color rows" border=0>
    <caption>
    <tbody>
        <tr>
            <th>特性</th>
            <th>解释</th>
        </tr>
        <tr class=alt-row>
            <td class=tb-row>版本控制系统集成</td>
            <td>如果工具不支持您所使用的特定版本控制系统，您真的会为它编写一个定制集成么？</td>
        </tr>
        <tr>
            <td class=tb-row>构建工具集成</td>
            <td>在选择 CI 服务器时，需要考虑目前或将要使用哪个构建工具。对于 Java&#8482; 编程，有两个自然的选择：Ant 和 Maven，几乎所有 CI 工具都支持它们。如果构建系统既不是 Ant 也不是 Maven，那么 CI 工具支持从命令行运行程序的功能么？</td>
        </tr>
        <tr class=alt-row>
            <td class=tb-row>反馈和报告</td>
            <td>想想老话 &#8220;如果树倒在森林中，能有人听到么？&#8221; 如果构建失败，会有人知道么？如果没人知道，那么使用 CI 工具的目的是什么？所有的 CI 工具都提供一些通知机制，但是哪个最适合您呢？电子邮件？即时消息？RSS？</td>
        </tr>
        <tr>
            <td class=tb-row>标号</td>
            <td>有些开发团队喜欢跟踪构建，给构建一个唯一的标号，这样日后就能找到具体的构建实例。如果这对您来说很重要，那么要注意只有少数 CI 服务器提供了这个功能。</td>
        </tr>
        <tr class=alt-row>
            <td class=tb-row>项目依赖项</td>
            <td>某些情况下，在构建了一个项目之后，可能需要构建其他依赖项目。有些 CI 服务器支持这个特性，有些不支持。</td>
        </tr>
        <tr>
            <td class=tb-row>易于扩展</td>
            <td>扩展工具当前的功能有多容易？是否用插件就可以实现简单的扩展，还是总得修改代码？</td>
        </tr>
    </tbody>
</table>
<p>从特性的角度来说，以上提到的几点在选择所需要的正确的 CI 服务器时，至关重要。</p>
<p><a name=N10127><span class=smalltitle><strong><font face=Arial>产品可靠性</font></strong></span></a></p>
<p>因为下载和使用开源 CI 服务器很简单，所以可以试用产品来判断它的可靠性。而且，在工具的可靠性和它在市场上的时间之间，通常存在一些相关性。使用新产品时，就会冒着有未发现的 bug 的风险。而且，用户群是发现工具出现的问题的优秀资源。大量的问题贴子或者过多的复杂问题，就表示用户对这个工具的意见较大。 </p>
<p>因为我这里讨论的服务器是开源的，所以很容易发现下载的人数，这也会是产品健康程度的一个指示。用户少可能意味着反馈渠道少，可能需要换个地方看看。 </p>
<p><a name=N10133><span class=smalltitle><strong><font face=Arial>寿命前景</font></strong></span></a></p>
<p>在下载 CI 服务器之前，了解这个服务器未来的前景会有帮助。简单地说，使用已经死亡或正走向死亡的产品不是个好主意。可以检查该工具已经出现了多少年、在它的用户群中是否有正常数量的活动。就像可以从用户群来判断产品的可靠性一样，活跃的社区是工具未来前景良好的征兆。 </p>
<p><a name=N1013C><span class=smalltitle><strong><font face=Arial>目标环境</font></strong></span></a></p>
<p>CI 服务器不能在 <em>所有</em> 环境下工作。需要考虑服务器支持哪个操作系统以及具体的系统需求。例如，如果工具是用最新版本的 Python 编写的，那么需要确定这个版本 Python 能够用于自己的操作系统。 </p>
<p><a name=N10148><span class=smalltitle><strong><font face=Arial>易用性</font></strong></span></a></p>
<p>产品的易用性可能是最主观的指标。有些人愿意手工修改配置文件，而有些人想让所有管理任务都在应用程序中执行，例如 Web 控制台。有些服务器要求从一个屏幕单击到下一个屏幕来执行简单的管理，而其他服务器则提供了直观的向导。 </p>
<p>如果想理解 CI 服务器的具体细节，那么漂亮的管理 Web 表单就不重要了；但是，如果人手不足、工作繁忙，那么可能不会想在管理 CI 服务器上花太多时间。 </p>
<p>记住我在这节讨论的五个方面，再来看一下三个 CI 服务器：Apache 的 Continuum、CruiseControl 和构建管理服务器 Luntbuild。 </p>
<br>
<table cellSpacing=0 cellPadding=0 width="100%" border=0>
    <tbody>
        <tr>
            <td><img height=1 alt="" src="http://www.ibm.com/i/v14/rules/blue_rule.gif" width="100%"><br><img height=6 alt="" src="http://www.ibm.com/i/c.gif" width=8 border=0></td>
        </tr>
    </tbody>
</table>
<table class=no-print cellSpacing=0 cellPadding=0 align=right>
    <tbody>
        <tr align=right>
            <td><img height=4 alt="" src="http://www.ibm.com/i/c.gif" width="100%"><br>
            <table cellSpacing=0 cellPadding=0 border=0>
                <tbody>
                    <tr>
                        <td vAlign=center><img height=16 alt="" src="http://www.ibm.com/i/v14/icons/u_bold.gif" width=16 border=0><br></td>
                        <td vAlign=top align=right><a class=fbox href="http://www.ibm.com/developerworks/cn/java/j-ap09056/index.html#main"><strong><font color=#996699>回页首</font></strong></a></td>
                    </tr>
                </tbody>
            </table>
            </td>
        </tr>
    </tbody>
</table>
<br><br>
<p><a name=N10157><span class=atitle>Apache Continuum</span></a></p>
<p>Continuum 是最新的 CI 服务器之一，也是值得关注的一个新进入者。Continuum 的安装和配置很简单：只要下载和释放 ZIP 文件，运行命令行程序，就可以运行了。基于 Web 的界面使得配置项目很容易。而且，还不需要安装 Web 服务器，因为 Continuum 内置了 Jetty Web 服务器。并且，Continuum 可以作为 Windows 服务运行，还在应用程序的某些部分嵌入了上下文敏感的文档，从而提供了很多帮助。</p>
<table cellSpacing=0 cellPadding=0 width="40%" align=right border=0>
    <tbody>
        <tr>
            <td width=10><img height=1 alt="" src="http://www.ibm.com/i/c.gif" width=10></td>
            <td>
            <table cellSpacing=0 cellPadding=5 width="100%" border=1>
                <tbody>
                    <tr>
                        <td bgColor=#eeeeee><a name=N10163><strong>想要更多细节信息？</strong></a><br>面对如此之多 CI 服务器可以选择，本文可以引导您更详细地研究每个服务器，并决定哪个最合适。因为我比较了三个不同的服务器，所以我没有深入每个服务器的特定细节。我只是把重点放在了这些服务器安装后就提供的选项上。如果需要更多信息，请参考每个服务器的安装和配置指南。 </td>
                    </tr>
                </tbody>
            </table>
            </td>
        </tr>
    </tbody>
</table>
<p><a name=N10169><span class=smalltitle><strong><font face=Arial>易于使用</font></strong></span></a></p>
<p>在使用 Continuum 时会注意到的第一件事就是它的易用性。能够在几分钟之内就把服务器运行起来并让它去查询修改。实际上，在 Windows 上启用 Continuum 只需要四步：</p>
<ol>
    <li>下载 Continuum ZIP 文件（请参阅 <a href="http://www.ibm.com/developerworks/cn/java/j-ap09056/index.html#resources"><font color=#996699>参考资料</font></a>）。
    <li>把文件的内容释放到本地目录。
    <li>运行 run.bat 文件，然后运行 InstallService.bat。
    <li>打开浏览器指向 http://localhost:8080/。 </li>
</ol>
<p>Continuum 内置支持五个版本控制系统：Subversion、CVS、StarTeam、Bazaar 和 Perforce。也部分地支持其他版本控制工具，例如 Visual Source Safe 和 ClearCase。 Continuum 还支持四种构建机制：Ant、Maven1、Maven2 和 Shell（命令行）。 </p>
<p><a name=N10188><span class=smalltitle><strong><font face=Arial>配置 Continuum</font></strong></span></a></p>
<p>在第一次访问 Continuum Web 应用程序时，默认是 <em>guest</em> 帐户。guest 提供了对所有项目的只读存取，没有管理或配置项目的能力。但是，可以很容易地创建 Administrative 用户，然后设置一些适用于所有项目的属性。 </p>
<p>图 1 显示了管理页面，它提供了管理所有项目的 Continuum 设置的能力，包括创建 Admin 帐户、构建的输出和部署目录：</p>
<br><a name=fig1><strong>图 1. Continuum 的配置很简单</strong></a><br><img height=412 alt="配置 Continuum" src="http://www.ibm.com/developerworks/cn/java/j-ap09056/co-setup.jpg" width=572> <br>
<p><a name=N101A6><span class=smalltitle><strong><font face=Arial>把项目添加到监视器</font></strong></span></a></p>
<p>对 Continuum 进行配置让它监视项目也非常简单。简单到仅仅是选择期望的构建平台，例如 Ant 或 Maven2，然后把 Continuum 指到期望的版本控制系统。 </p>
<p>图 2 显示了设置 Ant 项目时需要填充的字段：</p>
<br><a name=fig2><strong>图 2. 在 Continuum 中创建项目</strong></a><br><img height=412 alt="在 Continuum 中创建项目" src="http://www.ibm.com/developerworks/cn/java/j-ap09056/co-antbuilder.jpg" width=572> <br>
<p>在保存了这个信息之后，Continuum 每小时查询版本控制系统一次。可以修改项目的设置，查询得更频繁或更少些。我们在这里谈到的是 <em>持续</em> 集成，我建议每五 分钟检查修改一次，而不要每小时一次。 </p>
<p>默认情况下，在使用 Ant 时，Continuum 在项目的根目录查找项目的 build.xml 文件。如果使用不同的名称或者这个文件不在项目的根目录，可以修改这个设置。</p>
<p>虽然 Continuum 还是 CI 舞台上的新人，但是它以其易用性和对当前众多流行的版本控制系统和构建工具的支持，还是给这一领域带来了巨大的冲击。我希望在未来的版本中会有添加和查看报告的功能。 </p>
<br>
<table cellSpacing=0 cellPadding=0 width="100%" border=0>
    <tbody>
        <tr>
            <td><img height=1 alt="" src="http://www.ibm.com/i/v14/rules/blue_rule.gif" width="100%"><br><img height=6 alt="" src="http://www.ibm.com/i/c.gif" width=8 border=0></td>
        </tr>
    </tbody>
</table>
<table class=no-print cellSpacing=0 cellPadding=0 align=right>
    <tbody>
        <tr align=right>
            <td><img height=4 alt="" src="http://www.ibm.com/i/c.gif" width="100%"><br>
            <table cellSpacing=0 cellPadding=0 border=0>
                <tbody>
                    <tr>
                        <td vAlign=center><img height=16 alt="" src="http://www.ibm.com/i/v14/icons/u_bold.gif" width=16 border=0><br></td>
                        <td vAlign=top align=right><a class=fbox href="http://www.ibm.com/developerworks/cn/java/j-ap09056/index.html#main"><strong><font color=#996699>回页首</font></strong></a></td>
                    </tr>
                </tbody>
            </table>
            </td>
        </tr>
    </tbody>
</table>
<br><br>
<p><a name=N101CD><span class=atitle>CruiseControl</span></a></p>
<p>CruiseControl 是 CI 服务器的老者。它已经用了有五年多了，在许多方面， CruiseControl <em>服务器</em> 已经成为持续集成实践的同义词。出于完全坦白的目的，我应当提到，我也是 CruiseControl 的多年的老用户。 </p>
<p><a name=N101D9><span class=smalltitle><strong><font face=Arial>改进的安装</font></strong></span></a></p>
<p>如果您从最后一次使用 CruiseControl 到现在已经有段时间，而且认为它的安装和配置是个负担，那么您可以看看最新版本。现有，有许多方式安装 CruiseControl。例如，如果使用 Windows，会发现最简单的方式是下载二进制可执行文件，然后运行它。不用担心，还可以下载源代码。</p>
<p>安装之后，CruiseControl 预先配置了一个配置文件，轮询 CVS 存储库并执行 Ant 构建脚本。同样也不需要安装 Web 服务器，因为 CruiseControl 也内嵌了 Jetty。 </p>
<p><a name=N101E5><span class=smalltitle><strong><font face=Arial>轮询版本控制系统</font></strong></span></a></p>
<p>比起 Luntbuild 和 Continuum，CruiseControl 提供了对超过十种不同版本控制系统的支持。而且，CruiseControl 对这些工具中的许多定制命令也提供了支持。清单 1 是一个使用 CruiseControl config.xml 脚本轮询 Subversion 存储库的示例： </p>
<br><a name=listing1><strong>清单 1. 通过 config.xml 文件轮询存储库</strong></a><br>
<table cellSpacing=0 cellPadding=0 width="100%" border=0>
    <tbody>
        <tr>
            <td class=code-outline>
            <pre class=displaycode>&lt;listeners&gt;
            &lt;currentbuildstatuslistener file="logs/${project.name}/status.txt"/&gt;
            &lt;/listeners&gt;
            &lt;modificationset quietperiod="30"&gt;
            &lt;svn RepositoryLocation="http://www.qualitylabs.org/svn/ambientorb/trunk"
            username="bfranklin"
            password="G0Fly@Kite"
            /&gt;
            &lt;/modificationset&gt;
            </pre>
            </td>
        </tr>
    </tbody>
</table>
<br>
<p><a name=N101F8><span class=smalltitle><strong><font face=Arial>执行构建脚本</font></strong></span></a></p>
<p>当在版本控制系统（例如 Subversion）中发现修改时，可以很容易地配置 CruiseControl 去执行委托的构建脚本。例如，清单 2 演示了从 config.xml 调用 Ant 脚本，它指示 CruiseControl 每 60 秒钟查询 Subversion 存储库一次，并执行另一个 Ant 脚本。 委托的构建脚本（没有显示）删除旧文件，从 Subversion 签出最新的源代码，并在代码上运行项目的构建脚本。 </p>
<br><a name=listing2><strong>清单 2. 执行 Ant 构建脚本</strong></a><br>
<table cellSpacing=0 cellPadding=0 width="100%" border=0>
    <tbody>
        <tr>
            <td class=code-outline>
            <pre class=displaycode>&lt;schedule interval="60"&gt;
            &lt;ant anthome="apache-ant-1.6.5" buildfile="build-${project.name}.xml"/&gt;
            &lt;/schedule&gt;
            </pre>
            </td>
        </tr>
    </tbody>
</table>
<br>
<p>当设置了 CruiseControl 的这个方面并启动服务器之后，可以访问如图 3 所示的 CruiseControl Web 控制板：</p>
<br><a name=fig3><strong>图 3. CruiseControl 控制板</strong></a><br><img height=412 alt="CruiseControl 控制板" src="http://www.ibm.com/developerworks/cn/java/j-ap09056/cruise.jpg" width=572> <br>
<p><a name=N1021D><span class=smalltitle><strong><font face=Arial>CruiseControl 控制板</font></strong></span></a></p>
<p>要接收最新构建的反馈，可以把 <code>htmlemail</code> 插件添加到清单 3 所示的 config.xml 脚本。可以用 config.xml 文件配置更多反馈机制，例如发送文本消息、电子设备（通过 X10）、甚至即时消息。 </p>
<br><a name=listing3><strong>清单 3. 用 CruiseControl 发送电子邮件</strong></a><br>
<table cellSpacing=0 cellPadding=0 width="100%" border=0>
    <tbody>
        <tr>
            <td class=code-outline>
            <pre class=displaycode>...
            &lt;plugin name="htmlemail"
            buildresultsurl="http://${env.COMPUTERNAME}/cruisecontrol/buildresults/${project.name}"
            mailhost="${smtp.server}"
            username="${mail.username}"
            password="${mail.password}"
            returnaddress="${buildmaster.email}"
            returnname="${buildmaster.name}"
            subjectprefix="${project.name} build"
            xsldir="webapps/cruisecontrol/xsl"
            css="${reportdir}/cruisecontrol.css"/&gt;
            ...
            &lt;htmlemail&gt;
            &lt;always address="${buildmaster.email}"/&gt;
            &lt;failure address="${buildmaster.email}"/&gt;
            &lt;/htmlemail&gt;
            </pre>
            </td>
        </tr>
    </tbody>
</table>
<br>
<p>CruiseControl 提供了许多有用的特性，有强大的用户社区，极具扩展性。与本文中评估的其他工具相比，有些开发人员觉得 CruiseControl 不太容易使用。而另一方面，有些开发人员则发现用 XML 脚本进行修改提供了更好的控制。 </p>
<br>
<table cellSpacing=0 cellPadding=0 width="100%" border=0>
    <tbody>
        <tr>
            <td><img height=1 alt="" src="http://www.ibm.com/i/v14/rules/blue_rule.gif" width="100%"><br><img height=6 alt="" src="http://www.ibm.com/i/c.gif" width=8 border=0></td>
        </tr>
    </tbody>
</table>
<table class=no-print cellSpacing=0 cellPadding=0 align=right>
    <tbody>
        <tr align=right>
            <td><img height=4 alt="" src="http://www.ibm.com/i/c.gif" width="100%"><br>
            <table cellSpacing=0 cellPadding=0 border=0>
                <tbody>
                    <tr>
                        <td vAlign=center><img height=16 alt="" src="http://www.ibm.com/i/v14/icons/u_bold.gif" width=16 border=0><br></td>
                        <td vAlign=top align=right><a class=fbox href="http://www.ibm.com/developerworks/cn/java/j-ap09056/index.html#main"><strong><font color=#996699>回页首</font></strong></a></td>
                    </tr>
                </tbody>
            </table>
            </td>
        </tr>
    </tbody>
</table>
<br><br>
<p><a name=N10237><span class=atitle>Luntbuild</span></a></p>
<p>从面市年头上说，Luntbuild 位于 Continuum 和 CruiseControl 之间。比起 Continuum 和 CruiseControl，Luntbuild 的目标是为并行开发和用户管理之类的事情提供支持的构建管理服务器。它的整个配置是通过 Web 应用程序管理的，所以没有配置文件需要处理。它也有商业版可以使用，叫作 QuickBuild，商业版中包含用户支持。 </p>
<p><a name=N10240><span class=smalltitle><strong><font face=Arial>Jetty 不再必需</font></strong></span></a></p>
<p>Luntbuild 提供了几种安装方式。您可能会发现最简单的方式是通过 GUI 安装。用 Web 应用程序配置和管理 Luntbuild；所以，需要确保正在运行一个能够处理 JSP 的 Web 服务器，像 Tomcat 或 Jetty。 </p>
<p><a name=N10249><span class=smalltitle><strong><font face=Arial>版本控制轮询</font></strong></span></a></p>
<p>Luntbuild 提供了对八种不同版本控制系统的支持，例如 CVS、Subversion、ClearCase 和 Perforce。图 4 演示了 Luntbuild 被设置成轮询 Subversion： </p>
<br><a name=fig4><strong>图 4. Luntbuild 轮询 Subversion 存储库</strong></a><br><img height=412 alt="Luntbuild 轮询 Subversion 存储库" src="http://www.ibm.com/developerworks/cn/java/j-ap09056/lb-newvcs.jpg" width=572> <br>
<p><a name=N10261><span class=smalltitle><strong><font face=Arial>执行构建</font></strong></span></a></p>
<p>Luntbuild 支持五种不同的构建平台，包括 Ant、Maven、Maven2、命令行和 rake （用来构建 Ruby 应用程序）。图 5 显示了 Ant 构建器的配置页面： </p>
<br><a name=fig5><strong>图 5. 用 Luntbuild 执行 Ant 脚本</strong></a><br><img height=412 alt="用 Luntbuild 执行 Ant 脚本" src="http://www.ibm.com/developerworks/cn/java/j-ap09056/lb-newbuilder.jpg" width=572> <br>
<p><a name=N10279><span class=smalltitle><strong><font face=Arial>构建安排</font></strong></span></a></p>
<p>通过使用 Luntbuild 中的 Schedule 标签（如图 6 所示），可以设置 Luntbuild 多久轮询一次版本控制系统来获得修改。在这个标签上，还可以指定分配给每个构建的唯一构建标号。 </p>
<br><a name=fig6><strong>图 6. 在 Luntbuild 中安排构建</strong></a><br><img height=412 alt="在 Luntbuild 中安排构建" src="http://www.ibm.com/developerworks/cn/java/j-ap09056/lb-newschedule.jpg" width=572> <br>
<p><a name=N10291><span class=smalltitle><strong><font face=Arial>在 Luntbuild 中发布结果</font></strong></span></a></p>
<p>配置了项目、版本控制系统适配器、构建和计划程序之后，就可以指定用户接收反馈的方式了。但是，Luntbuild 只内置了对电子邮件和即时消息的支持。另外，可以从 Luntbuild 的主页监视构建，如图 7 所示： </p>
<br><a name=fig7><strong>图 7. 从 Luntbuild Web 应用程序监视构建</strong></a><br><img height=412 alt="从 Luntbuild Web 应用程序监视构建" src="http://www.ibm.com/developerworks/cn/java/j-ap09056/lb-buildmonitor.jpg" width=572> <br>
<p>Luntbuild 提供了一整套强大的功能，包括管理项目依赖项和大量的版本控制系统适配器。我认为工作流和用户界面可以简化，因为需要许多步骤来设置和配置工具。 </p>
<br>
<table cellSpacing=0 cellPadding=0 width="100%" border=0>
    <tbody>
        <tr>
            <td><img height=1 alt="" src="http://www.ibm.com/i/v14/rules/blue_rule.gif" width="100%"><br><img height=6 alt="" src="http://www.ibm.com/i/c.gif" width=8 border=0></td>
        </tr>
    </tbody>
</table>
<table class=no-print cellSpacing=0 cellPadding=0 align=right>
    <tbody>
        <tr align=right>
            <td><img height=4 alt="" src="http://www.ibm.com/i/c.gif" width="100%"><br>
            <table cellSpacing=0 cellPadding=0 border=0>
                <tbody>
                    <tr>
                        <td vAlign=center><img height=16 alt="" src="http://www.ibm.com/i/v14/icons/u_bold.gif" width=16 border=0><br></td>
                        <td vAlign=top align=right><a class=fbox href="http://www.ibm.com/developerworks/cn/java/j-ap09056/index.html#main"><strong><font color=#996699>回页首</font></strong></a></td>
                    </tr>
                </tbody>
            </table>
            </td>
        </tr>
    </tbody>
</table>
<br><br>
<p><a name=N102AC><span class=atitle>CI 记分卡</span></a></p>
<p>在不理解具体需求的情况下，就推荐哪个工具合适是非常冒失的。每个服务器都有许多优秀的特性，而且就像我在开始时所提到的，仅仅因为某个 CI 服务器最适合某人，并不意味着它必然满足您的需求。 </p>
<p>如果寻找的是易于使用的工具，请选择 Continuum。如果扩展性、灵活性和繁荣的用户社区对您很重要，请使用 CruiseControl。如果需要 Web 管理和扩展的用户支持选项，请考虑 Luntbuild。围绕这些服务器已经形成了开发&#8220;生态&#8221;系统，所以如果遗漏了某个特性，一般都会找到适合需求的扩展。</p>
<p>在表 2 中，是我根据自己的使用经验为所考察的每个 CI 服务器总结的特性、可靠性、寿命、目标环境和易用性这五个核心方面： </p>
<br><a name=N102BB><strong>表 2. CI 服务器五个核心方面</strong></a><br>
<table class=data-table-1 cellSpacing=0 cellPadding=0 width="100%" summary="Table using a caption tag, alternating color rows" border=0>
    <caption></caption>
    <tbody>
        <tr>
            <th>
            <th>特性</th>
            <th>可靠性</th>
            <th>寿命 </th>
            <th>目标环境</th>
            <th>易用性</th>
        </tr>
        <tr class=alt-row>
            <td class=tb-row><strong>Continuum</strong></td>
            <td>支持 Ant、Maven1 和 Maven2，以及 shell。 <br><br>使用 XML-RPC 和 SOAP 的远程管理能力；支持 Maven2；用户群；期待未来有附加的报告和反馈机制——不需要修改代码。</td>
            <td>在 2005 年发布。期待通过它与 Apache 的关系，得到 Continuum 的更多消息。</td>
            <td>通过 Apache Maven 的良好用户社区支持产品在市场上仍很新。</td>
            <td>Linux、Mac OS X、Solaris 和 Win32。</td>
            <td>优秀的易用性和安装。</td>
        </tr>
        <tr>
            <td class=tb-row><strong>CruiseControl</strong></td>
            <td>许多版本控制集成和扩展性。通过 JMX 控制的远程访问。多种反馈机制，包括 RSS、X10、Jabber 以及其他。 </td>
            <td>在 2001 年发布。在三个服务器中，CruiseControl 在开发中应用得最多。</td>
            <td>繁荣的用户社区；每个迹象都表示 CruiseControl 还会存在一段时间。</td>
            <td>Windows 和 Unix；任何能运行 Java JVM 的平台。</td>
            <td>易于安装。有些人宁愿不修改 XML 配置文件。</td>
        </tr>
        <tr class=alt-row>
            <td class=tb-row><strong>Luntbuild</strong></td>
            <td>项目依赖项、标号、安全性组和并行开发。</td>
            <td>在 2004 年发布。Luntbuild 提供扩展的用户支持选项。</td>
            <td>用户社区不如 CruiseControl 活跃。 </td>
            <td>能够运行 JVM 和 servlet 容器的系统。</td>
            <td>易于安装，但用户界面/工作流需要大大改进。基于 Web 的配置（不需要修改配置文件）。</td>
        </tr>
    </tbody>
</table>
<p>我在本文中只评估了三个服务器；还有许多服务器可能更适合您的需求。但是既然您理解了如何挑选 CI 服务器，那么选择工作就应当很容易了。请继续关注下个月的文章，我将介绍在开发项目中经常会遇到的构建问题。 </p>
<br><br>
<p><a name=resources><span class=atitle>参考资料 </span></a></p>
<strong>学习</strong><br>
<ul>
    <li>您可以参阅本文在 developerWorks 全球站点上的 <a href="http://www.ibm.com/developerworks/java/library/j-ap09056/?S_TACT=105AGX52&amp;S_CMP=cn-a-j" target=_blank><font color=#5c81a7>英文原文</font></a> 。<br><br>
    <li><a href="http://www.ibm.com/developerworks/cn/views/java/articles.jsp?view_by=search&amp;search_by=%E8%AE%A9%E5%BC%80%E5%8F%91%E8%87%AA%E5%8A%A8%E5%8C%96"><em><font color=#5c81a7>让开发自动化</font></em></a> （Paul Duvall，developerWorks）：阅读完整系列。<br><br>
    <li>&#8220;<a href="http://www.ibm.com/developerworks/cn/java/j-cc/"><font color=#5c81a7>自动进行团队构建和单元测试过程</font></a>&#8221;（Mark Wilkinson，developerWorks，2005 年 10 月）：一本关于为 Java 项目设置基于 Linux 的构建服务器的实际问题的指南。<br><br>
    <li>&#8220;<a href="http://www.ibm.com/developerworks/rational/library/sep05/lee/?S_TACT=105AGX52&amp;S_CMP=cn-a-j"><font color=#5c81a7>Realizing Continuous Integration</font></a>&#8221;（Kevin Lee，developerWorks，2005 年 9 月）：学习持续集成的概念和实践。<br><br>
    <li>&#8220;<a href="http://www.martinfowler.com/articles/continuousIntegration.html"><font color=#5c81a7>Continuous Integration</font></a>&#8221;（Martin Fowler，martinfowler.com，2006 年 5 月）：对持续集成的目的和实践的描述。<br><br>
    <li><a href="http://www.testearly.com/category/continuous-integration/"><font color=#5c81a7>Practical Continuous Integration</font></a>（Testearly.com）：关于安装和配置 Continuum、CruiseControl 和 Luntbuild 的更详细信息。<br><br>
    <li><a href="http://www.ibm.com/developerworks/cn/java/"><font color=#996699>developerWorks</font></a>：数百篇关于 Java 编程各个方面的文章。<br><br></li>
</ul>
<br><strong>获得产品和技术</strong><br>
<ul>
    <li><a href="http://docs.codehaus.org/display/DAMAGECONTROL/Continuous+Integration+Server+Feature+Matrix"><font color=#5c81a7>Continuous Integration Server Feature Matrix</font></a>：目前市场上的 CI 服务器以及它们各自特性的对照表。<br><br>
    <li><a href="http://maven.apache.org/continuum/"><font color=#5c81a7>Continuum</font></a>：Apache 进入 CI 服务器领域。<br><br>
    <li><a href="http://cruisecontrol.sourceforge.net/"><font color=#5c81a7>CruiseControl</font></a>：免费的开源持续集成服务器。<br><br>
    <li><a href="http://luntbuild.javaforge.com/"><font color=#5c81a7>Luntbuild</font></a>：另一个带有扩展商业支持的持续集成服务器。<br><br></li>
</ul>
<br><strong>讨论</strong><br>
<ul>
    <li><a href="http://www.ibm.com/developerworks/forums/dw_forum.jsp?S_TACT=105AGX52&amp;cat=10&amp;S_CMP=cn-a-j&amp;forum=812"><font color=#5c81a7>Improve Your Java Code Quality discussion forum</font></a>：Andrew Glover 经常在 developerWorks 发表文章，作为专注于改进代码质量的顾问，他将自己的许多专业意见都带到了这个他主持的讨论组中。 </li>
</ul>
<br><br>
<p><a name=author><span class=atitle>关于作者</span></a></p>
<table cellSpacing=0 cellPadding=0 width="100%" border=0>
    <tbody>
        <tr>
            <td colSpan=3><img height=5 alt="" src="http://www.ibm.com/i/c.gif" width="100%"></td>
        </tr>
        <tr vAlign=top align=left>
            <td>
            <p><img height=80 alt="" src="http://www.ibm.com/developerworks/i/p-pduvall.jpg" width=64 align=left></p>
            </td>
            <td><img height=5 alt="" src="http://www.ibm.com/i/c.gif" width=4></td>
            <td width="100%">
            <p>Paul Duvall 是 <a href="http://www.stelligent.com/"><font color=#5c81a7>Stelligent Incorporated</font></a> 的 CTO，该公司利用有效的开发人员测试策略，以及能够让团队尽早尽多地监视和提高代码质量的持续集成技术，帮助其他企业解决软件的质量问题。他还是 <a href="http://www.amazon.com/gp/product/0471463612/"><font color=#5c81a7>UML&#8482; 2 Toolkit</font></a> 一书的作者之一，目前正在与他人合作撰写 <a href="http://www.amazon.com/gp/product/0321336380/"><font color=#5c81a7>Continuous Integration: Improving Software Quality and Reducing Risk</font></a> （Addison-Wesley）</p>
            </td>
        </tr>
    </tbody>
</table>
<br>
<img src ="http://www.blogjava.net/hengheng123456789/aggbug/110504.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hengheng123456789/" target="_blank">哼哼</a> 2007-04-13 17:52 <a href="http://www.blogjava.net/hengheng123456789/archive/2007/04/13/110504.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>实战每晚构建（转）</title><link>http://www.blogjava.net/hengheng123456789/archive/2007/04/13/110502.html</link><dc:creator>哼哼</dc:creator><author>哼哼</author><pubDate>Fri, 13 Apr 2007 09:45:00 GMT</pubDate><guid>http://www.blogjava.net/hengheng123456789/archive/2007/04/13/110502.html</guid><wfw:comment>http://www.blogjava.net/hengheng123456789/comments/110502.html</wfw:comment><comments>http://www.blogjava.net/hengheng123456789/archive/2007/04/13/110502.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hengheng123456789/comments/commentRss/110502.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hengheng123456789/services/trackbacks/110502.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;龚永生 (gongys@legend.com)北京市海淀区上地信息产业基地开拓路7号联想大厦本文有两个目的：实现每晚构建平台和探讨一个软件从需求文档到设计文档的书写规范。1、前言本文有两个目的：实现每晚构建平台和探讨一个软件从需求文档到设计文档的书写规范。 每晚构建是软件研发管理中极具价值的手段，对于加快发现和改正缺陷，降低集成风险，提高产品质量，加强成员沟通与协作...&nbsp;&nbsp;<a href='http://www.blogjava.net/hengheng123456789/archive/2007/04/13/110502.html'>阅读全文</a><img src ="http://www.blogjava.net/hengheng123456789/aggbug/110502.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hengheng123456789/" target="_blank">哼哼</a> 2007-04-13 17:45 <a href="http://www.blogjava.net/hengheng123456789/archive/2007/04/13/110502.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CMM的结构和基本内容</title><link>http://www.blogjava.net/hengheng123456789/archive/2007/04/01/107754.html</link><dc:creator>哼哼</dc:creator><author>哼哼</author><pubDate>Sun, 01 Apr 2007 06:27:00 GMT</pubDate><guid>http://www.blogjava.net/hengheng123456789/archive/2007/04/01/107754.html</guid><wfw:comment>http://www.blogjava.net/hengheng123456789/comments/107754.html</wfw:comment><comments>http://www.blogjava.net/hengheng123456789/archive/2007/04/01/107754.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hengheng123456789/comments/commentRss/107754.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hengheng123456789/services/trackbacks/107754.html</trackback:ping><description><![CDATA[
		<p>
				<span lang="EN-US" style="FONT-FAMILY: 新宋体">CMM描述了五个级别的软件过程成熟度（<a href="http://www.8848software.com/cmmchina/whatiscmm/paper4.html#BM1"><font color="#002c99">初始级</font></a><a href="http://www.8848software.com/cmmchina/whatiscmm/paper4.html#BM2"><font color="#002c99">可重复级</font></a><a href="http://www.8848software.com/cmmchina/whatiscmm/paper4.html#BM3"><font color="#002c99">已定义级</font></a><a href="http://www.8848software.com/cmmchina/whatiscmm/paper4.html#BM4"><font color="#002c99">已管理级</font></a><a href="http://www.8848software.com/cmmchina/whatiscmm/paper4.html#BM5"><font color="#002c99">优化级</font></a></span>
				<span style="FONT-FAMILY: 新宋体">，成熟度反映了软件过程能力<span lang="EN-US">(Software Process Capability)的大小，任何一个软件机构的软件过程必定属于其中某个级别。除了第一级以外，每级成熟度又由若干<u><span style="COLOR: black">关键过程域</span></u>(Key Process Area)构成。五个成熟度及其关键过程领域如图所示： <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?><o:p></o:p></span></span>
		</p>
		<p style="MARGIN-LEFT: 144pt; MARGIN-RIGHT: 144pt">
				<span lang="EN-US" style="FONT-FAMILY: System">
						<img id="_x0000_i1025" height="368" src="http://www.8848software.com/cmmchina/image/cmm2.gif" width="591" border="0" tppabs="http://moon.nju.edu.cn/CMMChinese/WhatIsCMM/Image2.gif" />
				</span>
		</p>
		<p>
				<span style="FONT-FAMILY: 新宋体">图中的每个关键过程域分别针对软件过程的某一方面，具体描述了某级成熟度下软件过程在该方面所应达到的的一组目标和实现这些目标的一组<u>关键活动</u>（<span lang="EN-US">Key Practice）。所有关键活动被划分为五类，分别为完成该组目标所需的承诺（Commitment to Perform）、前提条件（Ability to Perform）、实际动作（Activities performed）、度量分析（Measurement and Analysis）以及验证（Verifying Implementation）。上述五方面被称为五个Common Features。<o:p></o:p></span></span>
		</p>
		<p>
				<span lang="EN-US" style="FONT-FAMILY: 新宋体">CMM的结构如图所示：<o:p></o:p></span>
		</p>
		<p style="TEXT-ALIGN: center" align="center">
				<span lang="EN-US" style="FONT-FAMILY: System">
						<img id="_x0000_i1026" height="450" src="http://www.8848software.com/cmmchina/image/cmm1.gif" width="640" border="0" tppabs="http://moon.nju.edu.cn/CMMChinese/WhatIsCMM/Image1.gif" />
						<o:p>
						</o:p>
				</span>
		</p>
		<p>
				<span style="FONT-FAMILY: System">　<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p>
				<span style="FONT-FAMILY: 新宋体">需要提出的是，任何一个成熟度级别的关键过程域集都是本级描述的关键过程域集和所有下级的关键过程域集的并集。如<span lang="EN-US">3级的关键过程域就应有13个不同的域，其中7个是3级自己包含的，6个属于2级成熟度，而4级应有15个域。</span></span>
		</p>
		<p style="TEXT-ALIGN: center" align="center">
				<span lang="EN-US" style="mso-ascii-font-family: System; mso-fareast-font-family: System"> </span>
				<span lang="EN-US" style="FONT-FAMILY: System">
						<o:p>
						</o:p>
				</span>
		</p>
		<p>
				<a name="BM1">
				</a>
				<font size="3">
						<b>
								<span style="FONT-SIZE: 18pt; FONT-FAMILY: 新宋体">第一级：初始级（</span>
						</b>
						<b>
								<span lang="EN-US" style="FONT-SIZE: 18pt; FONT-FAMILY: Arial">The Initial Level</span>
						</b>
						<b>
								<span style="FONT-SIZE: 18pt; FONT-FAMILY: 新宋体">）</span>
								<span lang="EN-US">
										<o:p>
										</o:p>
								</span>
						</b>
				</font>
		</p>
		<p>
				<span style="FONT-FAMILY: 新宋体">初始级的软件机构缺乏对软件过程的有效管理，其软件项目的成功来源于个人英雄主义而非机构行为，因此它不是可重复的。<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p>
				<a name="BM2">
				</a>
				<font size="3">
						<b>
								<span style="FONT-SIZE: 18pt; FONT-FAMILY: 新宋体">第二级：可重复级（</span>
						</b>
						<b>
								<span lang="EN-US" style="FONT-SIZE: 18pt; FONT-FAMILY: Arial">The Repeatable Level</span>
						</b>
						<b>
								<span style="FONT-SIZE: 18pt; FONT-FAMILY: 黑体">）</span>
								<span lang="EN-US">
										<o:p>
										</o:p>
								</span>
						</b>
				</font>
		</p>
		<p>
				<b>
						<span style="FONT-SIZE: 18pt; FONT-FAMILY: 新宋体">
								<font size="3">概述：<span lang="EN-US"><o:p></o:p></span></font>
						</span>
				</b>
		</p>
		<p>
				<span style="FONT-FAMILY: 新宋体">第二级软件机构的主要特点是：项目计划和跟踪的稳定性，项目过程的可控性和以往成功的可重复性。更具体的说：<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<ul type="disc">
				<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l11 level1 lfo1; tab-stops: list 36.0pt">
						<span style="FONT-FAMILY: 新宋体">机构建立了管理软件项目的策略和实现这些策略的过程。<span lang="EN-US"><o:p></o:p></span></span>
				</li>
				<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l11 level1 lfo1; tab-stops: list 36.0pt">
						<span style="FONT-FAMILY: 新宋体">新项目的计划和管理基于类似项目的经验。<span lang="EN-US"><o:p></o:p></span></span>
				</li>
				<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l11 level1 lfo1; tab-stops: list 36.0pt">
						<span style="FONT-FAMILY: 新宋体">过程能力的增强基于以各个项目为基础的有纪律的基本过程管理。<span lang="EN-US"><o:p></o:p></span></span>
				</li>
				<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l11 level1 lfo1; tab-stops: list 36.0pt">
						<span style="FONT-FAMILY: 新宋体">不同的项目可有不同的过程，而对机构的要求是具有指导项目建立适当管理过程的策略。<span lang="EN-US"><o:p></o:p></span></span>
				</li>
				<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l11 level1 lfo1; tab-stops: list 36.0pt">
						<span style="FONT-FAMILY: 新宋体">每个项目都确定了基本的软件管理控制，包括：<span lang="EN-US"><o:p></o:p></span></span>
						<ul type="circle">
								<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l11 level2 lfo1; tab-stops: list 72.0pt">
										<span style="FONT-FAMILY: 新宋体">基于前面项目的经验和新项目特点，做出现实的项目承诺（如预算、交付期、软件质量等）；<span lang="EN-US"><o:p></o:p></span></span>
								</li>
								<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l11 level2 lfo1; tab-stops: list 72.0pt">
										<span style="FONT-FAMILY: 新宋体">软件项目管理者要跟踪开支、日程、软件功能；<span lang="EN-US"><o:p></o:p></span></span>
								</li>
								<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l11 level2 lfo1; tab-stops: list 72.0pt">
										<span style="FONT-FAMILY: 新宋体">满足承诺的过程中的出现的问题要及时发现，妥善解决；<span lang="EN-US"><o:p></o:p></span></span>
								</li>
								<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l11 level2 lfo1; tab-stops: list 72.0pt">
										<span style="FONT-FAMILY: 新宋体">定义了软件项目标准，且机构确保其被遵守。<span lang="EN-US"><o:p></o:p></span></span>
								</li>
						</ul>
				</li>
		</ul>
		<p>
				<b>
						<span style="FONT-SIZE: 18pt; FONT-FAMILY: 新宋体">
								<font size="3">构成：<span lang="EN-US"><o:p></o:p></span></font>
						</span>
				</b>
		</p>
		<p>
				<span style="FONT-FAMILY: 新宋体">本级的关键过程领域（<span lang="EN-US">KPA）包括：<o:p></o:p></span></span>
		</p>
		<p>
				<span style="FONT-FAMILY: 新宋体">　<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<ul type="disc">
				<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l4 level1 lfo2; tab-stops: list 36.0pt">
						<span lang="EN-US">
								<a href="http://www.8848software.com/cmmchina/whatiscmm/kpa_l2_rm.html" tppabs="http://moon.nju.edu.cn/CMMChinese/WhatIsCMM/kpa_l2_rm.html">
										<font color="#002c99">
												<font size="3">
														<span style="FONT-SIZE: 13.5pt; FONT-FAMILY: 新宋体">需求管理（</span>Requirements Management<span style="FONT-FAMILY: 新宋体">）</span></font>
										</font>
								</a>
						</span>
				</li>
		</ul>
		<p class="MsoNormal" style="MARGIN-LEFT: 36pt; MARGIN-RIGHT: 36pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto">
				<span style="FONT-FAMILY: 新宋体">客户的需求是软件项目的基础。软件需求管理的目的是在客户和软件项目之间达成对客户需求的一致理解。<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN-LEFT: 36pt; MARGIN-RIGHT: 36pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto">
				<span style="FONT-FAMILY: 新宋体">　<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<ul type="disc">
				<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l19 level1 lfo3; tab-stops: list 36.0pt">
						<span lang="EN-US">
								<a href="http://www.8848software.com/cmmchina/whatiscmm/kpa_l2_spp.html" tppabs="http://moon.nju.edu.cn/CMMChinese/WhatIsCMM/kpa_l2_spp.html">
										<font color="#002c99">
												<font size="3">
														<span style="FONT-SIZE: 13.5pt; FONT-FAMILY: 新宋体">软件项目计划（</span>Software Project Planning<span style="FONT-FAMILY: 新宋体">）</span></font>
										</font>
								</a>
						</span>
				</li>
		</ul>
		<p class="MsoNormal" style="MARGIN-LEFT: 36pt; MARGIN-RIGHT: 36pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto">
				<span style="FONT-FAMILY: 新宋体">为软件工程和项目管理建立一个合理的计划。<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN-LEFT: 36pt; MARGIN-RIGHT: 36pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto">
				<span style="FONT-FAMILY: 新宋体">　<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<ul type="disc">
				<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l20 level1 lfo4; tab-stops: list 36.0pt">
						<span lang="EN-US">
								<a href="http://www.8848software.com/cmmchina/whatiscmm/kpa_l2_spto.html" tppabs="http://moon.nju.edu.cn/CMMChinese/WhatIsCMM/kpa_l2_spto.html">
										<font color="#002c99">
												<font size="3">
														<span style="FONT-SIZE: 13.5pt; FONT-FAMILY: 新宋体">软件项目的跟踪和监督（</span>Software Project Tacking and Oversight<span style="FONT-FAMILY: 新宋体">）</span></font>
										</font>
								</a>
						</span>
				</li>
		</ul>
		<p class="MsoNormal" style="MARGIN-LEFT: 36pt; MARGIN-RIGHT: 36pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto">
				<span style="FONT-FAMILY: 新宋体">使管理者对实际的软件项目进展过程有足够的了解，以在项目效能偏离计划太多是采取有效措施。<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p>
				<span style="FONT-FAMILY: 新宋体">　<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<ul type="disc">
				<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l13 level1 lfo5; tab-stops: list 36.0pt">
						<span lang="EN-US">
								<a href="http://www.8848software.com/cmmchina/whatiscmm/kpa_l2_ssm.html" tppabs="http://moon.nju.edu.cn/CMMChinese/WhatIsCMM/kpa_l2_ssm.html">
										<span style="FONT-SIZE: 13.5pt; FONT-FAMILY: 新宋体">
												<font color="#002c99" size="3">软件子合同管理（Software Subcontract Management）</font>
										</span>
								</a>
						</span>
				</li>
		</ul>
		<p class="MsoNormal" style="MARGIN-LEFT: 36pt; MARGIN-RIGHT: 36pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto">
				<span style="FONT-FAMILY: 新宋体">选择合格的分包商，并有效管理之。<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN-LEFT: 36pt; MARGIN-RIGHT: 36pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto">
				<span style="FONT-FAMILY: 新宋体">　<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<ul type="disc">
				<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l9 level1 lfo6; tab-stops: list 36.0pt">
						<span lang="EN-US">
								<a href="http://www.8848software.com/cmmchina/whatiscmm/kpa_l2_sqa.html" tppabs="http://moon.nju.edu.cn/CMMChinese/WhatIsCMM/kpa_l2_sqa.html">
										<span style="FONT-SIZE: 13.5pt; FONT-FAMILY: 新宋体">
												<font color="#002c99" size="3">软件质量保证（Software Quality Assurance）</font>
										</span>
								</a>
						</span>
				</li>
		</ul>
		<p class="MsoNormal" style="MARGIN-LEFT: 36pt; MARGIN-RIGHT: 36pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto">
				<span style="FONT-FAMILY: 新宋体">对软件项目过程及其间生产的各个产品进行监管以保证最终软件质量。<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN-LEFT: 36pt; MARGIN-RIGHT: 36pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto">
				<span style="FONT-FAMILY: 新宋体">　<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<ul type="disc">
				<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l18 level1 lfo7; tab-stops: list 36.0pt">
						<span lang="EN-US">
								<a href="http://www.8848software.com/cmmchina/whatiscmm/kpa_l2_scm.html" tppabs="http://moon.nju.edu.cn/CMMChinese/WhatIsCMM/kpa_l2_scm.html">
										<span style="FONT-SIZE: 13.5pt; FONT-FAMILY: 新宋体">
												<font color="#002c99" size="3">软件配置管理（Software Configuration Management）</font>
										</span>
								</a>
						</span>
				</li>
		</ul>
		<p class="MsoNormal" style="MARGIN-LEFT: 36pt; MARGIN-RIGHT: 36pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto">
				<span style="FONT-FAMILY: 新宋体">在整个软件生命周期里建立并维护软件项目的工作产品的完整性。<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN-LEFT: 36pt; MARGIN-RIGHT: 36pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto">
				<span style="FONT-FAMILY: 新宋体">　<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p>
				<a name="BM3">
				</a>
				<font size="3">
						<b>
								<span style="FONT-SIZE: 18pt; FONT-FAMILY: 新宋体">第三级：已定义级（</span>
						</b>
						<b>
								<span lang="EN-US" style="FONT-SIZE: 18pt; FONT-FAMILY: Arial">The Defined Level</span>
						</b>
						<b>
								<span style="FONT-SIZE: 18pt; FONT-FAMILY: 新宋体">）</span>
								<span lang="EN-US">
										<o:p>
										</o:p>
								</span>
						</b>
				</font>
		</p>
		<p>
				<b>
						<span style="FONT-SIZE: 18pt; FONT-FAMILY: 新宋体">
								<font size="3">概述<span lang="EN-US"><o:p></o:p></span></font>
						</span>
				</b>
		</p>
		<p>
				<span style="FONT-FAMILY: 新宋体">第三级的主要特征在于软件过程已被提升成标准化过程，从而更加具有稳定性、可重复性和可控性。处于第三级的企业具有如下一些特征：<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<ul type="disc">
				<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l21 level1 lfo8; tab-stops: list 36.0pt">
						<span style="FONT-FAMILY: 新宋体">机构采用标准的软件过程，软件工程和管理活动被集成为一个有机的整体。标准化的目的是使之可使管理者和技术人员有效工作。<span lang="EN-US"><o:p></o:p></span></span>
				</li>
				<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l21 level1 lfo8; tab-stops: list 36.0pt">
						<span style="FONT-FAMILY: 新宋体">有一组人员专门负责机构的软件过程，并且在机构中有培训计划来确保</span>
						<span lang="EN-US">stuff</span>
						<span style="FONT-FAMILY: 新宋体">和</span>
						<span lang="EN-US">manager</span>
						<span style="FONT-FAMILY: 新宋体">有知识和技能完成所赋予的角色。</span>
				</li>
				<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l21 level1 lfo8; tab-stops: list 36.0pt">
						<span style="FONT-FAMILY: 新宋体">标准的软件过程结合项目的特点即形成定义的软件过程，它包括一组集成的定义良好的软件工程和管理过程。<span lang="EN-US"><o:p></o:p></span></span>
				</li>
				<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l21 level1 lfo8; tab-stops: list 36.0pt">
						<span style="FONT-FAMILY: 新宋体">一个定义良好的过程包括就绪准则、输入、完成工作过程、验证机制、输出和完成准则。<span lang="EN-US"><o:p></o:p></span></span>
				</li>
				<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l21 level1 lfo8; tab-stops: list 36.0pt">
						<span style="FONT-FAMILY: 新宋体">在已建立的产品线上</span>
						<span lang="EN-US">cost, schedule, functionality </span>
						<span style="FONT-FAMILY: 新宋体">均可控制，软件质量被加以跟踪。</span>
				</li>
				<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l21 level1 lfo8; tab-stops: list 36.0pt">
						<span style="FONT-FAMILY: 新宋体">过程能力体现在在机构范围内对一个定义的软件过程活动、角色和责任的共同理解。<span lang="EN-US"><o:p></o:p></span></span>
				</li>
		</ul>
		<p>
				<b>
						<span style="FONT-SIZE: 18pt; FONT-FAMILY: 新宋体">
								<font size="3">构成<span lang="EN-US"><o:p></o:p></span></font>
						</span>
				</b>
		</p>
		<p>
				<span style="FONT-FAMILY: 新宋体">第三级主要处理以下的</span>
				<span lang="EN-US">KPA： </span>
		</p>
		<ul type="disc">
				<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l2 level1 lfo9; tab-stops: list 36.0pt">
						<span lang="EN-US">
								<a href="http://www.8848software.com/cmmchina/whatiscmm/kpa_l3_opf.html" tppabs="http://moon.nju.edu.cn/CMMChinese/WhatIsCMM/kpa_l3_opf.html">
										<font color="#002c99">机构过程关注（Organization Process Focus）</font>
								</a>
						</span>
				</li>
		</ul>
		<p>
				<span style="FONT-FAMILY: 新宋体">确立机构对于改进机构的软件过程能力的软件过程活动的责任。<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p>
				<span style="FONT-FAMILY: 新宋体">　<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<ul type="disc">
				<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level1 lfo10; tab-stops: list 36.0pt">
						<span lang="EN-US">
								<a href="http://www.8848software.com/cmmchina/whatiscmm/kpa_l3_opd.html" tppabs="http://moon.nju.edu.cn/CMMChinese/WhatIsCMM/kpa_l3_opd.html">
										<font color="#002c99">机构过程定义（Organization Process Definition）</font>
								</a>
						</span>
				</li>
		</ul>
		<p>开发和维护一组有用的软件过程assets和提供一个用于定义定量过程管理的有意义的数据的基础</p>
		<p>
				<span style="FONT-FAMILY: 新宋体">　<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<ul type="disc">
				<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l16 level1 lfo11; tab-stops: list 36.0pt">
						<span lang="EN-US">
								<a href="http://www.8848software.com/cmmchina/whatiscmm/kpa_l3_tp.html" tppabs="http://moon.nju.edu.cn/CMMChinese/WhatIsCMM/kpa_l3_tp.html">
										<font color="#002c99">培训计划（Training Program）</font>
								</a>
						</span>
				</li>
		</ul>
		<p>
				<span style="FONT-FAMILY: 新宋体">开发个体的技能和知识以使他们能够更加有效的完成他们的角色<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p>
				<span style="FONT-FAMILY: 新宋体">　<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<ul type="disc">
				<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l14 level1 lfo12; tab-stops: list 36.0pt">
						<span lang="EN-US">
								<a href="http://www.8848software.com/cmmchina/whatiscmm/kpa_l3_ism.html" tppabs="http://moon.nju.edu.cn/CMMChinese/WhatIsCMM/kpa_l3_ism.html">
										<font color="#002c99">集成软件管理（Integrated Software Management）</font>
								</a>
						</span>
				</li>
		</ul>
		<p>基于业务环境和项目的技术需要，从机构的标准软件过程和相关的过程assets经过剪裁，将软件工程和管理活动集成为一个有机的定义的软件过程。</p>
		<p>　</p>
		<ul type="disc">
				<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l5 level1 lfo13; tab-stops: list 36.0pt">
						<span lang="EN-US">
								<a href="http://www.8848software.com/cmmchina/whatiscmm/kpa_l3_spe.html" tppabs="http://moon.nju.edu.cn/CMMChinese/WhatIsCMM/kpa_l3_spe.html">
										<span style="FONT-FAMILY: 新宋体">
												<font color="#002c99">软件产品工程（Software Product Engineering）</font>
										</span>
								</a>
						</span>
				</li>
		</ul>
		<p>
				<span style="FONT-FAMILY: 新宋体">一致地完成定义良好的工程过程。它描述了项目的技术活动，如需求分析，设计，编码和测试。<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p>
				<span style="FONT-FAMILY: 新宋体">　<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<ul type="disc">
				<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l6 level1 lfo14; tab-stops: list 36.0pt">
						<span lang="EN-US">
								<a href="http://www.8848software.com/cmmchina/whatiscmm/kpa_l3_ic.html" tppabs="http://moon.nju.edu.cn/CMMChinese/WhatIsCMM/kpa_l3_ic.html">
										<span style="FONT-FAMILY: 新宋体">
												<font color="#002c99">组间协调（Intergroup Coordination）</font>
										</span>
								</a>
						</span>
				</li>
		</ul>
		<p>
				<span style="FONT-FAMILY: 新宋体">确立软件工程组主动介入其它工程组以便项目能更好满足客户要求的手段<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p>
				<span style="FONT-FAMILY: 新宋体">　<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<ul type="disc">
				<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l8 level1 lfo15; tab-stops: list 36.0pt">
						<span lang="EN-US">
								<a href="http://www.8848software.com/cmmchina/whatiscmm/kpa_l3_pr.html" tppabs="http://moon.nju.edu.cn/CMMChinese/WhatIsCMM/kpa_l3_pr.html">
										<span style="FONT-FAMILY: 新宋体">
												<font color="#002c99">同行评审（Peer Reviews）</font>
										</span>
								</a>
						</span>
				</li>
		</ul>
		<p>
				<span style="FONT-FAMILY: 新宋体">早而且有效的排除软件工作产品中的缺陷。它可通过</span>
				<span lang="EN-US">inspection,structured walkthrough等手段进行。</span>
		</p>
		<p>　</p>
		<p>
				<span style="FONT-FAMILY: 新宋体">概括来说，第三级企业的重点是</span>
				<font size="3">
						<span lang="EN-US" style="FONT-SIZE: 13.5pt; FONT-FAMILY: 新宋体">Engineering processes and organizational support</span>
						<span style="FONT-SIZE: 13.5pt">。</span>
				</font>
		</p>
		<p>
				<span style="FONT-FAMILY: 新宋体">　<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p>
				<a name="BM4">
				</a>
				<font size="3">
						<b>
								<span style="FONT-SIZE: 18pt; FONT-FAMILY: 新宋体">第四级：已管理级（</span>
						</b>
						<b>
								<span lang="EN-US" style="FONT-SIZE: 18pt; FONT-FAMILY: Arial">The Managed Level</span>
						</b>
						<b>
								<span style="FONT-SIZE: 18pt; FONT-FAMILY: 黑体">）</span>
								<span lang="EN-US">
										<o:p>
										</o:p>
								</span>
						</b>
				</font>
		</p>
		<p>
				<b>
						<span style="FONT-SIZE: 18pt; FONT-FAMILY: 新宋体">
								<font size="3">概述：<span lang="EN-US"><o:p></o:p></span></font>
						</span>
				</b>
		</p>
		<p>
				<span style="FONT-FAMILY: 新宋体">第四级的软件机构中软件过程和软件产品都有定量的目标，并被定量地管理，因而其软件过程能力是可预测的，其生产的软件产品是高质量的。具体地说，第四季的机构具有如下特征：<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<ul type="disc">
				<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l3 level1 lfo16; tab-stops: list 36.0pt">
						<span style="FONT-FAMILY: 新宋体">软件过程和产品有定量质量目标。<span lang="EN-US"><o:p></o:p></span></span>
						<ul type="circle">
								<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l3 level2 lfo16; tab-stops: list 72.0pt">
										<span style="FONT-FAMILY: 新宋体">重要的软件过程活动均配有生产率和质量度量；<span lang="EN-US"><o:p></o:p></span></span>
								</li>
								<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l3 level2 lfo16; tab-stops: list 72.0pt">
										<span style="FONT-FAMILY: 新宋体">数据库被用来收集和分析定义软件过程的数据；<span lang="EN-US"><o:p></o:p></span></span>
								</li>
								<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l3 level2 lfo16; tab-stops: list 72.0pt">
										<span style="FONT-FAMILY: 新宋体">项目的软件过程和质量的评价有定量的基础；<span lang="EN-US"><o:p></o:p></span></span>
								</li>
						</ul>
				</li>
				<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l3 level1 lfo16; tab-stops: list 36.0pt">
						<span style="FONT-FAMILY: 新宋体">项目的产品和过程控制具有可预测性。<span lang="EN-US"><o:p></o:p></span></span>
						<ul type="circle">
								<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l3 level2 lfo16; tab-stops: list 72.0pt">
										<span style="FONT-FAMILY: 新宋体">缩小过程效能落在可接受的定量界限内的偏差；<span lang="EN-US"><o:p></o:p></span></span>
								</li>
								<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l3 level2 lfo16; tab-stops: list 72.0pt">
										<span style="FONT-FAMILY: 新宋体">可区分过程效能的有效偏差和随机偏差；<span lang="EN-US"><o:p></o:p></span></span>
								</li>
								<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l3 level2 lfo16; tab-stops: list 72.0pt">
										<span style="FONT-FAMILY: 新宋体">面向新领域的风险是可知并被仔细管理；<span lang="EN-US"><o:p></o:p></span></span>
								</li>
						</ul>
				</li>
		</ul>
		<p>
				<font size="3">
						<b>
								<span style="FONT-SIZE: 18pt; FONT-FAMILY: 新宋体">构成</span>
						</b>： </font>
		</p>
		<p>
				<span style="FONT-FAMILY: 新宋体">本级的关键过程领域包括：<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<ul type="disc">
				<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo17; tab-stops: list 36.0pt">
						<span lang="EN-US">
								<a href="http://www.8848software.com/cmmchina/whatiscmm/kpa_l4_qpm.html" tppabs="http://moon.nju.edu.cn/CMMChinese/WhatIsCMM/kpa_l4_qpm.html">
										<span style="FONT-SIZE: 13.5pt; FONT-FAMILY: 新宋体">
												<font color="#002c99" size="3">定量过程管理（Quantitative Process Management）</font>
										</span>
								</a>
						</span>
				</li>
		</ul>
		<p>
				<span style="FONT-FAMILY: 新宋体">　　　　</span>
				<span style="FONT-FAMILY: 新宋体">定量地控制软件项目的过程效能。</span>
		</p>
		<p>
				<span style="FONT-FAMILY: 新宋体">　<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<ul type="disc">
				<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l17 level1 lfo18; tab-stops: list 36.0pt">
						<span lang="EN-US">
								<a href="http://www.8848software.com/cmmchina/whatiscmm/kpa_l4_sqm.html" tppabs="http://moon.nju.edu.cn/CMMChinese/WhatIsCMM/kpa_l4_sqm.html">
										<span style="FONT-SIZE: 13.5pt; FONT-FAMILY: 新宋体">
												<font color="#002c99" size="3">软件质量管理（Software Quality Management）</font>
										</span>
								</a>
						</span>
				</li>
		</ul>
		<p>
				<span style="FONT-FAMILY: 新宋体">　　　　　</span>
				<span style="FONT-FAMILY: 新宋体">定量了解项目软件产品的质量，并达到既定的质量目标。</span>
		</p>
		<p>
				<span style="FONT-FAMILY: 新宋体">　<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p>
				<span style="FONT-FAMILY: 新宋体">　<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p>
				<a name="BM5">
				</a>
				<font size="3">
						<b>
								<span style="FONT-SIZE: 18pt; FONT-FAMILY: 新宋体">第五级：</span>
						</b>
						<b>
								<span lang="EN-US" style="FONT-SIZE: 18pt; FONT-FAMILY: Arial">The Optimizing Level</span>
								<span lang="EN-US">
										<o:p>
										</o:p>
								</span>
						</b>
				</font>
		</p>
		<p>
				<b>
						<span style="FONT-SIZE: 18pt; FONT-FAMILY: 新宋体">
								<font size="3">概述<span lang="EN-US"><o:p></o:p></span></font>
						</span>
				</b>
		</p>
		<p>
				<span style="FONT-FAMILY: 新宋体">概括来说，第五级的主要特点是技术和过程改进被作为常规的业务活动加以计划和管理。处于第五级的企业具有如下一些特征：<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<ul type="disc">
				<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l12 level1 lfo19; tab-stops: list 36.0pt">
						<span style="FONT-FAMILY: 新宋体">机构集中于连续的过程改进<span lang="EN-US"><o:p></o:p></span></span>
						<ul type="circle">
								<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l12 level2 lfo19; tab-stops: list 72.0pt">
										<font size="3">
												<span style="FONT-SIZE: 13.5pt; FONT-FAMILY: 新宋体">具有标识弱点和增强过程的手段。<span lang="EN-US"><o:p></o:p></span></span>
										</font>
								</li>
								<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l12 level2 lfo19; tab-stops: list 72.0pt">
										<font size="3">
												<span style="FONT-SIZE: 13.5pt; FONT-FAMILY: 新宋体">采用过程数据分析使用新技术的代价效益并提出改进。<span lang="EN-US"><o:p></o:p></span></span>
										</font>
								</li>
								<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l12 level2 lfo19; tab-stops: list 72.0pt">
										<font size="3">
												<span style="FONT-SIZE: 13.5pt; FONT-FAMILY: 新宋体">项目队伍能够分析出错原因并防止其再次出现。<span lang="EN-US"><o:p></o:p></span></span>
										</font>
								</li>
								<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l12 level2 lfo19; tab-stops: list 72.0pt">
										<font size="3">
												<span style="FONT-SIZE: 13.5pt; FONT-FAMILY: 新宋体">防止浪费是第五级的重点。<span lang="EN-US"><o:p></o:p></span></span>
										</font>
								</li>
						</ul>
				</li>
				<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l12 level1 lfo19; tab-stops: list 36.0pt">
						<span style="FONT-FAMILY: 新宋体">改进的途径在于已有过程的增量改进和使用新技术和新方法的革新<span lang="EN-US"><o:p></o:p></span></span>
				</li>
		</ul>
		<p>
				<b>
						<span style="FONT-SIZE: 18pt; FONT-FAMILY: 新宋体">
								<font size="3">构成</font>
						</span>
				</b>
		</p>
		<ul type="disc">
				<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l7 level1 lfo20; tab-stops: list 36.0pt">
						<span lang="EN-US">
								<a href="http://www.8848software.com/cmmchina/whatiscmm/kpa_l5_dp.html" tppabs="http://moon.nju.edu.cn/CMMChinese/WhatIsCMM/kpa_l5_dp.html">
										<span style="FONT-FAMILY: 新宋体">
												<font color="#002c99">缺陷预防（Defect Prevention）</font>
										</span>
								</a>
						</span>
				</li>
		</ul>
		<p>
				<font size="3">
						<span style="FONT-SIZE: 13.5pt; FONT-FAMILY: 新宋体">识别出错原因，防止错误再现</span>
						<span lang="EN-US" style="FONT-SIZE: 13.5pt">(通过改变定义的软件过程)</span>
				</font>
		</p>
		<p>
				<span style="FONT-SIZE: 13.5pt; FONT-FAMILY: 新宋体">
						<font size="3">　<span lang="EN-US"><o:p></o:p></span></font>
				</span>
		</p>
		<ul type="disc">
				<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l10 level1 lfo21; tab-stops: list 36.0pt">
						<span lang="EN-US">
								<a href="http://www.8848software.com/cmmchina/whatiscmm/kpa_l5_tcm.html" tppabs="http://moon.nju.edu.cn/CMMChinese/WhatIsCMM/kpa_l5_tcm.html">
										<font color="#002c99">技术变更管理（Technology Change Management）</font>
								</a>
						</span>
				</li>
		</ul>
		<p>
				<font size="3">
						<span style="FONT-SIZE: 13.5pt; FONT-FAMILY: 新宋体">识别有益的新技术</span>
						<span lang="EN-US" style="FONT-SIZE: 13.5pt">(工具、方法和过程)，并按有序的方式将其转移至机构之中。其重点在于在变化的世界中有效的完成革新。</span>
				</font>
		</p>
		<p>
				<span style="FONT-SIZE: 13.5pt">
						<font size="3">　<span lang="EN-US"><o:p></o:p></span></font>
				</span>
		</p>
		<ul type="disc">
				<li class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l15 level1 lfo22; tab-stops: list 36.0pt">
						<span lang="EN-US">
								<a href="http://www.8848software.com/cmmchina/whatiscmm/kpa_l5_pcm.html" tppabs="http://moon.nju.edu.cn/CMMChinese/WhatIsCMM/kpa_l5_pcm.html">
										<span style="FONT-SIZE: 13.5pt; FONT-FAMILY: 新宋体">
												<font color="#002c99" size="3">过程变更管理（Process Change Management）</font>
										</span>
								</a>
						</span>
				</li>
		</ul>
		<p>
				<span style="FONT-SIZE: 13.5pt; FONT-FAMILY: 新宋体">
						<font size="3">连续改进机构所采用的软件过程，以改进软件质量，提高生产率和减少产品开发时间<span lang="EN-US"><o:p></o:p></span></font>
				</span>
		</p>
		<p>
				<font size="3">
						<span style="FONT-SIZE: 13.5pt; FONT-FAMILY: 新宋体">概括来说，第五级企业的重点是连续的过程改进</span>
						<span style="FONT-SIZE: 18pt">。</span>　</font>
		</p>
		<p>
				<font size="3">
						<span style="FONT-SIZE: 18pt; FONT-FAMILY: 新宋体">　</span>
						<span lang="EN-US" style="FONT-FAMILY: 新宋体">
								<o:p>
								</o:p>
						</span>
				</font>
		</p>
		<p>
				<font size="3">
						<span style="FONT-SIZE: 13.5pt; FONT-FAMILY: 新宋体">纵观整个</span>
						<span lang="EN-US" style="FONT-SIZE: 13.5pt">CMM，软件企业提高自身成熟度的历程是一个从无序到有序，从特殊到一般，从定性到定量，最后不断自我完善的过程。</span>
				</font>
		</p>
<img src ="http://www.blogjava.net/hengheng123456789/aggbug/107754.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hengheng123456789/" target="_blank">哼哼</a> 2007-04-01 14:27 <a href="http://www.blogjava.net/hengheng123456789/archive/2007/04/01/107754.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CMM简介</title><link>http://www.blogjava.net/hengheng123456789/archive/2007/04/01/107753.html</link><dc:creator>哼哼</dc:creator><author>哼哼</author><pubDate>Sun, 01 Apr 2007 06:24:00 GMT</pubDate><guid>http://www.blogjava.net/hengheng123456789/archive/2007/04/01/107753.html</guid><wfw:comment>http://www.blogjava.net/hengheng123456789/comments/107753.html</wfw:comment><comments>http://www.blogjava.net/hengheng123456789/archive/2007/04/01/107753.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hengheng123456789/comments/commentRss/107753.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hengheng123456789/services/trackbacks/107753.html</trackback:ping><description><![CDATA[
		<p>从第一台计算机出现至今，计算机的发展速度令人瞠目。在应用方面，计算机从由少数科学家从事数学计算到今天遍及社会生活的各个领域，人们可以通过它对弈，也可以通过它预测天气。在技术方面，计算机硬件的发展是日新月异，例如中央处理器（CPU）的速度是每隔6个月翻一倍，而成本则是每隔6个月减少一倍。但在计算机软件方面，其发展却是差强人意，虽然也有很多新的软件开发方法和技术不断提出，但软件无论在生产率还是在质量方面总是达不到预期效果。 </p>
		<p>计算机软件开发的问题一直是困扰软件企业的关键问题。随着时代的发展人们开始意识到这些企业的基本问题不在于新技术是否使用，而在于软件过程的管理问题。软件过程包括两个方面，其一是软件开发的管理过程（Software Management Process），其二则是软件开发的工程过程（Software Engineering Process）。软件企业的开发机构在形成一套完整而成熟的软件过程后，软件的开发才能够步入正轨，才能保证在约定的期限内以固定的成本生产出客户满意的产品。 </p>
		<p>软件机构形成一套完整而成熟的软件过程不是一蹴而就的，它需要一个从无序到有序，从特殊到一般，从定性到定量，最后再从静态到动态的历程，或者说软件机构在形成成熟的软件过程之前必须经历一系列的成熟阶段（Maturity Level）。软件机构首先要判断自己属于哪一个成熟阶段，然后再根据自身的实际情况决定应该重点采取哪一些活动（Activity）来更有效地改进自己的软件过程。其他企业在同软件企业订立软件开发合同时也可以根据该企业机构所处的成熟阶段判断其软件开发能力，进而判断相关的软件风险。所有这些都需要一个理论指导来作出相关判断，能力成熟度模型（CMM）就是这样一个理论模型，它规定了机构成熟阶段的框架，以及如何据之判断软件机构所处的成熟阶段和机构为改进自己的软件过程应该采取的办法。 </p>
		<h1>
				<b>
						<a name="CMMBG">
						</a>
				</b>
				<font size="3">CMM产生背景 </font>
		</h1>
		<h2>
				<font size="3">主要问题 </font>
		</h2>
		<p>在过去的二十年里，新的软件开发方法和技术的使用并未使软件生产率和生产质量得到有效的提高。软件生产商开始意识到他们的基本问题在于对软件的生产过程管理不力，主要体现在：软件产品不能按时完成、超出预算的成本、以及采用新的技术和工具后其好处难以体现。 </p>
		<h2>
				<font size="3">主要作用 </font>
		</h2>
		<p>CMM可以指导软件机构如何控制软件产品的开发和维护过程，以及如何向成熟的软件工程体系演化，并形成一套良性循环的管理文化。具体说来，一个企业要想改进其生产过程，应该采取如下策略和步骤：</p>
		<ul>
				<li>确定软件企业当前所处的过程成熟级别； 
</li>
				<li>了解对改进软件生产质量和加强生产过程控制起关键作用的因素； 
</li>
				<li>将工作重点集中在有限几个关键目标上，有效达到改进机构软件生产过程的效果，进而可持续地改进其软件生产能力。 </li>
		</ul>
		<h1>
				<b>
						<a name="CMMBC">
						</a>
				</b>
				<font size="3">CMM的基本概念 </font>
		</h1>
		<ul>
				<li>
						<h2>
								<a name="sp">
								</a>
								<font size="3">软件过程 </font>
						</h2>
				</li>
		</ul>
		<blockquote>
				<p>人们在开发和维护软件及其相关产品时所涉及的各种活动、方法、实践和改革等。其中软件相关产品包括软件项目计划、设计文档、程序代码、测试用例和用户手册等。 </p>
		</blockquote>
		<ul>
				<li>
						<h2>
								<font size="3">软件过程能力 </font>
						</h2>
				</li>
		</ul>
		<blockquote>
				<p>当遵循某个软件过程时所能达到的期望效果，它可以有效预测企业接收新的软件项目时可能得到的结果。 </p>
		</blockquote>
		<ul>
				<li>
						<h2>
								<font size="3">软件过程性能 </font>
						</h2>
				</li>
		</ul>
		<blockquote>
				<p>当遵循某个软件过程时所达到的实际效果。它可以用于验证软件过程能力。 </p>
		</blockquote>
		<ul>
				<li>
						<h2>
								<font size="3">软件过程成熟度 </font>
						</h2>
				</li>
		</ul>
		<blockquote>
				<p>指一个特定的软件过程被显式定义、管理、度量、控制和能行的程度。成熟度可以用于指示企业加强其软件过程能力的潜力。 当一个企业达到了一定的软件过程成熟级别后，它将通过制定策略、建立标准和确立机构结构使它的软件过程制度化。而制度化又促使企业通过建立基础设施和公司文化来支持相关的方法、实践和过程。从而使之可以持续并维持一个良性循环。 </p>
		</blockquote>
		<ul>
				<li>
						<h2>
								<font size="3">成熟与不成熟 </font>
						</h2>
				</li>
		</ul>
		<blockquote>
				<p>企业要通过选择最关键的目标来进行过程改进，应该搞清成熟的软件过程和不成熟的过程之间的差异。 </p>
				<p>不成熟的企业有如下标志：</p>
				<ul>
						<li>缺乏确定的软件过程和相应的管理和控制； 
</li>
						<li>即使给出了软件过程，也不严格的遵循和强制执行； 
</li>
						<li>管理是完全被动的，管理者采用的策略是救火式的，即出了事才去解决，解决的时候也难以纵观全局，往往只顾眼前； 
</li>
						<li>由于缺乏有依据的估算，制订软件预算和生产计划时往往跟着感觉走，实际生产时则常常超标； 
</li>
						<li>如果强制在预定期限内完成，那么软件的功能和质量肯定是得不到保证； 
</li>
						<li>缺乏评价软件产品质量和解决产品缺陷和过程问题的客观基础。 </li>
				</ul>
				<p>成熟的企业则有如下标志：</p>
				<ul>
						<li>具有在企业范围内管理、控制软件开发和维护过程的能力； 
</li>
						<li>现有人员和新进人员均了解所遵循的软件过程，且工作活动均按照事先的计划完成； 
</li>
						<li>在定义好的软件过程中，所有项目和机构中的角色和责任分明； 
</li>
						<li>制定的计划是有效的且与实际的工作进展一致； 
</li>
						<li>软件过程在必要时可按照一定规则和程序加以修改； 
</li>
						<li>软件产品和过程的具有一定的可控性。这主要体现在： 
<ol><li>管理者能够监督软件产品的质量和生产过程； 
</li><li>具有客观的和定量化的措施来判断产品质量并分析产品与生产过程中的问题； 
</li><li>计划和预算有章可循，它是基于历史数据的，从而是实际可行的； 
</li><li>预算的结果，包括成本、时间表、产品功能和质量等，通常能够达到； 
</li><li>有关的参与者完全理解遵循软件过程的价值并认真地遵循之； 
</li><li>具有支撑软件过程的基础设施，如标准过程库、历史数据库等。 </li></ol></li>
				</ul>
		</blockquote>
		<h1>
				<b>
						<a name="CMMFL">
						</a>
				</b>
				<font size="3">CMM的五级成熟度 </font>
		</h1>
		<blockquote>
				<blockquote>
						<h2>
								<font size="3">基本前提 </font>
						</h2>
						<ul>
								<li>软件质量在很大程度上取决于产生软件的软件过程的质量和能力； 
</li>
								<li>软件过程是一个可管理、可度量并不断改进的过程； 
</li>
								<li>软件过程的质量受到用以支撑它的技术和设施的影响； 
</li>
								<li>企业在软件过程中所采用的技术层次应适应于软件过程的成熟度。 </li>
						</ul>
						<h2>
								<font size="3">基本原理 </font>
						</h2>
						<ul>
								<li>CMM强调连续的软件过程改进。该连续的改进基于多个演化步骤。CMM将这些演化步骤划分成五个级别。这种分级结构的理论依据是软件质量原理。 
</li>
								<li>每一级别都包括若干目标。当满足某一目标后，软件过程的相应部分便确定下来。 
</li>
								<li>五级成熟度定义了一个标准，用以度量机构的软件过程成熟度和评价其软件过程能力。 </li>
						</ul>
						<h2>
								<font size="3">基本内容 </font>
						</h2>
						<p>CMM的成熟度理论目前主要涉及如下内容：</p>
						<ul>
								<li>机构和资源的管理: 涉及机构本身的责任，人员和其它资源设施。 
</li>
								<li>软件工程过程及其管理: 涉及软件工程过程，即软件过程的深度、范围和完整性以及如何度量、管理和改进这样的过程。 
</li>
								<li>工具和技术: 软件工程过程中使用的开发工具和技术。 </li>
						</ul>
						<h2>
								<font size="3">五个成熟度级别 </font>
						</h2>
						<ul>
								<li>初始级 
</li>
								<li>可重复级：有规章的过程 
</li>
								<li>定义级：标准化、一致的过程 
</li>
								<li>管理级：可预测过程 
</li>
								<li>优化级：可持续改进的过程 </li>
						</ul>
						<h2>
								<font size="3">成熟度的行为刻划 </font>
						</h2>
						<h3>
								<font size="3">第一级：初始级 </font>
						</h3>
						<ul>
								<li>成功来源于个人英雄主义而非机构行为，因此它不可重复，更换人员后成功便难以维持。 </li>
						</ul>
						<h3>
								<font size="3">第二级：可重复级 </font>
						</h3>
						<ul>
								<li>针对特定软件项目建立管理该项目的策略和实现这些策略的过程。 
</li>
								<li>新项目的计划和管理基于类似项目的经验。 
</li>
								<li>软件过程能力主要通过管理单个项目的软件生产过程来得到提高和增强。 
</li>
								<li>不同的项目可有不同的软件过程，机构应当建立一定的方针和策略以针对具体的项目选择合适的软件生产过程并进行管理。 </li>
						</ul>
						<p>可重复级的主要特点在于确定了基本的软件生产管理和控制，具体来讲，有：</p>
						<ul>
								<li>结合已有项目的经验和新项目的特点来确定本项目的责任和承诺； 
</li>
								<li>软件生产成本、时间表和实现的功能被有效跟踪； 
</li>
								<li>识别实现承诺所需解决的关键问题； 
</li>
								<li>定义软件项目过程标准，机构要确保其被遵守。 </li>
						</ul>
						<p>概括来说，第二级的主要特点是项目计划和跟踪是确定且有效的，项目的软件过程是可控的，以及已有的成功经验是可重复的。 </p>
						<h3>
								<font size="3">第三级：定义级 </font>
						</h3>
						<ul>
								<li>有一个机构范围内标准的软件过程，软件工程活动和管理活动被集成为一个有机的整体。标准化的目的是使高层管理者和软件技术人员能够有效合作。 
</li>
								<li>有一个组例如软件工程组（SEPG）专门负责订立机构的标准软件过程，并且在机构中制定培训计划来确保相关人员和管理者有足够的知识和技能完成标准过程所赋予的角色。 
</li>
								<li>标准的软件过程结合具体项目的特点经过裁剪即形成项目定义软件过程，它是一组集成的完善定义的软件工程和管理过程。 
</li>
								<li>一个完善定义的软件过程应包括就绪准则、输入、工作过程、验证机制、输出和完成准则。 
</li>
								<li>对于已建立的产品生产线，其成本、时间表和实现功能均可跟踪和控制，软件产品的质量可以得到保证。 
</li>
								<li>软件过程能力的实现主要基于在机构范围内对一个定义软件过程的活动、角色和责任的共同理解。 </li>
						</ul>
						<p>概括来说，第三级的主要特征在于软件过程已被提升成标准化过程，从而更加具有稳定性、重复性和可控性。 </p>
						<h3>
								<font size="3">第四级：管理级 </font>
						</h3>
						<ul>
								<li>软件的过程和产品有定量的质量指标。 
<ul><li>重要的软件过程活动均配有生产率和质量方面的度量指标； 
</li><li>应用数据库来收集和分析定义软件过程中涉及的各种数据； 
</li><li>对项目软件过程和软件质量的评价有定量的基准。 </li></ul></li>
								<li>软件项目的产品和生产过程的控制具有可预测性。 
<ul><li>将软件过程性能可能出现的偏差控制在可接受的量化界限内； 
</li><li>具体区分影响过程性能发生偏差的有效因素和偶然因素； 
</li><li>向新领域拓展的风险是可预知的并被仔细管理和权衡。 </li></ul></li>
						</ul>
						<p>概括来说，第四级的主要特征是定量化、可预测、异常控制和高质量。 </p>
						<h3>
								<font size="3">第五级：优化级 </font>
						</h3>
						<ul>
								<li>机构集中于持续的过程改进 
<ul><li>具有标识过程缺陷和增强过程能力的有效手段。 
</li><li>利用试验数据分析使用新技术所需的代价和带来的效益，然后再有选择地采用。 
</li><li>当出现偏差时，软件项目人员能够分析出错原因并采取有效手段防止其再次出现。 
</li><li>防止不必要的浪费是第五级的重点。 </li></ul></li>
								<li>改进的途径有两个，一个是对已有过程的渐进式改进；另一个则是有选择地使用新技术和新方法所带来的革新。 </li>
						</ul>
						<p>概括来说，第五级的主要特征是新技术的采用和软件过程的改进被作为日常的业务活动来加以计划和管理。</p>
				</blockquote>
		</blockquote>
<img src ="http://www.blogjava.net/hengheng123456789/aggbug/107753.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hengheng123456789/" target="_blank">哼哼</a> 2007-04-01 14:24 <a href="http://www.blogjava.net/hengheng123456789/archive/2007/04/01/107753.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CMMI SPP各阶段流程图</title><link>http://www.blogjava.net/hengheng123456789/archive/2007/04/01/107750.html</link><dc:creator>哼哼</dc:creator><author>哼哼</author><pubDate>Sun, 01 Apr 2007 06:11:00 GMT</pubDate><guid>http://www.blogjava.net/hengheng123456789/archive/2007/04/01/107750.html</guid><wfw:comment>http://www.blogjava.net/hengheng123456789/comments/107750.html</wfw:comment><comments>http://www.blogjava.net/hengheng123456789/archive/2007/04/01/107750.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hengheng123456789/comments/commentRss/107750.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hengheng123456789/services/trackbacks/107750.html</trackback:ping><description><![CDATA[引自：<a href="http://www.8848software.com/cmmchina/whatiscmm/swcmmspp.html#cmmisppdown">http://www.8848software.com/cmmchina/whatiscmm/swcmmspp.html#cmmisppdown</a><br /><br />CMMI SPP各阶段流程图：<br /><br /><ul><li><p class="Font11pt" align="justify">立项管理流程 </p></li></ul><p class="Font11pt" align="justify"><img height="230" src="http://www.8848software.com/cmmchina/image/cmmispp3.gif" width="540" border="0" /></p><ul><li><p class="Font11pt" align="justify">结项管理流程 </p></li></ul><p class="Font11pt" align="justify"><img height="173" src="http://www.8848software.com/cmmchina/image/cmmispp4.gif" width="540" border="0" /></p><ul><li><p class="Font11pt" align="justify">项目规划流程 </p></li></ul><p class="Font11pt" align="justify"><img height="175" src="http://www.8848software.com/cmmchina/image/cmmispp5.gif" width="479" border="0" /></p><ul><li><p class="Font11pt" align="justify">项目监控流程 </p></li></ul><p class="Font11pt" align="justify"><img height="122" src="http://www.8848software.com/cmmchina/image/cmmispp6.gif" width="473" border="0" /></p><ul><li><p class="Font11pt" align="justify">风险管理流程 </p></li></ul><p class="Font11pt" align="justify"><img height="170" src="http://www.8848software.com/cmmchina/image/cmmispp7.gif" width="325" border="0" /></p><ul><li><p class="Font11pt" align="justify">需求管理流程 </p></li></ul><p class="Font11pt" align="justify"><img height="244" src="http://www.8848software.com/cmmchina/image/cmmispp8.gif" width="441" border="0" /></p><ul><li><p class="Font11pt" align="justify">需求开发流程 </p></li></ul><p class="Font11pt" align="justify"><img height="342" src="http://www.8848software.com/cmmchina/image/cmmispp9.gif" width="462" border="0" /></p><ul><li><p class="Font11pt" align="justify">技术预研流程 </p></li></ul><p class="Font11pt" align="justify"><img height="84" src="http://www.8848software.com/cmmchina/image/cmmispp10.gif" width="530" border="0" /></p><ul><li><p class="Font11pt" align="justify">系统设计流程 </p></li></ul><p class="Font11pt" align="justify"><img height="220" src="http://www.8848software.com/cmmchina/image/cmmispp11.gif" width="543" border="0" /></p><ul><li><p class="Font11pt" align="justify">实现与测试流程 </p></li></ul><p class="Font11pt" align="justify"><img height="219" src="http://www.8848software.com/cmmchina/image/cmmispp12.gif" width="485" border="0" /></p><ul><li><p class="Font11pt" align="justify">系统测试流程 </p></li></ul><p class="Font11pt" align="justify"><img height="165" src="http://www.8848software.com/cmmchina/image/cmmispp13.gif" width="351" border="0" /></p><ul><li><p class="Font11pt" align="justify">Beta测试流程 </p></li></ul><p class="Font11pt" align="justify"><img height="55" src="http://www.8848software.com/cmmchina/image/cmmispp14.gif" width="529" border="0" /></p><ul><li><p class="Font11pt" align="justify">客户验收流程 </p></li></ul><p class="Font11pt" align="justify"><img height="52" src="http://www.8848software.com/cmmchina/image/cmmispp15.gif" width="563" border="0" /></p><ul><li><p class="Font11pt" align="justify">技术评审流程 </p></li></ul><p class="Font11pt" align="justify"><img height="117" src="http://www.8848software.com/cmmchina/image/cmmispp16.gif" width="362" border="0" /></p><ul><li><p class="Font11pt" align="justify">配置管理流程 </p></li></ul><p class="Font11pt" align="justify"><img height="203" src="http://www.8848software.com/cmmchina/image/cmmispp17.gif" width="311" border="0" /></p><ul><li><p class="Font11pt" align="justify">质量保证流程 </p></li></ul><p class="Font11pt" align="justify"><img height="193" src="http://www.8848software.com/cmmchina/image/cmmispp18.gif" width="544" border="0" /></p><ul><li><p class="Font11pt" align="justify">外包与采购管理流程 </p></li></ul><p class="Font11pt" align="justify"><img height="244" src="http://www.8848software.com/cmmchina/image/cmmispp19.gif" width="562" border="0" /></p><ul><li><p class="Font11pt" align="justify">培训管理流程 </p></li></ul><p class="Font11pt" align="justify"><img height="156" src="http://www.8848software.com/cmmchina/image/cmmispp20.gif" width="572" border="0" /></p><ul><li><p class="Font11pt" align="justify">服务与维护流程 </p></li></ul><p class="Font11pt" align="justify"><img height="146" src="http://www.8848software.com/cmmchina/image/cmmispp21.gif" width="574" border="0" /></p><img src ="http://www.blogjava.net/hengheng123456789/aggbug/107750.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hengheng123456789/" target="_blank">哼哼</a> 2007-04-01 14:11 <a href="http://www.blogjava.net/hengheng123456789/archive/2007/04/01/107750.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>