在没有接触软件工程这门课时,我一直认为软件就是程序。能编出解决问题的程序就ok了,从没有想过,在写一个程序之前还要构思几份文档(可行性分析、需求分析、概要设计)。学习了这门课程, 还有老师的多元化教课,不但让我从理论上掌握软件工程,还有从不同的实例,让理论和实践得到了很好的结合。整一个学期下来,总的来说还是学到了很多东西的,有很多地方是值得肯定的,其实在我看来,软件工程与其说是一门课程,不如说是一门思想。是一个如何去分析和处理问题的过程,应该说其范畴已经远远不止局限于该门课程,成为了一个综合的一个能够解决问题的思想集合。、
在一次上软件工程的课,老师曾问“软件是什么?” 我的第一想法是:这个问题太过愚昧了!谁不知道软件就是程序呀? “软件是由计算机程序、数据及文档组成。”听到这句话,我心里先是一惊,慌忙翻了下书“软件是程序和所有使程序正确运行所需的相关文档和配置信息。” 这一次课后我明白了软件工程是致力于专业化软件开发的理论、方法和工具的研究。我们为什么需要软件工程呢?专业点讲,软件工程最终是为了实现“软件制造业”的社会化,工业化大生产,提高其劳动生产效率。只有如此,软件业才能实现社会化,工业化大生产,才能“做大做强”。没有管理的设计是失败和混乱的设计,没有设计指导的编程是无序的忙碌的。根据开发的软件的规模,应该适当程度的运用软件工程化的思想,需要灵活,。但只要涉及人员间的交流和沟通,或多或少都要需要软件工程才能更有效率,工作成果更稳定。
在上软件工程概论课上,给我留下印象最深的就是团队开发,从老师让我们从个人编程到结对开发这段时间过程中,我真正见到了团队的力量。从开发软件的分工到功能的实现,团队起到了很大的作用,当然团队之间也避免不了矛盾,如何协调团队之间的矛盾也是一门学问。在学习过程中,知道了团队合作十分重要,争议固然存在,但通过讨论、协商,群策群力,在不断磨合中能够达成一致与默契。团队成员中能力各有高下,互相尊重,各取所长,不宜妄自菲薄。组长多加协调,组员积极配合,才能合作愉快。
当然理论知识是用来指导实践的,亲身体验才能领悟软件工程的妙用。课设我们选择了博客管理系统,主要是这个系统可以方便作业的管理,对于它的流程还是比较清楚的。虽然如此我们还是花了很大的时间去完成它。记得当时我们定下这个题目是晚上,在讨论用什么语言实现时,大家各自说出自己比较善于的语言。然后均衡了下,定下用java做开发语言。在实现过程中,突然发现java环境连接数据库超级麻烦且数据库老是连接不上。在课设期间我们没少跑图书馆,查阅各种资料,对比各本书上实现各个功能模块实现的代码。当然在这个过程中我们也学到了很多。
在经过这次的团队的开发过程后,我们普遍感到不仅动手能力有所提高,更重要的是通过对软件开发流程的了解,进一步激发了我们对专业知识的兴趣,并能够结合实际存在的问题在专业领域内进行更深入的学习。
软件工程课程虽已结束,但我对于软件工程的学习才刚刚开始,老师的课让我受益匪浅。我体会到项目管理的重要性,随着软件规模、复杂度的不断增加,项目开发中更多的是协作、管理和控制。同时,我也认识到使用计算机解决实际问题的复杂性,人们认识表达的过程和计算机的实现过程相差甚远,软件工程方法要提供给程序员们一种更加有效的对客观世界问题域进行形式化的过程方法。
给老师的几点建议:虽然我们从大量的编程中学到了不少的知识,但是学到的知识有时过于分散,不是很容易用到,以至于会忘记学过的知识;还有就是作业量大,大多数人有时急于完成作业,并没有从作业中学到知识。