一、请回望暑假时的第一次作业,你对于软件工程课程的想象
1)对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强计算机专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?
- 这一整学期的软工实践基本上都是围绕着Android的APP完成的,除了一开始的数独和结对作业,其他的比如界面原型设计,实现同学录信息的增删改查,还有最重要的大作业,都是与做一个Android APP有关。总的来说,这次的软工实践提高了我个人的学习能力以及应对bug的能力,也在Android APP这方面的知识有了一点点了解。
- 不足的地方有很多:因为这次的软工实践我负责的部分是前端的部分,在需要什么功能的时候就去寻找实现这种功能的方法,只有粗浅的大致看看,并没有完全理解这个控件或是这个函数是如何实现的,所以我觉得代码能力并没有得到多少提高。而且完成的功能也是在各个Activity之前的跳转,各个Activity完成的功能是什么。因为最后我们团队的APP完成的功能并不多,总体来说与当初的同学录类似,只是多加了一些功能,主要精力都放在一些比较好看的控件的实现。比如在项目界面右上角点击加号控件就能实现功能选择
2)总结这门课程的实践总结和给你带来的提升,包括以下内容:
1、统计一下,你在这门软件工程实践中,完成了多少行的代码;
大概5000行左右吧
2、软工实践的各次作业分别花了多少时间?(做一个列表)
作业 | 耗费时间 |
---|---|
数独游戏 | 12小时 |
结对原型设计 | 4小时 |
结对部门匹配 | 10小时 |
需求规格说明书 | 5小时 |
系统设计 | 5小时 |
团队小测同学录 | 30小时 |
华为云评测 | 3小时 |
α阶段冲刺 | 30小时 |
β阶段冲刺 | 50小时 |
验收收官冲刺 | 30小时 |
总计 | 179小时 |
3、哪一次作业让你印象最深刻?为什么?
应该是那次同学录的作业吧。因为这次的作业是我第一次接触Android APP,以及第一次在实践中获得了自己团队的产品,也在这次的作业中学到了一些知识,比如如何在两个Activity传送数据,如何获取Cursor的数据等等,即使这个产品并没有什么用处。。。
4、累计花了多少个小时在软工实践上?平均每周花多少个小时?
累计花费了179个小时,平均每周花18个小时左右。
5、学习和使用的新软件;
Android Studio
6、学习和使用的新工具;
墨刀
7、学习和掌握的新语言、新平台;
学习了一点Java和Android。
8、学习和掌握的新方法;
并没有掌握什么新方法
9、其他方面的提升。
提升了自己的学习能力吧
二、写下属于自己的人月神话——个人或结对或团队项目实践中的经验总结+实例/例证结合的分析
- 在遇到一些没有接触过得新知识时,站在巨人的肩膀上是看到远方最快捷的方式,正如我们在参考了前辈的博客后学会了如何操作Android自带的SQLite数据库。
志同道合很关键,制作APP不仅需要能力,也需要工作热情,在团队确定了APP的方向之后,一些队友连队长都纷纷失踪,在我们本身就对这个方向不满意的情况下,不仅没有工作热情,还要承担更多的工作,这令人烦躁。
三、对下一届实践的建议,或者对于开学初的你,对于大一的你,对于开学初的我,你有什么想建议和告知的呢?对于后来人的期许。 特别地,特别地,下一届要不要中途换队员?
如果你报了这门课程,请好好对它,端正自己的态度,学到了就不后悔。我建议不换队员,虽然老师力求接近现实,但是对于像我这样的弱鸡,可能这个作业就是我的第一个项目,难能可贵,如果我参与其中,我希望能有始有终,看着它萌芽,看着它结束。
四、分析一下自己所处的团队。软件工程实践是大学里少有的认真的团队协作经验。《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?(参考《构建执法》第17章 人、绩效和职业道德)
- 萌芽阶段:在几次团队会议中确定出要做的产品;
- 磨合阶段:需求规格说明书的书写、架构设计以及在软工实践课上的团队作业,慢慢了解彼此的状态;
- 规范阶段:在α冲刺阶段与β冲刺阶段,一开始的一无所知,慢慢的有了每天的规划,也就是每天团队要完成的功能任务;
创造阶段:也许还在明天吧
五、怎样证明你学会了软件工程?
很遗憾,我并没有学会软件工程
1)研发出符合用户需求的软件。必须公开发布,有实际的用户,一定的用户量和持续使用量 (3 天后能保持10 - 100个用户);而不是: 做没有用户使用的软件
一开始我们团队的APP方向一定下来,就感觉没有什么竞争力,不仅在市场上已经有相对成熟的产品了,而且我们没有丝毫特色可以吸引到用户,这种情况确实是我们团队自身的问题。
2)通过一系列工具,流程,团队合作,能够在预计的时间内发布 “足够好” 的软件。有项目规划/需求/设计/实现/发布/维护,有定时的进度发布 ; 而不是: 通过临时熬夜,胡乱拼凑,大牛一人代劳,延迟交付等方式糊弄
在α阶段我们团队还迷迷糊糊,并不知道自己要什么,需要做什么,比无头苍蝇更惨。万幸在β阶段在李芳凯同学的英明指导下团队慢慢走向正轨,每天都有任务,每天也基本都实现了所需要的功能,一步一个脚印,将我们这个APP一点点的空缺补上,虽然最后的结果并不满意,但是相对之前确实有了一点进步。
3)并且通过数据展现软件是可以维护和继续发展的。而不是 找不到源代码,代码无文档,代码不能编译,没有task/bug 等项目的发展资料
因为我们团队后面都是在完成APP的一些功能,完成后就互相整合起来,所以不仅没有代码规范,而且代码注释也很乱。
六、个性发挥,包括图文、照片和创意等
你知道吗,代码和音乐更配哦
Immortals
New Divide
What Are You Waiting For?
My Songs Know What You Did In the Dark