[I.3] 个人作业:结课总结
| 项目 | 内容 |
|---|---|
| 这个作业属于哪个课程 | 北航软工 |
| 这个作业的要求在哪里 | [I.3] 个人作业:结课总结 |
| 我在这个课程的目标是 | 学习如何以团队的形式开发软件,提升软件工程能力 |
| 这个作业在哪个具体方面帮助我实现目标 | 对软件工程课程进行系统性总结,解决旧问题提出新问题 |
链接到以前提问题的博客
对自己曾经提出的问题进行解答
- QA与Test的根本区别:
软件测试(software testing)就是我们最常见的测试岗位,工作职责是根据客户对软件产品的要求,对软件功能、性能、稳定性、安全性、易用性等进行测试,通过明确测试规范,编写测试用例,使用测试工具等方法,发现软件存在的缺陷,并反馈给开发人员完成修改,以确保软件产品能够正常运行,从而符合客户的要求。
QA (Quality Assurance)即质量保证,从软件过程和工作方法的角度来帮助项目确保质量。QA工程师从立项开始就会进入到项目组,通过开展质量控制和保证活动,在项目执行过程中尽早发现软件生命周期过程中的薄弱环节及其相关工作产品存在的问题,QA工程师可以通过分析项目常见的风险和问题,总结出通用的优秀实践和工作方法,形成组织级工作流程规范,使项目成功与否更加整体系统化,不会因为个人因素影响项目的进度!
总结来说,QA职责在于系统层面的完善,侧重于问题的防范及对已发生问题的根源的探究及其对策的实施,从而降低(避免)未来项目中问题的产生测试工程师是发现已有的问题。
- 软件Bug是难以穷尽的,但是如何判断软件的质量已经达标了?
一般可以通过代码段/模块/时间段内的Bug数与代码覆盖率来判断软件质量,在本课程的实际实践中我们往往以用户反馈,功能完整性,性能指标作为重要的衡量标准。,
- ”每日构建“中的”构建“一词指的是什么?
每日构建就是把一个软件项目的所有的最新的代码从配置库中取出,然后从头进行编译,链接和运行。更甚者可以再运行测试包对软件的主要功能进行测试,发现并报告错误的整个过程。通常由工具自动完成。每日构建的重要功能就是验证软件中各模块关系是否正确,也可称为“每日集成”。
- 为什么高并发会对系统产生影响,多用户是通过什么来影响我们的软件系统的?
通过查询网上资料,我了解到高并发对系统的影响本质上是多用户请求在短时间内集中争夺有限资源,导致系统在多个层级出现瓶颈。
- 敏捷总结与极限编程,二者的关系如何?
敏捷开发(Agile)是一种软件开发方法,它鼓励快速迭代、适应性强的规划、进化式的开发和交付以及灵活性和响应性。敏捷方法反对以文档为中心和重量级的开发流程,转而侧重于代码及用户协作。而极限编程(XP)则是对敏捷开发方法论的具体实践,它特别强调技术实践,以提高软件开发质量和生产力。除极限编程以外,敏捷开发还具有许多其他方法论,例如:FDD、Scrum与Kanban。
是否产生了新的问题?如果有,请提出。
作为PM,在课程的集体开发中往往会遇到团队中存在部分成员积极性低迷,甚至完全没有付出的情况,一味依赖能力较强或是较积极的成员是不公平的,面对这种情况,一位优秀的PM该如何“软硬兼施”地调动成员的积极性,合理分配各项工作。
请问你们在项目的 需求/设计/实现/测试/发布/维护 阶段中都学到了什么“知识点”
| 阶段 | 学到的“知识点” |
|---|---|
| 需求 | 对于游戏的开发需求分析,我们不能想一出是一出,不能做成功的游戏的简单模仿,也不能做游戏的缝合者,要提出具有独特性的创新游戏。 |
| 设计 | 在项目前期要做好尽可能全面的设计,确定好软件项目的主要开发脉络,避免今后开发方向频繁的变化,同时对于游戏的需求设计要广泛地听取玩家的意见,从大家的意见中汲取修改意见与灵感。 |
| 实现 | 在Unity中,我们可以制作通用的预制件以支持组件的复用,将角色、敌人、子弹、UI等拆分为独立预制件,并通过固定的的主视角与变化的场景来推进游戏(进房间-回地图-进房间...),初步掌握了模块化结构与事件驱动模型。除此之外,我们还掌握组件系统与协程机制:使用C#脚本为角色挂载行为逻辑(如移动、跳跃、攻击),掌握了Unity的MonoBehaviour生命周期函数(Start、Update、FixedUpdate等),并学习了用协程IEnumerator实现定时/延迟行为(如闪烁、冷却时间等)。 |
| 测试 | 项目采用UTF结合 Profiler API,定期执行性能回归测试,记录基准数据,测量并跟踪软件的效能场景内测试,但是最为直接直观的还是通过直接游玩,观察执行过程中的Debug.Log进行手动调试。 |
| 发布 | 在发布选择上选择玩家群体更包容更活跃的平台,坚持每周打包发布新的版本,并根据玩家反馈积极调整游戏内容与开发方向。 |
| 维护 | Bug 修复与玩法微调,游戏测试过程中不断优化战斗逻辑、敌人状态机、UI效果,磨练了耐心与意志(,养成了提交issue的良好debug习惯。 |
理解与心得
通过软件工程的课程一个学期的个人阅读、结对项目,团队项目的完整实践使我深刻意识到,对于需要集体开发的项目,开发的要点不全在“软件”,更在于“工程”,如何合理制定计划,分配工作,协调组员间的关系,调动集体的开发热情,做时间分配,风险预防等等都是在代码开发外需要考量的重要因素。
而软工的技巧与知识在书本上是十分不具体的,要想真正理解软工,提升软工能力就要投身于真实软工的实践中,在本节课结束后我也不会放弃软工的学习,我将在具体实践中进一步学习,加深对软工的体会。
最后感谢在课程全程一致陪伴着我们的小组成员,各位助教与老师,感谢你们一学期陪伴与指导。

浙公网安备 33010602011771号