个人学习总结:
至此,这学期软件工程这门课彻底结束了,是时候该总结一下这次课程改革给我的感受了。和以往的专业课不同的是,这次软件工程恰好是第一次课程改革,落在了我们的头上。起初我可能是拒绝的,因为古往今来,改革的第一批人总是不幸运的,他们会牺牲很多很多。但是在上课的过程中,我逐渐感觉到了不一样的地方。摆脱了以往专业课那种灌输式还很死板的教学,软件工程给我的感觉很轻松,很有开放思维性。尤其强调的是在做中学,学中做。不是教你那些枯燥无味的专业知识,而是告诉你如何去理解程序,去理解一个软件,去理解一个工程,如何按照规范有序的顺序对一个软件工程进行有效地的剖析。
在这次软件工程改革的学习和实践中,我深深体会到了软件并非是由一些复杂的代码组成的这么简单,在我们开发软件的过程中,真正编写那些复杂的代码的工作量其实只占不到所有任务工程量的30%,恰恰相反的是,后期的管理和维护更是占了60%到80%之多。通过学习,我们知道了一个完整的项目规划须包括:软件的定义、可行性分析报告、项目开发计划、软件需求说明书、用户操作手册、测试分析报告、开发进度报告、项目开发总结报告、软件问题报告、软件修改报告等多个文档(当然我们这次团队项目还是初次尝试,并未做到这么多,但是体会还是有的,希望我们这群未来的软件开发人员能够从这里的获取到一些帮助),每个文档都要细细审查,避免出现错误,恰恰写好文档正是能保证完成软件工程的其中一个关键步骤。软件工程不仅仅是代码的堆砌,而是要研究我们如何用最小的开销做出生存期较长而且优秀的软件,还要求各个阶段都要进行周密的策划、详细的分工部署和人员安排,且各阶段要据具体情况不断的反复才能达成,所以代码只是开发软件这个浩大的工程的一个小小的过程。
那通过一个学期的学习和实践,我现在明白了,其实开发软件,就像是解决一个逻辑问题。首先你应当做的是要有一个最基本的想法,那就是我写的这个程序是要拿来干什么的,有什么作用。然后就是对程序所要实现的核心功能做一个大概的构思,思考一种或多种实现方法,并从中选出一种自认为是较好的(这里的“最好的”要考虑到各种因素,如何才能最大化符合公众的需求才是最重要的)。接下来就是将这次工程涉及的各种主要或次要功能分成各个模块,进行详尽的模块分析策划,分模块来编码和DEBUG。最后通过合理有效的“桥梁”把各个模块部分组装成一个完整的整体。最后的最后,就是分析测试,这也是最最重要的一步,占到了很大的比例。在我现在看来,除了第一步不需要特别的重复外,其余的步骤应该是一个不断循环,不断调试的过程。在编码的过程中,你会发现各种新的问题,需要不断地回过头来修改原先的模块设计,甚至对最初选定的实现算法都有可能被替换。然后具体到每一步的工作要怎样完成,都是非常灵活多变的,都需要进行分析,设计,编码,调试,维护这几部分的主要工作。
对于这次课程改革的建议:
这次课程改革在老师,助教以及学生的共同努力下,虽然也有一些瑕疵,但作为课程改革的第一枪,还是比较圆满地落幕了。我想说的是,这次改革我收获了很多(具体的收获上面已经提到了),比以往的灌输式纯理论知识教学要好的很多。希望老师们坚持改革下去,让更多的莘莘学子都能收到改革带来的惠利。你们的学长在第一次并不被看好的改革中都获得很多那些书本上学不到的思维方式,分析理论。相信以后的你们,一定会获益良多,受益终身的。我的建议就是把软件工程不要放在大三下学期(因为这是实习季,考研季,我们真的没有那么多时间去研究软件),最好的是放在大三上学期,用一年的时间去认认真真,切实深入地做一个项目,这样的话那就太完美了。
大学的时光匆匆流逝,每次到毕业季,那时的我们看着一批批学长学姐们离开,总觉得离我们还很遥远,可最终我们也即将离开了。离开我们挥洒青春,一起共同学习嬉戏的地方,离开了即将被称为“曾经的母校”的地方。母校是什么,母校就是你在的时候各种嫌弃它,但却不允许别人说它的不好,当你离开的时候回想起来又特别怀念和感慨的地方。也许大学时光,唯一留下深刻印象的课就是那一年我们正好赶上了软件工程的第一年改革,成为了首批受惠的学生。老师这个群体真的是很伟大,每天与粉尘共生,孜孜不倦地教给我们那么多有用的知识。真的很感谢在我成长的过程中教给我知识的每一位敬爱的老师,希望你们将知识带给更多的懵懂少年。