一、回望暑假时的第一次作业,对于软件工程课程的想象
-
对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强计算机专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?
这个学期我和原来预期的一样,写了很多代码,对代码熟悉了很多,写一个功能也很顺手了,不会像原来一样不知所措。但是还是有很多欠缺。而且这学期感觉自己软工作业完成得并不好,我自己拖沓的毛病并没有改变,执行力还有待提高。 -
总结这门课程的实践总结和给你带来的提升
- 我在软工完成的代码:Sudoku 没有做完,半成品 100+,结对项目大概 100+,团队项目在 GitHub 上的数据是2570 ++。
- 各次作业:
序号 作业内容 完成时间/h 1 软件工程实践2017第一次作业 2 2 软件工程实践2017第二次作业(数独) 25 3 结队项目——第一次作业 10 4 团队第一次作业——团队展示 1 5 结队项目——第二次作业 20 6 团队作业—选题报告 3 7 个人技术博客(α) 2 8 团队作业—需求规格说明书 3 9 团队作业—预则立&&他山之石 2 10 团队作业——系统设计 2 11 团队作业——UML设计 3 12 团队作业——随堂小测(同学录) 10 13 个人作业——软件产品案例分析 4 14 团队作业——α 阶段开发 60 15 团队作业——β 阶段开发 25 - 最深刻的还是 Sudoku 那次吧,因为自己没时间没做好,而且不会做==
- 在 α 阶段每天花 2-4 个小时,每周 20 小时左右。β阶段每天花 2-3 个小时,每周 15-18 小时。
- 新学了 Android Studio、eclipse的使用。主要还是 Android Studio。
- 学会了使用 Github、Apizza等工具。
- 新学会了 Android 编程,主要还是 Java,试图学习 kotlin 但是失败了。
- 学会了复制开源代码的正确姿势。
- 其他方面的提升:改变了对 Android 的看法,有了一个自己计划中的 Android 项目。
二、写下属于自己的人月神话——个人或结对或团队项目实践中的经验总结+实例/例证结合的分析
首先是关于学习的。学习一个新的技术不仅仅是要学习基本的语法,最重要的是使用。最直接的方法就是下载最新的工具,在 Github 上搜索最新的或者是最热门的代码和实例,读源码,边读边试着写一个自定情境的项目。这是我学习 Android 的时候明白的经验,一开始很盲目,学的毫无进展,后来掌握了方法很快就上手了。前两天帮一个同学做了一个 MATLAB 的神经网络小程序,这是我从未了解过的全新领域,一下午就写出了符合要求的代码。所以分析源码真的很重要。
另外团队里面一定要及时的交流和沟通,有问题一定要及时地提出,将要解决的问题放在日程里,才不会在未来发现问题的时候匆忙不知所措。
三、建议
软工实践是一个很辛苦,很耗时间的实践课。刚开始大家都开玩笑说要退选,其实这门课真的很有用。平时完成代码作业都只是做题而已,在一个已经预定好的前提下按照出题人的思路写代码,最多就是锻炼对代码的熟悉程度和基本知识的掌握程度。而软工实践要自己做一个在现实场景下可以使用并且有意义的软件。无论简单还是复杂,这都是贴近现实的,和平时的作业完全不同的。我认为软工实践真的应该认真对待,认真地完成,能学到很多东西。
针对大家讨论很久的换队员的问题,我认为不应该换。换人是随机的,被换掉的人负责的部分也有可能完全不同,换过来的队员多半是顶替之前那位同学的位子的。β 阶段的时间较短,在这短短几天时间里很难同时做到学习新的知识,了解项目并且在有足够思考空间的情况下完成项目的代码。况且我们这只是一门课程,同学们还有很多门课程,同时要写很多代码,还面临着考试。同时兼顾这么对事情要做好真的很困难,最后就有很大可能选择划水。所以我认为这并不是必要的。如果有人想换可以自己去交流,没必要强制的。一点小想法,只是不成熟的小建议,肯定有很多我没考虑到的东西。
四、分析一下自己所处的团队。
这一次团队作业很愉快,在团队里面的感觉,比家里面感觉好多了,在家里面一个人很无聊,都没有朋友,女朋友一起玩 ,进了里面去个个都是人才,说话又好听,超喜欢在里面的。
这一次我们的团队感觉还是交流太少。我们分为 Android 端和服务器端两组来做的,两组常常是到了要提交的前一天才对接,之前都是各管各的,每天的开会也只是说一下自己做了什么没做什么,有一些细节的功能的分工还有一些误解,到了我们快要对接的时候才知道。另外就是在开发的时候遇到的困难没有及时和队友讲也会导致一些功能来不及做完。但是大佬们还是很厉害,克服了很多困难,抱大腿很开心✔
发展阶段情况:
- [x] 萌芽阶段
- [x] 磨合阶段
- [x] 规范阶段
- [ ] 创造阶段
五、怎样证明你学会了软件工程?
- 我们的阅读软件刚刚上线,由于只是工具类的 app,使用者并不多,也没有特别好的宣传,所以只有组内成员和一两个室友在使用,也算有用户了吧。
- 通过一系列工具,流程,团队合作,能够在预计的时间内发布 “足够好” 的软件:我们开发基本上是有规划的,不同的功能分配给不同的人来完成。
- 我们每一次实现功能都会在 GitHub 提交,每一次增加功能,做出的修改很明确。代码结构也比较清楚,做出修改和增加功能比较容易。
六、自由发挥
这一次之后我感觉 Android 开发很有趣,计划自己继续学习然后独立开发一个 App,并且长期维护。并且我还计划学习服务器的编程。