ERROR401--软件工程实践团队作业第二次——原型设计&需求分析
| 这个作业属于哪个课程 | 2601_FZU_SE 软件工程实践社区 |
|---|---|
| 这个作业要求在哪里 | 软件工程实践团队作业第二次——原型设计&需求分析 |
| 项目目标 | 完成团队歼灭射击游戏的需求分析、界面原型、Unity 演示版本与课程交付材料,并记录计划、协作和验收状态 |
| 参考资料 | GB/T 8567—2006《计算机软件文档编制规范》、GB/T 9385—2008《计算机软件需求规格说明规范》、Unity 官方文档及项目设计方案 |
目录
一、项目引言
1.1 编写目的
本文用于说明《校园突袭》团队项目的开发背景、目标、阶段计划、关键风险、成员分工、协作方式及课程交付物,便于团队成员、课程教师和评审人员了解项目如何开展、当前完成情况以及后续验收重点。文中“计划”“当前状态”和“待完成”分别表示目标安排、已有材料或工程证据、尚需完成的工作,避免将计划表述为已完成成果。
1.2 项目背景
| 项目信息 | 内容 |
|---|---|
| 课程 | 2601_FZU_SE 软件工程实践社区 |
| 团队名称 | ERROR401 |
| 项目名称 | 校园突袭(Campus Strike) |
| 项目任务提出者 | 课程教师 |
| 项目开发者 | ERROR401 团队 |
| 项目类型 | 基于 Unity 的第一人称团队战术射击游戏课程项目 |
1.3 参考资料
- GB/T 8567—2006《计算机软件文档编制规范》。
- GB/T 9385—2008《计算机软件需求规格说明规范》。
- 《校园突袭》项目设计方案、需求规格说明书及界面原型材料。
- Unity 官方文档及团队当前 Demo 工程。
1.4 术语和缩略语
| 术语/缩略语 | 含义 |
|---|---|
| Unity | 本项目使用的游戏开发引擎。 |
| Demo | 用于展示和验证核心功能的可运行演示版本。 |
| AI | 人工智能(Artificial Intelligence),本项目中指由程序控制的对战角色。 |
| HUD | 抬头显示(Heads-Up Display),指对局中展示比分、时间、生命和弹药等信息的界面。 |
| Git | 用于跟踪代码和文档变更的分布式版本控制系统。 |
| Pull Request(PR) | 请求将一个分支的变更合并到目标分支的协作审查流程。 |
二、项目总体描述
2.1 项目目标
开发意图:
团队通过需求分析、原型设计、面向对象建模和 Unity 实现,完成一款可演示的校园题材团队射击游戏,实践软件工程中的需求管理、模块分工、接口协作、版本控制和验收验证方法。
应用目标和作用范围:
本项目面向课程展示、同学试玩和软件工程实践教学。当前交付重点为可在单机环境体验的核心比赛流程,由人工玩家与 AI 角色组成对战队伍;工程中包含局域网联机实现,是否纳入本阶段验收以完成双设备实测为准。账号、战绩服务和大规模在线匹配属于后续设想,不作为当前阶段已交付功能。
产品前景:
当前版本以核心玩法闭环和课程演示为目标。后续可在稳定单机比赛流程的基础上完善局域网联机、增加地图与武器、改进 AI 行为,并进一步优化设置和比赛反馈。是否扩展由团队根据课程周期、用户反馈和实现成本评估。
2.2 团队项目计划与里程碑
《校园突袭》是一款以校园建筑为战场的第一人称团队战术射击游戏。项目以团队歼灭为核心,红蓝双方在地图中交战;单机模式由 AI 补足队伍人数,工程中也包含局域网对战代码。项目计划周期为四周,当前处于第二周。团队按“需求与环境准备—核心玩法实现—比赛流程集成—测试与交付”的顺序推进;表中状态以当前第二周为基准,具体日历日期可按课程安排补填。
| 里程碑 | 计划时间 | 主要交付物与验收条件 | 当前状态 |
|---|---|---|---|
| M1 需求基线与开发环境 | 第 1 周 | 明确核心玩法、系统边界和模块接口;完成 Unity 工程、版本仓库及基本场景配置;玩家可移动并控制视角 | 需求、原型和类图已有初稿;工程已有玩家控制代码,需团队按实际任务记录确认本周交付项 |
| M2 射击与基础对战 | 第 2 周(当前) | 完成武器射击、弹药与换弹、命中伤害和死亡处理;接入基础 AI,能够在测试场景中完成一轮对战 | 当前进行中;已有武器、选装及 AI 相关实现记录,仍需集中验证战斗闭环、AI 难度和胜局规则 |
| M3 AI、地图与比赛流程集成 | 第 3 周 | 完善 AI 导航、感知与敌我识别;整合地图、计时、计分、回合重置、结算及主要界面;从菜单进入并完成一场比赛 | 计划中;优先解决规则口径不一致和模块接口问题,确保主流程可重复运行 |
| M4 测试、构建与课程交付 | 第 4 周 | 修复阻断问题;生成 Windows 可执行构建并在目标设备验证;完成需求文档、博客、两份 PPT 和演示材料 | 计划中;目前尚未生成独立 Player 构建,双机局域网验收和真实用户试玩也待完成;按实际范围决定是否列入最终验收 |
2.3 版本路线
- 当前阶段(第 2 周)重点: 跑通射击、伤害、死亡和基础 AI 对战,及时记录问题并稳定需求规则。
- 第 3–4 周重点: 集成比赛流程和主要界面,随后完成回归验证、独立构建、目标设备复测及课程材料整理;真实玩家试玩应留存反馈记录。
- 后续扩展: 完成双机局域网验收后,再评估更大规模联机、账号/战绩服务、更多地图和新模式;未经排期和验收的扩展不作为本阶段承诺。
三、项目具体要求
3.1 关键点、难点与风险分析
项目关键点与技术难点
- 需求、原型和实现保持一致。 比赛规则、队伍人数、武器选择和页面状态会同时出现在说明书、原型和代码中。任何规则变更都应同步更新三处材料及验收用例。
- AI 的可感知信息和难度公平。 AI 应通过视线、遮挡和声音等规则发现对手,不能直接读取不可见玩家位置;反应时间、射击间隔和命中率需要通过试玩调整。
- 比赛状态和界面信息一致。 回合计时、比分、存活状态、击杀播报和结算都应由统一比赛状态驱动,避免界面显示与实际胜负判定不一致。
- Unity 模块集成与场景资源协作。 玩家、武器、AI、地图、比赛流程和 UI 同时依赖场景对象、预制体与公共接口;未经沟通修改公共接口或场景资源容易造成合并后无法运行。
- 局域网联机的端到端验证。 房间发现、连接、主机权威、同步、断线和防火墙行为受设备与网络环境影响,仅在编辑器本机运行不能证明双机可用。
风险清单与应对
| 风险 | 影响 | 应对方式与触发后的处理 |
|---|---|---|
| 规则文档与 Demo 版本不一致 | 比分、回合数或结算用例无法通过同一基线验收 | 当前设计说明书采用“先赢 3 局”规则,Demo 更新记录出现“先赢 5 局”;先由团队确认唯一规则,再同步修改需求、UI 文案、代码和测试用例 |
| 局域网功能未经双机实测 | 房间发现、连接或状态同步可能在真实网络失败 | 安排两台设备在同一局域网按建房、加入、准备、开局、换回合、断线逐项验证;记录系统、防火墙和网络条件 |
| 缺少独立构建包 | 只能在 Unity 编辑器中演示,无法确认交付电脑能否运行 | 锁定引擎版本和场景列表,尽早生成 Windows Player;在未生成前将状态标为“编辑器 Demo”,不称为可发布版本 |
| AI 强度不合适或导航异常 | 玩家体验不公平,AI 可能卡住、隔墙发现玩家或无法到达战场 | 先检查导航数据和视线遮挡,再调反应、射击间隔和精度;保留容易复现的测试地图与用例 |
| 模块接口或公共场景冲突 | 集成返工、主场景损坏或构建失败 | 事先约定接口与资源负责人,公共接口变更先沟通;通过分支和合并请求集成,保持主分支可运行 |
| 范围持续扩张 | 核心玩法和验收被新模式、账号或美术需求挤占 | 将需求区分为本阶段必做与后续计划;任何新增项先评估工期、影响和负责人,再决定是否纳入 |
| 需求缺少真实目标用户反馈 | 菜单、规则和难度可能只符合设计者预期 | 组织目标玩家完成“开始一局、选装、战斗、观战、查看结算”任务,记录困惑点和修改决定;未开展前不声称已完成用户验证 |
3.2 组员分工与工作量比例
本次分工按作业要求的七类成果安排:博客随笔、界面原型、原型答辩 PPT、需求规格说明书、需求分析报告 PPT、界面原型设计评审表和需求分析评审表。每项成果指定一名主负责人,其他成员参与内容互审、试讲或验收。下表贡献度为本次作业的预计工作量比例,合计 100%;提交前应依据实际完成情况和工作记录确认。
| 学号 | 工作内容 | 贡献度 |
|---|---|---|
| 102400129 | 总协调与博客主笔:整理作业目录和评分要点,撰写项目计划、里程碑、协作方式及分工说明;汇总各项材料并检查博客完整性 | 15% |
| 102400116 | 界面原型负责人:完善原型页面与交互说明,整理原型源文件、导出图并提供可访问链接 | 14% |
| 102400111 | 需求规格说明书负责人:整理用户需求、用户场景、功能需求及系统边界,完成说明书主体撰写 | 14% |
| 102400110 | 需求规格说明书协作:负责类图、技术属性、输入输出及验收标准等章节,与负责人统一术语和规则口径 | 12% |
| 102400127 | 需求分析报告 PPT 负责人:根据需求文档提炼汇报内容,制作 PPT、准备讲述提纲并参加试讲 | 12% |
| 102400132 | 原型设计答辩 PPT 负责人:依据界面原型制作答辩 PPT,准备讲解流程并检查页面展示效果 | 12% |
| 102400112 | 界面原型设计评审表负责人:在腾讯共享文档创建并填写评审表,组织成员检查原型流程、信息布局和易用性,整理修改意见 | 10% |
| 102400130 | 需求分析评审与交付负责人:在腾讯共享文档创建需求分析评审表;将说明书 Word 版及两份答辩 PPT 上传华为云仓库,按要求导出/上传 PDF 并核验链接权限 | 11% |
所有成员共同参与两份评审表的评审、说明书和 PPT 的交叉校对、课堂汇报演练及最终验收。
3.3 成员协作方式
沟通工具
- 微信群: 日常进度同步、接口变更提醒、阻塞问题快速讨论;结论较复杂时转为会议或文档记录。
- 腾讯会议: 每周至少一次阶段同步,检查里程碑、演示当前成果、确定负责人和截止时间。
版本仓库协作
- 远程仓库:**[仓库地址]**。
main保持可演示版本;日常任务从开发分支或最新主线切出feature/*分支,修复使用fix/*分支。- 提交前先同步远程主线,完成本地运行或对应模块检查;通过 Pull Request/合并请求说明改动、影响范围和验证结果,经相关模块成员审查后合并。
- Commit 信息使用
feat:、fix:、docs:、test:、refactor:等前缀,方便追踪功能、缺陷和文档变化。 - 场景、预制体和公共配置文件容易产生冲突,应提前指定主要维护人;多人修改前先约定修改范围,避免在 Unity 中同时覆盖同一资源。
冲突处理与任务同步
- 接口冲突: 先由相关模块负责人说明变更原因、调用方和兼容方案;确认后更新接口约定与受影响需求。
- 代码冲突: 在功能分支中合并主线,逐项检查冲突资源和代码,再运行受影响场景;无法确定时由双方负责人共同评审,不直接覆盖他人提交。
- 计划冲突: 将依赖关系和阻塞项记录到任务表,由项目协调人排定先后顺序;超出原里程碑的功能先评估是否延期或移入后续版本。
- 同步频率: 每周例会更新一次全部任务;里程碑前每日更新未完成项;每次决策记录结论、负责人和复查时间。
AI 辅助开发约定
使用 AI 工具生成的代码或文档须由负责成员检查需求依据、接口、异常处理和许可证/来源,再进行运行验证和代码审查;未经人工确认的内容不直接合并。成员应能说明自己负责模块的输入、输出、关键类和与其他模块的依赖。
四、界面原型
4.1 原型展示
01 · 主菜单

02 · 选择模式

03 · 部署前简报

04 · AI 编组示例

05 · 作战设置

06 · 部署确认

07 · 模拟对局准备

08 · 退出确认

09 战前选装 · 武器配置

10 对局中 · 基础 HUD 与击杀提示

11 回合结算 · 红队胜利

12 回合结算 · 蓝队胜利

13 完整对局结束 · 最终结算

4.2 原型链接
原型源文件链接: [figma原型文件链接]
原型覆盖主菜单、模式选择、设置、退出确认、部署前配置、队伍编组、部署确认、战前选装、对局 HUD、回合结算和整局结算等页面。文档中对静态原型、Unity 已实现界面和待验证的战斗画板作了区分。静态画面用于说明信息布局;按钮跳转和数据联动仍需通过交互原型或运行版本验收。
五、功能描述及验收验证标准
5.1 具体功能描述
本阶段围绕“进入比赛—完成准备—参与战斗—查看结果”组织功能展示:
- 启动与菜单: 用户启动游戏后进入主菜单,可选择开始、设置或退出等入口。
- 战前准备: 用户选择比赛模式并完成队伍、部署或武器配置;具体页面以当前原型和 Demo 实现为准。
- 对局战斗: 玩家可进行第一人称移动、视角控制、射击、换弹和武器切换;AI 角色参与对战并遵循队伍识别、感知和攻击逻辑。
- 比赛流程: 系统显示回合时间、比分和玩家状态,并在回合或整局结束后展示结算结果。
5.2 本次作业目录与交付链接
作业目录与评分要点核对
| 序号 | 作业成果 | 核对要点 | 提交位置/链接 |
|---|---|---|---|
| 1 | 博客随笔 | 含作业目录;逐项核对本表交付要求,项目内容与团队实际一致 | 本文 |
| 2 | 界面原型设计 | 页面覆盖核心流程,页面间关系清楚;博客中提供原型访问链接 | figma原型文件链接 |
| 3 | 界面原型设计答辩 PPT | 内容与原型一致,适合课堂讲述;上传华为云,建议附 PDF | PPT 版、PDF 版 |
| 4 | 需求规格说明书 | Word 电子版;内容清晰、完整并与项目实际一致;上传华为云,建议附 PDF | word 版、PDF 版 |
| 5 | 需求分析报告 PPT | 内容与需求规格说明书一致,适合课堂讲述;上传华为云,建议附 PDF | PPT 版、PDF 版 |
| 6 | 界面原型设计评审表 | 使用腾讯共享文档,记录评审结论和修改意见 | 界面原型设计评审表(腾讯共享文档) |
| 7 | 需求分析评审表 | 使用腾讯共享文档,记录需求评审结论和修改意见 | 需求分析评审表(腾讯共享文档) |
5.3 验收验证标准
- 需求与文档: 需求规格说明书、原型、Demo 和答辩材料中的核心规则保持一致;目录、图片、链接和术语可正常阅读。
- 界面: 从主菜单进入主要页面,页面状态和按钮反馈清楚;在目标分辨率下文字可读、控件不遮挡或溢出,结算信息与比赛结果一致。
- 单机功能: 在目标设备上启动最终构建,完成开始比赛、战前准备、移动与射击、回合结束、整局结算及重新开始的完整流程;关键异常有明确反馈。
- AI 行为: AI 能识别敌我并参与战斗;遮挡时不应依据不可见位置直接攻击;导航、死亡和回合重置行为可重复验证。
- 用户试玩: 邀请目标玩家完成主要任务,记录操作困难、规则理解和改进项;如尚未开展,应标记为待完成,不写作已验证。
相关推荐
前端axios请求封装
源码
vue axios封装及API统一管理的方法
主要介绍了vue axios封装以及API统一管理 ,需要的朋友可以参考下
在Vue中使用axios请求拦截的实现方法
一、前言 axios的基础使用就不过多的讲解啦,如何使用可以看axios文档使用说明·Axios中文说明 在这里和大家分享一下axios拦截在实际项目中的使用 很多人都看过axios的官方文档中拦截器这一栏,有的人可能会有点懵,因为文档只告诉你有这个东西,而不告诉你在什么情况下使用。很多初学者就会放弃使用axios拦截器,毕竟拦截器是可以不使用的,但是使用拦截器,会在页面中减少很多不必要的代码。 二、说在前面的 项目使用的ui框架是iview 以下友好提示均使用iview ui的message提示组件,例如this.$Message.xxx /api/request 仅仅只是例子接口,实际开发
【JavaScript源代码】Vue3+TypeScript封装axios并进行请求调用的实现.docx
Vue3+TypeScript封装axios并进行请求调用的实现 不是吧,不是吧,原来真的有人都2021年了,连TypeScript都没听说过吧?在项目中使用TypeScript虽然短期内会增加一些开发成本,但是对于其需要长期维护的项目,TypeScript能够减少其维护成本,使用TypeScript增加了代码的可读性和可维护性,且拥有较为活跃的社区,当居为大前端的趋势所在,那就开始淦起来吧~ 使用TypeScript封装基础axios库 代码如下: // http.ts import axios, { AxiosRequestConfig, AxiosResponse } fr
android 上传aar到私有maven服务器的示例
搞这个东西也是花了蛮长时间,主要还是对gradle中的groovy语言不熟悉所导致的,写下来,以防下次再入坑~ 在gradle中新建task 如果你需要将某个module打包成aar,并上传到maven上去,需要在这个module下面的build.gradle文件中添加如下代码: 其中代码: apply plugin: 'maven' 表示我们要应用的插件。 MAVEN_LOCAL_PATH表示maven服务器地址,packaging表示需要打包的类型,groupId:artifactId:version,就是我们需要依赖的字段。 上传aar到maven服务器 在studio中打开控制


