软件工程课设心得
软件工程课设心得

 
  第一篇:软件工程课设心得软件工程是一门实践性很强、交叉性很强的学科,它提供给我们的不但是一种方法论,更是一种世界观。在没有接触软件工程这门课时,我一直以为软件便是步伐。能编出解决问题的程序就ok了,从没有想过,在写一个程序之前还要构思几份文档(可行性分析、需求分析、概要设计)。不过对于那些大型软件如植物僵尸大战(至少对于我来说是比较大型的了)怎么去实现它,想得我一头雾水。绚丽的界面、40种植物、一大堆差别范例的僵尸,怎样编代码去实现它呢?
  第一次上软件工程的课,裴老师问“软件是什么?”
  我的
  第一想法是:这个问题太过愚昧了!谁不知道软件就是程序呀?
  “软件是由计算机程序、数据及文档构成。”听到这句话,我内心先是一惊,慌忙翻了下书“软件是程序和所有使程序正确运行所需的相干文档和设置装备摆设信息。”赫然映入我眼帘。忽然间我发明,就算是植物僵尸大战如许庞大的游戏,如果设计者实现分模块把每一部分如何实
现用文档描叙出来,那这个软件实现起来不是很容易吗?
  第一次课后我明白了软件工程是致力于专业化软件开发的理论、要领和东西的研究。虽然我从初中开始信息奥赛,高中继承这个兴趣,但在大学二年级下学期才接触在软件开发中这么有引导意义的学科,不觉有种相知恨晚的觉得。自然它的方法学三要素:方法、工具、过程,我牢记于心。短短的周围,裴老师的课给我留下了深刻的印象,印象尤深的是:做软件我们首先思量的是团队的气力。如果别人给你50万让你们团队开辟一个软件,如果他要求你们团队给这个软件永世维护,那么你要去跟他协商付100万。很多软件公司倒闭就是因为维护上的题目。至此我才明白维护软件是软件生存周期中时间最长的一个阶段,它是最花费精力与财帛的一个阶段。如果未来你们遇到了我,你跟我说你是se那么我会很开心,如果你告诉我你是软件工程师,我只会“嗯嗯”两下。实在在我打仗软件后,渴望的是当一名软件工程师。现在才知道学软件工程专业后,去当一名软件工程师是最低层的也是最没“技术”含量的。要做就做体系构架师,当然这需要我们的不懈努力才华到达。系统构架师的职责是设计一个公司的底子构架,并提供关于怎样建立和维护体系的指导方针。恍然发现学软件不但是学软件,相关的管理本领也是必要具备的。当然理论知识是用来引导实践的,亲身体验才能意会软件工程的妙用。课设我们选择了图书馆管理系统,主要是这个体系我们打仗比力多,
对于它的流程照旧比较清楚的。虽然如此我们还是花了很大的时间去完成它。记得当时我们定下这个标题是晚上,在讨论用什么语言实现时,大家各自说出本身比力善于的语言。然后平衡了下,定下用java做开辟语言。在实现历程中,突然发现java环境连接数据库和tomcat超级麻烦且数据库总是毗连不上。趁时间还早我们三再次讨论,决定用c#做开辟语言,主要是c#相对于c++与java来说浅易写。同时我们定下不管以后遇到什么困难都要坚持下去的准则。在课设期间我们没少跑图书馆,查阅种种资料,对比各本书上实现图书馆管理系统的代码。终于在4月11日把所有课设的全部事变弄好了。固然这只是个概述。我印象尤深记忆深厚的是最初实现文档那块。刚开始,软件工程这门课还没学几多,基本的计划理念就很含糊。文档到底该怎么写,很纠结。于是我从网上狂下相干文档。通过粘贴与复制终于一份内容乱七八糟的需求阐发文档出来了,当然这只是用来鉴戒的。后来孟阳分享了十三份关于文档这方面的模板。我们照着那个样子在结合团队项目的相关实例开始了文档的写作。我们的文档总是一个人先写好,再拿给另一个人改,最后由
  第三个人评审。各人都觉的能够了,才过关。测试报告虽然是我一个人完成了,但也履历了不少时间,当然这时间是按小时算的。起首把大要写出了,然后修改,再增长信息。大量的截图以及思考怎样用例超费脑筋,两天的彻夜,彻底把我搞垮了,不外在文档出炉后,内
心非常开心。软件工程课程虽已竣事,但我对于软件工程的学习才刚刚开始,裴老师的课让我受益匪浅。我体会到项目管理的重要性,随着软件规模、复杂度的不停增长,项目开发中更多的是协作、办理和控制。我学习到许多一般性的要领,例如:需求获取、模块化、分治、估算、计划等等。同时,我也认识到使用计算机解决现实题目的复杂性,在图灵机模型和冯·诺依曼体系的计算机框架下,人们认识表达的过程(不断反复、逐步深化)和计算机的实现过程(顺序执行)相差甚远,软件工程方法要提供给程序员们一种更加有效的对客观世界问题域进行形式化的历程要领。向se进军!至少这是如今的目的。谢谢裴老师!您的课通俗易懂,举的例子贴近生活,让我们易于担当。
 
  第二篇:ttcn-3软件课设报告软件课程设计
  ttcn-3软件课设报告第
  1
  页
  共
  6
  页
  电信0701
  郭福晨
  u202013312
  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
  ive(charstring:?)->
  value
  temp;
  log(temp);
  outputport.send(number);
  ive(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
  :=
  ate;
  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
  :=
  ate;
  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
  :=
  ate;
  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
  ic;
  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;
  queue(convert.stringtobytearray("please
  choose
  one
  of
  thedrink:\n0_coffee\t1_cola\t2_orange\n3_water\t4_greentea\t5_redtea"));
  while
  (unt
  ==
  0)
  thread.sleep(10);
  byte[]
  inputbyte=inputport.dequeue();
  choice
  =
  convert.bytearraytoint(inputbyte);
  if(choice<0||choice>5){}
  queue(convert.stringtobytearray("the
  drink
  you
  choosing
  is:
  "
  queue(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
  (unt
  ==
  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];
  queue(convert.stringtobytearray("here
  your
  "+string()+"
  queue(convert.stringtobytearray("sorry,money
  while
  (unt
  ==
  0)
  thread.sleep(10);
  inputbyte
软件乱码怎么办  =
  inputport.dequeue();
  i
  =
  convert.bytearraytoint(inputbyte);
  amount+=i;
  is
  not
  enough!please
  try
  more
  again!"));
  drink(s)
  and
  "+string()+"
  yuan
  left
  are.thanks!"));
  thread.sleep(100);
  }}课设总结
  这次软件课设的整个过程使我切实的认识到了程序编写的不易和所需的
  严谨,任何一个小的错误与疏忽都大概导致步伐的瓦解。虽然之前从书本中学习c语言的编程知识,有肯定的编程底子,但是确确实实做一个真正的东西出来还是
  第一次,所以有很多题目都不能自己办理,所以这个过程也培养了我学习新知识和与团队共同的本领。我觉得虽然自己还是有许多不懂的地方,对于ttcn-3这门语言的相识也还远远不够,但我还是以为本身劳绩许多。对于本身所学习的专业,和自己所学习的知识的实践应用都有了全新的了解。很高兴能有这次软件课设的时机,让本身看到本身的不敷,我会好好
把握本身大学的末了时间,尽量在各个方面都强化本身。我觉得,课设让我看到自己和某些很良好同砚的差距,我相信,只要好好高兴,有一天我也可以成为一个精彩的程序员。谢谢
 
  第三篇:课设心得体会课设心得体会
  大学三年时期的课程设计,这次应该是在实验室呆的时间最长也最烦恼的一次,做课设时期,遇到了许多的题目,固然嘴上会说,学校真的是不想让人活了,好烦呀之类,但我们却从未想过放弃,因为当你觉得最难的时间对峙一下,也就是你有所劳绩的时间,很庆幸,我们对峙了,并且达到了我们的预设目的。两人一组,想想真的比以前的好几自己一组要充分许多,不会说有人不停闲着,有人只是打酱油,这次受益颇多。
  在刚开始焊接电路的时间,由于我的队友在宝鸡实习时熟练掌握了焊接技能,焊接的能够说相称顺遂,没以为有许多难度,但当我们进行软件编译和调试的时间,真可谓举步维艰,不要说调试了,就连用来显示的led屏幕都不会亮,在这个历程中讨教了老师,问了学霸,本身也焦头懒额,软件,硬件一步步清除,最后才发现是焊接和led屏都有题目,再下来屏幕终于亮了,但是功效却实现不全,时钟不走字,偶然还会乱码表现,这个时候老师说先清除软件题目,要是软件没有题目,那就可能是时钟芯片大概晶振有题目,,又开始检测和清除,
最终在我们的努力下发明了问题所在,我们的主芯片电路有题目,换到开发板上后,正常显示,而且功效根本实现除,但是新题目又来了,我们的时钟比现实时间走的要快。软件没题目,我们更换了ds1302芯片,时中已经能够正常运行了,固然实现了基本功能,我们也有肯定的劳绩,但是功效却没有完全实现,我们的闹钟功能由于自己的不敷而没能实现,但我们通过此次课程设计知道自己还有哪些不足和必要高兴的地方。
  下来,我想我必须吐槽一下我初次使用和安装protel软件的心路历程,这个软件我们专业的人利用过的甚少,光这个软件的安装就耗费了大量时间,在安装完毕准备绘图的时间,发现一些常用的元器件基础添加不上来,连at892都没有更别说是ds1302了,没办法,后来在网上下载了一个protel视频教程,跟着视频一步一步来学习利用,但在学习到给库里添加元器件的时间,在protel的library的sch库中的元器件基础添加不上来,我初步判断是安装包有题目,所以将下载了安装了半天的protel软件卸载了,想安装protus。谁意料竟然安置失败,没办法,末了只好告急大神,好不容易将protel的元器件库破解后,画图刚开始也是一塌糊涂,连元器件的偏向都不克不及搞定,熟悉和练习protel画图工具就用了大半天的时间,但是不管怎么说,图末了照旧画好了,想想如果以前在课余时间多学习学习这些根本的绘图东西,现在也不会在要害时间抓瞎了,以后真的(推荐打开:)要多多学习了。
  至此,我们的课程设计在大三的末了一个星期竣事了,以此次课设的收获致我们终将逝去的大三吧!
  宋阿珍
  2020年7月18日
 
  第四篇:ad590课设心得作为一名自动化专业的大三学生,我觉得做单片机课程计划是非常有意义的,并且是十分必要的。在已经度过的大学时间里,我们大多数打仗的是专业课。我们在课堂上掌握的仅仅是专业课的理论知识,如何去锻炼我们的实践能力?如何把我们所学的专业基础课理论知识运用到实践中去呢?我想做类似的课程设计就为我们提供了精良的实践平台。
  两个多星期前我们两个人还认为这个课设是比较简单的,但是一开始做就出现了题目,数码管便是不亮,而且之后也是题目不停,现在想想,这项看起来不需要多少技术的工作却是非常需要耐烦和精神去办理。
  通过这次对温度丈量,a/d转换,光电计数的计划与制作,让我了解了计划电路的步调,也让我了解了关于a/d转换的原理与计划理念。要设计一个电路总是要先仿真并且成功之后才华
现实接线的。但是最后的成品却不一定与仿真时完全一样,这是因为在实际接线中有着各种各样的条件制约、各种百般的因素相互影响。有时候,仿真无法乐成的电路,在实际中却因为芯片本身的特性而可以乐成。所以,在设计时应思量两者的差别,从中出最得当的计划要领。通过这次单片机课程设计,我真正的意识到,在以后的学习中肯定要理论联系实际,把自己所学的理论知识用到现实当中。
  在做本次课程设计的历程中,我感触最深的当属查阅大量的计划资料了。为了让本身的计划越发美满,查阅这方面的设计资料是十分必要的,同时也是必不可少的。我们是在做单片机课程设计,但我们不是艺术家,他们可以抛开实际尽情在理想的天下里飞翔,但我们统统都要有据可依,有理可寻,不切实际的构思永久只能是构思,永久无法升级为计划。其次,在这次课程设计中,我们运用到了以前所学的专业课知识,如:电路,c语言,模拟和数字电路知识等。运算放大器lm324的应用,让我对由运放构成的一些电路有了更深的了解。过去从未独立应用过它们,在学习的过程中带着问题去学我发明服从很高,这是我做这次课程设计的又一劳绩。
  最后,要做好一个课程设计,就必须做到:在计划步伐之前,对所用单片机的内部结构有一个体系的相识,知道该单片机内有哪些资源;要有一个清晰的思路和一个完整的的程序流
程图;在计划步伐时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路。而且程序只有在经常的写与读的历程中才华进步,软件也只有在反复的利用中才华越发纯熟。
  虽然自己对于这门课懂的并不是许多,很多基础的东西都还没有很好的掌握,也没有很有效的措施通过自身去明白,但是靠着这两个多星期的学习,在小组同砚的救济下,渐渐对这门课有了更深的明白。我认为这个收获应该说是相称大的。觉得课程设计反映的是一个从理论到现实应用的历程,但是更远一点可以联系到以后毕业之后从学校转到踏上社会的一个历程。小组人员的配合﹑相处,以及自身的动脑和高兴,都是以后工作中必要的。
 
  第五篇:运筹课设心得通过这次的课设,发现了本身的许多的不敷,自己知识的许多的毛病,看到了自己的实践履历照旧比力缺乏,理论联系实际的本领还急需进步。
  这次的课程设计也让我看到了团队的气力,我认为我们的工作是一个团队的工作,团队必要自己,自己也离不开团队,必须发扬连合协作的精力。团结协作是我们成功的一项非常关键的包管,而这次设计也恰好熬炼我们这一点,这也是非常名贵的。最让我劳绩巨大的是,从这门课设中我学会了如何运用lingo来求解,在做课设的过程中遇到了许多的困难,在不断
的请教和研究下终于得到了答案,我觉得从失败中获得成功的那份喜悦比在一直顺利的环境下更让人欣慰。
  对我而言,知识上的劳绩关键,精神上的丰收越发可喜。让我知道了学无止境的原理。我们每一个人永远不能满意于现有的成绩,人生就像在登山,一座山峰的后面还有更高的山峰在等着你。波折是一份财产,履历是一份拥有。这次课程设计必将成为我人生旅途上一个非常美好的回忆!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。