[I.3] 个人作业:结课总结

项目 内容
这个作业属于哪个课程 软件工程
这个作业的要求在哪里 [I.3] 个人作业:结课总结
我在这个课程的目标是 深入学习软件工程,掌握其核心思想,增强自身团队合作能力,学会敏捷开发
这个作业在哪个具体方面帮助我实现目标 总结课程中学到的知识并将其应用到今后的软件开发实践中去

先前博客:[I.1] 个人作业:阅读和提问

问题回顾与解答

问题1:结对编程的效率提升是否依赖于特定前置条件?

解答:我觉得是的,是需要两个人相互沟通,相互信赖,相互帮助,相互尊重的;我有听别的组的失败案例,就是两个人没有配合,导致项目开发两遍,最终效果也不好

问题2:Scrum中的“每日立会”是否容易流于形式?

解答:在我们开发进行中,并没有真正条件上的“每日立会”,因为大家事情都很多;不过真的遇到了和其他同学有问题的地方,随手问对方有没有时间,然后拉一个腾讯会议对其一下颗粒度,这就很奏效

问题3:PM文化盛行的副作用

解答:我觉得PM在团队中的作用是支撑整个团队的发展,我们的PM就是一个特别好的人;其次所有人都可以适当的承担一点PM的作用

问题4:如何平衡代码管理的自由度与规范性

解答:我觉得适当找到平衡吧,过渡注重规范会让coding的效率变低;但是不注重规范来带的bug问题再去解决也很复杂

问题5:如何公平评估团队成员绩效?

解答:这个问题确实很难,我们最终的评价体系也不是那么的完善,只可以尽量的去让评价公平(说实话还是软工不给钱,给钱的话拿多少钱干多少活,不会再干一点责任心的事情)

各阶段知识点学习

需求阶段

知识点:需求分析与用户故事(User Story)
在需求阶段,我们学习并实践了如何通过用户故事(User Story)来捕捉和表达用户需求。通过与目标用户的沟通,我们用简洁的语言描述功能需求,例如“作为一名玩家,我希望可以在角色疲劳时有提示,以便合理安排农场工作”,这种方法有助于明确功能边界,也方便后续的功能拆解和任务分配。

设计阶段

知识点:模块化架构设计(Modular Design)
在设计阶段,我们学习了如何将项目划分为多个功能模块,每个模块职责单一、相互独立,比如将体力系统作为一个独立模块,负责管理体力值逻辑、UI 显示与体力恢复机制。这种模块化思想提升了系统的可维护性和可扩展性,也为后期多人协作打下了基础。

实现阶段

知识点:Unity2D开发,从未接触过的技术栈
在实现阶段,我第一次接触 Unity2D,引入了 C# 脚本编程、游戏对象(GameObject)管理、组件(Component)系统等核心知识点。特别是在开发角色体力条时,实际掌握了如何通过脚本动态修改 UI 元素、监听玩家行为,并与其他游戏逻辑交互。这个阶段的学习对我后续的游戏开发奠定了基础。

测试阶段

知识点:黑盒测试与手动回归测试
在测试阶段,我们学习并应用了黑盒测试方法,从玩家角度出发,对功能模块进行验证。例如测试体力耗尽后是否自动触发提示、是否可以正常恢复等。同时我们也进行了多轮手动回归测试,确保新功能加入不会破坏已有功能,提升了对测试流程重要性的认识。

发布阶段

知识点:CI/CD,持续集成与持续部署
在发布阶段,我们接触并了解了 CI/CD 流程的重要性。虽然最终没有成功部署,但是流程以及应该怎么实现已经了解了

维护阶段

知识点:版本控制与变更管理
在维护阶段,我们实际体验到了维护一个项目的复杂性,例如修改一个小功能可能影响多个模块。为此我们更深入地使用了 Git 进行版本控制,学会了如何使用分支管理、合并请求(pull request)与冲突解决。这个过程强化了我们对软件工程中“可维护性”和“变更影响评估”重要性的理解。

项目经理与心得

个人项目

结合阅读教材知道了一些基础概念,比如结对编程、PM、CI/CD等等,并且通过案例分析,了解了软件间的竞品分析调研

结对编程

首先是学习到了rust语言,其次接触了结对编程的方法论,和队友共同开发了一个小的决策模型,并且通过写python脚本做大量的测试

团队项目

共同开发了一个很不错的项目,做游戏就充斥着挑战,从玩法的架构,数值的设计,美术的敲定,具体的代码实现,后期的发布和测试,官网的制作,每个环节都很至关重要

我负责最多的的代码开发,虽然也是第一次接触unity开发,但是我也尽量去了解所有人开发上的进度,为每种设计都思考实现方案,最终才能呈现出来最终的效果

posted @ 2025-06-26 00:56  yyybbbyyyb  阅读(2)  评论(0)    收藏  举报