个人作业——软件工程实践总结

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

1、对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强计算机专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?

  在暑假写第一篇博客的时候内心也是有点忐忑的,感觉大三上学业压力会比较重,然后自己的coding能力又很差。担心选择软工实践课会让我的大三上学期过得比较难过。(实践证明,确实过得比大二充实多了T.T) 由于暑假时候太过咸鱼,在暑假最后几天进行了“深刻的自我反省”(事实上是间歇性踌躇满志)  。刚好软工第一次作业出来,一时间热血上涌,信誓旦旦要好好地学习专业知识,所以坚定了选软工实践课程的决心。

  作为一个计算机系的学生,常常有别人对我说:“陈x,听说你读的电脑呀,那啥,我电脑开不开机了,帮我修修呗!”  "你不是读计算机的吗,那啥,我家里洗衣机坏了,能帮我看看吗?“(我的婶啊!这有关系吗?)。

   我只能惭愧地回答:“打扰了,我不会修东西,学业繁忙,暂时告辞。” 

  “那你平时在学校学些什么?”——“就...看看书敲敲键盘写写代码”   

  “刚好刚好!我前两天在steam上买了一个游戏,里面有个小boss把我头都给锤爆。你帮我写个脚本吧,就改改属性,也不要太高,我嘛只要能一刀99999就好,也不能太出风头对吧。这对你来说是不是小case,改个数字就好,省得我肝个三五天的。”

  “。。。。。。”

        所以我这两年多来学了些啥。好像确实没有可以拿的出手的技能。那么如果未来面对面试官,我该如何去应对他们的提问呢?所以我希望自己能够多学一点技能,尤其是能够有一些项目的实战经验,这样在未来面对就业能够从容以待。

   学期初的时候希望能够提升自己的代码量,同时学会一些开发软件的使用。因为之前写的代码大多是控制台程序,从来没有过可视化界面。那么这样的代码写出来的东西我感觉不能叫做软件,所以那时候很迷茫,我应该掌握一些什么样的技巧,才能够把目前所学的知识应用到实际问题的解决中去。

  那么当我经过一个学期软工实践课程的学习之后,也渐渐有了一点概念。比如如何让自己的代码在界面上跑起来而不是之前最熟悉的那个控制台黑框。稍微理解了前端和后端的分工合作。在之前的课程中,还从来没有一门课让我用下载并使用了这么多的工具,并且之前从来不喜欢逛博客的我还是注册了好几个博客网站的账号,方便去博客网站上查找相关知识。

  •   我当时希望自己这学期能学更多的开发软件,确实在软工实践过程中,实现了自己的这个期望。期待自己能找到一起奋斗的队友,也已经实现了。
  •        这学期选的好几门课都要写代码,代码量确实提高了。
  •       比起之前有了更强的抗压能力。(毕竟总是有莫名奇妙的bug哈哈哈)

  当然在实践的过程中,也有许多的不足之处应该提高。譬如由于我个人学习效率不高而拖慢了团队进度。因为之前自己只会一点c语言,但这学期的大部分作业是用java来写的,所以在看java代码上比较费劲。所以我在学习怎么去做app的某些功能时常常要花比较多的时间去看。我在团队项目作业中是负责前端的,往往后端代码已经写好了两三天,但我的前端页面上还有大大小小的bug没有解决导致不能和后端通信。

  •   因为coding能力差了点所以写的代码往往时论坛上东拼西凑然后自己再加以修改的,所以常常揉成一团,给队友的阅读造成了困难。
  •   对于软件工程课程上学习的那些设计模式很少用上,往往在项目前期还按规则走,到冲刺阶段就开始放飞自我了。
  •        没有用一些好的框架,只是把项目当成一份难以啃下的作业,希望能早点结束它所以比较粗糙。
  •        对于代码测试和功能模块测试这方面了解地比较少,包括测试代码的性能,查找功能模块潜在的问题等等。往往写完能跑不闪退就觉得比较ok了。
  •        时间利用率太低。

2、总结这门课程的实践总结和给你带来的提升,包括以下内容

(1)统计一下,你在这门软件工程实践中,完成了多少行的代码

JAVA 1870
C++ 692
Python 50
XML 510
合计 3122

(2) 软工实践的各次作业分别花了多少时间?(做一个列表)

各次作业 花费时间(h)
第一次作业 7
个人项目一:wordCount 16.5
结对作业一:原型设计 12.83+6.5(学习原型设计工具)=19.33
团队展示 4
结对作业二:wordCount进阶需求 19.5
项目选题报告 12
项目需求分析 20
项目Alpha冲刺 62
(团队)现场编程 8
福大微信公众号使用评测 6
项目Beta冲刺 28
项目完善 6
软件工程实践总结 3.5
合计 211.83

(3)哪一次作业让你印象最深刻?为什么?

  Alpha冲刺。因为那时候每天都要开小组站立会议,所以每天都得写代码呀。由于之前github没用好,我们几个前端写的页面都是”线下合并“,出现了各种各样的问题,心态都快崩了哈哈。加上Alpha冲刺那一周刚好也要交编译实践的代码,周日有接口考试所以熬得比较晚。好在队友的心态都很好,他们的学业比我更繁重但是比我乐观多了。在他们的感染下,我感觉自己不能就这么轻易地狗带,那周五晚上熬夜把页面上存在的很多bug先”硬核“地隐藏了emm...。在实际项目开发中遇到的bug难以预料,因为之前写的作业一般都是编译能过,然后就可以运行。但是实际上却有很多问题,不仔细找难以找出来,有时候甚至是一个傻到让你气哭的小bug,给自己要查上一整天。在合并别人的代码时,有时候就算解决了冲突,但也会遇到不可预知的问题,功能模块间可能互相影响等等。在Alpha测试之后,吸取了教训。我们认真地学习了github的使用,确实减少了很多麻烦。

(4)累计花了多少个小时在软工实践上?平均每周花多少个小时?

  如上图表格所示,如果按照17周来计算,那么平均每周花了12.46小时在软工上。其实主要时间是在学新的工具还有改bug上了。学习效率不高。

(5)  学习和使用新的软件与工具

  •   Visual Studio 2017的代码单元测试,代码性能测试——wordCount作业。
  •   Axure RP8 设计原型 ——结对作业:原型设计
  •   Rational Rose 画用例图,类图等——项目需求分析
  •   XMind 画思维导图——结对作业:原型设计,微信公众号评测的功能分块
  •   Anaconda 写爬虫——结对作业:wordCount进阶需求
  •   eclipse (Java Swing可视化套件) ——团队现场编程
  •   Andorid Studio 开发项目——团队项目开发
  •   GitHub Desktop 管理项目——团队项目管理

(6) 学习和掌握新的语言

  •   Java语言。
  •   了解了一点点Python。
  •         xml画界面

(7)其他方面的提升

  • 抗压能力提高了不少。
  • 自学和找资源能力比以前好了一点。

   

二、写下属于自己的人月神话——个人或结对或团队项目实践中的经验总结+实例/例证结合的分析

  之前自己接触到不了解的东西时,都是十分抗拒的。在团队项目开发时,我和队友都是属于基本上从0开始的状态,之前并没有项目经验。所以我们常常在奶茶店讨论怎么解决bug和一些功能如何实现。在实践过程中总是遇到大大小小的问题难以解决。在Alpha冲刺和Beta冲刺最后一两天一起熬夜解决bug。虽然最终很多功能都没有实现,但是共同奋斗的感觉还是很棒的!

 

三、对下一届实践的建议,或者对于开学初的你,对于大一的你,对于开学初的我,你有什么想建议和告知的呢?对于后来人的期许。 特别地,特别地,下一届要不要中途换队员?

  •    对于大一的自己。建议就是多出去走走交点朋友不要老是一个人宅着,最好加入一个团体去认识更多的人!尤其在大一下比较闲的时候一定要找实验室去面试,或者参加一些项目和竞赛!别怕失败,不要自卑内向!不要总觉得自己做不到(结果最后就一事无成了)不要在力所能及的事情上依赖别人抱大腿。各种机会都要抓紧,人生如白驹过隙,要勇敢一点珍惜生活。
  •   对于开学初的自己,要早点开始学习前端的相关知识,自学好JAVA的基础应用,不能在要用的时候才想着去翻书找论坛。不能陷入很多时间黑洞。早点睡后面有机会熬夜。专业课笔记好好做!
  •   对于下一届实践的建议和期许:希望学弟学妹们在选题时候尽量选一些贴近自己生活的,实用性比较高并且容易实现的项目来做。在需求分析阶段至少要初步了解自己要实现的那些功能需要用到什么样的工具和方法。遇到问题及时求助,因为有时候,一些简单的问题会困扰我们一整天,但其实在有经验的人眼里可能一瞬间就能解决。多上论坛和gitHub上找一找类似项目参考,少走弯路。合理分配时间,不至于到最后熬夜。看你们的啦!
  •        对于中途换队员,我个人认为可以不换的。

四、分析一下自己所处的团队。软件工程实践是大学里少有的认真的团队协作经验。《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?(参考《构建执法》第17章 人、绩效和职业道德)

五、怎样证明你学会了软件工程?

posted @ 2019-01-08 01:46  白夜逆行  阅读(230)  评论(4编辑  收藏  举报