一、请回望暑假时的第一次作业,你对于软件工程课程的想象
1)对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强计算机专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?
回去翻看了一下之前的博客,当时对这门课程或者说是对大三的期望是这样的:“期待就是能做出属于自己的东西,那一定很有成就感。平均每周拿出多少小时还真没个数,因为学校里除了学习也有各种各样的事情,比如说校运会训练和参赛什么的,但我会尽可能花时间在这门课程上的。”现在这门课程结束了,我不仅了解了软件的开发流程、体验了身在一个团队中的感受,还做出了属于自己的一款微信小程序,很有成感,能有这样的成果是我开始课程时没有想到的。然而为了软件工程这门课,本来说好的校运会我也鸽了,说明我在时间安排的能力方面还有所欠缺,平时浪费了太多不必要的时间。(我的班导也有过和我相同的经历,然而他不仅做出了一个相当优秀的软件——选导师系统,校运会还拿了奖,唉,这就是人与人的差距)
2)总结这门课程的实践总结和给你带来的提升,包括以下内容
1、统计一下,你在这门软件工程实践中,完成了多少行的代码;
2、软工实践的各次作业分别花了多少时间?(做一个列表)
3、哪一次作业让你印象最深刻?为什么?
4、累计花了多少个小时在软工实践上?平均每周花多少个小时?同时贴出开篇博客“你打算平均每周拿出多少个小时用在这门课上”的回答
5、学习和使用的新软件;
6、学习和使用的新工具;
7、学习和掌握的新语言、新平台;
8、学习和掌握的新方法;
9、其他方面的提升。
1.软工实践的代码作业主要分为文本统计器、抽奖系统和项目大作业三次。我在文本统计器的作业中负责主体代码部分,共367行代码。在团队作业中负责两个微信小程序前端的制作,包括wxml主体页面,js逻辑交互页面,wxss样式页面,因为有队友分担任务,因此代码行数估计在4000行左右。
2.
序号 | 作业名 | 耗时(分钟) |
---|---|---|
1 | 第一次作业·准备 | 10 |
第二次作业·个人项目 | 330 | |
3 | 第三次作业·结对项目1 | 730 |
4 | 第四次作业·团队展示 | 120 |
5 | 第五次作业·结对作业2 | |
6 | 第六次作业·团队选题报告 | 400 |
7 | 第七次作业·需求分析报告 | 1090 |
8 | 第八次作业·项目UML设计(团队) | |
9 | 团队现场编程实战(抽奖系统) | 550 |
alpha冲刺 | 20天 | |
11 | 第十一次作业·Alpha 事后诸葛亮(团队) | 225 |
12 | BETA 版冲刺前准备(团队) | |
13 | beta冲刺 | 14天 |
14 | 第十二次作业·Beta答辩总结 |
3.印象最深刻的毋庸置疑是最后的团队项目,我真正体会到身为一个软件开发团队中的一员的感觉,大家一起从有到无,真的实现了一个小程序,把计划的功能全都做出来了,梦幻一般的感觉。虽然很辛苦很累,但是最后收获的成就感是不可比拟的。
毫不夸张地说,软件工程是我在大学生涯中花的心思最多的完成的认真的一门课,从没有这么专注的对待过这门课。现在回想起来开学的时候我想从这门课程中收获到的东西也基本都收获了,无论是编程能力方面还是技术掌握方面,无论是团队协作方面还是事件应付方面我认为自己有本质的提升。
平均每周拿出多少小时还真没个数,因为学校里除了学习也有各种各样的事情,比如说校运会训练和参赛什么的,但我会尽可能花时间在这门课程上的。
这是我当时对于这个问题的回答。经过统计,我花了190个小时左右的时间在软工实践上,这门课一共持续了18周,平均每周花了大约10个多小时,真的是尽可能花时间在这上面了,对于我开始的回答问心无愧。
5.抽奖系统作业期间学会了使用pycharm,团队作业期间学会了使用微信小程序开发者,结对作业1期间学会了使用mockplus,结对作业2期间学会了使用Visual Studio针对C++的部分插件,以及有道云笔记(markdown博文的撰写),现场uml期间学会了Processon)
6.github使用更加熟练了,学会了使用它爬取网络上的资源,以及团队协作。
7.python语言,html语言, css语言,js语言
8.学习一门语言的最好方法就是直接实战,人被逼急了真的什么都弄得懂
9.与一整个团队的协调能力与队员之间的交流能力提升了很多,或者说是掌握了这样的技能,因为以前从来没有过这样的经历。
二、写下属于自己的人月神话——个人或结对或团队项目实践中的经验总结+实例/例证结合的分析
在结对和团队项目实践中我觉得最重要的、最基本的就是有好的队友。有好的队友,这个项目才可以健康的发展进行下去。从刚开始的结对项目,好的队友会和你形成默契,会在你失败的时候给你鼓励,会陪你翘课肝软工,还有很多很多,没错说的就是蔡文斌。记得很清楚在做结对项目2的时候,我们两个人配合的非常顺利,几乎是提前了快一天完成了作业,最后得到的成绩也十分满意。然后就是团队项目实践,我的队友之间相处的都十分愉快,交流顺畅,这也使得我们的项目能够完成,甚至做了两个出来。
能够走到现在,真的要感谢我的队友的辛勤付出,大家相处的非常融洽,后面几乎每天都会在一起写代码,有时大家还会一起出去吃东西,团队中的每一个人都不不可或缺:浩哥是团队的中坚力量,也是我的知识来源;卢哥哥掌握算法的核心,每天标数据集标到半夜;蔡文斌肝那个数据周报快肝死了;黄金菇哪里都帮一点,十分全能;甲哥领导大局,分配任务并作各种对外工作;亮哥是强大的前端工作者,制作了许多了相当有技术含量的页面;小白是后面才加入的,但是做起工作来毫不含糊,美工做的相当不错;社会我安哥,就算是打杂的活也会去做,很能干。
三、对下一届实践的建议,或者对于开学初的你,对于大一的你,对于开学初的我,对于同期的TA们,对于后来的学弟学妹:
1)你有什么想建议、告知和期许想要告诉他们呢?
软工实践虽然辛苦,但是毫不夸张地说是能收获最多的一门课(自己感觉),快选快选。
2)特别地,特别地,下一届要不要中途换队员(强制的、彻底的从一队换到另一队)假设依旧是一个90+人数的大班
我觉得不妥,对于还是初学者的我们来说这实在是太残酷了,这会打乱原来团队的计划,而且说实话,人与人之间不一定能够好好相处。
3)身在一个格外大的班级,竞争强劲,你认为一个组的人数应当在多少比较合适?
综合考量团队每个人都能得到能力的提升的机会,以及队员之间相互协调的难易度,我认为依旧是5至7人的团队比较合适。因为我现在的7人团队很多任务都很难细分了。
4)个人/结对/团队作业应该控制在怎样的规模?
控制在现在这样感觉就挺好,但总结类型的作业可以去掉一部分,过多的总结只是浪费时间。
5)这学期下来,你最感谢的人是谁?有什么话想要对TA说呢?
刘浩,团队核心,全栈工程师。想对他说,我能完成前端的这么多任务,攻克这么多难点,至少有一半是刘浩的功劳,十分感谢手把手教学。
四、分析一下自己所处的团队。软件工程实践是大学里少有的认真的团队协作经验。《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?(参考《构建执法》第17章 人、绩效和职业道德)
翻阅了一下书籍,团队发展大致为萌芽阶段、磨合阶段、规范阶段、创造阶段这四个阶段。萌芽阶段:团队初期核心成员只有刘浩和卢泽明等队员的时候,他们决定将自己的暑假实验室项目带到软工实践课程将其完成,团队招兵买马,我也被招了进去;磨合阶段:在项目准备阶段完成,就要进行实战时,团队内部出现了一些矛盾,团队人员进行了第一次的调整;规范阶段:所有分工开始明确,一切变得尽然有序,每个人都有自己的任务,每个人都在努力完成自己的部分,小二结账小程序在每个日日夜夜的辛苦工作中一步步完善;创造阶段:团队效率达到了巅峰,我们整个团队的成员每个晚上都呆在双创实验室,每天都能做出新的页面,完成新的功能。因此我们已经达到了“创造”阶段。
现在,因为一些契机,我们的团队项目还能有后续的发展,而我是真的非常希望我们的项目能够最终完全实现完善并有一定成果的,我会在寒假期间完善剩下的所有内容,希望一路帮助我的队友们也能够坚持下去,做好自己的本职工作的同时互帮互助,希望小二结账能够坚持到最后。
五、怎样证明你学会了软件工程?
1)研发出符合用户需求的软件
已经开发出了功能完整的基于计算机视觉识别的餐饮自助点单结算微信小程序以及配套的商家端微信小程序(待完善),但是因为功能涉及购物车支付,上线该小程序需要企业担保以及电信业务增值许可证,目前已经做到有企业担保但是许可证实在难以获取,因此目前仅仅在内部成员体验测试使用。
具体内容请参考之前博客中的视频链接
2)通过一系列工具,流程,团队合作,能够在预计的时间内发布 “足够好” 的软件
我们团队几乎每个晚上都会聚集在实验室共同开发,互相交流,因此团队开发效率毋庸置疑,此外我们还借助leagoo进行任务调度管理、github和微信小程序的云开发功能或者手动进行代码合并,我们确信我们能做好团队合作并且在预计时间内发布足够好的软件。
3)并且通过数据展现软件是可以维护和继续发展的。
我们团队有接口文档等各种资料,后端的资料数据保存在刘浩的云服务器上。前端的资料数据保存在我的百度云盘里,同时保存在个人github内,此外u盘里电脑里都有备份。
4)对着这个检查表:http://xinz.cnblogs.com/p/3852177.html 检查一下,自己如果去企业面试,这些常见的问题是否都能回答,并在此总结。
发现大部分问题都只知道一个大概,有些问题甚至都没有听说过...很是惭愧,这说明了现在的我还不具备面试的资格。这种需要后期历练,还有知识点还需要扩充。
六*(选做)、阅读软件工程中关于代码质量的的经典论文,从下列文献中选择一篇或若干篇,结合自己的实际做一个阅读笔记(例如,自己写的代码质量如何,是不是一个大泥球,如何衡量自己代码的质量)?从以下参考论文中选择一篇或若干篇:
参考论文文献:
[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
七、个性发挥,包括图文、照片和创意等
随便一撸掉的头发,软工你还我秀发!!!!