一、请回望暑假时的第一次作业,你对于软件工程课程的想象
1)对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强计算机专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?
参加这次软工实践是期待能够经历像在公司开发项目的感受,和自己一人独自写项目是有何不同,学习优化协调整个过程的方法。通过这次的实践让我认识到注重源代码以外的重要部分,像需求分析、框架设计、产品测试等,才能做出不止是能运行,还是能令人满意的作品。这次实践学会开发一个APP,也了解这个GitHub平台的优秀,但是还有待与进一步加深,GItHub使用也不是很熟练。在后期的软件测试也不是做的很好。
2)总结这门课程的实践总结和给你带来的提升,包括以下内容:
1、统计一下,你在这门软件工程实践中,完成了多少行的代码;
2000多行,其中有部分是数据库的插入语句。
2、软工实践的各次作业分别花了多少时间?(做一个列表)
作业 | 所花时间 |
---|---|
第一次作业 开设博客+一篇随笔 | 2 |
第二次作业 数独 | 15 |
结队第一次作业 模型 | 9 |
结对第二次作业 部门与学生的智能匹配 | 22 |
团队预则立&&他山之石 | 2 |
团队系统设计 | 4 |
团队UML设计 | 2 |
团队Alpha冲刺 | 50 |
团队随堂小测(同学录) | 5 |
个人软件产品案例分析 | 7 |
团队Beta冲刺 | 10 |
个人软件工程实践总结作业 | 4 |
3、哪一次作业让你印象最深刻?为什么?
第二次作业 数独和结对第二次作业 部门与学生的智能匹配,因为在这两次作业中都遇到较大困难,一是visual studio的使用,然后在json格式的输入输出卡了比较久,曾经一度想要放弃
4、累计花了多少个小时在软工实践上?平均每周花多少个小时?
100多个小时吧,每周花多少时间平均来算的话得有10来个小时。
5、学习和使用的新软件;
Visual Studio、Android Studio、Sourcetree、Mockplus
6、学习和使用的新工具;7、学习和掌握的新语言、新平台;
Java、Android Studio、GitHub、markdown、Processon在线画流程图、马克飞象
8、学习和掌握的新方法;
Visual Studio的单元测试、 需求分析、NABCD模型
9、其他方面的提升。
和团队的协作
二、写下属于自己的人月神话——个人或结对或团队项目实践中的经验总结+实例/例证结合的分析
- 接口文档——团队任务中最重要的就是能并发的进行自己的任务,不能等到别人的任务完成了自己才接着开发,二并发过程中起协调作用的就是规范好接口文档,起初因为经验匮乏,我们接口文档拖了2天才给出,因此拖延了团队不少时间。
- 小demo训练——每次要给项目增加新的模块或功能时,我都会先独立出来,先写一个小demo尝试实现这个功能,再加到项目上。如果一开始就在项目上改时,整个项目会非常大,不易查找错误,而且可能会误修改到不应该动的地方。当然采用这个方法要求项目有较好的封装性。
- 熬夜——熬夜不能说是经常有,但是在Alpha冲刺期间也是会有一两天熬夜到2、3点,熬夜不能说好,但是如果当天没有把思路实现了第二天就很难重新拾起来,还会越拖越久。
三、对下一届实践的建议,或者对于开学初的你,对于大一的你,对于开学初的我,你有什么想建议和告知的呢?对于后来人的期许。 特别地,特别地,下一届要不要中途换队员?
如果想在大三多学点东西的一定不要错过、或者蹉跎了两年后想在大三改变自己就更要选。不要担心自己是一条咸鱼,以为在实践之前大部分人都是初学者,我也同样没有接触过Android Studio,但是在经过半个月的学习训练后可以掌握住基本的使用。所获良多,是一次难得的项目开发经历。
至于说换队员我只想说还是不要强制吧,凭自己意愿。因为想模仿职场的公司辞退某人也大多是在一个项目完成后,模仿辞职跳槽也是凭自己意愿的呀。
四、分析一下自己所处的团队。软件工程实践是大学里少有的认真的团队协作经验。《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?(参考《构建执法》第17章 人、绩效和职业道德)
萌芽阶段->磨合阶段->规范阶段->创造阶段,应该来说各个阶段都有经历过吧!
在萌芽阶段团队间成员不大熟悉,团队间的交流大多都是在PM协调下进行,而且状态还没转换过来,PM规划好大家的任务,很可能都要在快到截止时间才完成。在经历那次课堂小测(同学录)之后,应该是到了磨合阶段,那次大家在教室待了一整天,晚饭也没吃快到晚十点才完成品,经过这次合作后关系更进一步,合作也更加融洽。在之后的创造阶段,大家在每天开会时都能有针对的安排自己的计划,知道自己要完成什么,而不是等待PM详细的安排。
五、怎样证明你学会了软件工程?
1)研发出符合用户需求的软件
作品已经发布,可以到相应平台下载:
- 平台1
- 平台2
- 平台3
2)通过一系列工具,流程,团队合作,能够在预计的时间内发布 “足够好” 的软件
PM有规划好每个人要完成的工作量,在前几次的需求分析,系统设计等博客上都是大家合作完成,每个人都要完成一部分。为了能及时完成也都在每个任务上定了截止时间。
3)并且通过数据展现软件是可以维护和继续发展的。
在GitHub上不仅有源代码,还有相关文档,代码里也有详细注释。然后在前期设计的一些功能也还没加上去,软件还是有很大的扩展空间的。