我们学习计算机编程可能会做这些事情:
- 用Java写一个基于面向对象设计模式的程序。这是在学习语言和面向对象。
- 用递归的方法求斐波那契数列,这是学的算法。
- 写一个学生成绩登录系统,但没有大规模的测试和应用。
这类任务缺少复杂性和易变性,并不能算是软件工程任务。简单的任务可以直接开始编码,而复杂的系统需要按照一定的方法和流程才能设计好。软件工程涉及软件需求分析、软件设计、构建、测试和维护等领域,涉及计算机科学、管理学、数学、工业涉及等多个学科。
BasicCAT是我个人开发的一款应用,代码量已经达到20000行,在实践过程中我也自觉地运用了一些软件工程的知识。现在通过阅读邹欣的《构建之法》进行了更详细的了解。
这本书没有涉及太多代码,偏于理论,用于了解软件开发模式、敏捷开发、团队沟通、质量管理之类还算够用,更多还是得实践出真知啊。