zoukankan
html css js c++ java
《人月神话》阅读笔记01
在图 1.1 的左上部分是程序(Program)。它本身是完整的,可以由作者在所开发的系统平台上运行。它通常是车库中产出的产品,以及作为单个程序员生产率的评估标准。 有两种途径可以使程序转变成更有用的,但是成本更高的东西,它们表现为图中的边界。 水平边界以下,程序变成编程产品(Programming Product)。这是可以被任何人运行、 测试、修复和扩展的程序。它可以运行在多种操作系统平台上,供多套数据使用。要成为通用的编程产品,程序必须按照普遍认可的风格来编写,特别是输入的范围和形式必须扩展, 以适用于所有可以合理使用的基本算法。接着,对程序进行彻底测试,确保它的稳定性和可 靠性,使其值得信赖。这就意味着必须准备、运行和记录详尽的测试用例库,用来检查输入 的边界和范围。此外,要将程序提升为程序产品,还需要有完备的文档,每个人都可以加以 使用、修复和扩展。经验数据表明,相同功能的编程产品的成本,至少是已经过测试的程序 的三倍。回到图中,垂直边界的右边,程序变成编程系统(Programming System)中的一个构件单元。它是在功能上能相互协作的程序集合,具有规范的格式,可以进行交互,并可以用 来组装和搭建整个系统。要成为系统构件,程序必须按照一定的要求编制,使输入和输出在 语法和语义上与精确定义的接口一致。同时程序还要符合预先定义的资源限制——内存空 间、输入输出设备、计算机时间。最后,程序必须同其它系统构件单元一道,以任何能想象 到的组合进行测试。由于测试用例会随着组合不断增加,所以测试的范围非常广。因为一些 意想不到的交互会产生许多不易察觉的 bug,测试工作将会非常耗时,因此相同功能的编程 系统构件的成本至少是独立程序的三倍。如果系统有大量的组成单元,成本还会更高。 图 1.1 的右下部分代表编程系统产品(Programming Systems Product)。和以上的所 有的情况都不同的是,它的成本高达九倍。然而,只有它才是真正有用的产品,是大多数系统开发的目标。
在了解到编程系统产品的演进之后,知道一个产品的发布过程有多么不容易,产品并不是都可以用两人合作来代替的,在未来产品生产中,多数都是一个大公司生产,再创建一个百度是不可能的,通过对“加减乘除”这个网页的制作,更明白了演进的深意。一个网页的运行维护需要资金与后期的修复。
查看全文
相关阅读:
JS中怎样获取当前日期的前一个月和后一个月的日期字符串
JS中怎样将时间字符串转换成Date并比较大小
Java中判断两个Date时间段是否有交集的方法
gRPC中Java和node进行异构通信-互为客户端和服务端
ffmpeg external libraries 下载地址
libsvtav1 的 qp 和比特率对照表
libsvtav1 AV1 编码速度比 libaom 大大提升
ffmpeg windows 最新编译内部版本下载地址变更
解开获取 aria2c 帮助信息的误区
frei0r 过了好几年增加 aech0r 滤镜
原文地址:https://www.cnblogs.com/watm/p/8296145.html
最新文章
ASP.Net Core -- Partial View
前端常用设计模式
Vue源码解析
开发调试的几个小技巧
Vue.js内部运行机制(一)
JS类数组对象及如何转变为真正的数组
JS、TS中的符号表达式
Form表单注意事项
趣谈网络协议
Reduce用法
热门文章
使用React-Router实现前端路由鉴权
Azure DevOps Server (TFS) 工作项中实现级联列表
Azure DevOps Server 2020 (原名TFS)
据说别人的代码能杀人于无形
Express新建工程以及新建路由规则、匹配路由规则、控制权转移
JS中怎样获取当前年以及前后几年并构造成对象数组
express不是内部或外部命令,也不是可运行的程序
Java中list.forEach方法的使用示例-根据key获取对应的value
Node中同步与异步的方式读取文件
Java对象之间相同属性的赋值
Copyright © 2011-2022 走看看