个人作业——软件工程实践总结作业
一、请回望暑假时的第一次作业,你对于软件工程课程的想象
1)对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强计算机专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?
通过近一个学期的实践,我感到自己的代码书写和规范能力有了很大的提升,但是在团队合作方面还有很多不足。在本次实践中打了很多代码,而且不仅是算法题,还是有实际应用的项目,感觉自己的代码能力和写代码的规范都有了不小的进步;在团队方面,由于我是写的是后端,一开始和队友没有很多交流,就按要求写了,导致之后的对接有很多的问题,进行了多次修改,如果可以和队友多一些交流的话可以避免不少问题的发生。
2)总结这门课程的实践总结和给你带来的提升,包括以下内容:
1、统计一下,你在这门软件工程实践中,完成了多少行的代码;
大约两千多行(第二次结对作业我上传了输入文件)
第二次结对作业
团队作业——随堂小测
团队项目
2、软工实践的各次作业分别花了多少时间?(做一个列表)
作业 | 时间(小时) |
---|---|
软件工程实践2017第一次作业 | 3 |
软件工程实践2017第二次作业 | 22 |
结队项目——第一次作业 | 23 |
团队第一次作业——团队展示 | 2 |
结对项目第二次作业 | 20 |
团队作业—选题报告 | 5 |
个人技术博客(α) | 6 |
团队作业—需求规格说明书 | 8 |
团队作业—预则立&&他山之石 | 2 |
团队作业——系统设计 | 4 |
团队作业——UML设计 | 3 |
团队作业——随堂小测 | 6 |
个人作业——软件产品案例分析 | 10 |
团队Alpha冲刺 | 55 |
团队项目课堂展示 | 4 |
团队项目测试报告与用户反馈 | 4 |
团队Beta冲刺 | 35 |
团队作业——项目验收与总结博客 | 7 |
个人作业——软件工程实践总结作业 | 6 |
3、哪一次作业让你印象最深刻?为什么?
第二次结对作业,因为当时正是国庆中秋放假,很多同学都回家了,要两个人在一起写代码很难,我和队友再放假期间也没有打什么代码,只能在最后一天疯狂的补,然而还是做不完,第一次熬夜熬得那么晚。
4、累计花了多少个小时在软工实践上?平均每周花多少个小时?
花了有两百多个小时,平均每周花十几个小时。
5、学习和使用的新软件:
mockplus原型设计软件、git、Android Studio
6、学习和使用的新工具:
bash on windows、华为软件云
7、学习和掌握的新语言、新平台:
Python、Java、Ubuntu、Debian
8、学习和掌握的新方法:
敏捷开发、需求分析
9、其他方面的提升
对Linux服务器的部署和操作有了一定的了解。
二、写下属于自己的人月神话——个人或结对或团队项目实践中的经验总结+实例/例证结合的分析
结对合作:一开始和另一个人合作写代码很不习惯,两个人写代码的风格都不同,还要一起商量怎么写代码,什么时候写,感觉很烦;但是在两次结对作业之后,我开始喜欢上了这种感觉,在我不知道一个问题该怎么解决的时候,可以和队友一起讨论,分享代码从对方身上学习,经过了结对合作感觉自己成长了不少。
团队项目:我的团队有八个人,团队项目比个人作业和结对作业复杂很多,也要求和更多的人合作,在一个团队里,组长是主心骨,大家都由组长分配任务,各司其职,但又不是盲目地只做自己的事情,也要和其他成员交流,怎么对接功能,有时候组长提出一些不合理地要求,组员也要讨论一些,看看行不行,比如我们地项目,一开始组长说要去掉云同步地功能,然后我就说感觉去掉了那软件地作用就变得非常有限了,然后团队里展开了讨论,最终保住了这个功能。
三、对下一届实践的建议,或者对于开学初的你,对于大一的你,对于开学初的我,你有什么想建议和告知的呢?对于后来人的期许。特别地,特别地,下一届要不要中途换队员?
我觉得这门课很有意义,第一,实践课可以让你不仅仅从书本上学习知识,更可以亲身实践知识,就像前人所说的“纸上得来终觉浅,得知此事要躬行。”;第二,在这之前地很多专业课都是用考卷或者做实验来考试决定成绩,而这门课用博客和产品来决定成绩,非常贴近工作地情况,而且也十分的有趣;第三,关于要不要中途还队员,我觉得这主要看个人,如果有同学觉得另一个组更适合自己,另一组也有人想和他换的话,可以换一换,但是强制地换队员,有可能出现团队产生矛盾,被换地队员心里不平衡,拖慢项目进度等问题,觉得不是好的方法。
四、分析一下自己所处的团队。软件工程实践是大学里少有的认真的团队协作经验。《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?(参考《构建执法》第17章 人、绩效和职业道德)
萌芽阶段->磨合阶段->规范阶段->创造阶段。
萌芽阶段:一开始大家都不太熟,也不知道怎么做安卓应用,都还只是听组长的,但还是不清楚不知道自己该做什么。
磨合阶段:大家开始学习相应的知识,对于项目该采用什么技术有些意见不统一。
规范阶段:项目用什么技术,写代码的规范都经过小组讨论确定了下来。
创造阶段:大家开始写项目的具体功能,写完之后开始对接。
五、怎样证明你学会了软件工程?
1)研发出符合用户需求的软件
http://www.cnblogs.com/iwayney/p/7661459.html
我们团队做过一些调查,还采访过一些用户。
2)通过一系列工具,流程,团队合作,能够在预计的时间内发布 “足够好” 的软件
https://github.com/TeamALi88/ScheduleManagement
在开始项目前有制定计划,在GitHub上有项目的进度。
3)并且通过数据展现软件是可以维护和继续发展的。
每份代码都有写注释,也都有专门的规范文档。