欢迎来到林龙星的博客

返回顶部

回首过去,展望将来

这个作业属于哪个课程 2021春软件工程实践|W班(福州大学)
这个作业要求在哪里 软件工程实践总结&个人技术博客
作业正文 总结这学期学习到的知识
其他参考文献 ...

第一部分:课程回顾与总结

1.对问题的见解与思考

寒假作业2博客链接

问题一:大学中的团队是否不太适合MSF模式?

《构建之法》的书中提出了一个观点:如果项目没有商业价值,照搬商业软件的做法不合适。在之前的学期中有一个实践作业中,我们团队也遇到类似的问题,在实践中我们每个人有了特定分工,但是效率并没有得到提升,最后也是草率完成项目。在这学期的实践当中我发现大学中的团队确实不太适合MSF,首先,在团队作业中发现每个成员能力不同,在较短时间内快速学习并高质量完成相应的任务比较困难。而MSF团队建模中,只要有一个角色无法完成目标,都将危及整个项目。

问题二:团队模式与团队开发模式中是否可以找到最合适的组合使得团队开发效率最高?

书中提到了团队模式主要有:主治医师模式、特工团队模式、交响乐团模式、爵士乐模式、功能团队模式、官僚模式等;团队的开发模式主要有:写了再改模式、瀑布模式及其变形、老板驱动流程等。在本学期团队作业实践以及课程学习到的知识,我认为,选择合适的组合使得项目开发效率提高也与项目的量级有关。例如有些项目比较复杂,则比较适合交响乐团的团队模式和瀑布模式及其变形的开发模式;而解决项目一些特定问题的团队比较适合特工团队模式。综上,对于不同的项目,都可以相应找到合适的团队模式和团队开发模式来使得开发效率最高。

问题三:创新在考虑到好的创意的同时还应该注意哪些因素,才更容易被大众所接受?

创新需要好的想法,但是好的想法并不足以让一个创新为所有人接受。对于一些创新如果能够让人们的生活更加便利,那么创新就会更加容易被人们所接受。就比如近些年的各种共享交通工具,就是让人们出行更加便利的创新,受到人们的欢迎。所以,创新不仅考虑到好的创意,还要考虑创意的实用性,毕竟创新也要为人服务,因此考虑人的行为习惯也是创新是否被人接受的一个因素。

问题四:为什么有些时候领域内的专家并没有领域外的创新者那么有创意?

在提出问题后,阅读了老师的回答之后我懂得了所谓的术业有专攻;领域内的专家在专业知识上的理解与领悟显然是比领域外的人有着更深刻且独到的见解,在出现与专业知识相悖的创意是会被否决的,而领域外的创新者在细节方面可能并不能考虑的那么全面,所以他们的创新看似更多更新颖,但是实际上并没有很多会被应用。

问题五:技术创新是否是创新的关键?如果技术创新不是最关键的,那么什么因素是决定创新成败最关键的因素?

书中有提到一种名为“铱星计划”的手机,它凝聚了多种先进的技术,只要有66颗卫星覆盖地球表面,人们就可以随时随地打电话,这听起来是比现在的基站好太多了,但是这项计划不到一年就申请破产保护。这计划利用卫星电话,技术上确实有很大创新,但是最后却失败了。因为这一技术门槛较高,成本较大,现实中大部分人员集中在繁华的地区,而需要用到卫星电话的场合少之又少,所以这一创新的应用场景较少,所以最后就走向衰败。所以,我认为创新成败的最关键因素在于其是否有足够多的受众。如果一个创新只为了少数人服务,那么很难取得成功。

问题六:是否有更好的绩效评估方法,能正确评估团队中每个人真正的价值?

绩效评估又有各种不同方面的评估,书中有提到按照角色来定位,但是这种方法又有些不足,不是所有人都会服从别人给自己的角色定位,他们往往会将自己放在对自己有利的角色定位上;也有一种说法是比资历,但是软件行业有赢者通吃的规律,并不是资历越老越有话语权;还有比效率、背靠背评比、二维绩效评估,这些绩效评估的方法可以适当改进来找出合适自己团队的方法。比如我们团队在进行绩效评估时建立了自己的一套体系,在开发过程中发现确实较为合理地体现了每个人在项目中付出的精力。

2.每个阶段的收获

1.需求阶段

在需求分析阶段,我知道了确定一个好的选题十分复杂,这同时也提高了我分析问题的能力,能够从不同方面来分析一个选题是否适合来做一个项目。而且在需求分析阶段,我也巩固了自己对于原型设计技能的掌握,修改了部分团队作业的原型。我也负责了需求规格说明书的起草,这提高了我文档编写的能力。

2.设计阶段

在设计阶段,我负责了部分E-R图的设计以及数据库的设计。这让我对数据库相关的知识有了进一步的巩固。我也负责了系统设计说明书的编写,让我了解到在项目开发过程中设计阶段的重要性。

3.实现阶段

在实现阶段,我负责后端的部分开发工作。而在后端部分我主要学习了spring boot的相关知识,包括spring boot 如何与数据库交互以及与前端页面进行交互。以及我更加了解spring boot各个层次的作用。而且在开发阶段我学习到了运用一些工具对自己写的项目进行测试,比如postman来测试接口是否正确。

4.测试阶段

在测试阶段,我负责大部分测试工作,首先就是我运用了在寒假作业2中本来没怎么用上的Juint5来对项目后端的接口进行单元测试。这让我对测试用例的编写更加熟悉。其次就是利用postman对各个接口进行测试,确保接口正确。这个阶段让我明白了测试在项目开发中非常重要,在测试时发现问题,改正错误,可以让项目更健壮。我还手动编写了一些测试样例来对项目进行性能测试。

5.发布阶段

在发布阶段,我们的项目已经接近完成,我学习了一些自动化测试工具来对项目进行兼容性测试和压力测试。我学会了利用自动化测试工具来对项目进行测试,提高了测试效率。

2.理解&心得

1.个人项目

在个人项目中,我认为自己在当时对问题的理解不够透彻,还有就是还处于寒假自身动力不足,在完成个人作业时没用非常用心,而且花费的时间不够多,导致我开发完了相应的程序,但是测试不完全,最后导致提交的作业连一个样例都没有过,我认为这个失败里面有很多原因,其一,个人对作业重视程度不够,没用早点开始完成作业,导致后面时间不够。其二,完成项目后没用测试完全,在完成项目之后就没怎么测试,只随便找了一些样例,过了就认为没用问题。这次作业之后,我总结了自己的问题,并且督促自己下次不能再犯这种错误。

2.结对编程

结对编程的两次作业我自认为完成的还算可以。但是问题还是存在,我自己在第一次寒假作业以后没有马上开始学习相关知识,拖到了结对编程才开始,这让我在那段时间每天花费大量时间学习相关知识。在结对编程时,我负责前端开发,利用vue框架,从头开始学习,还好有舍友的帮忙才在最后完成项目。因此在结对编程中,我的心得体会是虽然做中学是一种学习手段,但是提前学习可以让自己在做项目的时候更加从容。

3.团队编程

在团队编程中,我转到了后端开发,因为我第一次寒假作业想学习的就是spring boot相关的知识。我在团队项目中负责较为简单的后端代码部分,只需要一些较为基础的spring boot的知识就可以完成。我在结对作业时也了解过一部分后端的知识,所以在进行团队项目开发时更加轻松一些。也正因为我负责的编码部分相对简单,因此我也负责了项目的测试工作,在团队作业中,我了解到了不少测试方法。这一阶段我的心得体会是在开发之前接口文档的编写十分重要,因为在前后端对接时,有发现一些接口对不上,后来发现是前端需要的和接口文档中的不一致;还有就是测试在项目开发过程中至关重要,如果没有测试,项目可能会有一些致命的bug。所以开发项目前要做好接口文档编写的工作,编程完成后要做好测试,这样可以提高项目开发效率以及项目质量。

第二部分:个人技术总结

springboot上传图片文件相关知识

概述:在开发spring boot后端项目时,后端需要接收前端传来的图片文件,并且将其存储到服务器上,而且将相应的路径存储到数据库中方便能查找到该图片文件。学习该技术是因为我们在开发团队项目时要实现修改用户头像这一功能,这一技术难点就在于在如何接收图片文件以及接收之后将其存储到服务器的文件夹下,路径是否正确,文件是否可索引到。

posted @ 2021-06-27 22:59  221801239_林龙星  阅读(72)  评论(1编辑  收藏  举报