1)回顾查看本学期第1日的计划,我的完成度比较好。从三方面来说。
第一方面是结对项目,两个人的地铁查询系统完成度比较好,完成了一个较为完整的地铁查询的安卓APP的开发。而且用到了本机的数据库。和外部的Mysql数据库。
第二方面是结对项目。我作为团队的队长带领,我们团队参加了这半年的中国大学生服务外包杯。然后所报的项目是基于图像文字识别,做一个类似于记账本的APP。近期我们也是完整的完成了这个APP正在尝试将其发布到应用商城去,供大家下载。在这个过程中,我学习了很多算法。而且学会了如何配置云服务器以及将软件如何发布到应用商城软件的联网问题以及图像文字识别问题。还有将识别出的文字进行用函数转化转化成我们所需要的一部分文字。
第三方面是切实的进行了组队,多成员一起开发训练,并且我作为队长领导了,我们小组结合我们小组每个人成员的优势去开发。虽然我们组的水平参差不齐,但是我们一起最后还是完成了较为完整的完成了我们的项目。这在我以后和未来的学习生活中是一个很大的收获。
2)在开课主席实际上我提出了不止有5个问题,下面找出其中5个进行解答。
第1个是为什么要进行团队开发?我的答案是当一个项目的工程量巨大,是一个人的能力,确实是不可以支撑起整个项目的开发。这里既有前端又有后端,还有整个APP的人和人之间的交流,以及将人的内容转化为我们所需要的内容。这个过程一个人是不可能完成的,因此需要团队各个人发挥各个作用结合起来去开发。
第2个问题是为什么要进行单元测试?当一个项目的工程量巨大,开发周期较长的时候。是不可能一次性完成很多内容,就算写代码也是写在很多个文件里。而且每个文件里也会有很多的代码。如果想一次性写完这些,再去验证,那么所耗费的时间是巨大的。并且如果出现漏洞也是不好解决的。这时候单元测试就起到了作用,每进行一小段时间去测试,那么这个时候问题及时发现及时解决,使我们的项目代码能够顺利流畅的进行下去。
第3个问题是开发流程真的很重要吗?我的回答是很重要。在初期的时候去做结对项目的时候,没有制定较好的开发流程,所以导致没有逻辑的去做其中走了很多错路。然后在团队项目的时候就发现了这个问题,做了一个较为简单的开发流程,虽然这个开发流程简单,但是使我们的团队项目有了一个较好的进展,在第一阶段和第二阶段都能顺利的进行下去。
第4个问题是到底是边开发边交流客户还是应该开发完成之后再去交给客户?这个问题在软件工程课上进行了解答。因为在开发过程中客户会随时提出问题让你去更新,所以不能开发完成后再去让他提问题,应该是边开发让他编去找问题,随着开发的加深这些问题都会慢慢的解决,而不是最后堆到一块,这样会导致代码改起来很复杂。
第4个问题也是简单浏览完之后总结出来的,由于拆的PPT发展,那么软件工程还有没有前景?就我而言觉得还是比较有前景的,因为毕竟PPT他只是逻辑上能力比较高,但是他真正的与人打交道的能力还是很低的。我们还是需要与人去更多的沟通让人的需求转化成根据专业性的语言去进行下一阶段开发,这是至关重要的一步。
3)结合团队这两次完成项目后的事后会议分析。团队内的沟通介质很重要,如果一个团队不去沟通而去做项目,就会产生巨大的问题,会使每个人的项目进度不同,导致最后融合的时候无法融合。在一个积极的沟通会带来的正面影响,就是如果你能力不足,那么你可以干你能干的事情,而不是分开给你的任务,你做不了导致整个项目的延后。这是我最大的感想。同时作为领导者应该有一个清晰的头脑,去知到这个项目应该干什么,了解自己的队员,合理的去分配任务。同样团结也是很重要的。
4)这个学校有一个不能用数字衡量的收获,就是自我学习的能力得到了很大的提升。还有一方面就是向他人倾诉的能力也得到了很大的提升。以前向别人请求几乎就是抄别人代码,但现在是去理解对方的思想,然后让对方帮助你去解决问题,然后自己再进一步提升。以后在面对相同的问题时能够从容的解决。再有见到自己不会的问题后,知道怎么去向百度或者其他的搜索引擎去询问,从而解决问题。
5)我对本门课的建议就是开发需求的文档更详细一些,有很多地方是不明确的。还有就是应该加强对数据库的描述,数据库对我来说现在是一个较为大的弱点。尤其在建立合理数据库的方面上。