个人作业——软件工程实践总结&个人技术博客

写在前面

这个作业属于哪个课程 <班级的链接>
这个作业要求在哪里 <作业要求的链接>
这个作业的目标 软件工程个人总结
作业正文 正文如下
其他参考文献 ...

 


Part1.回望

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

  • 在寒假的计划中规划了要在这门课里学习前端开发,在团队实践中学会了使用Vue框架和Element-UI进行前端开发,实现了学习新技术的目标,此外,在团队项目进行时协同后端的同学修复bug,查找技术文档,在这个过程中也对spring boot框架如何使用有了简单的了解。最重要的是对软件的开发过程有了重新的认识,学习到开发软件不是简单的打打代码,前期的准备,文档的撰写对项目质量的好坏起到关键作用。在之前的课程中,小组合作都是决定了大致方向,分配完任务后直接上手,没有写过任何文档,结果实现出来的东西不怎么理想。
  • 不足之处就是我明显可以感觉到Vue框架还有很强大的功能等着我去发现,我在开发过程中使用到的仅仅是很简单的功能,另外就是用户界面的美工,配色,布局还有待学习,虽然演示的时候助教老师夸赞UI不错,但是实际上还是有些简陋了,队友吐槽看上去像是十几年前的淘宝页面2333。另外就是文档的撰写,项目的设计能力有待提高,现在回过头来看,前期的文档有很多的不足之处,完全不够支持小组的项目实现,比较庆幸的是在beta前重新设计的接口文档能够较好支持开发工作,算是摸到了一点门道吧。

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

  • 100分的话打个80左右吧,在项目的alpha阶段时,对布局的方法基本没什么了解,全靠着float布局加上padding、margin一点点调出来,在alpha前几天耗费大量时间不说,到后期还因为这种简陋方法引起的bug进行了返工。alpha结束后学习了栅格布局的使用方法,在beta阶段才更上手一些。比较意外的收获是在疫情地图的作业中学习到了如何用node爬去数据,虽然当时实在太菜,不知道怎么把获取到的数据从json文件里拿出来,结果爬来的数据还是没用上。开发过程中对vue框架的使用还是停留在简单层面,个人技术虽然有提升,但仍没达到预期,还是要多多学习。

请总结这门课程的实践总结和给你带来的提升

  • 1、统计一下,你在这门软件工程实践中,一共完成了多少行的代码
    大大小小的作业,前后加起来应该有6k+了

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

作业 花费时间
第一次寒假作业 2.5h
第二次寒假作业 4h
结队作业(原型设计) 6h
团队作业一(种子选拔) 3h
结队作业(疫情地图) 25h
Github团队实战 4h(个人部分)
原型设计 0.5h
需求分析 8h(历时4天)
数据库与系统设计 10h(历时5天)
软件评测--个人作业 5h
alpha冲刺 120h
beta冲刺 120h+(包括缓冲期)
  • 注:原型设计与需求分析采用3+3方式,3位组员负责原型,另外三位负责文档

  • 3、哪一次作业让你印象最深刻?为什么?
    Github团队实战吧,其实这个作业也就之前C#个人作业的程度,没有太大的难度,主要是时间缩短为一天,然后又对github的团队开发比较陌生,版本控制时出现了代码丢失的情况,确实很难受,而且有些组员对自己写的功能没有测试过,整合的时候就一堆bug,好像最后提交的时候这个项目还存在一些明显的bug,当时整合真的是搞到作业截止一小时后我还在怀疑人生(这真的没想到,在数据库实践的合作以及其他的合作中大家对自己的功能都有进行过基本的测试的,我还以为这是每个人都会做的事,没想到这次合作的队员中竟然会有人写完代码就完事,不看能不能跑起来)。后来也在这次实践中吸取了教训,后面的实践都强调大家必须进行测试,相关接口完成后如果前端没办法使用就直接减少贡献度。

  • 4、累计花了多少个小时在软工实践上?平均每周花多少个小时?
    总时长是308h+,平均每周20小时左右吧(按16周计算)。

  • 5、学习和使用的新软件
    postman、idea、axure

  • 6、学习和使用的新工具
    git算吗?

  • 7、学习和掌握的新语言、新平台
    新语言:markdown
    新平台:博客园

  • 8、学习和掌握的新方法
    前后端分离开发、git团队开发

  • 9、工程能力的提升、团队合作上的提升、其他方面提升(这三点我合一起写吧)
    课程实践带给我最大的提升是重新认识了软件开发的流程,体会到了设计文档的重要性,知道了程序员不应该只会打代码,还应该要学会相关文档的撰写,相比之下,以前课程的团队开发真的是,emmmmm一言难尽。再有就是团队协作的能力有较大提高学会了用git进行团队项目的开发,之前只是个会在git上cv项目的大师(逃)。最后才是个人技术的提升,之前课程上做出来的东西真的是只能够满足使用需求,界面一点都不能看。

 


Part2.团队总结

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

  • 在团队中担任的是组长兼前端。

  • 前端的任务算是圆满完成了吧,但是组长这个身份确实是还有待提高,感觉项目管理的经验有所提升但仍然不足,有些东西没有了解到(比如我是在写答辩博客时查了相关资料才知道原来还有一些在开发过程中帮助审查代码规范的工具orz)。

  • 对于组长这个身份,其实我是被迫上岗,因为组队是在宿舍成员的基础上再招人,然后舍友没啥经验也不想当组长,就只能我上了(其实我也没经验,就是之前课程的团队作业给他们分了分任务而已)。适不适合的,我感觉还行吧,但是经验确实很不足,仍然有待提高。

如果你是组长,你觉得你有哪些地方做的不够好的?有哪些地方做的好的?你觉得该怎么改进?

  • 进度把控上还是不够好,beta的任务量对比alpha来说多了很多,在alpha前应该更仔细进行规划的。还有就是对实际的开发流程没有足够的了解,像什么代码的重构,队员的约束,以及对意外情况得考虑都不够充分。比如没考虑到后端同学会以改数据库的方式代替多表操作,在alpha阶段没有很好的对组员进行跟踪,让他们能够随意的修改数据表的结构,加重了beta阶段后端同学的负担。

  • 做得好的就是在beta采用在线文档的方式发布任务和接口表吧,这种方法对比alpha来说确实提高了开发的效率。其实在alpha阶段的接口分配很粗糙,就只有一份系统设计说明书的接口表,所以组员在这方面的通信开销很大,是在alpha阶段的最后两天,负责管理员端的同学提到了他们是用在线文档的方式进行对接,我觉得很好就采用了这个方法,在此感谢一下@jinitaimei996(229),@DDDDy(235)这两位同学。

  • 改进方法,还是要多学习多体验吧,经验的积累主要还是得依靠实践。

你这学期经历过换组吗?你对换组有哪些看法?谈谈你在这个过程中的感受。

  • 没有经历过换组

  • 随机换组吧emmmmmm,怎么说呢,确实能够模拟公司人员调动的这种情况,换组其实挺考验组长的能力的,虽然说基本上各小组都会在换组结果出来的第一时间就给新组员布置熟悉文档,技术资料的任务,但实际上要等到开发的时候才能了解新成员的学习成果如何,因此任务分配上会存在比较大的不确定性,而且我注意到有些小组为了确保项目不受干扰,没有给新成员安排开发任务,而是让其写文档写博客,这样子似乎脱离了换组的初衷。

  • 就我而言换组的体验挺不好的,一开始我也想给新组员安排写博客的任务,但是感觉对他有点不公平,换组结果出来后我看了看他目前的总分,貌似得参与开发才能达到及格,因此还是排了一些比较简单的工作给他。beta实践的过程中除了约定好的组会时间,其他时段都挺难联系到他的,加上他是在7冲刺后才将贡献的代码一次性提交到远程仓库,为了保证项目能顺利发布,所以后续他负责的一些不达标的接口都是直接分配给其他组员完成,因此他最后的贡献度也比较低。这次的换组确实加大了我们小组的开发难度。

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

  • 团队介于磨合与规范之间吧,虽然beta阶段的文档比较全面一些了,但是其它方面,比如说代码规范方面还是没有做到,个别成员的代码没怎么写注释,风格充满个人特色,有写地方的代码结构还是可以继续优化的。不过团队的配合程度确实比alpha更上了一个台阶,大家也都很辛苦。

 


Part3.人月神话

怎样证明你学会了软件工程?以下要求你们的团队达到了哪几个?请在随笔中用数据证明上述内容或侧重选择之一

  • 通过一系列工具,流程,团队合作,能够在预计的时间内发布 “足够好” 的软件
    我们小组基本完成了项目之初所提出的需求,但是因为时间与技术原因实时聊天的功能没有实现,产品发布后也进行了用户的调查,并对用户所反应的几个问题进行了完善。但是我们参与测试的用户不多。在alpha阶段我们小组的开发流程十分粗糙,使用的是系统设计书明书中的接口表,没有对一些该注意的点进行规定,在被他阶段我们采用了在线文档的方式进行任务分配与接口分配,同时完善了接口表,完整文档请点击 beta接口文档 和 任务分配表 查看
    任务分配表截图
    个人作业——软件工程实践总结&个人技术博客_第1张图片
    接口分配
    个人作业——软件工程实践总结&个人技术博客_第2张图片

写下属于你自己的人月神话——个人或结对或团队项目实践中的经验总结+实例/例证结合的分析,文字部分字数要求在100字以上,可以使用你自己喜欢的方式表达(如图文结合、视频)..

  • 不要轻视环境的配置,在alpha阶段我就轻视了maven的安装,一直没有相关的依赖仓库一直不能安装成功,导致只能把我负责页面的测试工作交给其他同学帮忙,给别人增加了负担。在beta前查了各种资料也没有成功(估计是我之前修改过系统的一些设置,导致连接失败),后来是拷贝其它组员的仓库才可以正常运行,不过这个问题还是没有得到解决orz。

  • alpha阶段为了能够减轻负担,把很多要实现的功能都往beta推,导致beta阶段任务较重,所以项目的时间规划很重要

  • 再怎么强调事前的准备也不为过,alpha冲刺开始没有经过仔细的规划,文档也很粗糙,导致团队在开发过程中通信开销太大,并且也出现了一些纰漏之处,给下阶段的开发带来较大困难。有规范的文档,详细的定义
    可以让开发变得事半功倍。

 


Part4.建议

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

  • 好好学习吧,大佬上这门课轻不轻松我不知道,但是菜鸡上这门课真的很累,不过收获确实很大

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

  • 希望能多一些技术上的指导,一开始真的是一头雾水,不知道从哪开始。

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

  • 助教很赞,对我们日报中遇到的难题有给出及时、有用的建议,帮助很大,希望能多一点能有更多的技术分享课

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

  • 不要纸上谈兵,还是要多多进行实践

 


Part5.个人技术总结

个人技术总结链接
分享一下Vue框架和Element-UI使用过程中遇到的一点问题,以及解决的办法

你可能感兴趣的:(个人作业——软件工程实践总结&个人技术博客)