我已经经历过201801,我还有什么难题做不出来!
一、请回望暑假时的第一次作业,你对于软件工程课程的想象
1)对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强计算机专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?
第一次作业链接:豪杰的初章
你打算平均每周拿出多少个小时用在这门课上,以达成你的期待以及你在(2)或(3)或(4)上的目标?
答:我想让这门实践课在我大学的经历上写下浓墨重彩的一笔,我希望我能真正的加入一个团队中参与到一个项目中,一起和同学努力一起进步。
-
达到的期待
-
[x] 同团队成员一起编程,和大家们一起码代码的感觉还是不错的!
-
[x] 我和团队一起做出来可以使用的产品!并且我们组每一次的答辩分数均在班级前列!
-
[x] 学会了使用Android Studio这一款强(la)大(ji)的安卓开发工具!
-
[x] 的确是浓墨重彩的一笔,各种难以忘怀的经历!
-
还存在的不足
-
[ ] 没有较强的团队意识,若有余力还是应该care一下同学的部分
-
[ ] 没有学习到后端有关的知识
-
[ ] 没有将多家的接口对比后使用
-
意料之外的收获
收获很多朋友,发现了他们身上各种闪光点,能就此提升自己,很开心!
2)总结这门课程的实践总结和给你带来的提升,包括以下内容:
- 统计一下,你在这门软件工程实践中,完成了多少行的代码;
作业数 | 新增代码(行) | 累计代码(行) | 重要成长 |
---|---|---|---|
1 | 100 | 100 | 复习C++ |
2 | 200 | 300 | C++熟悉,对文件读取分析方法 |
3 | 0 | 300 | Axure rp 8使用 熟悉NABCD模型 |
4 | 300 | 600 | 使用C++编写爬虫程序 |
5 | 0 | 600 | 详细了解需求规格说明书以及接口文档书写 |
6 | 0 | 600 | 与团队一起进行需求报告的书写 |
7 | 600 | 1200 | 学习如何调用百度语音API,懂得AS基础使用方法和构建APP的基础方法 |
8 | 700 | 1900 | 完善百度语音Api调用,实现简易悬浮窗 |
9 | 250 | 2150 | 完善自己的部分 |
在这门软件工程实践中,完成了2150行代码
2.软工实践的各次作业分别花了多少时间?(做一个列表)
作业名 | 本次作业耗时(分钟) |
---|---|
自我介绍 | 5 |
第一次作业 | 120 |
个人项目 | 1540 |
结对项目1 | 460 |
团队风采展 | 240 |
结对项目2 | 2010 |
团队选题报告 | 1200 |
团队课堂UML设计 | 845 |
团队需求分析报告 | 1355 |
Alpha版本冲刺 | 5460 |
团队现场编程 | 360 |
团队项目测评(福大助手) | 350 |
Beta版本冲刺 | 2200 |
最终版本展示 | 600 |
共计 | 16745 |
3.哪一次作业让你印象最深刻?为什么?
我印象最深刻的是结对项目2,那次作业我负责的部分是爬虫部分的实现,印象深刻是因为我的方法比较复杂,使用C++将网页源码载下来,然后使用正则表达式将我想要的网页上的信息提取出来,再保存下来,或者继续作为网址,进行下一次搜索信息。
4.累计花了多少个小时在软工实践上?平均每周花多少个小时?同时贴出开篇博客“你打算平均每周拿出多少个小时用在这门课上”的回答
引用之前的回答:
我打算每天拿出一个小时来进行学习,并且平时有空了就尽量把进度提前。
累计花了16745min,等我拿出来我的计算器算一哈,嗯,279.083h,也就是不眠不休11.63天吧。如果是按照我之前的计划:1h/day*150day=150h,emmm,比我之前的估计多了一倍多。真是痛并快乐的度过了280个小时!
5.学习和使用的新软件;
- 设计软件:Axure8.0,StarUml,Processon,对原型设计这方面有了一定的了解
- 编程软件:Android Studio,VS2017(之前打代码都用的Codeblocks,C#设计用的VS2013,这是第一次用VS2017)
- 学习软件:有道云笔记(写博客,记录学习内容挺方便的)
6.学习和使用的新工具;
- 设计工具:墨刀,Processon,对原型设计这方面有了一定的了解
- 编程工具:VScode
- 学习工具:博客园,有道云笔记
7.学习和掌握的新语言、新平台;
- Java的基础以及和接口相关的Java知识
- 温习了C++,学到了对文本进行处理和爬虫的方法
- GitHub,对git命令行有了了解
- 博客园,学到了用博客记录学习内容的方法
8.学习和掌握的新方法;
- 调用百度语音转文字接口的方法
- 学到了C++中对文本进行处理和爬虫的方法
9.他方面的提升。
- 沟通能力,能够更好地和团队成员进行交流,并且改掉了自己打断别人说话这个不好的习惯,原来这个习惯这么讨厌!
- 询问能力,一些很困难的事情,自己一个人钻研可能要两个小时,问问大牛的意见可能解决就只要五分钟!埋头苦学的同时也要抬头看看身边的人!
- 倾诉能力,一些自己心烦气躁的时刻,一些自己沮丧的时刻,要学会倾诉。这些负能量自己消化起来很费劲,和身边人倾诉一下就好,你不想给朋友传递负能量的时候,或许朋友期待你同他敞开心扉的交流。
- 共情能力,要设身处地地为他人着想,自己的不愿意的事情不要推给别人做,有时候要勇于承担责任。
二、写下属于自己的人月神话——个人或结对或团队项目实践中的经验总结+实例/例证结合的分析
- Deadline
这是我认为最重要,如果没有一个明确的deadline,就没有每天明确的安排,不知道明确的安排,那不就是心里没点13数吗?
只有自己或团队有了明确的deadline和具体的安排,才能很好地开展自己的任务,我们团队在这方面就做得很好。
关于ddl最好的例子就是团队之间的比较。我们团队在每次提交作业前定了一个大的ddl,在日常中又有小的ddl和明确的每个阶段完成的任务,做得差一点的团队就会在提交作业前两天才开始编程,写博客。
- 静下心,走出去
这两条主要是针对个人
要想尽快地完成编码的任务首先要静下心来去学习未知的东西,遇到问题要尽量自己解决,通过查阅资料,百度等各种渠道。如果这样子解决了问题,那么你将终身受益。
当你陷入一个困境时,可能就要走出去了,要多去问问大牛们的建议,看看他们都在做什么,都时怎么做的。这样子可以拓宽自己的视野和节约自己的时间,减少不必要的浪费。
三、对下一届实践的建议,或者对于开学初的你,对于大一的你,对于开学初的我,对于同期的TA们,对于后来的学弟学妹:
1)你有什么想建议、告知和期许想要告诉他们呢?
大学并不是你自由和完全放飞自我的地方。而是一片埋藏着众多宝藏的,需要你去挖掘的地方。从一开始好好学习,得到一个很好的分数,一个很高的排名,自己的各个方面都会得到极大的提升,从思维方式生活习惯到身边朋友相处的人群都会发生变化。所以说革命尚未成功,同志仍须努力!
2)特别地,特别地,下一届要不要中途换队员(强制的、彻底的从一队换到另一队)?假设依旧是一个90+人数的大班
如果是像我们那样,在uml设计时简单换队,那还是不要了。因为就那几个小时,换过去也是划水,很少有人换过去承担了很多部分的内容,做的事情都很少。而且临时换队增加了队员之间的沟通成本,此处援引柯老板的ppt(希望理论能过⑧),在很短的的时间内几乎没有明显的作用。
但如果是强制的、彻底的从一队换到另一队,我认为还是值得一试的(站着说话不腰疼),毕竟这样的情境在现实生活中还是可能发生的。个人拙见:尽量早一点换,到后面换队影响同学们的心理平衡,得不到锻炼的效果。
3)身在一个格外大的班级,竞争强劲,你认为一个组的人数应当在多少比较合适?
我认为9人的团队就是标配了!PM+文档(机动PM)+美工+前端X2+后端X2+算法X2。虽然有如此的说法,但是在一个团队中最重要的还是沟通,要不然人再多也没用呀。
4)个人/结对/团队作业应该控制在怎样的规模?
此次软工实践的个人/结对/团队作业的规模就不错,每次都学到了或是新的或是更深入的东西,体验极佳!感觉结对的作业可以再延续一段时间,只有两次作业不太给力啊!
5)这学期下来,你最感谢的人是谁?有什么话想要对TA说呢?
我最感谢的人是我的大哥,董钧昊,大哥对我的专业课很多知识都进行了辅导,我经常不会就去问大哥,大哥每次都会给我解释并且给出准确答案,是真的旋转无敌螺旋爆炸稳!除了专业课,在我图像研究的方面也教了我很多,帮我装pytorch,帮我研究代码,真的是给力!还有在我心烦气躁的时候,能给予我鼓励,让我坚持下去,感激之情难以用文字表达,只好以身……请客吃饭,嘻嘻。想对大哥说:像你这样温柔的人,就应该心想事成,就应该人缘好,成绩高!
四、分析一下自己所处的团队。软件工程实践是大学里少有的认真的团队协作经验。《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?(参考《构建执法》第17章 人、绩效和职业道德)
五、怎样证明你学会了软件工程?
1)研发出符合用户需求的软件
我们进行了两次问卷调查,第一次问卷发布在需求分析完成之前,第二次问卷发布在Beta版本之后邀请了86位用户试用记忆罐头,两份问卷都得到了非常好的反响!(这里拿PM三张图来表示)
需求展示
体验指数展示
期待指数展示
2)通过一系列工具,流程,团队合作,能够在预计的时间内发布 “足够好” 的软件
我们Canmory在201801学期的软件工程实践课程中,通过Android Studio,JavaEE等开发工具在课程规定的结束时间内完成了可以发布的产品,并且通过迭代的方式,对APP修改了地方,并且已经迭代13次,产品到达1.1.3版本,产品下载链接。
3)并且通过数据展现软件是可以维护和继续发展的。
现软件的可维护性和是否可继续发展通过上面的用户反馈问卷截图便能看出。
体验指数展示
期待指数展示
用户需求期待指数超过4分的比例在70%以上,证明我们的产品是可维护和可持续发展的。
4)对着这个检查表:http://xinz.cnblogs.com/p/3852177.html 检查一下,自己如果去企业面试,这些常见的问题是否都能回答,并在此总结。
我感觉自己100个问题能答出来一个就不错了,此次完成的部分就是基于Ctrl+C和Ctrl+V的编程,有些愧对门收获颇丰的实践课,惭愧!
六、阅读软件工程中关于代码质量的的经典论文,从下列文献中选择一篇或若干篇,结合自己的实际做一个阅读笔记(例如,自己写的代码质量如何,是不是一个大泥球,如何衡量自己代码的质量)?从以下参考论文中选择一篇或若干篇:
参考论文文献:
[1] Stamelos I, Angelis L, Oikonomou A, et al. Code quality analysis in open source software development[J]. Information Systems Journal, 2002, 12(1): 43-60.
[2] Boehm B W, Brown J R, Lipow M. Quantitative evaluation of software quality[C]//Proceedings of the 2nd international conference on Software engineering. IEEE Computer Society Press, 1976: 592-605
[3] Samoladas I, Stamelos I, Angelis L, et al. Open source software development should strive for even greater code maintainability[J]. Communications of the ACM, 2004, 47(10): 83-87
七、个性发挥,包括图文、照片和创意等
这学期由于特殊情况,和很多同学一直在讨论学习的问题,以至于我一个不怎么用QQ的人竟然有了五朵火花!下面是火花警告!(这两位同学也对我的学习和生活进行了非常大的帮助,肥肠感谢!)
- 俞辛大哥,黄衫拥有者,走在学习和时尚的前沿,经常对我进行批评教育,虽然我每次都不承认,但其实是面子过不去,心里却是很感谢了!
- 浒哥,双商是我见过的人中的天花板选手,人见人爱,花见花开,在我浒哥的影响下,感觉我自己正在走向完美!