软件工程实践总结作业

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

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

  • 接近一个学期的软工实践,所花费的时间的确比我预想的多得多,一次次作业的deadline,一天天的冲刺,虽然有一学期的课程,但是感觉时间飞快。现在回头看看第一次作业的博客,感觉代码能力有一点提高,更大的收获是这次的课程+《构建之法》的阅读让我了解了整个软件开发的具体流程和团队协作是如何开展的,学着在有限时间内掌握新的工具和新的知识,团队协作中不仅需要编程人员也需要PM、测试员,软件开发中代码开发也不是唯一重要的部分,需求调查和原型设计在一定程度上决定后期返工率。了解平常使用的APP的开发过程大体是怎么样的。
  • 不足之处在于:刚开始接触github 只是简单的push、fork没有真正使用GitHub来进行代码管理。安卓的使用,因为成员各自有任务分配,以《第一行代码》为例,Andriod只学到了前几章,说不上基本入门Andriod。文档编写上面负责的比较少,主要是看别人编写的文档获取一些数据参数。有个不好的习惯,不喜欢或者说不习惯看文档,习惯直接问写文档的同学。

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

1、统计一下,你在这门软件工程实践中,完成了多少行的代码;

  • 1000左右吧

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

作业 时间
第一次作业 3h
第二次作业 数独 26h
结对1.原型设计 3.5h
结对2.部门与学生匹配 24h
团队选题 3h
团队预则立&&他山之石 3h
需求说明书 3h
团队系统设计 6h
团队UML 1h
团队Alpha冲刺 60h
同学录 13h
个人技术博客 6h
软件产品案例分析(华为云) 5h
团队Beta冲刺 24h
个人软件工程实践总结作业 5h

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

  • 团队Alpha阶段,一开始编程遇到了许多问题,当使用GitHub、AndriodStdio这样的工具的时候出现问题束手无策,后来学着看报错,谷歌搜索解法,查资料找博客解决问题,特别是在团队里面,有问题大家一起解决,在Alpha冲刺的时候,每天抱着电脑大家就在一起打代码的经历真的不多。

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

  • 累计190小时左右,α阶段冲刺+β阶段的时候比较多每周30小时左右,平常一周会有15小时左右,之间两周因为考试每周10小时左右。

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

  • AndroidStudio、Git、XMind、StarUML

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

  • Git,markdown、墨刀、visual studio2017

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

  • Java、入门GitHub、MOb平台、博客园、AndroidStudio

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

  • NABCD 法需求分析、原型设计、团队协作方式

9、其他方面的提升。

  • 熬夜能力提高了

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

  • 团队项目中原型设计很重要,后期修改很费时间还会打击组员信心。
  • 编程过程中解debug能力要努力加强,要学会看报错信息,也要求自己英语好一点吧,再来查找解决问题的办法。更进一步就是学会思考。
  • 有些问题给自己设定一个期限,比如使用git merge的时候出了问题先自己动手找原因,如果过了2、3个小时还没有解决,要马上问组员或者助教、老师了。这些问题也许精通的同学两三分钟就搞定了,请教的过程也是一个学习 的过程。
  • 开发过程中会用到一些工具,工具的使用也很重要,要比较快的达到工具使用的入门等级,这时候一些教程会比较有用,感谢一些西瓜学长的博文,毕竟跟着操作,不懂原理也可以上手,但是要想更好的使用工具的话,学习一些原理也是必备的。一般的博客里面也是有展开的。

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

  • 对于下一届的同学还是强烈推荐软工实践课,虽然已经是必修了,但是这门实践课是到目前为止最接近实际开发的课程,开学初选了这门课的话可以先找一下团队,这时候靠谱的组长就很重要了,找一个沟通能力好+有责任感+会分配任务的组长就很棒棒了。
  • 开学初就可以准备一下前期知识储备了,学语言、熟悉工具,尤其是工具的使用会花费比较多的时间,《构建之法》可以伴随作业的安排一步步看下去,没到那个部分的时候看书的话,其实我没多大实感这一阶段到底要做成什么样子,结合老师所讲+书上内容就可以比较容易上手了。
  • 大一的话,学语言,尽可能的尝试,找到擅长或者喜欢的方向都是不错的,而且尽快学习一些相关内容的话,后期你的技术才有更大可能实现你的想法,完成任务的时候也会更从容一点。
  • 如果已经开始着手开发的话,需求分析和原型设计很重要,后期返工会爆炸。还有就是这门课花费的时间真的很多,要协调好其他科目的时间。
  • 对于换队员,我们组换走了大神,换来了大神,新组员适应能力max,代码功力也很强,所以就这个结果而言,换队员还不错。这次时间赶加上考试时间一挤压,如果是自己被换走,真的压力很大,心态会崩,可能对这个事件太害怕了导致有点抵抗。
    但是下一届的话,还是换队员,对于换队员之后的缓冲期可以长一点。

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

  • 一开始我们团队属于萌芽阶段,大家交流的不是很多,止于分配任务各自完成,主要是组长在划分任务,我们执行。在选题、系统设计、UML设计一次次的团队作业中,每次开会大家都会交流各自的想法,有什么问题提出解决。
  • 之后在α阶段的时候属于磨合阶段,大家开会集体编程的时候会对于各自负责模块中出现的问题讨论,尤其是好几个模块间有交集的时候,会比较慎重,由技术较好的同学查找一些方法或者例子,觉得可以实现,再往下做。
  • 接下来规范阶段的话实际感觉比较短,前期靠询问,后期靠文档。
  • 创造阶段的话,Beta阶段,整个团队协力完成一个APP,互帮互助,劲头还很足。但是角色和职能能够根据项目的要求自然转换这一点还是有点困难,勉强达到吧;对于我们最终的产品,可能达不到这个级别。

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

1)研发出符合用户需求的软件

  • 项目初始进行了需求分析,α阶段完成后也发给一些真实用户做试用,根据反馈进行改进。目前我们组员都在使用。

2)通过一系列工具,流程,团队合作,能够在预计的时间内发布 “足够好” 的软件

  • 项目规划、需求、设计、实现、发布、维护,和定时的进度发布都在作业博客中有体现,我们团队也有每天通过git提交代码,每日进度和计划也会进行汇报和总结。

3)并且通过数据展现软件是可以维护和继续发展的。

  • GitHub上面有我们项目的源代码和代码规范、需求说明等一些文档,可以进行维护和后续发展。

七、个性发挥,包括图文、照片和创意等

软工实践即将结束,感谢一起努力的队友还有老师、助教们的付出。

posted @ 2017-12-27 00:41  lxipandas  阅读(197)  评论(2编辑  收藏  举报