软件构造 | 一. 概述
约 448 字大约 1 分钟
2025-06-06
定义
软件
软件是现实的需求在计算机的投影。
软件相对于计算机程序的区别是,软件是满足了人们的需求的。
构造
构造是把需求映射到投影的步骤。
构造的过程一般是:
- 需求分析
- 系统设计
- 写代码实现
- 测试
- 运行
因此写代码不等于软件构造:写代码只是软件构造的一部分。
其次构造的每一步是有损的(不可靠的),比如码农不小心把领导的想法理解错了之类的。前面步骤错了,后面的步骤也会错,这被称为放大效应。
最后,需求是经常变化的,这也会导致软件写一半发现前功尽弃。
渐进式开发
什么是好的代码
- 没有 bug,能满足需求
- 易于理解
- 易于修改
后两点特别针对公司企业:公司里不只有你一个人写代码,代码的修改和维护很有可能交给其他人来做。
渐进式开发
为了减少前面提到的放大效应,写出更好的代码,现在企业大多采用渐进式开发(Incremental development),具体的表现是测试驱动开发(Test-driven development, TDD)。
测试驱动开发
TDD 开发一般是先写测试再写具体代码。先写测试这一步其实就要求开发者先去理解需求。
如果一上来就写代码,很可能写一半发现自己搞错需求了,那么前功尽弃,再一次陷入放大效应的漩涡中。因此先写 TDD 开发有助于减小放大效应的影响。