网络15软工个人作业5——软件工程总结

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

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

在软工课程之前,我对软件开发的了解很少,一直认为只要做出一个软件出来就行了,没有想到这里面包含了这么多的知识和技巧。在经历了结对编程以及担任团队开发的alpha阶段和beta阶段的PM后,感觉自己在规划团队工作方面的能力有了一定的进步,另外在编程方面稍微进步了一些。但是我感觉我在团队开发中并没有将代码规范做好,编程能力还是有一定的缺陷,继续努力吧!

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

1)统计一下,你在这门课程中,完成了多少行的代码;

结对编程大概有400百行;团队编程中一直担任PM角色,代码相对来说写的少一些,大概200-300行。

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

作业 时间(小时)
软工网络15个人阅读作业1 2
软工网络15结对编程练习 20
软工网络15个人阅读作业2——提问题 5
软工网络15团队作业1——团队组队&展示 2
软工网络15个人作业3——案例分析 4
团队作业3——需求分析与设计 6
团队作业2——团队计划 1.5
软工网络15Alpha阶段 60
团队作业7——alpha阶段之事后诸葛亮分析 3
个人作业4——alpha阶段个人总结 2
软工网络15beta阶段 40
beta版验收互评 1
个人作业5——软工个人总结 2

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

结对编程吧!因为那是我第一次接触两个人合作做一个项目,而且还要严格按照书里介绍的结对编程的要求进行,着实让我有点苦恼。而且在项目过程中修改上一届的代码,首先要先看懂他的代码,花费了我不少时间。

4)累计花了多少个小时在软工上?平均每周花多少个小时?

累计花了大概有140小时在软工上,平均每周花10个小时。

5)学习和使用的新软件;

myeclipse、leango、Git

6)学习和使用的新工具;

Junit、leango、码云

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

这次项目使用的语言还是Java,没有接触新语言

8)学习和掌握的新方法;

结对编程、敏捷冲刺开发、需求分析、软件测试,燃尽图制作

9)其他方面的提升。

了解了软件开发的流程、提升了团队合作能力

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

(1)在团队开发中遇到问题一定要及时提出来,集思广益。我们在beta阶段插入BGM的代码编写过程中遇到问题,起初一直都是开发人员一个人慢慢研究,花费了很长时间。后来提出来后,大家一起想办法,很快就解决了。
(2)在团队开发前,要提前做好准备,比如开发过程中要做哪些东西,要注意什么地方等等,要不然在开发时碰到问题会手忙脚乱的。
(3)结对编程一定要注意和队友之间勤于交流,要让对方知道自己的想法,不能各做各的,这样要花费很多时间去搞懂队友的想法,会影响效率。

三、对下一届实践的建议,或者对于开学初的你,对于大一的你,对于开学初的我,你有什么想建议和告知的呢?对于后来人的期许。对于换人机制,有什么样的建议?

(1)要合理管理及分配时间。在软工的团队开发阶段会花费你很多时间,加上你可能有其他们课的作业需要完成,时间上的合理分配就显得十分重要了;
(2)一定要掌握一门编程语言。有可能有的人会有我不走编程这一条路的想法,但是作为一个学计算机的学生,一定会碰到各种编程作业或者你的毕业设计;
(3)如果你想学好编程的话,一定要多敲代码,可以尝试去参加项目,在项目中提升自己。

对于换人机制,我个人觉得挺好的,这样有助于队员学会和不同人该如何磨合,该如何沟通;只是一个团队熟悉之后,不知道该换谁出去,同学之间会有点不好意思。

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

《构建之法》上说团队的发展有四个阶段,分别是萌芽阶段、磨合阶段、规范阶段、创造阶段。
萌芽阶段:一开始我们团队刚组建的时候,都还处于一个熟悉的阶段,不知道该如何实施团队的计划;
磨合阶段:在这个阶段,队员开始适应了团队开发的模式,开始讨论分工,了解自己在团队中处于什么角色,该做哪些事;
规范阶段:团队渐渐走向正轨,队员之间能够合作交流,每一位对眼都开始按照计划完成自己的任务;
创造阶段:我个人认为我们团队并没有到达这个阶段,因为我们在开发过程中有的计划目标并没有完成的很好。

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

研发出符合用户需求的软件
必须公开发布,有实际的用户,一定的用户量和持续使用量 (3 天后能保持10 - 100个用户);而不是: 做没有用户使用的软件
通过一系列工具,流程,团队合作,能够在预计的时间内发布 “足够好” 的软件
有项目规划/需求/设计/实现/发布/维护,有定时的进度发布 ; 而不是: 通过临时熬夜,胡乱拼凑,大牛一人代劳,延迟交付等方式糊弄
并且通过数据展现软件是可以维护和继续发展的。
而不是 找不到源代码,代码无文档,代码不能编译,没有task/bug 等项目的发展资料
请在随笔中用数据证明上述内容或侧重选择之一。
(1)公开发布,有分工:

(2)项目规划/需求/设计/实现/发布

posted on 2018-06-17 23:52  clclcl  阅读(188)  评论(5编辑  收藏  举报

导航