知识卡片
软件工程与传统工程的根本差异
内容
软件工程常被拿来类比机械、电子等成熟工程学科,但两者有两个根本性差异,导致软件工程至今仍在寻找自己的立足点:一是缺乏可复用的”现成”构建块——传统工程能直接复用已验证的标准部件(如汽车设计不必重新发明引擎),而软件组件历来是为特定应用定制内部设计的,通用性受限,复杂系统常常要从头搭建;二是缺乏成熟的定量度量学——机械设备可以用平均无故障时间衡量可靠性,但软件不会像物理部件那样”磨损”,”复杂度”“质量”这类属性至今没有公认可靠的量化方法。发散:这解释了为什么软件工程的很多进展看起来更像经验总结(模式、方法论)而不是像物理学那样的定律推导——底层缺一把可靠的尺子去度量”这个系统有多复杂”“这次改动有多危险”,工程决策就只能更多依赖经验和判断,而不是精确计算。
参考来源
《计算机科学概论》第7章《软件工程》