高级软件工程2017第8次作业—个人总结

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高级软件工程2017第8次作业—个人总结相关的知识,希望对你有一定的参考价值。

一、请参考第一次作业,当初你对课程的承诺和期望都兑现了吗?

我希望可以在这门课上学到跟本科不一样的东西,能够真正的提高自己的能力,改变思维方式,改变对传统课程的认识,最后做出来让老师和自己满意的东西。

我不知道我接下会花多长时间在这门课上,但是我为了做到自己满意,会花很多时间去学去做,如果时间不那么充裕我会熬夜完成项目。

  这是我第一次作业中对这门课的期待。九周过去了,我觉得这门课对于我期待的反馈还是有所满足的。首先,它是一门在“做中学”的课程,上课的时候老师传授的知识可以在作业中直接练习。通过对这门课的学习,我走遍了软件开发的各个流程,而且学到了新的软件开发、管理、代码托管等一系列工具,这在另一方面锻炼了我的能力。 同时,不论是个人项目,还是结对项目,以及最后的Alpha版本和Beta版本的项目,我都从中学到了很多,从自身来说,尽管没有提高很多代码能力,但是我交到了新的朋友,通过队友的教授,我能够了解到不同的思维方式和编码技巧,这对我今后的学习有着很大的帮助。同时,我们最后的项目还是让我自己很满意的,作为团队的PM,我自认为能够控制住项目进度,较为完整的完成了每一次的迭代冲刺,遇到问题也能合理解决。尽管花了很多时间在这门课上,不出所料的熬夜,但是我觉得很值得。

二、总结这门课程的实践给你带来的提升

学习和使用的新软件:

Axure。我们组决定使用Axure原型工具,由于组员之前使用过Axure,所以学习起来十分快捷。虽然最后我没有负责完成原型的绘制,但是我们组的原型是最好看的,而且具有相应的页面跳转和交互,所以决定以后在工作中也会多多使用。

学习和使用的新工具:

GitHub的使用、leangoo项目管理工具、雁阵(甘特图工具)、markdown格式的文本。

很久之前就想学习使用GitHub,但是觉得使用起来有些困难,其实现在看来是没有用心去学。认真学习并且使用之后发现并没有那么困难,只需要记住相应的命令就很方便地管理代码。

在了解了燃尽图的定义以后,使用leangoo进行实践,可以使我更好地理解燃尽图,也可以更好地管理项目进度。

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

我们所有的项目都是通过python语言编写的,所以没有学习新的语言。不过,在项目开发过程中,我学习了Flask框架。曾经,我以为python只能进行后端的开发,数据处理,基础功能的实现以及机器学习算法等,没有尝试过用python开发界面。而Flask框架解决了这一问题,其轻量灵活、松耦合的特点对于我这种新手十分友好。

你在这门软件工程实践中,完成了多少行的代码:

代码总共加起来大概有:2200行;但是提交到GitHub上面的不止这么多,因为还包括了很多文档和原型。

学习和掌握的新方法:

除了学会使用上述软件工具等,还学习了如何使用博客记录项目实现过程,记录心情;学会使用PSP对项目进行预估,在项目结束后也可以有一个回顾,可以更好地进行自我反思,这也是另一种程度上的提升。

其他的提升:

  • 对压力的适应能力:由于研一上学期课程很多,在加上还有实验室的工作也要完成,所以一直压力比较大,怕不能完成任务,很多时候都会在实验室待到晚上10点钟才会回去。但是这么回头看过来,觉得很充实,相信以后再回忆起这段日子也会觉得很开心。
  • 团队协作能力:作为本组的PM,一开始我的内心是拒绝的,因为觉得会有很多文档要写,还要统筹整个组的资源,包括时间和人力资源。我越来越觉得管理一个团队跟个人和结对编程是不同的,他可能会出现各种各样意想不到的问题。同时,一个团队所有成员的共同努力也会产生1+1>2的效果,特别是团队中还有大神的情况下,更可以增加我们项目开发的信心。
  • 软件测试:通过对软件测试的学习,我了解到软件测试在项目开发中占领的重要地位,他是功能完善的保证,也是性能优良的前提。软件测试促使我开发更合理、有效的软件。

三、项目实践中的经验总结+实例/例证结合的分析

  1. 所有的进步都是建立在自己动手的基础上的。不论是个人项目,结对项目还是最后的两个阶段冲刺项目,我发现只要是自己动手的部分,都会记的特别深,理解的也最透彻。而且,很多事情没有想象中那么难,只要真的做起来,可以运动各种办法来解决问题。
  2. 及时总结并没有像看起来那么没用。一直以来,我都觉得作为一个计算机专业的学生没必要写那么多文档,特别是在代码实现后,文档对于我来说就好像是嚼剩饭。但是通过这门课的训练,我觉得在写完代码后进行合理的记录和总结是很有必要的,所谓“不要走得太快,要时常回头看看”就是这个道理。越是记录的详细,越是对以后有帮助。
  3. 在一个大的项目开发前需要制定详细的计划。明确自己要做什么,要做成什么样子,如何实现,可以更快地提高开发效率。

四、分析一下自己所处的团队。《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?

  • 萌芽阶段:我们组的成员之前都在结对编程中合作过,所以彼此之间比较熟悉。在讨论中也了解了相互直接的优势和缺陷,方便开发过程中互帮互助。
  • 磨合阶段:在开发过程中,难免出现意见不一致的情况,特别是在需求分析阶段,由于我们项目的独特性,我们对于需求分析进行了很多次的讨论,虽然提前确定了一些需求,但是还是有组员对于相关需求有所质疑。在这个阶段,我们都很认真地对比同类项目的实现方法,最后通过表决的方式,达到意见统一。
  • 规范阶段:通过前期的讨论,同组成员主要通过《需求说明文档》来规范相关实现过程。其次,在Alpha和Beta版本的实现过程中,先让周明浩同学定下代码框架,然后进行各自任务的实现。
  • 创造阶段:我认为我们团队达到了一定程度上的创造阶段。通过对现有的博客平台进行分析后,在实现博客的基本过程后,完成了他们没有的功能;同时,在最互一个阶段,组员都可以明确地了解自己的任务,自觉自愿地完成相关功能,这也是我们Beta阶段开发速度较快的原因。

 

五、你对课程设计有什么建议吗?另外,作为学长的你,对后面的学弟学妹们有什么建议?

与老师计划的一样,我们希望课堂作业可以更加地个性化一点,而且能够稍微考虑到我们的时间分配问题。比如刚开始的时候个人作业和结对项目都是一周完成,但是后面的Alpha版本和Beta版本的冲刺也是一周完成,同样是一周但是压力是完全不同的。作为学姐,我建议学弟学妹们来选这门课,虽然有一定的压力,但是人不就是在一次一次的压力和挑战下而成为更好的自己吗?所以不要害怕,勇敢地选择这门课来挑战自我吧,更何况还可以学到这么多东西。

六、你对助教老师的工作可以提一些意见和建议吗?

我觉得助教老师在这个课程中是十分辛苦的。每周都要跟进作业和布置下一项作业,同时对我们的博客做出合理的评价和修改意见。我们能够很好的和他进行互动,时时刻刻都能感受到他对我们关心和促进作用。

一点小的建议:我印象比较深的是我们最后的项目选题的争议性,由于当时很多组都有这样或那样的选题问题,所以何老师让我们在课堂上进行讲述并且答疑,同时给出了建议。我们在课下按照何老师的建议修改并发表博客后,助教老师在评论中又问到了何老师上课同样的问题,所以感觉是不是老师这边没有沟通好,导致了重复工作。

以上是关于高级软件工程2017第8次作业—个人总结的主要内容,如果未能解决你的问题,请参考以下文章

第五次个人作业:个人总结

第五次个人作业:个人总结

第五次个人作业:个人总结

第五次个人作业:个人总结

高级软件工程第8次作业--2017282110285

[2017BUAA软工]个人阅读作业+总结