结课总结
- 回顾课程计划完成情况
掌握软件工程的基本理论(如需求分析、设计模式、测试方法等)。
参与团队项目开发,完成一个可运行的软件系统。
提升代码质量,学习代码审查、单元测试和持续集成。
阅读《构建之法》并思考相关问题,加深对软件工程的理解。
进行团队协作,提高沟通和管理能力。
完成情况分析
理论掌握情况
通过课堂学习和课后阅读,掌握了需求分析(如用户故事、用例图)、设计模式(如MVC、工厂模式)、测试方法(如单元测试、集成测试)等核心概念。
举例:在团队项目中,我们采用了用户故事进行需求分析,并使用UML用例图描述功能模块。
团队项目开发
我们团队开发了一个在线考试系统,实现了用户注册、试题管理、在线考试、自动评分等功能。
但由于时间限制,部分功能(如数据分析模块)未能完全实现。
代码质量提升
我们采用了Git进行版本控制,并进行了代码审查。
《构建之法》阅读与问题思考
完成了书籍的阅读,并提出了5个问题(后续回答)。
团队协作
springboot+vue+AS开发团队项目,每周进行站会,任务分配合理,沟通顺畅。
总结:整体完成度较高,但在代码测试和部分项目功能上仍有优化空间。
- 回顾《构建之法》的5个问题及自我回答
在课程初期,我提出了以下5个问题:
问题1:如何平衡软件开发的“质量”和“速度”?
回答:
通过敏捷开发(如Scrum)可以在迭代中逐步优化质量,同时保证交付速度。
自动化测试和CI/CD(持续集成/持续部署)能减少人工错误,提高效率。
问题2:在团队协作中,如何避免“搭便车”现象?
回答:
采用明确的任务分配(如JIRA看板),确保每个人有清晰的责任。
进行每日站会,汇报进度,避免成员懈怠。
问题3:如何有效进行需求变更管理?
回答:
使用需求优先级矩阵(如MoSCoW方法),区分“必须有”和“可以有”的需求。
在敏捷开发中,通过迭代评审调整需求。
问题4:软件工程师如何保持技术更新?
回答:
定期阅读技术博客(如Medium、掘金)。
参与开源项目,学习最新技术栈。
问题5:如何衡量一个软件项目的成功?
回答:
用户满意度(如NPS评分)。
代码质量(如测试覆盖率、Bug率)。
商业价值(如用户增长、收入)。
反思:课程通过实际项目让我更深入理解了这些问题,但部分问题(如技术更新)仍需长期实践。
- 对“事后诸葛亮”分析的新感想
在项目结束后,我们进行了复盘会议,发现:
优点:
任务分工明确,前后端分离大大提高了开发效率。
代码审查减少了低级错误。
不足:
需求分析阶段未充分调研,导致后期基础项修改较多。
新感想:
需求分析比编码更重要,应在前期投入更多时间。但是说实话一开始真不知道哪里需要什么,都是经验堆出来的。
自动化测试应尽早引入,而非后期补测。
- 技能提升与不可量化的收获
可衡量的提升(对比技能评价表)
技能 课程前(1-5分) 课程后(1-5分)
需求分析 2 4
代码质量 3 4
团队协作 3 5
项目管理 2 4
不可量化的收获
团队协作能力:学会了如何高效沟通、解决冲突。
工程思维:不再只关注代码,而是从整体架构、用户体验角度思考。
- 对课程的建议以及问题提出:
假设一年后,我进入职场或读研,回顾这门课,我认为:
(1)理论与实践结合:通过真实项目锻炼了工程能力。理论和实践都有,但是我认为欠缺指导,即不知道怎么用。
(2)团队协作体验:合作开发真的……一言难尽,其他组有出力的有摸鱼的,但是还好我们都挺努力的。主要问题就是如何调动同学们的积极性……我也没办法()。
(3)提供更多代码指导!!!!!我们一开始都不知道用什么软件开发,而且目前主要靠团队内部审查,希望老师能参与并提供建议。(但是您快退休有些力不从心那算了还是)

浙公网安备 33010602011771号