个人作业——软件工程实践总结作业
一、请回望暑假时的第一次作业,你对于软件工程课程的想象
1)达到的目标和不足
- 通过这们课程,我对java开发和安卓开发有了一定程度上的了解,同时经过了两次项目的冲刺,我的编码能力也得到了一定程度上的提高。
- 但同时由于时间和精力上的限制,我对java和android的了解还只是停留在表面上,了解得不够深入,还有很多实用的技巧没有掌握。
2)实践总结和这门课程给我带来的提升
- 代码量:因为后期Alpha和Beta冲刺的代码两比较多,同时比较零散不好计算,而且中间也写过几个demo,同时有部分代码是编译器生成的,所以代码量只能估计,大约在2000?行左右。
- 各次作业所花的时间:
作业 | 所花时间(小时) |
---|---|
个人作业——准备 | 3 |
个人作业——个人项目实战 | 20 |
团队展示 | 4 |
结对作业——原型设计 | 15 |
结对作业——部门学生匹配 | 20 |
团队作业——项目需求分析 | 25 |
团队作业——项目Alpha冲刺 | 65 |
团队作业——随堂小测 | 8 |
个人作业——软件产品案例分析 | 25 |
团队作业——项目Beta冲刺 | 35 |
个人作业——软件工程实践总结作业 | 10 |
- 印象最深刻的作业:
- 一共花在软工实践上的时间:
- 学习和使用的新软件:IDEA,Android Studio,墨刀
- 学习和使用的新工具:github,墨刀
- 学习和掌握的新语言、新平台:Java,Android Studio
- 学习和掌握的新方法:通过github对项目进行管理,使用原型设计软件对项目原型进行设计,使用tomcat进行服务器的搭建
- 其他方面的提升:增加了团队编程的经验,对团队编程有了一定程度的认识。
二、写下属于自己的人月神话——个人或结对或团队项目实践中的经验总结+实例/例证结合的分析
- 沟通很重要。我们Alpha冲刺的团队是由我们宿舍的三个人组成的,所以在沟通方面非常顺利,基本上有什么新的想法都能够及时的交流,特别是跟Beta阶段的团队进行对比,让我体会到了沟通的好处和其重要性,充分的沟通能使项目顺利的进行,能使得各个成员的进度同步,同时也能够很好的解决项目上出现的冲突,项目管理者的想法也能够很好的传达。
- 基础很重要。一个人的编码基础无论是在个人作业或者团队项目中都非常重要,一个人有了良好的基础,才能够更快的理解新的知识,才能够熟练的掌握所需要的能力,就像我的队长,他有着良好的Java基础,所以在进行Android编程时就能够得心应手,而我由于之前没有学习过Java,所以在有关Java的编程方面就显得比较吃力。
三、对下一届实践的建议,或者对于开学初的你,对于大一的你,对于开学初的我,你有什么想建议和告知的呢?对于后来人的期许。 特别地,特别地,下一届要不要中途换队员?
- 对于大一的学生来说,我觉得最重要的就是掌握一门编程语言,这对接下去的学习和工作都很重要,其次就是培养自己的自学能力,这样才能够很快的适应软工实践,不然在项目开发过程中会比其他的同学更累。
- 至于要不要中途换队员,这个我是比较倾向于不要的,虽然换队员能够更好的模拟实际情况,对同学也有一定好处。但是学生的身份决定了我们不能投入全部的时间在软工实践这门课程上,更换了队员以后重新磨合所需的时间是我们无法承受的,同时还会拖慢项目的进度,我承认有那么几个人能力强,能够很好的适应下来,但是大多数人的能力是有限的,在换了一个队伍以后需要重新学习的东西也超出了我们的能力。所以虽然换队员有一定的好处,但是不适合身为学生的我们,弊大于利。
四、分析一下自己所处的团队。软件工程实践是大学里少有的认真的团队协作经验。《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?(参考《构建执法》第17章 人、绩效和职业道德)
- 萌芽阶段:刚开始的时候由于我们三个人都是初学者,加上人数较少,虽然由于我们是舍友,彼此都很熟悉,但是对项目开发毫无经验,所以在这一阶段花费了很多时间
- 磨合阶段:我觉得我们团队有大部分的时间都处在这个阶段。
- 创造阶段:由于我们团队只有三个人,再中途换队员,所以我认为我们离这个阶段还很远。
五、怎样证明你学会了软件工程?
- 1)研发出符合用户需求的软件
在开发前,我们进行了用户需求分析,之后我们团队根据得到的用户需求进行了项目开发。