个人作业——软件工程实践总结作业

一、请回望暑假时的第一次作业,你对于软件工程课程的想象

1)对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强计算机专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?

经过这一个学期的软工实践课,我在自己思考与动手解决遇到的问题和困难上有了很大的进步和提升,以前的我遇到问题总是害怕,问题也得不到解决。现在知道其实通过自己的学习和努力探索也可以解决这些难题。

但是我在开发的过程中发现自己的代码能力还是有很大的不足,很多知识都有缺漏,有时候一时间也无法完全学会。主要原因是自己的专业知识基础太过薄弱。在未来的学习过程中,一定要更加努力地补上。

2)总结这门课程的实践总结和给你带来的提升,包括以下内容:

  • 1、统计一下,你在这门软件工程实践中,完成了多少行的代码;
    2000~2500行
    但这其中基本上是前端部分的代码,比较多的代码都是相似的结构。所以其实在这数量上还要打些折扣。
    其实在实践刚刚开始的时候,我是想要尝试后端开发的,因为自己没有学过java也没有过开发经验,只有稍微地接触过一些数据库的内容。但是后来还是选择了前端和界面跳转,一个是考虑到队伍结构,还有就是我怕自己不能胜任后端的开发。我想这也是我实践课程中的一个遗憾吧。以后一定不能再畏缩,怕困难了。

  • 2、软工实践的各次作业分别花了多少时间?(做一个列表)

作业 |花费时长| 我的作业博客链接
---|---|---|---|---|---
软件工程实践第一次作业--准备 | 5 | 软件工程实践第一次作业--准备
第二次作业——个人项目实战 | 14 | 第二次作业——个人项目实战
团队展示(团队) | 5 |团队展示(团队)
项目选题报告(团队) | 10 | 项目选题报告(团队)
原型设计(结对第一次) | 12 | 原型设计(结对第一次)
结对第二次作业 | 18 | 结对第二次作业
项目需求分析(团队) | 11 | 项目需求分析(团队)
项目Alpha冲刺(团队)| 50 | 项目Alpha冲刺(团队)
团队作业——随堂小测(同学录)| 4 | 团队作业——随堂小测(同学录)
个人作业——软件产品案例分析| 7 | 个人作业——软件产品案例分析)
事后诸葛亮(团队)| 2 | 事后诸葛亮(团队)
项目Beta冲刺(团队)| 40 | 项目Beta冲刺(团队)
个人作业——软件工程实践总结作业| 5 | 个人作业——软件工程实践总结作业

粗略算了一下共183个小时

  • 3、哪一次作业让你印象最深刻?为什么?

结对的作业让我印象最为深刻,如果一定要选一次的话,应该是结对的第二次。因为那次作业对我和我队友来说可以说是一个挑战,但是我们最后通过不断地学习和克服困难,最终取得了挺不错的作业成绩。这次的作业经历让我知道,从不会到会的过程是要通过自己的努力去达到的,同时那个最终的结果是让人欣喜的、充满成就感的。

  • 4、累计花了多少个小时在软工实践上?平均每周花多少个小时?

在非冲刺阶段平均每周12个小时吧,冲刺阶段每周将近30个小时。累计大约花了280个小时在软工实践上。这中间除了做每次作业的时间,还有我们团队开会的时间以及自己学习的时间。现在到了学期末,我觉得自己效率还是太低了,在这一个学期的软工实践中我应该要能收获更多,在这近300个小时中,我应该要可以更加地投入,学习到更多的知识。

  • 5、学习和使用的新软件;

最早是vs中的测试工具,然后是原型软件axure、墨刀,开始安卓开发后的android studio等

  • 6、学习和使用的新工具;

华为开发云,git for win

  • 7、学习和掌握的新语言、新平台;

java以及xml语言,github、博客园等

  • 8、学习和掌握的新方法;

github上的开发,墨刀的团队协作开发,华为云协作的使用

  • 9、其他方面的提升。

解决问题的能力

二、写下属于自己的人月神话——个人或结对或团队项目实践中的经验总结+实例/例证结合的分析

我来写一个结对项目实践的经验总结吧。

首先,在拿到任务前要先认真地读懂任务是在叫我们做什么,比如在结对的第二次任务中,我一开始就没有弄明白题目的意思,导致很长一段时间脑袋里都一团浆糊,也不知道要不要用json语言处理输入输出的格式,导致开始的几天一直没有进展。

其次,不要一个人闷着想问题,要多和队友探讨。在两次的结对开发中,之所以后来都很顺利地完成了任务,就是因为和队友一直都是待在一起讨论,研究问题,包括理解题目的意思,想办法去解决问题以及碰到困难的时候一起鼓励想办法克服瓶颈。同时这样也不容易出现两个人的工作脱节,最后无法拼接起来的问题。
最重要的是,两个人的分工要明确,这在团队开发中也尤其重要。在两次的结对作业中我们都是采用分模块的方式来进行分工的。也就是比方式原型设计我和队友一个设计几个板块,当然这些在一开始就已经分配好了,同时两个人也都同意这样的分工,没有异议了。然后再项目进行的过程中,两个人可以互相启发,这点在原型设计阶段尤为重要,因为原型设计是想象力是很大的生产源泉。

三、对下一届实践的建议,或者对于开学初的你,对于大一的你,对于开学初的我,你有什么想建议和告知的呢?对于后来人的期许。 特别地,特别地,下一届要不要中途换队员?

1、很重要的在团队实践的一开始,选合适的队友很重要。首先你要想明白需要什么样的队友,和这个人成为队友你们的性格能不能合得来,队友能不能在团队中肩负起自己的任务,保证整个项目顺利进行。
2、在团队开发中,团队的领导人也很重要。也就是项目的负责人。在团队开发的进程中,项目的负责人要肩负起安排任务,监督项目进展的责任。
3、对于刚刚步入大学的同学呢,经过这次课程我觉得大一的基础很重要,在大学刚刚开始的时候有时间尽量多学习一些专业知识,有能力的可以尝试一些开发的东西,而且有空多写写代码锻炼写代码的能力,和几个朋友一起尝试组队开发也可以让我们更早地熟悉团队开发的流程。
4、在大学期间,对于数据库实践这样的课程一定要认真对待,这可以为我们软工实践打下坚实的基础。
5、对于中途换队员这件事,我是觉得,如果对于一个很成熟的团队,那可以尝试换队员,这可以给我们更多的锻炼,但是我们现在大多数人都还处于摸索的阶段,刚刚学会写一些代码然后就要临离开自己原来的团队加入一个新的团队,而且在新加入的团队也就进行为期一周的开发,其实才刚刚了解清楚新的项目开发也就结束了。所以我觉得下一届可以不要中途换人这个环节,当然这只是我自己很粗浅的想法。

四、分析一下自己所处的团队。软件工程实践是大学里少有的认真的团队协作经验。《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?(参考《构建执法》第17章 人、绩效和职业道德)

团队的发展有四个阶段,分别为萌芽阶段、磨合阶段、规范阶段和创造阶段。

就像构建之法里说的在团队刚刚组建好的时候大家经历了友善积极发表想法的萌芽阶段,然后大家也有过意见不统一,不断地开会争论的磨合阶段。在大家互相的配合改进努力下团队也慢慢哺乳假正轨,而这时候我们的项目雏形也出来了,开始大家齐心协力将各个部分的功能实现出来。于是我们步入了创造阶段。但是我们的创造阶段距离《构建之法》中的创造阶段还是有一定的差距的,当然我们团队还在不断地进步,不断地变得更好。

五、怎样证明你学会了软件工程?

侧重第二点,我们有项目规划,有事先商定好的需求,有原型的设计以及各个模块的设计,有大家一起努力实现各个模块,也有定时的进度发布

我们有源码,源码是可编译并在不断维护的,接下来就打算增加用户量完善我们的产品。