1、软件工程课心得体会 软件工程是一门实践性很强、穿插性很强的学科,它提供应我们的不仅是一种方法论,更是一种世界观。 在没有接触软件工程这门课时,我一直认为软件就是程序。能编出解决问题的程序就ok了,从没有想过,在写一个程序之前还要构思几份文档(可行性分析、需求分析、概要设计)。不过对于那些大型软件如僵尸大战(至少对于我来说是比拟大型的了)怎么去实现它,想得我一头雾水。绚丽的界面、40种植物、一大堆不同类型的僵尸,编代码去实现它呢? 第一次上软件工程的课,裴老师问“软件是?” 我的第一想法是:这个问题太过愚昧了!谁不知道软件就是程序呀? “软件是由计算机程序、数据及文档组成。”听到这句话,我心里先
2、是一惊,慌忙翻了下书“软件是程序和所有使程序正确运行所需的相关文档和配置信息。”赫然映入我眼帘。突然间我发现,就算是植物僵尸大战这样复杂的游戏,如果设计者实现分模块把每一局部如何实现用文档描叙出来,那这个软件实现起来不是很容易吗? 第一次课后我明白了软件工程是致力于化软件开发的理论、方法和工具的研究。虽然我从初中开始信息奥赛,高中继续这个好,但在大学二年级下学期才接触在软件开发中这么有引导意义的学科,不觉有种相见恨晚的感觉。自然它的方法学三要素:方法、工具、过程,我牢记于心。 短短的四周,裴老师的课给我留下了深刻的印象,印象尤深的是: 做软件我们首先考虑的是团队的实力。 如果别人给你50万让你
3、们团队开发一个软件,如果他要求你们团队给这个软件永久维护,那么你要去跟他协商付100万。很多软件公司倒闭就是因为维护上的问题。至此我才明白维护软件是软件生存周期中时间最长的一个阶段,它是最花费精力与钱财的一个阶段。 如果将来你们碰到了我,你跟我说你是se那么我会很快乐,如果你告诉我你是软件工程师,我只会“嗯嗯”两下。 其实在我接触软件后,渴望的是当一名软件工程师。现在才知道学软件工程专业后,去当一名软件工程师是最低层的也是最没“技术”含量的。要做就做系统构架师,当然这需要我们的不懈努力才能到达。系统构架师的职责是设计一个公司的根底构架,并提供怎样建立和维护系统的指导方针。恍然发现学软件不仅是学
4、软件,相关的管理能力也是需要具备的。 当然理论知识是用来指导实践的,亲身体验才能领悟软件工程的妙用。课设我们选择了图书馆管理系统,主要是这个系统我们接触比拟多,对于它的流程还是比拟清楚的。虽然如此我们还是花了很大的时间去完成它。记得当时我们定下这个题目是晚上,在讨论用什么语言实现时,大家各自说出自己比拟善于的语言。然后均衡了下,定下用java做开发语言。在实现过程中,突然发现java环境连接数据库和tomcat超级麻烦且数据库老是连接不上。趁时间还早我们三再次讨论,决定用c#做开发语言,主要是c#相对于c+与java来说简易写。同时我们定下不管以后遇到什么困难都要坚持下去的准那么。在课设期间我
5、们没少跑图书馆,查阅各种资料,比照各本书上实现图书馆管理系统的代码。终于在4月11日把所有课设的所有事情弄好了。当然这只是个概述。 我印象尤深记忆深厚的是最初实现文档那块。刚开始,软件工程这门课还没学多少,根本的设计理念就很模糊。文档到底该怎么写,很纠结。于是我从网上狂下相关文档。通过粘贴与复制终于一份内容乱七八糟的需求分析文档出来了,当然这只是用来借鉴的。后来孟阳分享了十三份关于文档这方面的模板。我们照着那个样子在结合团队工程的相关实例开始了文档的写作。我们的文档总是一个人先写好,再拿给另一个人改,最后由第三个人评审。大家都觉的可以了,才过关。测试报告虽然是我一个人完成了,但也经历了不少时间
6、,当然这时间是按小时算的。首先把大体写出了,然后修改,再增加信息。大量的截图以及思考怎样用例超费脑子,两天的通宵,彻底把我搞垮了,不过在文档出炉后,心里异常开心。 软件工程课程虽已完毕,但我对于软件工程的才刚刚开始,裴老师的课让我受益匪浅。我体会到工程管理的重要性,随着软件规模、复杂度的不断增加,工程开发中更多的是协作、管理和控制。我学习到很多一般性的方法,例如:需求获娶模块化、分治、估算、方案等等。同时,我也认识到使用计算机解决实际问题的复杂性,在图灵机模型和冯诺依曼体系的计算机框架下,人们认识表达的过程(不断反复、逐步深化)和计算机的实现过程(顺序执行)相差甚远,软件工程方法要提供应程序员们一种更加有效的对客观世界问题域进展形式化的过程方法。 向se进军!至少这是现在的目标。 谢谢裴老师!您的课通俗易懂,举的例子贴近,让我们易于承受。