最终作业 - 软件工程实践总结(个人)
一、请回望暑假时的第一次作业,你对于软件工程课程的想象
1)对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强计算机专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?
- 达到我的期待和目标:
- 1.增强了自己的代码能力
- 2.明白了一整个软件开发的流程
- 3.学习到了一下android开发知识
- 4.最主要的是遇到了一个很不错的开发团队!
- 不足:
- 1.由于时间紧迫,对于开发的学习都比较零碎,基本上是遇到问题了,再去学解决问题的方法。缺乏系统化的学习,所以对于一些知识的理解只停留在表面,没有深入。对于各个部分的知识还不能有效的串接。
- 2.自己虽然是开发组的组长,但是自己对android开发的也只是初步了解,只能帮助队友入门,很难再起到其他作用了,自己对于分工也做的不是很好,每个人的进度也没有跟的很紧,所以导致我们组的开发进度较慢,所以自己在这方面的能力还有待提高!
2)总结这门课程的实践总结和给你带来的提升,包括以下内容:
1、统计一下,你在这门软件工程实践中,完成了多少行的代码;
作业序号 | 代码量 | 备注 |
---|---|---|
1 | 300 | 个人作业-词频统计 |
2 | 300 | 第二次结对作业 |
3 | 1850 | Alpha冲刺阶段 |
4 | 100 | 团队作业-项目测评 |
5 | 200 | 团队现场编程-抽奖系统 |
6 | 1250 | Beta冲刺 |
总计 | 4000 |
2、软工实践的各次作业分别花了多少时间?(做一个列表)
作业名称 | 耗时(h) | 做了啥 |
---|---|---|
软工实践第一次作业 | 1.5 | 研究makedown...... |
个人作业-词频统计 | 20.5 | 设计思路,复习c++,写代码,代码,测试 |
第三次作业-结对作业(原型设计) | 5.5 | 学习并使用Axure RP 8 |
第四次作业 - 团队展示 | 1 | 写博客... |
第五次作业 - 结对作业2 | 18.5 | 改自己的词频统计代码,学习python爬虫 |
第六次作业 - 团队答辩 | 1 | 写博客.... |
项目UML设计 | 3 | 学习ProcessOn、UML设计,绘制用例图 |
需求分析报告 | 10 | 浏览众多APP原型设计,学习墨刀,APP原型设计 |
Alpha 冲刺 (1/10) | 7 | 组内分工,优化原型,学习xml和shape |
Alpha 冲刺 (2/10) | 6 | 前端 |
Alpha 冲刺 (3/10) | 9 | 短信验证 |
团队现场编程实战(抽奖系统) | 3 | python学习,海报设计 |
Alpha 冲刺 (4/10) | 8 | 前端 |
Alpha 冲刺 (5/10) | 8 | 前端 |
Alpha 冲刺 (6/10) | 8 | 前端 |
Alpha 冲刺 (7/10) | 12 | 搭建服务器,尝试使用okhttp框架建立连接 |
Alpha 冲刺 (8/10) | 14 | okhttp学习和使用 |
Alpha 冲刺 (9/10) | 12 | 服务器与app的基本交互 |
Alpha 冲刺 (10/10) | 10 | 对接 |
Alpha 事后诸葛亮 | 1 | 写博客 |
项目测评(团队) | 6 | 增量原型设计 |
BETA 版冲刺前准备(团队) | 1 | 分配任务,写博客 |
Beta 冲刺(1/7) | 7 | 前端 |
Beta 冲刺(2/7) | 7 | 前端 |
Beta 冲刺(3/7) | 7 | 前端 |
Beta 冲刺(4/7) | 7 | 前端 |
Beta 冲刺(5/7) | 4 | 标数据集 |
Beta 冲刺(6/7) | 8 | 算法对接 |
Beta 冲刺(7/7) | 10 | 对接测试,挑bug |
Beta答辩总结 | 1 | 写博客 |
本次作业 | 4 | 写博客 |
总计 | 221 |
3、哪一次作业让你印象最深刻?为什么?
- Alpha冲刺
- 可怜的实验班,一周也就6天满课,偶尔周日早上还要课,中间还有考试。然后在这么惨的大学生活里,还有挤时间做软工,真是太凄惨了。那段时间平均每天凌晨1点半睡觉,真的是伤不起啊。这连续两周的熬夜,头发都要熬没了,怎么能不印象深刻。
- 虽然很惨,但是做出来成就感还是很高的,同时也学到了很多东西。也认识了许多小伙伴,得到了很多人的帮助,强大的队友真好啊
4、累计花了多少个小时在软工实践上?平均每周花多少个小时?
- 软工实践课程也算在呢的话,加上小组开会谈论啦,大于在270个小时吧
- 软工从开学第一周到十七周基本结束,共17周,平均270/17=15.8个小时
5、学习和使用的新软件;
- visual studio 2017 :开发c++控制台程序
- Android studio 3.0.0 :andoid开发基本工具
- Axure RP 8:原型设计
- Eclipse:写java的服务器后台代码
- Photoshop:这个大家都知道吧
- Typora:写makedown的工具
6、学习和使用的新工具;
- github:这个一开始觉得好难用,而且没有必要啊,还各种冲突,但是后来...,你懂得,大型真香现场
- Tomcat:方便快捷搭建服务器。
7、学习和掌握的新语言、新平台;
- java:以前学的基本上都忘光了,现在又重新学,初步掌握吧。
- python:只是了解到一些皮毛
- Process On:是一个在线画流程图/uml图等的平台,简洁易用。
- github:软工结束后,主要用于找代码(▽)。
8、学习和掌握的新方法;
- UML设计:特别是用例图,这个东西是真的好用,能让你很清晰的了解到APP的功能,可以让你的开发过程更加清晰
9、其他方面的提升。
- 找学习资料更快了,我觉得这个很重要啊!
- 对android开发了解更进一步了
- 团队协作能力++,我想放眼所有实践课程,没有比这更能增加你这方面能力的了。
二、写下属于自己的人月神话——个人或结对或团队项目实践中的经验总结+实例/例证结合的分析
- 最开始真正意义上的软工实践,是那个个人项目-词频统计,当时根本不知道控制台程序是什么o(╥﹏╥)o后来请教了同学才懂得。也明明了什么单元测试啦,算是第一次了解到软件工程的规范了吧。第一次作业做了几十个小时,想想就觉得自己很心酸,但是最后做出来还是很有成就感的。
- 后来进入一个团队,大佬云集啊,我是谁,我在哪,我是怎么跟他们一起做的,懵逼三连。一开始负责前端,以为自己划划水就过去了,然后发现前端这种东西也好难。后来队友解决不掉的服务器交互,也移交到我这里,连续好几个熬夜终于算是弄出来了,索性没有拖累团队。哎,人菜就要多努力。
- 再后来负责对接测试,确实心酸,尤其是跟算法的对接,两边都很懵逼,“这块不应该是你们来做的吗”,“啊,我们以为是你们做的啊”,一开始没沟通好,后面是真的难受啊,还好大家都很强,还是在最后期限交上了一份不错的答卷
三、对下一届实践的建议,或者对于开学初的你,对于大一的你,对于开学初的我,你有什么想建议和告知的呢?对于后来人的期许。 特别地,特别地,下一届要不要中途换队员?
- 对下一届学弟学妹们(和开学初的我)的建议和告知:
- 听说下一届你们软工实践就必修了!真是替你们开心呀
- 对于软工实践这门课,首先要先找好队友,对于一个10人左右的团队来说,最好个方面的人才都要有,这样才好便于分工。
- 对于个人来说,一定要找适合自己的团队,既不能让自己在大佬云集的团队被埋没,也不能又当爹又当妈的什么事都自己做。所以在这节课开始出,一定要有一技之长,或开发或美工等等
- 对大一的我的建议:
- emmmm那个时候我还在数学系,你应该有点先见之明早点开始学计算机啊!!!
(2)特别地,特别地,下一届要不要中途换队员(强制的、彻底的从一队换到另一队)? 假设依旧是一个90+人数的大班
-
对于这个我先分两个情形吧,自愿的和强制的
-
对于自愿的:当然是鼓励啊,队友的变换更能体现一个团队的调节能力、应变能力。以及新队员能否对团队任务快速接手,这些方面的能力,是我们十分必要的。也是未来在一个团队中,我们需要面对和必然会面对的。
-
对于强制的:虽然换队友虽好,正如上面所说。但是,强制还是不要了,对于一个刚从软工实践中解脱出来的人,软工实践大多数人都是从零开始,甚至从负开始,对于这样的一个团队,学习本组需要的技术会耗掉大量的时间,突然告诉你,你要换组了,这将会增加这位同学和团队的整体时间消耗。同时团队有一个大佬就很好了,大佬再被换走,岂不是太惨了。
四、分析一下自己所处的团队。软件工程实践是大学里少有的认真的团队协作经验。《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?(参考《构建执法》第17章 人、绩效和职业道德)
- 萌芽:团队PM是带着想法来找到我们的,虽然这个想法还不成熟,但是我们都有一个大概的构想,开了一次会议后,各自分工,各司其职。
- 磨合:刚开始的团队难免会出现一些问题,就对这个项目而言,我们也都质疑过它的可行性和实用性,但是质疑归质疑,没有更好的方案进行替代,我们还是按照我们最初的构想在往下走。就我们开发组而言,每个人都比较好说话,所以我们算是一个很和平的小团队,很感谢强大的队友,对于给的任务,都不会拒绝。但是还是会有点小摩擦,比如队友服务器搞不定的时候要跟我换任务,我一开始是拒绝的,但是心想身为小组长,多做点是应该的。最后结果还是可以接受的。
- 规范:我认为我们的团队正处于这么一个阶段,每个人分工明确,可以互相帮助,交流也比较流畅,能够在组长分配任务之前先开始做一部分,明白自己在团队中的定位。
- 创造:现在团队我还没有到创造的阶段,团队大多数人还只能停留在自己的工作上,角色还不能根据项目的需求自由转换。
五、怎样证明你学会了软件工程?
1)研发出符合用户需求的软件
由于服务器受限(贵的服务器买不起,差的服务器算法跑不了,所以只能把服务器搭在本地),所以没有什么用户,也不知道符不符合。但是我们几个用着挺开心的。
2)通过一系列工具,流程,团队合作,能够在预计的时间内发布 “足够好” 的软件
3)并且通过数据展现软件是可以维护和继续发展的。
首先我们的开发过程中有整理对应参考的文档和我们自己的文档,以及一些代码规范。
所以我们的产品是易维护且可继续发展
- 源代码](https://github.com/MercuialC/Alpha_project)
- 代码规范:
- 部分文档截图
4)对着这个检查表:http://xinz.cnblogs.com/p/3852177.html 检查一下,自己如果去企业面试,这些常见的问题是否都能回答,并在此总结。
请在随笔中用数据证明上述内容或侧重选择之一。
七、个性发挥,包括图文、照片和创意等
我叫杨喜源,来自计算机四班,虽然不强但也不菜
- 附上一张结对照片吧。
- 再来一张我们第一张合影吧。