WHAT?

集成是这样一种软件开发行为:将一些独立的软件组合为一个完整的系统。

WHY?

  • 更容易诊断缺陷
  • 尽早获得一个可工作的产品
  • 更好的顾客关系
  • 增强士气
  • 更可靠地估计进度表
  • 更准确的现状报告

HOW?

集成的两种方式

  • 阶段式集成(爆炸集成)
  • 增量集成(滚雪球集成)

增量集成的策略

  • 自顶向下(Top-Down):使用底层stub类,逐渐替换为实际的类。若底层接口实现起来有bug,或者有性能问题,会导致顶层设计变更
  • 自底向上(Bottom-Up):“让底层细节驱动高层类的设计”违反了信息隐藏原则
  • 三明治(Sandwich)
  • 风险导向(Rick-Oriented)
  • 功能导向(Feature-Oriented):先搭骨架
  • T型集成(T-Shaped)

冒烟测试

对完整程序执行相对简单的检查,跑得通主流程,看看产品在运行时是否“冒烟”

Daily Build

  • 降低了低质量的风险,振奋士气,令隐藏起来的问题浮出水面不至堆积
  • 每日build
  • 检查失败的build
  • 如有必要成立专门的build小组
  • 在早上发布build,这样可以让测试人员当天测试新鲜的build,而且在白天也更易找到开发人员。若在晚上发布build而且失败了,肯定要加班
  • 两次checkin之间最多间隔一两天
  • Microsoft Windows 2000有5000万行代码,散布于数万个源文件中,完整地build一次需要若干台机器运行19小时——即使这样开发团队仍然设法每天build

《Code Complete》ch.29 集成的更多相关文章

  1. code complete part1

    最近在看code complete,学习了一些东西,作为点滴,记录下来. 关于类: 类的接口抽象应该一致 类的接口要可编程,不要对类的使用者做过多的假设.不要出现类似于:A的输入量一定要大于多少小于多 ...

  2. 重读 code complete 说说代码质量

    重读code complete 说说代码质量 2014年的第一篇文章本来计划写些过去一年的总结和新年展望,但是因为还有一些事情要过一阵才能完成,所以姑且不谈这个,说说最近重读code complete ...

  3. Code Complete 读后总结和新的扩展阅读计划

    Code Complete 读后总结和新的扩展阅读计划 用了一年时间终于将代码大全读完了,在这里做一个简单的总结,并安排下一阶段的扩展阅读计划. 1.选择代码大全作为我程序员职业入门的第一本书,我认为 ...

  4. 《Code Complete》ch.24 重构

    WHAT? 重构(refactoring),Martin Fowler将其定义为“在不改变软件外部行为的前提下,对其内部结构进行改变,使之更容易理解并便于修改”. WHY? 神话:一个管理很完善的软件 ...

  5. 《Code Complete》ch.23 调试

    WHAT? 调试——发现错误的一种手段 WHY? 相对于不善于调试的程序员,善于调试的程序员只需要前者1/20的时间就可以找出问题所在 HOW? 科学的调试方法 把错误的发生稳定下来:假设-证实/证伪 ...

  6. 《Code Complete》ch.21 协同构建

    WHAT? 所有的协同构建技术都试图通过这样那样的途径,将展示工作的过程正式化,以便将错误暴露出来 WHY? 提高缺陷检出率,从而缩短开发周期,降低开发成本 发现不明显的错误信息,如不恰当的注释.硬编 ...

  7. 《Code Complete》ch.16 控制循环

    WHAT? 反复执行的代码片段(你是第一天学编程吗) WHY? 知道如何使用及何时使用每一种循环是创建高质量软件的一个决定性因素 HOW? 检测位于循环开始/循环结尾 带退出的循环 进入循环 只从一个 ...

  8. 《Code Complete》ch.15 使用条件语句

    WHAT? 条件语句指if.else.case.switch,循环语句指for.while WHY? 不用条件语句你写得出代码吗? HOW? if-then 正常情况放在异常情况之前 执行频率高的情况 ...

  9. 《Code Complete》ch.14 组织直线型的代码

    WHAT? 最简单的控制流:即按照先后顺序放置语句与语句块 WHY? 尽管组织直线型的代码是一个简单的任务,但代码结构上的一些微妙之处还是会对代码质量.正确性.可读性和可维护性带来影响 HOW? 必须 ...

随机推荐

  1. VBA excel中表示列的字母换成数字

    出自这里 数字转列标: Split(Cells(1,).Address(1,0),"$")(0)    '将1-256替换红色的1就可以 Cells(1, a) 选中对应的第一行第 ...

  2. 并行计算之OpenMP中的任务调度

    本文参考<OpenMP中的任务调度>博文,主要讲的是OpenMP中的schedule子句用法. 一.应用需求 在OpenMP并行计算中,任务调度主要用于并行的for循环.当for循环中每次 ...

  3. C#本地时间和GMT(UTC)时间的转换

    /// <summary> /// 本地时间转成GMT时间 /// </summary> 4 public static string ToGMTString(DateTime ...

  4. 【python】浅谈for...else...语句

    for循环可以和 else 子句同时使用(for...else).当迭代完for循环完整个列表失败后,会执行else语句.但循环中被 break 终止的情况下不会执行.如下例子所示: for i in ...

  5. 【设计模式】单件模式(Singleton)--各类单件模式的比较

    单件模式 确保一个类只有一个实例,并提供一个安全的访问点. 线程安全+延时初始化+高性能(使用:延时初始化占位符模式) ------测试----------- 线程安全+[非]延时初始化 线程安全+延 ...

  6. 激活Maven profile的几种方式

    首先简单介绍下 Maven 的 profile 是什么.对于人来说,profile 是指人的肖像,轮廓,比如论坛里每个人注册了帐号后,可以设置自己的 profile,放上照片,介绍等等.对于 Mave ...

  7. quotas and disk replace on netapp

    ==================================================================================================== ...

  8. C++设计新思维的traits和policy

    http://blog.csdn.net/zhoudaxia/article/details/4486487 这篇博客讲得挺清楚的,本来想自己写写看总结下的,不过看了下这个文章已经写得很清楚了,倒没有 ...

  9. 【原】sql 查询结果合为一行

    SELECT COUNT(*) AS AllCount,t.AssignedCount,(COUNT(*)-t.AssignedCount) AS UnassignedCountFROM 药品表jOI ...

  10. 黄聪:wordpress在IIS8中设置默认编码(windows2012服务器)

    web.config中配置 <?xml version="1.0" encoding="UTF-8"?> <configuration> ...