3 hours ago
- 软件工程常被错误地认为与传统工程有根本性的不同,但许多声称的差异要么过于简化,要么是错误的。
- 传统工程并不严格遵循瀑布模型;它也涉及迭代的、类似敏捷的过程,而不可预测性在所有工程领域都很常见。
- '代码即设计'这一概念是微妙的,并不独特地将软件与其他工程学科区分开来,因为在其他学科中设计和构建也是相互交织的。
- 软件工程并非不够严谨;它有自己形式的严谨性,例如自动化测试,而传统工程可能存在严重的文档和验证问题。
- 真正的差异包括软件的完美一致性(没有物理变化)、更快的迭代速度,以及与传统工程中严格的物理限制相比更柔性的约束。
- 尽管存在差异,所有工程领域都面临着共同的核心挑战,如需求变更、未知的未知以及知识孤岛,这使得它们相似多于不同。
- 认识到软件并非特殊,使得软件工程和传统工程之间可以相互学习,从而改进实践。