<软件工程>课程总结
“软件工程引论”这门课程尽管没有教授我们具体的算法和编程语言,但是从全面的角度培养了我们如何书写代码并且和团队成员共同完成编程任务的能力。在这学期初,我曾多次听说过“软件工程”这个名词,却始终不了解其深刻含义:什么叫软件?程序、软件、软件工程三者的关系又是如何?然而经过了几节课的学习之后,我拨云见日,从理论上认识了这些基本概念,对这些名词更深入的体会可能需要来源于丰富的实践。后来我们学习了开发流程(包括最基本的瀑布模型)和目前比较流行的敏捷软件开放。实话说,刚开始接触到这些新知识的时候我感觉不足为奇,但是后来随着课程的深入加上自己在团队项目开发中的实践,我逐渐地体会到了这些开发流程、模型和原则的重要性。当然,我们目前所开发的软件规模实在是小得可怜,如果今后有机会从事较大型的软件开发工作,我相信我会对这些理论知识有更入骨的体会,能够结合实例来分析这些流程各自所具有的优点和劣势。还有一点给我比较强烈的震撼是,之前我天真地以为程序猿坐在电脑前反复编写代码和调试代码是开发软件的绝大部分活动。学习之后,我才意识到需求分析、架构设计、详细设计、系统测试扮演着同样重要的地位,软件维护也占据着软件开发中不少的时间和金钱开销。一个比较失败的需求分析可能会使程序员辛辛苦苦、呕心沥血编写的代码毫无意义。这一点我在之前从未重视过,现在发觉大学期间我完成的课程设计可能存在这样的问题