0%

刚看完瀑布模型过程代表作--《软件是这样炼成的》,书中介绍了一种庞大的、重型的过程方法。为了比较,又看了这本关于敏捷开发的书。
关于敏捷开发,之前陆陆续续有些了解,《敏捷软件开发(原则模式与实践)》的作者作为敏捷开发的创始者之一,在书中系统的说明了敏捷开发的思想以及相关实践。
敏捷开发(Agile Development),是一种面临迅速变化的需求快速开发软件的能力。为了获取这种敏捷性,我们需要使用一些可以提供必要的纪律和反馈的实践。我们需要使用一些可以保持我们的软件灵活、可维护的设计原则,并且我们需要知道一些已经被证明针对特定的问题可以平衡这些原则的设计模式。

阅读全文 »

类型系统的一些概念,众说纷纭,使用上也比较乱。有些东西,甚至不好严格定义。以下算学术界的一种相对“严格”的说法。

1.先定义一些基础概念

Program Errors

  • trapped errors
    导致程序终止执行,如除0,Java中数组越界访问
  • untrapped errors
    出错后继续执行,但可能出现任意行为。如C里的缓冲区溢出、Jump到错误地址

Forbidden Behaviours

语言设计时,可以定义一组forbidden behaviors. 它必须包括所有untrapped errors, 但可能包含trapped errors.

Well behaved、ill behaved

  • well behaved: 如果程序执行不可能出现forbidden behaviors, 则为well behaved。
  • ill behaved: 否则为ill behaved...
阅读全文 »

定义

模板方法模式是类的行为模式。
准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。这就是模板方法模式的用意。

阅读全文 »

敏捷开发在中国的实践面临怎样的挑战?
敏捷开发作为互联网时代的“产物”,在商业模式的运作下被迅速推广,它的确解决了一部分传统开发模式遇到的问题,如对需求的变化能快速做出反应,但同时也引发了许多问题,敏捷开发提倡的许多环节如结对编程、用户故事、评审会议等都有着较大的争议。

阅读全文 »

配置库管理
软件质量目标

这一册主要是简述了软件工程的改进,其实就是质量保证的方方面面过程域。
软件过程是一个为建造高质量软件所需完成的任务框架,软件过程改进包括下面四点:

  • 1、软件过程定义
  • 2、软件过程文档化
    包括软件过程定义文档化和过程执行文档化两部分
  • 3、软件过程培训
  • 4、软件过程强制执行
阅读全文 »

测试是检验和确认。我们都知道,它需要2个V(verification&validation),来使测试完成。
在今天的文章中,我们将进一步了解静态测试。它也被称为检验(verification)。我们将学习有关它的一切,并要特别强调这一点,因为动态测试往往受到更大的关注,并有无数的文章详细的进行了说明。
然而,如果不对与静态测试相对应的动态测试是什么进行解释,那讨论就将是不完整的。动态测试是验证(validation),另一个V。动态测试就是你使用实际的系统(不是什么代表系统的工件或模型),提供输入,获得输出并与预期运行输出的进行比较。它是以发现错误为目的的在系统上实际动手检验的工作。

阅读全文 »

引言

Code Review的作用和意义已在很多技术团队内达成共识,可是很多时候并未被有效执行,甚至被认为是一项费时费力的工作。借助一些工具可以更容易,更有效率地来进行Code Review,本文介绍的Jupiter即是其中之一。

阅读全文 »