课程名称:软件工程1916|W(福州大学)
作业要求:个人作业——软件工程实践总结作业
学生:221600440_郑晓彪
作业目标:软工实践课程的总结
一、请回望暑假时的第一次作业,你对于软件工程课程的想象
1)对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强计算机专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?
- 能在陌生开发过程中学习,过程苦到“真实”つ﹏⊂
- Debug能力不足,结对的时候多谢伙伴的支持
- 团队交流能力不足,团队实践过程中的互帮互助、分工合作做得不好,感谢课程实践的队长和队友们,我还有很多要学习的地方
2)总结这门课程的实践总结和给你带来的提升:
-
完成有效代码行:
任务 代码行(sloc) 结对编程 500+ gitbub实训 200+ 团队Alpha冲刺 3000+ 团队Beta冲刺 300+ 累计 4000+ -
各作业花费时间:
作业 花费时间 第一次作业-准备篇 2h 结对第一次—原型设计(文献摘要热词统计) 20h 结对第二次—文献摘要热词统计及进阶需求 30h+ 团队作业第一次—团队展示 2h 团队作业第二次—项目选题报告 5h+ 团队第三次-项目原型设计 20h+ 团队作业第四次-项目需求分析 24h+ 团队作业第五次—项目系统设计与数据库设计 12h+ 团队作业第六次—团队Github实战训练 10h+ 项目Alpha冲刺(团队) 150h+ 事后诸葛亮(团队) 2h 项目Beta冲刺(团队) 50h+ Beta阶段团队项目互评 10h 个人作业——软件工程实践总结作业 3h+ 合计 340+ -
让我印象最深刻的作业是:
项目Alpha冲刺(团队),那次作业是我第一次体验在有限时间内接触陌生框架到Alpha版本发布的过程,时间紧任务重,多少个课堂自顾自的看教程、指南,见过几次凌晨4点的福州大学……确实累,但也有所收获——学习了新的框架Web前后端的代码能力都有所提高,磨练了自己安排时间的能力,增强了自己的团队意识。 -
累计花了
400h+
在软工实践上,平均每周花28.5h+
-
新软件: 墨刀,PhpStorm,Unity
-
新工具: Git,JUnit
-
新框架、引擎: Laravel5,Corgi
-
新方法: 利用原型设计表达需求
-
其他方面的提升: 抗压能力,文档编写能力
二、写下属于自己的人月神话——个人或结对或团队项目实践中的经验总结+实例/例证结合的分析
- 开发的起点很重要,请确保出发前能到达终点。作为实践课上为数不多选了开发游戏的团队之二(两队都待过)的成员,我能深刻体会到从选题开始到之后的一系列设计、报告都不好做,或者说效果不是很好。感觉给自己挖了一个坑?还是说游戏开发经验不足?我觉得大多数的新团队开始新开发应该都有这种体会,所以我很感谢能陪我一起走到课程结束的“难兄难弟”们和“葫芦娃”们。
- 过程中成员的互相支持很重要。这个我举我被调到葫芦娃队的β冲刺过程来说吧(之前团队里游戏开发参与不多)。在到了新团队之后,我一不懂美工,二不懂写脚本,稍微会用点unity,团队冲刺过程中,新队员队长会陪我一起debug,改脚本等。一直到后来游戏做出来挺有趣,我都挺开心的。
三、对下一届实践的建议,或者对于开学初的你,对于大一的你,对于开学初的我,你有什么想建议和告知的呢?对于后来人的期许。 特别地,特别地,下一届要不要中途换队员?
- 致大一的我:多跟着大佬学点技术吧,能参加点比赛也好。
- 致开学初的我:考研吗?三下课程任务有点中,多做点时间安排和心里准备吧。
- 对后来人的期许:好好努力,坚持下去。
- 看待中途换队员:从个人被换过的经历来看,不是不能换。团队提前考虑考虑每个人都有被换走的可能进行工作安排
四、分析一下自己所处的团队。软件工程实践是大学里少有的认真的团队协作经验。《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?(参考《构建执法》第17章 人、绩效和职业道德)
- 男上加男:一支充满活力的团队,有一个有能力又负责的队长和一群平时乐观的队友。团队经历较长的应该是磨合阶段,过程中经常有冲突,逐渐磨合,到后来按照队长的安排愈加规范。但还远算不上达到创造阶段的团队。
- 葫芦娃:一支充满潜力的团队,作为新转入的成员,该团队给了我较大的帮助,基本我的工作都是结对的,就是总会有人来帮我。感谢!新团队的经历较短,我个人认为自己在团队中的工作是在磨合阶段的。
五、怎样证明你学会了软件工程?
1)研发出符合用户需求的软件。必须公开发布,有实际的用户,一定的用户量和持续使用量 (3 天后能保持10 - 100个用户);而不是: 做没有用户使用的软件
- 项目选题确立前就考虑了用户需求,对比了市场。小组互测以及用户体验反馈良好。
2)通过一系列工具,流程,团队合作,能够在预计的时间内发布 “足够好” 的软件。有项目规划/需求/设计/实现/发布/维护,有定时的进度发布 ; 而不是: 通过临时熬夜,胡乱拼凑,大牛一人代劳,延迟交付等方式糊弄
- 团队实训中,团队冲刺过程中都做了流程规划和进度控制等工作,按时发博。
3)并且通过数据展现软件是可以维护和继续发展的。而不是找不到源代码,代码无文档,代码不能编译,没有task/bug 等项目的发展资料
- 团队代码在github远程仓库进行管理,并有团队代码规范,学习使用了框架规范代码开发过程。
六*(选做)、阅读软件工程中关于代码质量的的经典论文,从下列文献中选择一篇或若干篇,结合自己的实际做一个阅读笔记(例如,自己写的代码质量如何,是不是一个大泥球,如何衡量自己代码的质量)?从以下参考论文中选择一篇或若干篇:
略
七、个性发挥,包括图文、照片和创意等
import fzu.edu.software.engineer;
import fzu.edu.pairwork.wordcount;
import fzu.edu.github.test;
import fzu.edu.sprint.alpha;
import fzu.edu.sprint.beta;
public class SoftWareEngineering{
public static void mian(String[] args){
System.out.println("Hello,SoftWareEngineering!");
}
}