核心观点:概念完整性和结构师 开发第二个系统所引起的后果:盲目的功能和频率猜测 图形(WIMP)界面的成功 增量开发模型更佳——渐进地精化 关于信息隐藏,Parnas 是正确的,我是错误的 人月到底有多少神话色彩?Boehm 的模型和数据 人就是一切(或者说,几乎是一切) 放弃权力的力量 如果人
... 原著结束语 E.1 软件系统可能是人类创造中最错综复杂的事物(从不同类型组成部分数量的角度出发)。 E.2 软件工程的焦油坑在将来很长一段时间内会继续地使人们举步维艰,无法自拔。
生死有命,富贵在天 那些想看到完美方案的人,其实在心底里就认为它们以前不存在,以后也不可能出现 含糊的表达将会导致误解 ...
没有任何技术或管理上的进展,能够独立地许诺十年内使生产率、可靠性或简洁性获得数量级上的进步。 建议: 仔细地进行市场调研,避免开发已上市的产品。 在获取和制订软件需求时,将快速原型开发作为迭代计划的一部分。 有机地更新软件,随着系统的运行、使用和测试,逐渐添加越来越多的功能。 不断挑选和培养杰出的概
不了解,就无法真正拥有 需要什么样的文档 不同用户需要不同级别的文档。某些用户仅仅偶尔使用程序,有些用户必须依赖程序,还有一些用户必须根据环境和目的的变动对程序进行修改。 使用程序。 目的。主要的功能是什么?开发程序的原因是什么? 环境。程序运行在什么样的机器、硬件配置和操作系统上? 范围。输入
带来坏消息的人不受欢迎 里程碑还是沉重的负担? 对于大型开发项目中的估计行为,政府的承包商做了两项有趣的研究。 研究结果显示: 如果在某项活动开始之前就着手估计,并且每两周进行一次仔细的修订。这样,随着开始时间的临近,无论最后情况会变得如何的糟糕,它都不会有太大的变化。 活动期间,对时间长短的过
剔除 bug 的设计 防范 bug 的定义 测试规格说明 自顶向下的设计 结构化编程 构件单元调试 本机调试。 内存转储 快照 交互式调试 测试用例 系统集成调试 使用经过调试的构件单元。 搭建充分的测试平台 控制变更 一次添加一个构件 阶段(量子)化、定期变更
巧匠因为他的工具而出名。 目标机器 目标机器的类型 计划安排 辅助机器和数据服务 仿真装置。 编译器和汇编平台。 程序库和管理。 编程工具。 文档系统。 性能仿真装置 高级语言和交互式编程 高级语言。 交互式编程。
不变只是愿望,变化才是永恒。 普遍的做法是,选择一种方法,试试看;如果失败了,没关系,再试试别的。不管怎么样,重要的是先去尝试。 试验性工厂和增大规模 对于大多数项目,第一个开发的系统并不合用。它可能太慢、太大,而且难以使用,或者三者兼而有之 因此,为舍弃而计划,无论如何,你一定要这样做。 唯一不
在一片文件的汪洋中,少数文档形成了关键的枢纽,每件项目管理的工作都围绕着它们运转。它们是经理们的主要个人工具。 计算机产品的文档 目标 :定义待满足的目标和需要,定义迫切需要的资源、约束和优先级。 技术说明 :计算机手册和性能规格说明。它是在计划新产品时第一个产生,并且最后完成的文档 进度、时间