软工实践总结
软工实践总结
一、请回望暑假时的第一次作业,你对于软件工程课程的想象
1)对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强计算机专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?
达到的期待和目标
和团队的人一起完成了一个小程序
存在哪些不足
表达能力,ppt演示是门艺术
代码规范不好
还有很多语言和算法没学啊
2)总结这门课程的实践总结和给你带来的提升,包括以下内容:
1、统计一下,你在这门软件工程实践中,完成了多少行的代码;
2315
2、软工实践的各次作业分别花了多少时间?(做一个列表)
序号 | 作业名 | 耗时(分钟) |
---|---|---|
1 | 第一次作业·准备 | 40 |
2 | 第二次作业·个人项目 | 200 |
3 | 第三次作业·结对项目1 | 240 |
4 | 第四次作业·团队展示 | 60 |
5 | 第五次作业·结对作业2 | 480 |
6 | 第六次作业·团队选题报告 | 300 |
7 | 第七次作业·需求分析报告 | 610 |
8 | 第八次作业·项目UML设计(团队) | 730 |
9 | 团队现场编程实战(抽奖系统) | 550 |
10 | alpha冲刺 | 20天 |
11 | 第十一次作业·Alpha 事后诸葛亮(团队) | 250 |
12 | BETA 版冲刺前准备(团队) | 120 |
13 | beta冲刺 | 14天 |
14 | 第十二次作业·Beta答辩总结 | 180 |
3、哪一次作业让你印象最深刻?为什么?
alpha冲刺。
当时为了可以在deadline之前可以做出可用的版本,团队的成员每天晚上都会在一起敲代码赶进度四五个小时,有两次因为太迟门锁了,就有了我们独特的FQ经历。
4、累计花了多少个小时在软工实践上?平均每周花多少个小时?同时贴出开篇博客“你打算平均每周拿出多少个小时用在这门课上”的回答
从之前的进度表统计,累计软工花掉670个小时,平均每周37.2222小时 (按照18周)
5、学习和使用的新软件;
微信web开发工具
Axure RP 8
Anaconda
6、学习和使用的新工具;
winscp、xshell、 ssr 、xming 、Andrea Mosaic 、Teamviewer等
7、学习和掌握的新语言、新平台;
python、html 、css、php
8、学习和掌握的新方法;
任务驱动学习,学习过程中自己要学会Google(或者百度),学会过滤网上的资料。
还有看一些自学网站的教学,有助于理解
9、其他方面的提升。
团队的沟通协作,耐力,耐心等
二、写下属于自己的人月神话——个人或结对或团队项目实践中的经验总结+实例/例证结合的分析
软工实践这门课给我真切的体会就是一个积极的团队会激发每个队员的学习欲望,这是一种改良性循环
整个学期做下来,有很多收获,也有很多遗憾,有很多经验教训都是血淋淋的
首先项目定位:先定好核心功能,再往外扩散。我自己当时做算法没有做到这点,后面效果也不是很好。
其次团队沟通:团队之间的沟通非常重要,前端与后端对接,数据格式哪里错了,op名是什么?还有就是PM和组员的沟通,如何做到组员都能及时完成任务。沟通,当然也会营造比较好的团队气氛,队友之间敢抢也好
记录与规范:虽然我觉得我们团队的写作还算ok,但从代码规范和开发文档上,我们小组还有很长的路要走。
- 代码规范:最基本的缩进(4空格?),命名(驼峰式或下划线式)等等。尽可能做到你的代码在阅读的时候像是一篇英文小短文一样!
- 开发文档:开发文档包括很多,比如:需求分析,,用户使用手册,数据库文档等等,都是需要团队在开发过程中有意识得记录!
三、对下一届实践的建议,或者对于开学初的你,对于大一的你,对于开学初的我,对于同期的TA们,对于后来的学弟学妹:
1)你有什么想建议、告知和期许想要告诉他们呢?
我不是天生强大,我只是天生要强
软工实践好好学,可能顶过之前一年所学
2)特别地,特别地,下一届要不要中途换队员(强制的、彻底的从一队换到另一队)?
假设依旧是一个90+人数的大班
Absolutely NO,个人不是很喜欢换队这种做法
3)身在一个格外大的班级,竞争强劲,你认为一个组的人数应当在多少比较合适?
5个人,5个人做一个项目其实不多不少.而且既然强调竞争,那么组数越多,竞争就越激烈!
4)个人/结对/团队作业应该控制在怎样的规模?
1:2:7的比例,但是希望去掉alpha和beta冲刺博客提交次数
5)这学期下来,你最感谢的人是谁?有什么话想要对TA说呢?
我选择感谢我自己,自己能坚持住真的不容易。辛苦了,LZM
四、分析一下自己所处的团队。软件工程实践是大学里少有的认真的团队协作经验。《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?(参考《构建执法》第17章 人、绩效和职业道德)
团队发展大致为萌芽阶段、磨合阶段、规范阶段、创造阶段这四个阶段。
萌芽阶段:团队初期核心成员只有我和刘浩等队员的时候,就像继续找人一起做
磨合阶段:在项目准备阶段完成,就要进行实战时,团队有人跳槽了,团队人员进行了第一次的调整;
规范阶段:后面临近DDL,我发现分工更明确,一切变得尽然有序,每个人都在完成自己的部分;
创造阶段:我们整个团队的成员每个晚上都呆在双创实验室敲代码啊,该界面啊,标数据,跑算法等等/
五、怎样证明你学会了软件工程?
1)研发出符合用户需求的软件
已经开发出了功能完整的基于目标检测的餐饮自助点单结算微信小程序以及配套的商家端微信小程序(待完善),但是因为功能涉及购物车支付,上线该小程序需要企业担保以及电信业务增值许可证,目前已经做到有企业担保但是许可证实在难以获取,因此目前仅仅在内部成员体验测试使用。
2)通过一系列工具,流程,团队合作,能够在预计的时间内发布 “足够好” 的软件
有项目规划/需求/设计/实现/发布/维护,有定时的进度发布 ; 而不是: 通过临时熬夜,胡乱拼凑,大牛一人代劳,延迟交付等方式糊弄
3)并且通过数据展现软件是可以维护和继续发展的。
github有源码
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
七、个性发挥,包括图文、照片和创意等
别赶不上野心
别辜负了努力
共勉