软件工程实践总结
一、请回望暑假时的第一次作业,你对于软件工程课程的想象
1、对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强计算机专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?
- 在软工开始之前,我就希望在这个学期结束之后,自己的coding的总体水平能够得到很大的提高,对于一个app的开发过程有一定的了解。在经过了一个学期的软工实践之后,确实感觉自己编码能力有了一定的提升,对Android和Java有了更加深刻的认识。团队编码方面也有了一定的提高。在软工实践之前,我也就是做做老师给的题目,平时随便敲敲代码,从来都没有完整的开发过一个项目,通过软工实践我对一个项目的开发流程有了更加深刻的了解。不再只是理论知识,而是将理论付诸实践。虽然在软工实践的过程中压力很大,但是正是因为这个压力让我有了前进的动力。我很庆幸自己选择了软工实践。
- 不足:感觉自己学习的不够深入。因为课程任务也比较重,基本在alpha冲刺和beta冲刺都是在晚上挤出时间来做项目,没有太多的时间去深入学习,有些功能模块是参考网上的,个别知识点感觉自己还不是很理解。还有就是编码规范方面吧,没有很好的重视起来,我们beta冲刺阶段就吃了一个大亏,因为命名方面和服务端没有统一,和服务端连接出现了问题,这个也花费了我们好久的时间。
2、总结这门课程的实践总结和给你带来的提升,包括以下内容:
(1)、统计一下,你在这门软件工程实践中,完成了多少行的代码;
- 3000+应该是有的吧
(2)、软工实践的各次作业分别花了多少时间?(做一个列表)
作业 | 时长 |
---|---|
软件工程实践2017第一次作业 | 3h |
软件工程实践2017第二次作业 | 22h |
结队项目—第一次作业 | 12h |
团队展示—团队作业 | 2h |
结对项目—第二次作业 | 24h |
选题报告—团队作业 | 7h |
项目需求分析—团队作业 | 10h |
同学录—团队作业 | 5h |
Alpha冲刺—团队作业 | 15天 |
Alpha冲刺总结—团队作业 | 2h |
事后诸葛亮(团队)—团队作业 | 4h |
华为软件开发云测评—个人作业 | 15h |
Beta冲刺—团队作业 | 7天 |
个人作业——软件工程实践总结作业 | 4h |
3、哪一次作业让你印象最深刻?为什么?
- Alpha冲刺吧。Alpha冲刺阶段整个团队每天都在一起打代码,每日一会,这个体会还是很深刻的,毕竟我们很少有这种团队编码的体验。而且我们团队对app开发可以说大家经验值都是为0,所有人都是从零开始学习,大家那段时间是真的很拼。我印象最深的应该是第一次和服务端连接成功的时候,当时Android端和服务端连接我们弄了三天才成功,连接成功的时候特别开心,印象是相当的深刻。
4、累计花了多少个小时在软工实践上?平均每周花多少个小时?
- alpha和beta冲刺阶段基本每天晚上会花三、四个小时,这个平均下来大概每周也有12-14小时吧。
5、学习和使用的新软件;
- Android studio
6、学习和使用的新工具;
- startUML、Github Desktop、Process在线作图、墨刀、Xmind
7、学习和掌握的新语言、新平台;
- java、GitHub
8、学习和掌握的新方法;
- 原型设计、需求分析、UML图的绘制
9、其他方面的提升。
- 作为一个团队管理者,需要不时和团队成员沟通和交流,感觉在整个实践过程下来自己的沟通能力有了一定的提升,语言表达能力也有了一定的改善。
二、写下属于自己的人月神话——个人或结对或团队项目实践中的经验总结+实例/例证结合的分析
- 团队编程中一定要明确好分工,在alpha阶段我们组分工就是不够明确,一个功能模块感觉大家都有参与在做,然后整个项目的进度就很慢。
- 代码规范一定要做好。我们当时就是因为一个大小写的问题没有统一,和服务端没能连接上,导致项目一直停滞不前。还有就是关键代码需要有注释。尤其是结对作业和有团队项目实践,这个更加重要,别人要能够很轻松的就知道你这段代码实现的是什么功能。
- 团队之间的沟通联系很重要。要及时了解团队成员的进度。
- 在确定项目选题和项目需求分析的时候一定不要想的过于复杂,要考虑到自己团队的实际情况。我们团队当时在需求分析的时候,对于我们自己的项目想的过于复杂,基本就是能想到的就往上加,没有考虑在自己团队的实际能力,导致我们后面在alpha冲刺和beta冲刺的时候压力很大,有些功能没时间实现。
三、对下一届实践的建议,或者对于开学初的你,对于大一的你,对于开学初的我,你有什么想建议和告知的呢?对于后来人的期许。 特别地,特别地,下一届要不要中途换队员?
- 软工实践还是能学到很多东西的,只要你认真的按照老师的要求来,一个学期的软工实践下来,收获是很大的,首先你的编码能力就会有很大的提高。还有就是通过软工实践你能更加理解理论课上的知识点。而且有些东西真的不是课上能学到的,通过软工实践能够学到很多新的知识,对自己能力的提高有很大的帮助。还有一个很重要的是一定要选好自己的队友,选择可靠负责的队友。团队编码中团队成员之间的配合程度是很重要的。
- 关于换队友吧,感觉要视情况而定,关键看新加入的成员的质量。如果新加入的成员是要有一定能力的,能够很快的对团队的项目熟悉起来,尽快接手,能对项目的开发做出相应的贡献,那对于团队项目的进展影响不会太大。但是如果加入的成员对于项目的开发没有起到作用,反倒是拖了团队后腿,这样就相当与是团队失去了一个成员,整个团队的进度就会慢下来。而且感觉换队友可以提前一点做,因为我们这次是beta前期说要换队友的,但是新的成员加入我们的团队,需要一定时间熟悉我们的项目,和团队其他的成员的磨合也需要一定的时间。时间太赶的话容易造成新来的同学没有足够的时间来熟悉我们的项目,不知道从何下手。
四、分析一下自己所处的团队。软件工程实践是大学里少有的认真的团队协作经验。《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?(参考《构建执法》第17章 人、绩效和职业道德)
- 萌芽阶段:团队成立,团队成员中和自己的舍友是比较的熟悉的,但是和其他两个男生虽然都是一个班的,但是平时都不太熟悉,没怎么交流。
- 磨合阶段:在这个阶段团队成员各抒己。对选题进行讨论和决定。
- 规范阶段:团队分工渐渐明确,团队成员之间协同编程。
- 创造阶段:应该处在初期阶段,实现了基本功能。
五、怎样证明你学会了软件工程?
- 完成了基本功能
- 在alpha阶段还有beta阶段前期都有具体的规划,团队成员都有commit代码到github上,每天相应的进度也有在博客上记录。
- 在github上面有项目的源代码和相应的文档,证明该软件是可以维护和继续发展的。
附上一张beta阶段commit代码的图: