ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

软工实践个人总结

2021-01-02 18:34:59  阅读:130  来源: 互联网

标签:总结 结对 序列化 项目 软工 编程 作业 实践 团队


一、基本情况

1.1 请回望第一次作业,你对于软件工程课程的想象

回望第一次作业的期待:提高自己的团队组织能力、项目编程水平、打下良好的软件工程基础、做出一些有意思的东西。总体上我达到了自己起初对课程学习的期待。通过个人编程、结对编程以及团队项目的磨练,我学习到了许多之前一窍不通的工具和知识,深刻体会到一个项目的开发在功能实现之外还有很多学问,例如原型的设计、github的协同合作、性能的测试调优以及前后端的衔接等等。我也在在团队合作方面成长了很多,明白了要在深刻理解整体项目以及队友特点的基础上才能更好的协调工作,合作过程中的互相理解和互相鼓励很重要。与此同时,我的项目编程水平也有了很大的提高,在程序的模块化化设计、接口编写、前后端衔接方面学习了不少新知识。深刻体会到代码规范的重要性,前期各个模块实现中的不规范都是在为后期的模块整合以及功能调用方面埋下隐患。

这次团队项目让我明白了一个软件开发的分工主要是前端、后端、服务器端、测试、UI这几个方面,培养了我在项目开发上的全局观。总的来说,软工课程丰富了我的项目实践经验,收获良多。基本达成了第一次作业中自己对软件工程课程的期待和想象。

不足的是自己的时间安排不够合理(加上期末的复习备考以及数据库项目和实验室项目方面的工作有点没忙过来),工作效率以及组织效率还不够高(容易执着于一些细节而耗费了许多项目整体开发的时间),所以没能将整个项目的对接部署工作在最后一次答辩之前完成,有点遗憾。不过自己会在接下来的时间继续努力,让项目成功上线。

1.2-a 总结这门课程的实践总结和带给你的提升:

  • 在软工实践课程当中我编写了__1860__行代码。

  • 软工实践的各次作业分别花费的时间:

# 作业 花费时间(分钟)
2 个人编程作业 1400
3 结对编程作业 2200
4 团队介绍与选题报告 600
5 团队需求分析报告 360
6 团队项目之现场编程 720
7-13 Alpha冲刺(含总结) 1790
14-19 Beta冲刺(含总结) 1900
20-22 每周小结 720
  • 讲述令你印象最深刻一次作业?为什么这次作业令你印象深刻?

不少作业例如团队介绍与选题报告、团队项目之现场编程、Beta冲刺等都给我留下了很深刻的印象,不过要说印象最深刻的一次作业应该是结对编程作业了。当时拿到题目之后野心勃勃,自以为已经想出一个步数最优的解法了,可在AI大比拼正式开放的前一天却发现自己的解法在很多情况下都不能达到实际的步数最优,原因就出在那变换莫测的强制交换和自由交换上,起初万万没想到的是很多情况下可以利用自由交换为跳板来大大减少要移动的步数达到最优。当晚自己和队友在测试之后心都凉了半截,深知算法的瓶颈所在却一时想不出解决的方案。决定一起去操场散散心冷静冷静,结果在散步讨论的过程中迸发出了灵感,找到了理论上可行的最优方案,最后加班加点赶在AI大比拼正式开始的当晚前完成了算法的更新,达到了所有情况下的步数最优,取得了还不错的成绩。结对编程让我深刻体会到了静心思考、坚持和合作的重要性,如果AI大比拼开始的前一晚我们心浮气躁,静不下心,如果我们放弃了算法的优化,如果没有队友之间的通力合作,那结局将会截然不同。

  • 在软件工程课程上花费的时间
累计时间 实际周均时间 预计周均时间
162(h) 10(h) 7(h)
  • 介绍学习到的新技术或生产力工具以及它们给你带来了哪方面的作用。

1、博客的撰写:软工的第一次博客作业是我第一次接触怎么撰写博客并进行发布,学习了博客markdown的语法,这对给我打开了一个新的窗口,在以后记录学习资料以及要在其他平台进行博客撰写都很有帮助。

2、论文查重算法:个人编程作业让我查阅并实践了很多论文查重算法,例如余弦相似度、jaccard相似度等,这对我以后对中文文本的编码处理更加熟练。

3、cProfile性能分析工具:个人编程作业让我学习了cProfile性能分析工具的使用,可将结果用snakeviz进行可视化,从而看出程序耗时大的部分,有针对性地进行改进。

4、利用unittest进行单元测试:尽管在个人编程作业中由于时间所限没能学习并应用上unnittes进行单元测试,但这给我提供了一个开始,在结对编程作业的时候我就成功利用上了unnittest模块进行测试,这对我今后编程工作的严谨性有帮助。

5、网络接口的编写:从一开始完全不知道接口为何物,到从结对编程中初始接口的应用,再到后来团队项目对接时的应用,我掌握了后端接口编写这一技能,这对我今后进行系统开发或是项目开发都帮助很大。

6、python保存对象(供后续使用)的pickle模块:在结对编程中,为了得到确保解的最优性,我需要将暴力遍历的到的结果对象保存到本地供后续调用查询,python的pickle模块实现了基本的数据序列化和反序列化。通过pickle模块的序列化操作(dump),我们能够将程序运行的对象信息保存到文件中去,永久存储;通过pickle模块的反序列化操作(load),我们能够从文件中创建上一次程序保存的对象。利用pickle模块进行对象存储的操作要比一般的读写文件操作效率更高。

7、类图的制作:团队需求分析报告中设计到类图的制作,我也从中学习了类图的制作方法和规范,这对把握程序的整体框架有帮助。

8、python对word、excel文档的各项操作:从团队项目开发过程中,我学会了如何调用第三方库来对word以及excel进行读取写入合并分割等操作,这对我今后高效操作办公文档帮助很大。

9、Auto.js脚本的编写:从团队项目之现场编程中,入门了Auto.js脚本的编写方法,体会到编写脚本去解决实际生活中的问题的魅力。

10、git以及github的使用:从结对编程作业开始,就离不开github的使用,我也从中学习了git以及github的操作,这对我今后管理代码以及查找代码资源帮助很大。

  • 其他方面的提升。

    感觉自己在这个过程中变得更加有韧性,抗压能力比之前更强了。一次次“高压”的任务下我慢慢学习着如何与压力相处,遇到难题时如何静下心去解决问题。

二、总结与收获

这门课程让我养成了良好的编程习惯,比方说在实现一个功能之前,先利用网络资源找一下有没有现成的包或者看一些前辈的实现方式,这些都对接下来的开发起到一个很关键的指导作用,所谓“磨刀不误砍柴工”,比方说结对编程中我就利用了pickle库对python对象进行序列化和反序列化操作,这就大大简化了我之前设想的耗时的文件读写操作,还有团队项目中许多实现细节也是如此,站在巨人的肩膀上能看的更高更远,这点对我的实际开发很有帮助。

还有就是我在如何做一个合格的leader这个问题上成长了很多,一次次的团队作业都少不了与每一个团队成员的沟通、协调,作为团队的一个leader,我体会到在研究分工和一起编写代码、文档之外,如何表达,如何给予队员需要的理解和鼓励,如何营造一个温馨而又奋进的团队氛围更是一门学问,这门课程教会了我很多。

三、这学期下来,你最感谢的人是谁?有什么话想要对TA说呢?

这学期下来,我最想感谢的人是小楚,结对编程和团队项目楚都和我并肩作战,不离不弃,支持我鼓励我。我想对他说的是:楚办事,我放心。一起加油,奥里给!同时我也要感谢我团队的其他队友,你们的认真努力带给了我许多惊喜。即使鸭梨大,也要努力飞~,是你们的理解和支持帮助我度过一个个难关,是你们的认真努力不断给我前进的动力,作为队长,我想对你们说:历经风雨,终见彩虹,大家都是好样的!

标签:总结,结对,序列化,项目,软工,编程,作业,实践,团队
来源: https://www.cnblogs.com/fzucsx/p/14223515.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有