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

项目 内容
这个作业属于哪个工程 https://edu.cnblogs.com/campus/buaa/BUAA_SE_2025_LR
这个作业的要求在哪里 https://edu.cnblogs.com/campus/buaa/BUAA_SE_2025_LR/homework/13465
我在这个课程的目标是 学习团队软件开发方式, 丰富开发经验
这个作业具体在哪个具体方面帮助我实现目标 能够从成熟教程,博客中了解什么是优秀的软件架构,思考自己能够在软件团队中发挥怎样的作用, 如何更高效的推进软件的开发与完善

  • 链接到以前提问题的博客

软工[I.1] 个人作业:阅读和提问 - sevspoons - 博客园


  • 请尝试对自己曾经提出的问题进行解答,并阐明,是如何通过看书,实践,或者讨论弄清楚的。
  1. PSP模型是否仍具有现实参考价值?
  • 本学期我参与了个人项目、结对编程以及两个阶段的团队项目,逐步体验了从需求理解到实现测试的完整流程。起初我对PSP模型提出了质疑,认为“耗时百分比”作为效率衡量在现代环境下不太合理。然而实践告诉我:PSP的核心价值并非在于“百分比的绝对精度”,而是让开发者建立对自身开发节奏的意识与掌控力。在项目中我们使用了git和进行开发流程的跟踪,我逐渐理解了PSP强调的“自我量化”价值 —— 哪怕现代开发中我们使用了Copilot、Prompt工程、开源依赖等手段大幅加速开发,理解哪些环节最耗时间、如何迭代改进,依然非常重要。
  1. 跨领域合作的沟通成本是否过高?
  • 在结对编程与团队项目阶段,我实际体会到了沟通成本的多维性。尤其在团队第一次重组后,我们需要重新分配角色与接口。这验证了我的初步设想:短期合作中靠学习理解对方的工作逻辑成本过高,不现实。但一个新发现是:这种模式不能完全取代“理解”,尤其在接口出问题或联调阶段,仍需要工程师具备一定的对方背景知识以定位问题。所以我的新观点是:“基于协议的沟通可以减少成本,但需要预留一部分余地用于‘理解’的容错机制。”
  1. 功能驱动设计是否能适应技术快速迭代?
  • 我的理解是:良好的设计不仅要关注“当下能做”,也要为“将来能改”留出余地。我们在新的阶段中采用模块化设计与依赖隔离策略(例如将业务逻辑抽离为hooks和store模块),使得后期迁移变得更加平滑。
  1. 如何为老年人群体优化复杂功能产品?
  • 我们借助图形化操作、图标提示、以及语音提示等方式优化了UI,并引入“默认简洁视图 + 高级模式”切换结构,这证实了“设计向直觉靠拢,而不是向能力妥协”的理念。
  1. 现代压力测试还需手动深度设计吗?
  • 弹性服务”是趋势,但并不意味着“零成本”抗压。设计的智慧仍然重要。

  • 是否原来的问题还不明白?如果有,请分析。

    1. 如何更系统地评估开发流程的“健康度”

    2. 短期项目中如何平衡“功能实现速度”与“代码质量规范”


  • 是否产生了新的问题?如果有,请提出。

软件工程的边界远远不止“代码 + 文档”。它涉及认知、管理、制度,甚至是团队心理安全。在群体讨论中我们每一个成员都畅所欲言可能会导致讨论逻辑跳脱,而每个人都一味沉默则会打击积极性。如何平衡这种自由度,是否有量化的管理方案。


  • 软件工程这门学问有很多 “知识点”, 这门课强调 “做中学” - 在实践中学习知识点。请问你们在项目的 需求/设计/实现/测试/发布/维护阶段(一共6 个阶段)中都学到了什么“知识点”,每个阶段只要说明一个知识点即可。
阶段 学到的核心知识点
需求 功能列表与核心玩法梳理:学会使用简单的“游戏设计文档(GDD)”列出游戏的核心玩法、用户交互方式与目标用户群,避免开发过程中偏离初衷。明确:游戏是闯关型?生存型?是否有分数系统?需要UI界面吗?这些是后续设计的基础。
设计 基于场景与Prefab的结构化设计:在Unity中,将角色、敌人、子弹、UI等拆分为独立Prefab模块,并通过Scene划分游戏流程(如菜单场景、游戏主场景、Game Over场景),初步掌握了模块化结构事件驱动模型**。还使用流程图工具(如draw.io)规划了玩家行为状态机。
实现 掌握组件系统与协程机制:使用C#脚本为角色挂载行为逻辑(如移动、跳跃、攻击),掌握了Unity的MonoBehaviour生命周期函数(Start、Update、FixedUpdate等),并学习了用协程IEnumerator实现定时/延迟行为(如闪烁、冷却时间等)。
测试 场景内测试 + Debug 工具使用:虽然未使用自动化测试框架,但通过反复运行场景,使用Debug.Log和Unity Inspector变量暴露手动调试敌人AI行为、碰撞逻辑、血量系统等,逐步形成了“手动回归测试”习惯。还学会了用 Gizmos 绘制碰撞范围辅助可视化。
发布 平台选择与打包配置:掌握了Unity的Build Settings设置流程,学习选择目标平台(如Windows、WebGL),并了解了发布版本中需要注意的分辨率、资源压缩、依赖文件打包(如StreamingAssets)等问题。初步了解了版本控制(git)在多人合作中的重要性。
维护 Bug 修复与玩法微调:游戏测试过程中不断调整角色攻击范围、敌人刷新逻辑、UI按钮点击反馈等,体会到“玩法体验”是需要多轮试错优化的过程。学会记录问题(用Google Docs列出BUG清单),并进行版本控制前后的对比验证。

  • 结合自己在个人项目/结对编程/团队项目的经历,谈谈自己的理解或心得。

这个学期的学习从阅读、提问,到团队项目实践,逐步让我认识到:

  • 提问并不是终点,而是认知深化的起点;

  • 工程并不仅仅是“编程”,而是一种系统思维与协作能力;

  • 软件工程真正的核心在于“解决问题”,而不仅仅是“完成任务”。

我也深切体会到“做中学”的力量 —— 很多书本知识若没有实践是模糊的,而在项目中撞过墙、调过bug、开过会之后,它们变得鲜活且具体。

希望这些问题与思考可以继续伴我前行。

posted @ 2025-06-25 23:28  sevspoons  阅读(19)  评论(0)    收藏  举报