软件工程课设心得

软件工程课设心得

软件工程是一门实践性很强、交叉性很强的学科,它提供给我们的不仅是一种方法论,更是一种世界观。

在没有接触软件工程这门课时,我一直认为软件就是程序。能编出解决问题的程序就ok了,从没有想过,在写一个程序之前还要构思几份文档(可行性分析、需求分析、概要设计)。不过对于那些大型软件如植物僵尸大战(至少对于我来说是比较大型的了)怎么去实现它,想得我一头雾水。绚丽的界面、40种植物、一大堆不同类型的僵尸,怎样编代码去实现它呢?

第一次上软件工程的课,裴老师问“软件是什么?” 我的第一想法是:这个问题太过愚昧了!谁不知道软件就是程序呀? “软件是由计算机程序、数据及文档组成。”听到这句话,我心里先是一惊,慌忙翻了下书“软件是程序和所有使程序正确运行所需的相关文档和配置信息。”赫然映入我眼帘。突然间我发现,就算是植物僵尸大战这样复杂的游戏,如果设计者实现分模块把每一部分如何实现用文档描叙出来,那这个软件实现起来不是很容易吗?

第一次课后我明白了软件工程是致力于专业化软件开发的理论、方法和工具的研究。虽然我从初中开始信息奥赛,高中继续这个爱好,但在大学二年级下学期才接触在软件开发中这么有引导意义的学科,不觉有种相见恨晚的感觉。自然它的方法学三要素:方法、工具、过程,我牢记于心。

短短的四周,裴老师的课给我留下了深刻的印象,印象尤深的是: 做软件我们首先考虑的是团队的实力。

如果别人给你50万让你们团队开发一个软件,如果他要求你们团队给这个软件永久维护,那么你要去跟他协商付100万。很多软件公司倒闭就是因为维护上的问题。至此我才明白维护软件是软件生存周期中时间最长的一个阶段,它是最花费精力与钱财的一个阶段。

如果将来你们碰到了我,你跟我说你是se那么我会很高兴,如果你告诉我你是软件工程师,我只会“嗯嗯”两下。

其实在我接触软件后,渴望的是当一名软件工程师。现在才知道学软件工程专业后,去当一名软件工程师是最低层的也是最没“技术”含量的。要做就做系统构架师,当然这需要我们的不懈努力才能达到。系统构架师的职责是设计一个公司的基础构架,并提供关于怎样建立和维护系统的指导方针。恍然发现学软件不仅是学软件,相关的管理能力也是需要具备的。

当然理论知识是用来指导实践的,亲身体验才能领悟软件工程的妙用。课设我们选择了图书馆管理系统,主要是这个系统我们接触比较多,对于它的流程还是比较清楚的。虽然如此我们还是花了很大的时间去完成它。记得当时我们定下这个题目是晚上,在讨论用什么语言实现时,大家各自说出自己比较善于的语言。然后均衡了下,定下用java做开发语言。在实现过程中,突然发现java环境连接数据库和tomcat超级麻烦且数据库老是连接不上。趁时间还早我们三再次讨论,决定用c#做开发语言,主要是c#相对于c++与java来说简易写。同时我们定下不管以后遇到什么困难都要坚持下去的准则。在课设期间我们没少跑图书馆,查阅各种资料,对比各本书上实现图书馆管理系统的代码。终于在4月x日把所有课设的所有事情弄好了。当然这只是个概述。 我印象尤深记忆深厚的是最初实现文档那块。刚开始,软件工程这门课还没学多少,基本的设计理念就很模糊。文档到底该怎么写,很纠结。于是我从网上狂下相关文档。通过粘贴与复制终于一份内容乱七八糟的需求分析文档出来了,当然这只是用来借鉴的。后来孟阳分享了十三份关于文档这方面的模板。我们照着那个样子在结合团队项目的相关实例开始了文档的写作。我们的文档总是一个人先写好,再拿给另一个人改,最后由第三个人评审。大家都觉的可以了,才过关。测试报告虽然是我一个人完成了,但也经历了不少时间,当然这时间是按小时算的。首先把大体写出了,然后修改,再增加信息。大量的截图以及思考怎样用例超费脑子,两天的通宵,彻底把我搞垮了,不过在文档出炉后,心里异常开心。

软件工程课程虽已结束,但我对于软件工程的学习才刚刚开始,裴老师的课让我受益匪浅。我体会到项目管理的重要性,随着软件规模、复杂度的不断增加,项目开发中更多的是协作、管理和控制。我学习到很多一般性的方法,例如:需求获取、模块化、分治、估算、计划等等。同时,我也认识到使用计算机解决实际问题的复杂性,在图灵机模型和冯·诺依曼体系的计算机框架下,人们认识表达的过程(不断反复、逐步深化)和计算机的实现过程(顺序执行)相差甚远,软件工程方法要提供给程序员们一种更加有效的对客观世界问题域进行形式化的过程方法。

向se进军!至少这是现在的目标。

谢谢裴老师!您的课通俗易懂,举的例子贴近生活,让我们易于接受。

 

第二篇:软件工程课程心得

姓名:李永聪

学号:32号

班级:软件二班

在我们整个软件工程过程中,我体会到了许多,也学到了许多。

在项目要进行自由分组后,我们组成了自己的项目小组。我们小组由五个成员组成,在相互商量后我们也确定了我们小组的项目及名字,是做一个学生管理系统网站。我们按照老师要求进行了分工,由于我们团队只有我和另一名成员会编一些比较复杂的C#代码,所以我们便担起了更重的任务。最后由于在整个团队中,对于界面开发这一块变交给了我们组的两个女生,我们的项目也正式开始了。

需求调研和分析对于软件开发过程至关重要。我们在开发时如果不进行调研和分析,那么对于后来的项目进展将产生严重的影响。我们在项目的开发中便遇到了这样的问题。老师作为我们的客户,他对这个学生管理系统网站的要求便是我们必须了解的,我们也必须以客户的要求为根本构建我们的这个系统。我们开始自己随意的计划整个网站的设计,然后报给老师,老师作为一个客户并不是全部认同,随后我们也必须按着客户的要求更改我们的设计报告。我也明白了,再做一个系统时,必须随时和客户保持沟通,随时了解他们需要什么,他们想要什么功能。如果我们不去和客户沟通,不去调研客户的需求,做出来的系统即使在我们看来是一个很好,很完美的产品,但是如果客户不认同,那么我们所做的一切都是徒劳,还要返工去修改,费时费力。所以在做任何一个项目时,前期的需求调研和需求分析都是必须的,这是在做一个项目的基本,是关系成败的重要一环。

对于一个项目,它的需求设计也非常重要。在我们的学生管理系统网站开发的过程中,遇到了一些问题在管理员应该实现的功能上反复增删等,这些问题很多都是由于设计不够清晰,不够完善而导致的。出现的这些问题很多都是非常棘手的,我们为了解决这些棘手的问题浪费了大量的时间,我们不得不在工程代码上改了又改,在数据库里增表、删表、加数据、减数据,当然,在文档里也要做出相应的修改以适应新的功能。还好,我们能及时地发现问题,通过相互沟通讨论,问题也得到了解决。通过总结,我们也意识到,我们大家在做需求分析和进行需求了解时仅仅考虑了一些基本的功能,而至于管理员和客户之间的联系,以及具体的一些流程我们都没有深究,而导致我们到后期花费了大量的时间用于修复之前没有考虑周全而带来的问题。如果我们的需求设计能够比较清晰和完善,

那么我们在开发过程中便会很明白的知道我们应该实现什么样的功能,在数据库里应该怎样建表,以什么方式插入数据,从而可以避免反复修改工程的问题,也能避免出现可能毁坏整个工程的问题。整个工程的需求设计对于一个项目的顺利进展至关重要。

对于文档在软件工程中的作用,我在这次项目开发过程中有了更加深刻的理解。文档在软件开发过程中是很有用的,文档是一项必不可少的东西,但文档也不能太多,太过繁琐,如果是那样就不太好了。首先我们要明确开发过程中为什么要写这些文档,文档的最根本的作用是为了更好的沟通。一个项目或产品可能需要延续很长的时间,开发过程中可能需要很多的环节,可能会遇到很多的问题和很多的解决的方法,这时,我们需要文档的帮助,我们需要有一个东西来记录,我们需要有一个共同的声音。文档只不过是一个准绳,将开发中的各个树枝树叶扶正。如果,这个准绳太多太紧,大树可能会发育的很高很直,但是就是有些畸形,如果这个准绳太少太松,大树可能就会变成灌木丛。文档的多少、繁简是有度的,绝对不能说越多越好。我觉得,文档需要说明解决问题的方法而不是解决问题的理论,因为解决问题的理论是在文档形成中做到的。文档完整即可,每一份文档说明一个问题,无需将多个文档的内容放在一个文档的里面。除了重要阶段形成文档,其它部分都只是讨论或者说是想法。不要让文档成为累赘,如果真是这样,我认为就是该考虑写这些文档的必要性的时候了。 我们在文档的时候,一定要明白为什么要写这些。

在整个项目开发过程中,我们也同时遇到了许多程序接口问题,页面和功能相结合的问题,数据库建表的问题,这些问题都是源于我们项目小组成员之间的沟通不足。我深刻认识到,在项目开发时,项目小组中各个成员之间的相互沟通是非常重要的。如果我们要在功能方面作出修改,那么程序人员和页面人员及数据库人员就必须相互沟通,共同对整个程序作出相应的修改,这样才能避免最终整合时出现问题。

在这几周里,我还对软件工程有了新的理解。在我以前的理解当中,软件工程,无非就是一个人或者几个人或一个团队集中在一起进行编写代码的工作,以实现开发出所用的软件。但现在我明白了,软件工程的作用,就是告诉人们怎样去开发软件和管理软件。具体地讲,它表现在与软件开发和管理有关的人员和过

程上。所以,软件工程就不仅仅是单一的编程过程了。它包括了系统分析->建模->概要设计->详细设计->编码->测试->维护。编码可以理解为编程,这个只占总时间的20%左右。编程只是其中的一小部分。

在这次项目里我完成了许多工作,在界面设计上我完成了,首页页面的制作,在后期项目整合过程中修改了功能和界面结合,还有数据库插入数据及解决数据库集中整合时出现的问题。这些工作我都顺利完成了,虽然并不能算是非常的出色,但也算是尽力了。现在看到自己辛劳的成果,我感到很欣慰。

当然,在这次项目过程中我也发现了自己的一些问题。如现在的网站开发技术还不够强,在和小组成员相互沟通上还不够积极等。我希望以此为契机,在将来的项目开发中能做得更好。

 

第三篇:软件工程课设心得

软件工程课设心得

软件工程是一门实践性很强、交叉性很强的学科,它提供给我们的不仅是一种方法论,更是一种世界观。

在没有接触软件工程这门课时,我一直认为软件就是程序。能编出解决问题的程序就ok了,从没有想过,在写一个程序之前还要构思几份文档(可行性分析、需求分析、概要设计)。不过对于那些大型软件如植物僵尸大战(至少对于我来说是比较大型的了)怎么去实现它,想得我一头雾水。绚丽的界面、40种植物、一大堆不同类型的僵尸,怎样编代码去实现它呢?

第一次上软件工程的课,裴老师问“软件是什么?” 我的第一想法是:这个问题太过愚昧了!谁不知道软件就是程序呀? “软件是由计算机程序、数据及文档组成。”听到这句话,我心里先是一惊,慌忙翻了下书“软件是程序和所有使程序正确运行所需的相关文档和配置信息。”赫然映入我眼帘。突然间我发现,就算是植物僵尸大战这样复杂的游戏,如果设计者实现分模块把每一部分如何实现用文档描叙出来,那这个软件实现起来不是很容易吗?

第一次课后我明白了软件工程是致力于专业化软件开发的理论、方法和工具的研究。虽然我从初中开始信息奥赛,高中继续这个爱好,但在大学二年级下学期才接触在软件开发中这么有引导意义的学科,不觉有种相见恨晚的感觉。自然它的方法学三要素:方法、工具、过程,我牢记于心。

短短的四周,裴老师的课给我留下了深刻的印象,印象尤深的是: 做软件我们首先考虑的是团队的实力。

如果别人给你50万让你们团队开发一个软件,如果他要求你们团队给这个软件永久维护,那么你要去跟他协商付100万。很多软件公司倒闭就是因为维护上的问题。至此我才明白维护软件是软件生存周期中时间最长的一个阶段,它是最花费精力与钱财的一个阶段。

如果将来你们碰到了我,你跟我说你是se那么我会很高兴,如果你告诉我你是软件工程师,我只会“嗯嗯”两下。

其实在我接触软件后,渴望的是当一名软件工程师。现在才知道学软件工程专业后,去当一名软件工程师是最低层的也是最没“技术”含量的。要做就做系统构架师,当然这需要我们的不懈努力才能达到。系统构架师的职责是设计一个公司的基础构架,并提供关于怎样建立和维护系统的指导方针。恍然发现学软件不仅是学软件,相关的管理能力也是需要具备的。

当然理论知识是用来指导实践的,亲身体验才能领悟软件工程的妙用。课设我们选择了图书馆管理系统,主要是这个系统我们接触比较多,对于它的流程还是比较清楚的。虽然如此我们还是花了很大的时间去完成它。记得当时我们定下这个题目是晚上,在讨论用什么语言实现时,大家各自说出自己比较善于的语言。然后均衡了下,定下用java做开发语言。在实现过程中,突然发现java环境连接数据库和tomcat超级麻烦且数据库老是连接不上。趁时间还早我们三再次讨论,决定用c#做开发语言,主要是c#相对于c++与java来说简易写。同时我们定下不管以后遇到什么困难都要坚持下去的准则。在课设期间我们没少跑图书馆,查阅各种资料,对比各本书上实现图书馆管理系统的代码。终于在4月x日把所有课设的所有事情弄好了。当然这只是个概述。 我印象尤深记忆深厚的是最初实现文档那块。刚开始,软件工程这门课还没学多少,基本的设计理念就很模糊。文档到底该怎么写,很纠结。于是我从网上狂下相关文档。通过粘贴与复制终于一份内容乱七八糟的需求分析文档出来了,当然这只是用来借鉴的。后来孟阳分享了十三份关于文档这方面的模板。我们照着那个样子在结合团队项目的相关实例开始了文档的写作。我们的文档总是一个人先写好,再拿给另一个人改,最后由第三个人评审。大家都觉的可以了,才过关。测试报告虽然是我一个人完成了,但也经历了不少时间,当然这时间是按小时算的。首先把大体写出了,然后修改,再增加信息。大量的截图以及思考怎样用例超费脑子,两天的通宵,彻底把我搞垮了,不过在文档出炉后,心里异常开心。

软件工程课程虽已结束,但我对于软件工程的学习才刚刚开始,裴老师的课让我受益匪浅。我体会到项目管理的重要性,随着软件规模、复杂度的不断增加,项目开发中更多的是协作、管理和控制。我学习到很多一般性的方法,例如:需求获取、模块化、分治、估算、计划等等。同时,我也认识到使用计算机解决实际问题的复杂性,在图灵机模型和冯·诺依曼体系的计算机框架下,人们认识表达的过程(不断反复、逐步深化)和计算机的实现过程(顺序执行)相差甚远,软件工程方法要提供给程序员们一种更加有效的对客观世界问题域进行形式化的过程方法。

向se进军!至少这是现在的目标。

谢谢裴老师!您的课通俗易懂,举的例子贴近生活,让我们易于接受。

相关推荐