软件工程实践总结

大贤虎变愚不测当年颇似寻常人! 大贤虎变愚不测当年颇似寻常人!     2022-12-02     385

关键词:

这个作业属于哪个课程 2021春软件工程实践
这个作业要求在哪里 软件工程实践总结&个人技术博客
这个作业的目标 课程回顾与总结、个人技术总结
其他参考文献 软工实践寒假作业(2/2)、《构建之法》

课程回顾与总结

问题分析

点击这里查看寒假作业中提出的问题。

问题一:我们是否应该在单元测试中测试代码是否达到了性能上的要求(尤其是时间性能)

在寒假作业中个人的观点是,一些单元测试不一定要快,应该在单元测试中测试程序的性能。比如我可以在一些测试函数中测试性能,如果发现某部分程序性能不达标,这时候再使用性能分析工具,具体分析该部分程序该如何优化。我这里强调的是开发人员对程序的测试,不是测试人员对程序的测试,毕竟开发者也是要保证性能达标了再交给测试者测试。

分析:现在我对这个问题有了不一样的理解,需求中对于时间性能上的要求主要是对于比较大粒度的程序的性能要求;而单元测试仅仅是对一个小的模块的测试,相对而言是小粒度的。我个人认为还是应该在这里对时间要求较高的模块进行时间性能测试(充分利用单元测试工具的功能),这样利于后期进行时间优化。

问题二:我们测试的时候应不应该使用真实的用户数据(不敏感数据)来进行测试?

分析:我认为需要,要让程序在生产环境得到充分测试,足够真实的用户数据是必需的。这部分情况我们其实没有必要单独划分出来考虑,因为在软工实践的过程中发现,其实项目β版本的发布就有利用真实数据进行测试的目的。

问题三:注释是否应该只用ascii字符,不要使用中文或其他特殊字符?

分析:关于这一部分我仍然持我原有观点:

如果我们写的某一部分代码开发者都是中国人,而且这一部分代码是公司内部程序的主要逻辑代码,不能对外公开,那么使用中文注释会极大地降低理解成本,毕竟对于大多数中国人来说,肯定是对母语汉语的理解成本更小,日常的交流也使用中文交流。如果对英文不熟悉的人,很有可能会对某些注释产生误解,增加理解成本;而如果我们维护的是一个开源代码库,参与开源的开发者来自世界各个国家,我们代码的读者和使用者也来自世界各国,那么使用英文注释是最佳选择。

这里我比较赞同阿里巴巴的观点,《java开发手册》2020嵩山版中提到:24页第6点:【推荐】与其“半吊子”英文来注释,不如用中文注释把问题说清楚。专有名词与关键字保持英文原文即可。

问题四:为结对编程的一个关键是如何快速地度过学习阶段?

分析:这软工实践中,我深刻地认识到了多人编程(包括结对编程)中,各方面规范的重要性,我认为这也是对于这个问题的最好解答。人员的变动很容易把结对编程之前培养的默契销毁,要在这种情况下还保证高效的开发效率,形成初步的编程默契,一个双方都认可的规范是重中之重。

问题五:一个团队中是否需要一个由多人组成的PM团队?

分析:出现这个问题的主要原因是PM这个职位本身具有很高的重要性,任务职责又较多,如果单人负责,而该PM又中途离开,可能会对项目开发的推进造成很大的影响。所以,我认为PM最好可以多一些人,但是这可能会导致产生更多的问题,比如两个PM对客户需求不同的解读、任务分配问题、责任推卸等等。

收获

需求

收获:原型制作。使用Axure RP进行原型制作是我在这一个阶段学到的最大收获,这也让我了解了需求分析需要写的需求规格说明书等文档。一个项目是否能满足客户的需求,需求分析是非常重要的一个部分。

设计

收获:这一个阶段我最大的收获是对项目数据库的设计。数据库的设计不仅仅要考虑数据冗余问题,还需要考虑数据库的性能优化、性能管理等,其中更重要的是我还需要根据项目的真实情况考虑数据库的延展性。

实现

收获:这一部分的收获主要是重新回顾学习了springboot框架相关的知识点,包括redis、mybatis-plus、shiro等框架。同时学习了DFA算法实现敏感词过滤和java实现基于用户的协同过滤智能推荐算法。

测试

收获:这一部分主要是学会了使用Junit5进行单元测试、使用postman进行自动测试、使用jmeter进行并发压力测试等

发布阶段

收获:在发布阶段,我们需要时刻等待出现新的bug,然后马上进行调试处理。

心得体会

感觉软工实践的课程设计较为合理,布置任务是从个人编程、结对编程、团队编程进行不断的迭代。这些过程中包括了我们实际开发中大部分可能遇到的情况,也让我们在各种各样的环境下,综合运用了这几年来学习的知识。我一直都认为软工实践给我们带来的技术上的最大收获并不是学会GitHub、Axure RP等工具;也不是学习了前端(或后端)的新技术;也不是大大提升了写文档、编码能力,而是对软件开发过程的宏观认知。课程虽然与实际的软件开发有些差距,但是整个流程的步骤是比较完整的。

软工实践不能让我们在某个领域学到较深的专业知识(比如后端开发、软件测试等),但它带我们走了一遍流程,体会了软件开发的一整条生产线。这对我们的好处是巨大的,让我们把以前学过的各个专业知识串在一起,并进行实践应用。我们今后或许不需要在软件开发的每一个步骤都做到精通,但要做到在精通某一领域的基础上对全局有清晰的认知,这或许会成为未来提升自己能力的关键。

个人技术总结

相关博客:基于用户的协同过滤推荐算法

概述:计算机网络技术带给人们的最大贡献之一就是数据的共享,如何使得我们的项目更加“深入人心”是我们需要不断思考的方向。很多的项目都需要给用户提供数据(例如博客、知识等),但是海量的数据从某种程度上会降低用户获取有用信息的效率。项目如果能给用户推荐他们感兴趣的博客,做到真正的“千人千面”,那将使得我们的项目更加智能,更加具有市场竞争力。

目前常用的推荐算法有:协同过滤、矩阵分解、聚类、深度学习等等,这里我主要聊聊基于用户的系统过滤推荐算法。

软工实践个人总结

一、请回望第一次作业,你对于软件工程课程的想象1)对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强计算机专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方... 查看详情

个人课程总结

  期末的到来,我对软件工程的理解不断加深,现在已经是时候总结了。软件工程作为一个虚无缥缈的词汇却有着无与伦比的实在感,这是因为在刚接触时,我对软件工程的印象刻薄,而现在我不得不敬畏起软件工程的前人以... 查看详情

敏捷软件开发:原则模式与实践总结

...读的过程中很幸运的能有个开发新页面的任务。正好可以实践一番。用了书中一些思想。  需求与变化相生相伴,只要是需求,就必然会变化。更 查看详情

工程代码实践简单总结(代码片段)

一、背景  最近我们团队有幸接了两个0到1的项目,一期项目很紧急,团队成员也是加班加点,从开始编码到完成仅用了一星期多一点点,期间还不断反复斟酌代码如何抽象代码,如何写得更优雅,一遍... 查看详情

软件工程(c编码实践篇)学习总结

刘旸+《软件工程(C编码实践篇)》MOOC课程http://mooc.study.163.com/course/USTC-1000002006 一、对软件工程的理解及学习软件工程(C编码实践篇)的心得:     《高级软件工程》这门课已经结课,通过半学期... 查看详情

软件工程应用与实践(16)——总结

...目录一、博客综述二、课程总结一、博客综述在本学期的软件工程应用与实践中,我一共完成了15篇博客的代码分析,在这15篇博客中,我主要对老年健康知识图谱平台系统中的知识树结构,前后端交互,工具... 查看详情

软件工程应用与实践(16)——总结

...目录一、博客综述二、课程总结一、博客综述在本学期的软件工程应用与实践中,我一共完成了15篇博客的代码分析,在这15篇博客中,我主要对老年健康知识图谱平台系统中的知识树结构,前后端交互,工具... 查看详情

软件工程应用与实践(16)——总结

...目录一、博客综述二、课程总结一、博客综述在本学期的软件工程应用与实践中,我一共完成了15篇博客的代码分析,在这15篇博客中,我主要对老年健康知识图谱平台系统中的知识树结构,前后端交互,工具... 查看详情

2018第32周总结

本周主要看了《一线架构师实践》与ADMEMS相关的内容,里面有很多理论对日常工作中的架构实践是有帮助的,应该努力去把学到的认同的理论在实践中检验,否则没卵用。 ADMEMS是ArchitectureDesignMethodhasbeenExtendedtoMethodSystem的简... 查看详情

《高级软件测试》实践作业4学习记录12月26日

今天,小组成员的工作进度也在有条不紊的推进中呢。今天任务的新进展:1,完成了小组作业中对于被测试产品的用户体验以及对用户的采访(汪嘉珮)2,完成了小组作业中关于前段性能测试的分析和总结(何阳寅&叶瑞)3... 查看详情

wireshark经典实践和面试13点总结(代码片段)

1.软件概述(谁开发的?什么时候?)wireshark是目前全球使用最广泛的开源抓包软件(前身为Ethereal),由GeraldCombs编写并与1998年以GPL开源许可证发布。能在多种平台上抓取和分析网络包。图形界面非常... 查看详情

wireshark经典实践和面试13点总结(代码片段)

1.软件概述(谁开发的?什么时候?)wireshark是目前全球使用最广泛的开源抓包软件(前身为Ethereal),由GeraldCombs编写并与1998年以GPL开源许可证发布。能在多种平台上抓取和分析网络包。图形界面非常... 查看详情

wireshark经典实践和面试13点总结(代码片段)

1.软件概述(谁开发的?什么时候?)wireshark是目前全球使用最广泛的开源抓包软件(前身为Ethereal),由GeraldCombs编写并与1998年以GPL开源许可证发布。能在多种平台上抓取和分析网络包。图形界面非常... 查看详情

在自我追责中超越

这个作业属于哪个课程2021春软件工程实践|W班(福州大学)这个作业要求在哪里软件工程实践总结&个人技术博客这个作业的目标通过回顾,对自己这个阶段有更清楚的认识和总结目录第一部分:课程的回顾与总结《构建之法》... 查看详情

工程实践:c++接口设计指北(代码片段)

工程实践:C++的接口设计导读接口设计准则接口设计注意事项接口设计想达到的效果接口的俩种方法PIMP方法Object-Interface抽象基类法Object_interface抽象基类示例代码参考资料总结最近在工作中,需要将代码封装成库&#x... 查看详情

软件工程的实践项目课程的自我目标

对实践项目完成后学习到的能力的预期:这算是自己第一次参加的团队合作的软件实践吧,以前自己搞的小“玩意”,实难登大雅之堂,期待实践项目后--->1、自己的代码能力能够有较明显的提高,代码更加规范。2、提... 查看详情

2018年博客总结

...式演化工业4.0架构方案介绍物联网应用介绍智慧城市介绍软件工程(Engineering)     互联网公司业务驱动下的DevOps演进,DevOps如何落地,团队的文化,老生常谈的需求变更管理,研发流水线构建与优化,电商运维... 查看详情

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

回望5个月来软件工程实践走过的路,你做了哪些作业;git实训,团队开发AB冲刺等总结这门课程的实践给你带来的提升:懂得团队开发的含义了学习和使用的新软件、新工具;github学习和掌握的新语言、新平台、新框架、新架构... 查看详情