《软件工程》个人总结
《软工实践》总结
一、请回望暑假时的第一次作业,你对于软件工程课程的想象
1)对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强计算机专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?
先说结论:通过《软工实践》我知道一款软件产品完整的研发过程,其中涉及的各个部分以及技术上如何实现,这最大的好处是:我再也不担心以后找不到工作了。没开《软工实践》这一课程之前,我的代码一直停留在单机水平,也就刷刷OJ,至于如何将所学的应用于实际开发中一无所知,通过这一课程我知道了如何将所学的编程知识转变为实际的软件产品,这让我以前的找不着工作的担忧大大减低——至少我知道应该学哪些知识,该往哪方面努力。还有一个方面,通过这一课程的学习,我对编程的恐惧不再像以前那么深了,我开始坚信自己是可以学好编程的,甚至发现Java也没什么难的(可能初级开发没遇到什么难题),Android开发也差不多,只要有去学,肯定是能学好的。(我以前一直觉得我自己不是学编程的料,一直都活在对代码的恐惧和对自己的贬低,现在这种情况转化成需要什么知识去学习相应的知识,这是我觉得上这门课程最大的收获。)尽管这门课程坚定了我学习编程的信心,但是在这门课程里我也有还有很多需要学习的。具体表现在我的代码量不够,很多还只是停留在知识的习得上,并没有转化为实践的有效输出。因为我前两年学习的不认真,导致我在开始这门课程前几乎没有任何基础,所以一直没能跟上团队的节奏,也就一直没能参与到代码的共同开发上,这点可以说是非常遗憾!
2)总结这门课程的实践总结和给你带来的提升,包括以下内容:
1、统计一下,你在这门软件工程实践中,完成了多少行的代码;
我这一学期的代码主要是对Java的学习,没有具体统计,大概在10000行吧
2、软工实践的各次作业分别花了多少时间?
因为在这门课程我的角色主要是学习Java和Android,所以没天投入的时间比较固定,基本每天都有花两个半小时
3、哪一次作业让你印象最深刻?为什么?
第一次答辩的晚上,我们组的软件突然崩了,整个组的人都临时修改东西,都到了凌晨两三点才睡,几个主力都到四五点吧
4、累计花了多少个小时在软工实践上?平均每周花多少个小时?
累计花了60多小时在《软工实践》上,平均每周基本都14小时以上吧
5、学习和使用的新软件;
Github、Markdown、Android studio、Stack Overflow、Xmind等
6、学习和使用的新工具;
Markdown、Android studio等
7、学习和掌握的新语言、新平台;
Java、Stack Overflow、Android
8、学习和掌握的新方法;
这一阶段因为可以FQ,看了很多Stack Overflow帖子,感觉对英语有了一定的提升
9、其他方面的提升。
团队APP开发的协作
二、写下属于自己的人月神话——个人或结对或团队项目实践中的经验总结+实例/例证结合的分析
当时对部门学生的匹配所采取的的实现方式如下:
// 开始匹配,由部门招人,分两次,第一次招人优先招收未加入其它部门的人
for (ExDepartment exdepartment : ed) {
for (ExStudent exstudent : es) {
if(exstudent.isAdmitted())
continue;
if (isMatch(exdepartment, exstudent)) {
admitted(exdepartment, exstudent);
}
}
}
//第二次招人,符合要求即招入
for (ExDepartment exdepartment : ed) {
for (ExStudent exstudent : es) {
if(exdepartment.getMembers().contains(exstudent))
continue;
if (isMatch(exdepartment, exstudent)) {
admitted(exdepartment, exstudent);
}
}
private static boolean isMatch(ExDepartment exdepartment, ExStudent exstudent) {
// TODO Auto-generated method stub
if (timematch(exdepartment, exstudent)) {
for (String apt : exstudent.getApplication_department()) {
if (apt.equals(exdepartment.getDepartment_no())) {
return tagMatch(exdepartment, exstudent);
}
}
}
return false;
}
结对实践中的经验总结
结对作业是我和我们班同学芳凯一起做的,通过那次的结对作业,我开始接触Java包的使用,更加深刻地理解了Java的一些基础知识。但是因为当时国庆放假,我和他都回家了,所以也没办法坐在一起敲代码。代码主要是芳凯打的,只有结构布局啊是我们一起构想的。感觉我这次没有很参与到这次作业中,所以也没有很大的收获,但是没办法毕竟自己没有投入很多时间。谢谢芳凯的辛勤!
感受:芳凯是我同班同学,平时就是非常不错的一个人!在结对作业的两次合作中,他体现了他的知识水平和代码能力,特别想提的一点是,芳凯这人性格好!并没有因为我水平比较不好而心存抱怨,反而是对于我不懂的地方悉心耐心地指导我,还告诉一些学习Java的途径,谢谢他!
三、对下一届实践的建议,或者对于开学初的你,对于大一的你,对于开学初的我,你有什么想建议和告知的呢?对于后来人的期许。 特别地,特别地,下一届要不要中途换队员?
关于这一点我想重点谈一下我个人对“中途要不要换队员”的看法。首先,我先表明我的态度:我觉得一定要换的。如果是站在我编码能力比较差的立场,能不换,当然是最好的。但是这往往会出现这样一种情况,有基础比较差的同学在人数较多的团队里浑水摸鱼,混吃等屎。如果不换队员,他们真的是没有丝毫紧迫感和压力。我就在这次换队员的过程中碰到这样离谱的事:有人因为害怕去别的组,就在摇骰子的过程中耍赖,还叫我去别的组,要帮我做作业。
四、分析一下自己所处的团队。软件工程实践是大学里少有的认真的团队协作经验。《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?(参考《构建执法》第17章 人、绩效和职业道德)
那肯定有啊,我们组可厉害了,哈哈哈(此处必须夸夸我们组~)
五、怎样证明你学会了软件工程?
1)研发出符合用户需求的软件
必须公开发布,有实际的用户,一定的用户量和持续使用量 (3 天后能保持10 - 100个用户);而不是: 做没有用户使用的软件