软件工程课程学期总结
一、学期回顾
1.1 对软件工程课程的初步期待与实际体验
作为一名具备Java基础的开发者,我对这门软件工程课程最初的期望是能够系统地学习软件开发的全过程,特别是团队协作和项目管理技能。经过一个学期的实践,我实际参与了一次完整的团队项目开发,担任后端开发工程师,负责业务逻辑实现。通过这次经历,我深刻体会到了团队软件开发的流程以及版本控制工具Git的使用方法。在代码提交和合并的过程中,我多次向项目负责人发起Pull Request,既感受到完成任务的成就感,也时刻警惕着代码出现缺陷的风险。这些经历让我对软件开发的整体流程有了更真实的认识,同时我的后端开发技能也得到了显著提升,能够独立完成更复杂的功能模块。
不过,遗憾的是,我对项目的整体架构设计和需求分析环节接触较少,缺乏对软件开发全局的把控能力。作为后端开发者,我更多关注代码实现细节,而对项目的整体规划、需求调研和模型设计等方面的理解仍显不足。未来,我希望能参与更多项目的全生命周期管理,提升自己的架构设计和项目统筹能力,向更高级的软件工程师方向迈进。
1.2 课程中的投入与产出
- 个人编写代码总量约为 1500 行
- 在团队项目“AwesomeCS”中担任后端开发工程师,主要负责专家和博客的业务逻辑开发。
- 各次作业花费时间统计:
| 作业 | 花费时间(小时) |
|---|---|
| 第一次团队作业 | 2 |
| 第二次团队作业 | 5 |
| 第一次团队项目作业 | 3 |
| 第二次团队项目作业 | 5 |
| 第三次团队项目作业 | 10 |
| 第四次团队项目作业 | 8 |
- 课程累计学习时间约 74 小时,实际周均投入约 6 小时,较最初预估的每周10小时略低。
1.3 印象最深刻的作业或答辩
令我印象最深刻的是第一次团队项目作业的答辩。那次答辩中,我们团队详细展示了项目的功能实现与技术架构,面对评委的提问时,大家齐心协力,有条不紊地解答了各种技术和设计上的难点。那次经历让我深刻体会到了团队协作的重要性,同时也增强了我的表达能力与临场应变能力。
二、总结收获
2.1 软工实践经验分享
- 项目主题确定阶段:起初我们因硬件集成考虑不足,错失了创新机会。比如我曾设想开发“预约书柜系统”,但未能结合硬件创新点,导致方案最终被放弃。这个过程让我意识到,跳出思维定势、发散思考是创新的关键。
- 需求分析与设计阶段:绘制UML图和设计系统交互非常复杂且耗费心力,但这些基础设计是项目顺利开发的保障。通过梳理需求,我体会到前期规划的重要性。
- 编码实现阶段:我负责实现博客的热门排序功能,结合点赞量和浏览量设计算法,体现了业务逻辑的自主发挥。同时,编写单元测试提升了代码质量,学习到测试不仅是验证正确,更重要的是寻找潜在错误。
- 项目部署阶段:项目最终部署到服务器,线上展示给用户使用,体验了网络基础知识的实际应用。虽然对Linux的部署操作不够熟练,但在组长的帮助下顺利完成,感受到项目上线的成就感。
2.2 学到的新技术及工具及其价值
- Vue.js前端框架:初步掌握前端开发,完成了预约书柜系统的前端页面。
- Sa-Token权限框架:实现了简洁高效的用户认证和权限控制,解决了token管理难题。
- 文档驱动学习:掌握查阅官方文档自主解决问题的能力,减少对视频教程的依赖。
2.3 技术之外的提升
- 文档学习能力:学会高效阅读技术文档,快速掌握新工具的使用。
- 项目管理意识:理解软件开发的全流程,认识到规划和设计的重要性。
- 团队协作与沟通:增强了跨角色协作能力,学会合理分配任务与解决冲突。
- 问题解决与自我反思:面对复杂问题,学会分析根因并不断优化解决方案。
2.4 其他感想
这门课让我重新审视了自己的职业规划,之前我更倾向于硬件方向,但由于基础相对薄弱,前路受限。通过软件工程课程,我认识到软件开发和人工智能方向的广阔前景,决定将更多精力投入到软件与算法领域,结合硬件知识作为辅助,这样的组合更适合我未来的发展。虽然起步晚了一些,但我坚信只要持之以恒,依然能够走得更远。
三、致谢
衷心感谢授课老师的悉心指导,虽然授课经验尚在积累,但老师对课程内容的认真讲解和项目指导令我受益匪浅。特别感谢小组组长,他不仅承担了项目架构设计的重任,还在技术细节上给予我巨大帮助,使我快速成长。同时感谢所有组员的积极配合和辛勤付出,正是大家的共同努力,才有了项目的成功完成。希望未来我们还能继续携手,共同进步。
本学期的软件工程课程虽然结束,但所学所得将伴随我今后的成长道路。愿大家都能将所学转化为生产力,在未来的软件开发旅程中不断超越自我!