zoukankan      html  css  js  c++  java
  • 人月神话阅读笔记之三

    在程序发布给顾客使用之后,它不会停止变化。发布后的变更被称为“程序维护”,但是软件的维护过程不同于硬件维护。计算机系统的硬件维护包括了三项活动——替换损坏的器件、清洁和润滑、修改设计上的缺陷。(大多数情况下——但不是全部——变更修复的是实现上、而不是结构上的一些缺陷。对于用户而言,这常常是不可见的。)软件维护不包括清洁、润滑和对损坏器件的修复。它主要包含对设计缺陷的修复。和硬件维护相比,这些软件变更包含了更多的新增功能,它通常是用户能察觉的。对于一个广泛使用的程序,其维护总成本通常是开发成本的 40%或更多。令人吃惊的是,该成本受用户数目的严重影响。用户越多,所发现的错误也越多。麻省理工学院核科学实验室的 Betty Campbell 指出特定版本的软件发布生命期中一个有趣的循环。如图 11.2 所示。起初,上一个版本中被发现和修复的 bug,在新的版本中仍会出现。新版本中的新功能会产生新的 bug。解决了这些问题之后,程序会正常运行几个月。接着,错误率会重新攀升。Campbell 认为这是因为用户的使用到达了新的熟练水平,他们开始运用新的功能。这种高强度的考验查出了新功能中很多不易察觉的问题。
    程序维护中的一个基本问题是——缺陷修复总会以(20-50)%的机率引入新的 bug。所以整个过程是前进两步,后退一步。这个过程在自己的开发过程中深有体会,总是会在不断地测试出发现新bug,修改后依然会出现新的bug。
  • 相关阅读:
    Nodejs express框架 浅析
    Nodejs 基础知识 浅析
    Angular1 基础知识 浅析(含锚点)
    canvas2D 基础知识 浅析
    1018 内置对象
    1017 内置对象
    1016 Repeater-重复器
    1014 简单控件和复合控件
    1013 认识WebForm
    0929 MDI窗体容器 权限设置
  • 原文地址:https://www.cnblogs.com/yeyueweiliang/p/13086282.html
Copyright © 2011-2022 走看看