这里能搜索到更多你想要的范文→
当前位置:好范文网 > 心得体会 > 其他心得体会 >

软件工程课设心得

发布时间:2017-01-07 07:24:13 审核编辑:本站小编下载该Word文档收藏本文

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

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

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

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

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

短短的四周,裴老师的课给我留下了深刻的印象,印象尤深的是:

做软件我们首先考虑的是团队的实力。

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

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

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

当然理论知识是用来指导实践的,亲身体验才能领悟软件工程的妙用。课设我们选择了图书馆管理系统,主要是这个系统我们接触比较多,对于它的流程还是比较清楚的。虽然如此我们还是花了很大的时间去完成它。记得当时我们定下这个题目是晚上,在讨论用什么语言实现时,大家各自说出自己比较善于的语言。然后均衡了下,定下用java做开发语言。在实现过程中,突然发现java环境连接数据库和tomcat超级麻烦且数据库老是连接不上。趁时间还早我们三再次讨论,决定用c#做开发语言,主要是c#相对于c++与java来说简易写。同时我们定下不管以后遇到什么困难都要坚持下去的准则。在课设期间我们没少跑图书馆,查阅各种资料,对比各本书上实现图书馆管理系统的代码。终于在4月11日把所有课设的所有事情弄好了。当然这只是个概述。

我印象尤深记忆深厚的是最初实现文档那块。刚开始,软件工程这门课还没学多少,基本的设计理念就很模糊。文档到底该怎么写,很纠结。于是我从网上狂下相关文档。通过粘贴与复制终于一份内容乱七八糟的需求分析文档出来了,当然这只是用来借鉴的。后来孟阳分享了十三份关于文档这方面的模板。我们照着那个样子在结合团队项目的相关实例开始了文档的写作。我们的文档总是一个人先写好,再拿给另一个人改,最后由第三个人评审。大家都觉的可以了,才过关。测试报告虽然是我一个人完成了,但也经历了不少时间,当然这时间是按小时算的。首先把大体写出了,然后修改,再增加信息。大量的截图以及思考怎样用例超费脑子,两天的通宵,彻底把我搞垮了,不过在文档出炉后,心里异常开心。

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

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

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

第二篇:ttcn-3软件课设报告

软件课程设计

ttcn-3软件课设报告

第 1 页 共 6 页 电信0701 郭福晨 u201413312

ttcn-3软件课设

本次软件实验课程我选的是ttcn-3语言的平台移植。我和黄炯同学组成一个小

组。软件课设的大课题为:ttcn-3语言及其编译器的设计与移植。我们选择的是用ttcn语言实现自动饮料贩卖机的功能。

自助饮料售卖机的实现

1. 任务要求

饮料类型:咖啡、可乐、鲜橙多、矿泉水、绿茶、红茶

饮料价格:4元、3元、3元、1元、3元、3元(只接受整数输入)

输入包括饮料类型和投币金额

输出包括输出饮料的数量以及找回钱金额

2. 程序算法

module autosellmachine

{

function machinefunction(in integer number,in integer money) runs on drinkercomponenttype//从顾客处{var charstring temp;inputport.receive(charstring:?)-> value temp; log(temp); outputport.send(number); inputport.receive(charstring:?)-> value temp; log(temp);do {outputport.send(money);接收消息并赋值,判断饮料的种类和所要求的价钱 type component drinkercomponenttype//定义接收和输入的接口 {} port charstringinputporttype inputport; port integeroutputporttype outputport; type port integeroutputporttype message { out integer } type port charstringinputporttype message { in charstring }

}} log(temp); while(temp=="sorry,money is not enough!please try more again!");//判断顾客给出的钱数,如果不够if(temp=="sorry,it is not a convient number!please try again!")//判断顾客所选择的饮料类型,如果选{}则显示金钱不够 择的不是给出的6种饮料,则显示选择错误 return; setverdict(pass); type component emptycomponenttype {}//下述为所给出的几种情况的实例 testcase testone() runs on emptycomponenttype system drinkercomponenttype {}testcase testtwo() runs on emptycomponenttype system drinkercomponenttype {} testcase testthree() runs on emptycomponenttype system drinkercomponenttype { var drinkercomponenttype drinker; drinker := drinkercomponenttype.create; map(drinker:outputport, system:outputport); map(drinker:inputport, system:inputport); drinker.start( machinefunction(5,1) );//此处方可所选定的饮料种类和给出的金钱 drinker.done; unmap(drinker:outputport, system:outputport); unmap(drinker:inputport, system:inputport); var drinkercomponenttype drinker; drinker := drinkercomponenttype.create; map(drinker:outputport, system:outputport); map(drinker:inputport, system:inputport); drinker.start( machinefunction(0,10) );//此处即顾客所选定饮料种类和给出的金钱 drinker.done; unmap(drinker:outputport, system:outputport); unmap(drinker:inputport, system:inputport);

}} drinker := drinkercomponenttype.create; map(drinker:outputport, system:outputport); map(drinker:inputport, system:inputport); drinker.start( machinefunction(6,100) );//此处为顾客选定的饮料和给出的金钱 drinker.done; unmap(drinker:outputport, system:outputport); unmap(drinker:inputport, system:inputport);

c编写的咖啡机贩卖程序

using system;

using system.collections.generic;

using system.threading;

public class atuodrinkmachine//定义输入和输出,饮料类型和价格

{

public static queue<byte[]> inputport;

public static queue<byte[]> outputport;

private static string[] drinkname= {"coffee","cola","orange","water","greentea","redtea"};private static int[] drinkprice=new int[6] {4,3,3,1,3,3};

static thread task;

public static void switchon()

{

inputport = new queue<byte[]>();

outputport = new queue<byte[]>();

task = new thread( new threadstart(behaviour) );

task.start();

}

public static void switchoff()

{

task.abort();

}

static void behaviour()

{

int amount,choice,i,quantity,change;

outputport.enqueue(convert.stringtobytearray("please choose one of thedrink:\n0_coffee\t1_cola\t2_orange\n3_water\t4_greentea\t5_redtea"));

while (inputport.count == 0) thread.sleep(10);

byte[] inputbyte=inputport.dequeue();

choice = convert.bytearraytoint(inputbyte);

if(choice<0||choice>5)

{

}

outputport.enqueue(convert.stringtobytearray("the drink you choosing is: " outputport.enqueue(convert.stringtobytearray("sorry,it return; is not a convient number!please try again!")); +drinkname[choice]+ ".\n"+"the single price of " +drinkname[choice]+"is " +drinkprice[choice].tostring()+"."));

while (inputport.count == 0) thread.sleep(10);

inputbyte = inputport.dequeue();

i = convert.bytearraytoint(inputbyte);

amount=i;

while(amount<drinkprice[choice])

{

}

quantity=amount/drinkprice[choice];

change=amount%drinkprice[choice];

outputport.enqueue(convert.stringtobytearray("here your "+quantity.tostring()+" outputport.enqueue(convert.stringtobytearray("sorry,money while (inputport.count == 0) thread.sleep(10); inputbyte = inputport.dequeue(); i = convert.bytearraytoint(inputbyte); amount+=i; is not enough!please try more again!")); drink(s) and "+change.tostring()+" yuan left are.thanks!"));

thread.sleep(100);

}

}

课设总结

这次软件课设的整个过程使我切实的认识到了程序编写的不易和所需的

严谨,任何一个小的错误与疏忽都可能导致程序的崩溃。虽然之前从书本中学习c语言的编程知识,有一定的编程基础,但是确确实实做一个真正的东西出来还是第一次,所以有很多问题都不能自己解决,所以这个过程也培养了我学习新知识和与团队配合的能力。我觉得虽然自己还是有很多不懂的地方,对于ttcn-3这门语言的了解也还远远不够,但我还是觉得自己收获很多。对于自己所学习的专业,和自己所学习的知识的实践

应用都有了全新的认识。很高兴能有这次软件课设的机会,让自己看到自己的不足,我会好好把握自己大学的最后时间,尽量在各个方面都强化自己。我觉得,课设让我看到自己和某些很优秀同学的差距,我相信,只要好好努力,有一天我也可以成为一个出色的程序员。谢谢

第三篇:课设心得体会

课设心得体会

大学三年期间的课程设计,这次应该是在实验室呆的时间最长也最烦恼的一次,做课设期间,遇到了很多的问题,虽然嘴上会说,学校真的是不想让人活了,好烦呀之类,但我们却从未想过放弃,因为当你觉得最难的时候坚持一下,也就是你有所收获的时候,很庆幸,我们坚持了,并且达到了我们的预设目标。两人一组,想想真的比以前的好几个人一组要充实很多,不会说有人一直闲着,有人只是打酱油,这次受益颇多。

在刚开始焊接电路的时候,由于我的队友在宝鸡实习时熟练掌握了焊接技术,焊接的可以说相当顺利,没觉得有很多难度,但当我们进行软件编译和调试的时候,真可谓举步维艰,不要说调试了,就连用来显示的led屏幕都不会亮,在这个过程中请教了老师,问了学霸,自己也焦头懒额,软件,硬件一步步排除,最后才发现是焊接和led屏都有问题,再下来屏幕终于亮了,但是功能却实现不全,时钟不走字,有时还会乱码显示,这个时候老师说先排除软件问题,如果软件没有问题,那就可能是时钟芯片或者晶振有问题,,又开始检测和排除,最终在我们的努力下发现了问题所在,我们的主芯片电路有问题,换到开发板上后,正常显示,并且功能基本实现除,但是新问题又来了,我们的时钟比实际时间走的要快。软件没问题,我们更换了ds1302芯片,时中已经可以正常运行了,虽然实现了基本功能,我们也有一定的收获,但是功能却没有完全实现,我们的闹钟功能由于自己的不足而没能实现,但我们通过此次课程设计知道自己还有哪些不足和需要努力的地方。

下来,我想我必须吐槽一下我初次使用和安装protel软件的心路历程,这个软件我们专业的人使用过的甚少,光这个软件的安装就花费了大量时间,在安装完毕准备画图的时候,发现一些常用的元器件根本添加不上来,连at892都没有更别说是ds1302了,没办法,后来在网上下载了一个protel视频教程,跟着视频一步一步来学习使用,但在学习到给库里添加元器件的时候,在protel的library的sch库中的元器件根本添加不上来,我初步判定是安装包有问题,所以将下载了安装汉化了半天的protel软件卸载了,想安装protus。谁料想竟然安装失败,没办法,最后只好求助大神,好不容易将protel的元器件库破解后,画图刚开始也是一塌糊涂,连元器件的方向都不能搞定,熟悉和练习protel画图工具就用了大半天的时间,但是不管怎么说,图最后还是画好了,想想如果以前在课余时间多学习学习这些基本的画图工具,现在也不会在关键时候抓瞎了,以后真的(推荐打开范文网:wwW.HaowORD.Com)要多多学习了。

至此,我们的课程设计在大三的最后一个星期结束了,以此次课设的收获致我们终将逝去的大三吧!

宋阿珍

2014年7月18日

第四篇:ad590课设心得

作为一名自动化专业的大三学生,我觉得做单片机课程设计是十分有意义的,而且是十分必要的。在已经度过的大学时间里,我们大多数接触的是专业课。我们在课堂上掌握的仅仅是专业课的理论知识,如何去锻炼我们的实践能力?如何把我们所学的专业基础课理论知识运用到实践中去呢?我想做类似的课程设计就为我们提供了良好的实践平台。

两个多星期前我们两个人还认为这个课设是比较简单的,但是一开始做就出现了问题,数码管就是不亮,而且之后也是问题不断,现在想想,这项看起来不需要多少技术的工作却是非常需要耐心和精力去解决。

通过这次对温度测量,a/d转换,光电计数的设计与制作,让我了解了设计电路的步骤,也让我了解了关于a/d转换的原理与设计理念。要设计一个电路总是要先仿真并且成功之后才能实际接线的。但是最后的成品却不一定与仿真时完全一样,这是因为在实际接线中有着各种各样的条件制约、各种各样的因素相互影响。有时候,仿真无法成功的电路,在实际中却因为芯片本身的特性而能够成功。所以,在设计时应考虑两者的差异,从中找出最适合的设计方法。通过这次单片机课程设计,我真正的意识到,在以后的学习中一定要理论联系实际,把自己所学的理论知识用到实际当中。

在做本次课程设计的过程中,我感触最深的当属查阅大量的设计资料了。为了让自己的设计更加完善,查阅这方面的设计资料是十分必要的,同时也是必不可少的。我们是在做单片机课程设计,但我们不是艺术家,他们可以抛开实际尽情在幻想的世界里翱翔,但我们一切都要有据可依,有理可寻,不切实际的构想永远只能是构想,永远无法升级为设计。其次,在这次课程设计中,我们运用到了以前所学的专业课知识,如:电路,c语言,模拟和数字电路知识等。运算放大器lm324的应用,让我对由运放构成的一些电路有了更深的认识。过去从未独立应用过它们,在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一收获。

最后,要做好一个课程设计,就必须做到:在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源;要有一个清晰的思路和一个完整的的程序流程图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路。而且程序只有在经常的写与读的过程中才能提高,软件也只有在反复的使用中才能更加熟练。

虽然自己对于这门课懂的并不是很多,很多基础的东西都还没有很好的掌握,也没有很有效的办法通过自身去理解,但是靠着这两个多星期的学习,在小组同学的帮助下,渐渐对这门课有了更深的理解。我认为这个收获应该说是相当大的。觉得课程设计反映的是一个从理论到实际应用的过程,但是更远一点可以联系到以后毕业之后从学校转到踏上社会的一个过程。小组人员的配合﹑相处,以及自身的动脑和努力,都是以后工作中需要的。

第五篇:运筹课设心得

通过这次的课设,发现了自己的很多的不足,自己知识的很多的漏洞,看到了自己的实践经验还是比较缺乏,理论联系实际的能力还急需提高。

这次的课程设计也让我看到了团队的力量,我认为我们的工作是一个团队的工作,团队需要个人,个人也离不开团队,必须发扬团结协作的精神。团结协作是我们成功的一项非常重要的保证,而这次设计也正好锻炼我们这一点,这也是非常宝贵的。最让我收获巨大的是,从这门课设中我学会了如何运用lingo来求解,在做课设的过程中遇到了很多的困难,在不断的请教和研究下终于得到了答案,我觉得从失败中获得成功的那份喜悦比在一直顺利的情况下更让人欣慰。

对我而言,知识上的收获重要,精神上的丰收更加可喜。让我知道了学无止境的道理。我们每一个人永远不能满足于现有的成就,人生就像在爬山,一座山峰的后面还有更高的山峰在等着你。挫折是一份财富,经历是一份拥有。这次课程设计必将成为我人生旅途上一个非常美好的回忆!

word该篇DOC格式软件工程课设心得范文,共有9446个字。好范文网为全国范文类知名网站,下载本文稍作修改便可使用,即刻完成写稿任务。立即下载:
软件工程课设心得下载
软件工程课设心得.doc
下载Word文档到电脑,方便编辑和打印
编辑推荐: 星级推荐 星级推荐 星级推荐 星级推荐 星级推荐
下载该Word文档
好范文在线客服
  • 问题咨询 QQ
  • 投诉建议 QQ
  • 常见帮助 QQ
  • 13057850505