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

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

这个作业属于哪个课程 2019秋福大软件工程实践Z班 (福州大学)
这个作业要求在哪里 个人作业——软件工程实践总结作业
这个作业的目标 对软件工程实践课进行总结,写出自己想要抒怀的地方、想要感谢的地方、遗憾的地方、想要抱怨的地方
作业正文 作业
其他参考文献 《构建之法》----邹欣

作业正文:

一、回望

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

答:为期几个月的软工实践终于落下帷幕了,怎么说呢,我的心里应该是既欣喜,但又有点失落的。欣喜是因为这样高强度高压力的时间终于告一段落了,失落的是我觉得在这个过程中我学到的东西还不够多,团队的项目完成的也不是很好,加之以后恐怕很少有机会再接触到这么锻炼能力的课程了。先谈谈我对软工这门课的一个认识吧:软工实践和我的初始认识是不一样的,没开始之前我以为这就是一门写代码的课,后来发现原来软工不是这么简单的,你不仅要会写代码,同时还要会需求分析,调查答辩,GitHub,原型设计等等一系列过程。而且这个学期的课程压力又很大,在团队冲刺以及结对编程那段时间真的是有点崩溃,感觉太难了。但总的来说软工实践让我变得更加充实了。通过这几个月的磨练,我觉得自己的编程能力得到了很大提高,接触和学习了很多新的语言,了解了软件开发的大致流程,算是有达到了自己的一个预期吧,但是我和团队成员们的沟通协作还是不太理想的,我的性格比较内向,不太擅长和他人交流,也不擅长表达自己的想法,希望以后能够慢慢改正吧。

(2)在第一次作业的个人简历中制定的“这门课程结束后,你预期你将增长的能力、技术、技能”和你在第二次作业中绘制的学习路线图。对比当前你的所学所得,你达到了当时的预期值吗?

答:暂时没有达到当时的预期值,可能只完成了50%左右。针对python、java等语言的学习,我有去买了一些相关的书籍来学习,也懂得了基本的语法,针对AI机器学习这一方面,感觉自己还是落下了很多,和预期的学习规划差得很远。但通过软工这门实践课,我还是有学到一些其他方面的知识的,例如html+css+js的网页前端知识,Android的前端开发,但我对bootstrap、jquery等框架的使用还是不太熟练。在课程结束后,我一定会继续完成没有达到的目标并制定好下一阶段的学习路线,持之以恒,不懈努力。

(3)请总结这门课程的实践总结和给你带来的提升,包括以下内容:
  • 统计一下,你在这门软件工程实践中,一共完成了多少行的代码?

答:有涉及代码的主要是数独作业、家族树实现以及团队项目开发这几次作业,统计一下有4千多行代码。

  • 软工实践的各次作业分别花了多少时间?(做一个列表)
作业 耗时(h)
个人作业——博客开设+个人简历 4
个人作业——预期学习路线图 4.5
个人作业——sudoku 40.7
结队作业——需求分析+原型制作 19
结队作业——“家族树”编码实现 66.5
团队作业——团队展示 1.5
团队作业——需求规格说明书 12
团队作业——GITHUB实训 1.5
团队作业——项目系统设计和数据库设计 15
团队作业——项目冲刺 86
个人作业——软件评测 6
团队作业——事后诸葛亮 1
个人作业——软件工程实践总结 5
  • 哪一次作业让你印象最深刻?为什么?

答:应该是个人作业——sudoku这次作业让我的印象最深刻,因为当时我花了很多时间打出这个代码,但是由于对GitHub的使用不熟悉和没有理解作业博客的要求,导致得了0分,十分地伤心,给我的印象也最为深刻。

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

答:根据上面列表的统计,一共有262.7小时,平均一周花21.9小时左右的时间。

  • 学习和使用的新软件;

答:IDE:visual studio 2017和Android studio; 数据库软件:MySQL以及Navicat。当然,最重要的是学会了GitHub的使用方法。

  • 学习和使用的新工具;

答:原型工具:墨刀; 思维导图制作工具:X-mind;Markdown编辑工具:Typora;(每次写博客的软件) 测试工具:Mocha

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

答:在学术家族树这次作业中,学习了html+css+js这一网页前端语言;在团队项目开发中,学习了java语言以及MySQL编程语言。

  • 学习和掌握的新方法;

答:在碰到问题时,我的解决方法主要还是百度、看书、问同学和上B站学习相关教程,但软工这门课让我懂得了如何Learing by doing,通过这一方式我们可以在有限的时间内完成既定的目标要求,提高自己的学习效率。

  • 工程能力的提升;

答:懂得了开发一个软件的大致流程,也学会了一些有关Android前端开发的知识。

  • 团队合作上的提升;

答:懂得了如何与其他成员分工合作,学会了碰到分歧时要如何统一意见,面临困难时大家要合力去解决。

  • 其他方面的提升;

答:其他方面提升的话我觉得我熬夜的能力以及抗压的能力得到提升了,哈哈哈哈

二、团队总结

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

答:萌芽阶段:在刚开始进行团队项目开发的时候,由于大家都没有项目经验,所以大家只能各种查找资料,去学习相应的自己负责部分的相关技术,为之后的开发做好准备。

磨合阶段:在磨合阶段的时候,我们团队是有出现一些问题的,例如由于团队成员之间的交流沟通不足,导致做了很多重复性的工作,而且大家也都有各自的想法,在统一协调上还是面临着不少困难的。尽管如此,大家都还是会积极配合,通过磨合阶段我们更加了解了团队中的每个成员,也懂得了如何与他人合作。

规范阶段:我们团队应该有达到规范阶段,在这个阶段中每个人都能够各司其职,大家的默契和团队的整体效率也有了提高。

创造阶段:我认为我们团队没有达到创造阶段,团队中的每个人虽然都有一定的贡献,但项目的实际性进展不大,在关键技术上没有突破,对于一些创造性的想法,我们也缺乏实现这个想法的能力。

(2)你在团队中担任了什么角色?你是否完成了该角色的任务?现在你觉得你适合该角色吗?

答:我在团队中担任的是前端开发的角色,负责写好APP的界面并完成界面的逻辑功能。我觉得我完成的不是很好,因为界面做得不是很美观,排版也不是很好,下拉列表、底部导航栏等一些基本控件也做得不是很好。现在我觉得我可能不太适合这个角色,因为前端开发真的是太繁琐了,有很多东西要考虑,我个人是对一些编程算法比较感兴趣的,所以以后可能会去尝试后端的开发。

(3)如果你是组员,你觉得你的组长分工安排是否合理?你对组长的选举有什么建议?

答:我觉得组长的分工安排还是比较合理的,团队中每个人都有自己的分工和任务,但应该多促进团队成员之间的交流沟通,减少团队成员之间的分歧,提升大家的凝聚力,这样或许大家的热情会更高。我觉得组长的选举的话,可以考虑让有做过项目,清晰软件开发流程的人来做组长,这样也更有领导力吧。

(附上一张团队的照片致敬那些天我们一起熬过的夜~):

三、人月神话

1、怎样证明你学会了软件工程?以下要求你们的团队达到了哪几个?

(1)研发出符合用户需求的软件(要求:必须公开发布,有实际的用户,一定的用户量和持续使用量 (3 天后能保持10 - 100个用户),而不是做没有用户使用的软件)

答:很尴尬,这些要求我们团队好像都没有达到,我们的产品只能说是一个空壳吧,缺少很多关键性的功能,因此即使发布了也不会有实际用户,这一点还是蛮遗憾的。

(2)通过一系列工具,流程,团队合作,能够在预计的时间内发布 “足够好” 的软件(要求:有项目规划/需求/设计/实现/发布/维护,有定时的进度发布 ; 而不是通过临时熬夜,胡乱拼凑,大牛一人代劳,延迟交付等方式糊弄)

答:在项目的规划管理上,我们团队采用燃尽图这一工具,定时地查看每个队员的完成进度,并且,我们团队前后端分工明确,每个人都有自己的任务,不存在大牛一人代劳,延迟交付等现象(ps:我们每个人都是小白)。

(3)并且通过数据展现软件是可以维护和继续发展的,而不是找不到源代码,代码无文档,代码不能编译,没有task/bug 等项目的发展资料

答:由于我们软件缺乏数据交互能力,因此在通过数据展现软件是可以维护和继续发展这方面没有达到目标,但我们的软件是可以找到源代码的,代码也能够编译运行,有比较详细的说明书和文档。

2、写下属于你自己的人月神话——个人或结对或团队项目实践中的经验总结+实例/例证结合的分析,字数不限,开放命题,可以使用你自己喜欢的方式表达

答:经验总结:1.我认为好的队友很重要,如果大家都是初学者,没有人带动则很容易产生惰性,不知从何下手就容易索性放手,而且团队成员之间的交流沟通有时候真的非常占用时间,一些不大的任务还是就一个人独立完成即可。2.做事情一定要及时,要讲究效率,尽量不要拖到明天完成,因为明天总有明天的任务,所以不管是个人也好,团队也好,只有做事及时,提高效率,才能够保证质量;3.团队的力量真的很大,俗话说得好“众人拾柴火焰高”,当你感到疲惫时,如果能想到你的队友此时也在和你一起奋战,那还是很美好的。

四、建议

(1)对下一届同学的建议,或者对于开学初的你,对于大一的你,对于开学初的我,你有什么想建议和告知的呢?请写下你对后来人的期许。

答:对下一届同学的建议:1.软工这门课真的很硬核,所以我觉得在大一大二的时候就应该抓紧时间去多学一些东西,python、java等语言是基础,有能力的可以多去参与一些项目开发,积累经验;2.对于有开发经验的同学,在团队项目开发中可以考虑当PM或者组长,如果没做过项目的同学可以考虑写文档或者美工;3.静下心来好好学习,提升自己的能力才是硬道理,不要抱怨,不要放弃,坚持就一定会有收获,加油!

对于开学初的我:1.我觉得我对时间的利用还是不太合理,在平时课余的时间应该多去学习一点新东西,不能只局限于课堂上的知识,学的东西不管是多是少,总是会有用的;2.应该多向身边优秀的同学学习,要多参加一些比赛,这样不仅能开拓视野,也能积累经验。

(2)对于软工实践课程,你有哪些建议?

答:1.对于软工实践课,我觉得最大的一个弊病就是理论课与实践课的跨度太大,理论课上或许可以考虑多讲一些与项目开发流程、技术方面有关的内容,告诉同学要去学什么东西,这样可以让大家少走一些弯路,不要老是只讲一些概念性的知识,这样大家的兴趣不会很高;

2.在平时的一些作业中,我觉得可以考虑放宽上交作业的时间,我印象很深的是做学术家族树的那一次,我和队友都是零经验,那几天一直熬夜学习,压力太大了,而且时间太紧的话必定会导致成果的质量下降。

3.老师和助教或许可以考虑多和同学接触交流,不要只停留于发布作业,验收作业,这样或许可以让同学们少些抱怨吧!

(3)对于助教工作,你有哪些建议?

答:1.首先,我觉得助教真的是挺辛苦的,他们的工作量很大,不仅有自己的事情要忙,还要帮我们评论博客,验收作业和评分。记得在团队总验收的时候,两个助教从早上到傍晚,都一直待在院楼验收作业,还很耐心地给了我们小组一些指导,感觉他们真的很辛苦,同时他们的付出也是值得肯定的,这里说一声学长辛苦了,哈哈哈哈;

2.对于助教工作的建议,有一点是我觉得在发布作业的时候可以把作业要求讲的尽可能清晰一些,例如在数独作业的那次,我也是因为没弄懂题目的要求,加之对GitHub的使用也不是很熟悉,虽然把代码打出来了,但由于不符合规范还是得了0分,很伤心o(╥﹏╥)o;

3.在团队项目开发的时候,助教可以考虑多给我们一些技术上的指导,告诉我们要学些什么,方向是什么,总的一个步骤是怎么样的,这样可以让同学们少走一些弯路,毕竟不是每一个团队都有大咖的。

(4)对于自己今后,你有哪些建言?

答:对于自己的今后,我想说的是陈友昆你还有很多东西要去学呀,你现在真的是很菜,什么东西都完成不了,所以不要怕苦怕累,因为以后你总要为你的慵懒买单,抓紧时间,静下心来,脚踏实地,多去学一些东西,提升自己的能力才是硬道理!

final:我们遇到什么困难也不要怕,微笑着面对它!消除恐惧的最好办法就是面对恐惧!坚持,才是胜利。加油!奥利给!

posted @ 2019-12-24 22:44  cyk2430  阅读(353)  评论(7编辑  收藏  举报