结课总结

  1. 回顾课程计划完成情况

掌握软件工程的基本理论(如需求分析、设计模式、测试方法等)。

参与团队项目开发,完成一个可运行的软件系统。

提升代码质量,学习代码审查、单元测试和持续集成。

阅读《构建之法》并思考相关问题,加深对软件工程的理解。

进行团队协作,提高沟通和管理能力。

完成情况分析
理论掌握情况

通过课堂学习和课后阅读,掌握了需求分析(如用户故事、用例图)、设计模式(如MVC、工厂模式)、测试方法(如单元测试、集成测试)等核心概念。

举例:在团队项目中,我们采用了用户故事进行需求分析,并使用UML用例图描述功能模块。

团队项目开发

我们团队开发了一个在线考试系统,实现了用户注册、试题管理、在线考试、自动评分等功能。

但由于时间限制,部分功能(如数据分析模块)未能完全实现。

代码质量提升

我们采用了Git进行版本控制,并进行了代码审查。

《构建之法》阅读与问题思考

完成了书籍的阅读,并提出了5个问题(后续回答)。

团队协作

springboot+vue+AS开发团队项目,每周进行站会,任务分配合理,沟通顺畅。

总结:整体完成度较高,但在代码测试和部分项目功能上仍有优化空间。

  1. 回顾《构建之法》的5个问题及自我回答
    在课程初期,我提出了以下5个问题:

问题1:如何平衡软件开发的“质量”和“速度”?
回答:

通过敏捷开发(如Scrum)可以在迭代中逐步优化质量,同时保证交付速度。

自动化测试和CI/CD(持续集成/持续部署)能减少人工错误,提高效率。

问题2:在团队协作中,如何避免“搭便车”现象?
回答:

采用明确的任务分配(如JIRA看板),确保每个人有清晰的责任。

进行每日站会,汇报进度,避免成员懈怠。

问题3:如何有效进行需求变更管理?
回答:

使用需求优先级矩阵(如MoSCoW方法),区分“必须有”和“可以有”的需求。

在敏捷开发中,通过迭代评审调整需求。

问题4:软件工程师如何保持技术更新?
回答:

定期阅读技术博客(如Medium、掘金)。

参与开源项目,学习最新技术栈。

问题5:如何衡量一个软件项目的成功?
回答:

用户满意度(如NPS评分)。

代码质量(如测试覆盖率、Bug率)。

商业价值(如用户增长、收入)。

反思:课程通过实际项目让我更深入理解了这些问题,但部分问题(如技术更新)仍需长期实践。

  1. 对“事后诸葛亮”分析的新感想
    在项目结束后,我们进行了复盘会议,发现:

优点:

任务分工明确,前后端分离大大提高了开发效率。

代码审查减少了低级错误。

不足:

需求分析阶段未充分调研,导致后期基础项修改较多。

新感想:

需求分析比编码更重要,应在前期投入更多时间。但是说实话一开始真不知道哪里需要什么,都是经验堆出来的。

自动化测试应尽早引入,而非后期补测。

  1. 技能提升与不可量化的收获
    可衡量的提升(对比技能评价表)
    技能 课程前(1-5分) 课程后(1-5分)
    需求分析 2 4
    代码质量 3 4
    团队协作 3 5
    项目管理 2 4
    不可量化的收获
    团队协作能力:学会了如何高效沟通、解决冲突。

工程思维:不再只关注代码,而是从整体架构、用户体验角度思考。

  1. 对课程的建议以及问题提出:
    假设一年后,我进入职场或读研,回顾这门课,我认为:

(1)理论与实践结合:通过真实项目锻炼了工程能力。理论和实践都有,但是我认为欠缺指导,即不知道怎么用。

(2)团队协作体验:合作开发真的……一言难尽,其他组有出力的有摸鱼的,但是还好我们都挺努力的。主要问题就是如何调动同学们的积极性……我也没办法()。

(3)提供更多代码指导!!!!!我们一开始都不知道用什么软件开发,而且目前主要靠团队内部审查,希望老师能参与并提供建议。(但是您快退休有些力不从心那算了还是)

posted @ 2025-06-05 23:04  花落水无痕  阅读(11)  评论(0)    收藏  举报