团队作业2——《需求规划说明书》

这个作业属于哪个课程 https://edu.cnblogs.com/campus/gdgy/Class34Grade23ComputerScience
这个作业要求在哪里 https://edu.cnblogs.com/campus/gdgy/Class34Grade23ComputerScience/homework/13481
这个作业的目标 确认选题并进行需求分析

一、作业概述

本次作业为团队作业2,核心产出包括完整的需求规格说明书、详细的项目计划、Git仓库协作配置及团队分工与心得,严格按照作业评分标准要求完成,确保内容详实、格式规范。

二、需求规格说明书(基础分25分+加分5分)

1. 系统核心描述

ChatApp是一款基于TCP协议的局域网多媒体聊天系统,采用Client/Server架构,支持多用户实时文本沟通、文件传输、语音聊天及图片/视频预览功能。服务器端部署于openEuler系统(支持云端部署),客户端为Windows GUI应用,无需依赖外网即可实现局域网内高效通信,聚焦小型团队(如实验室、办公室、校园小组)的即时协作需求。

2. 面向用户分析

2.1 目标用户画像

  • 核心用户:封闭网络环境下的团队成员(如实验室研究人员、无外网办公的职场人、校园小组学生)
  • 用户特征:需要快速传递文本、文件、多媒体信息,对操作便捷性、传输速度和数据安全性有要求,无专业IT维护人员支持
  • 使用场景:实验室数据共享、办公室文件协作、课堂小组讨论、临时团队沟通

2.2 预期用户数量

明确预期并发用户量:20-50人,支持中小型团队日常沟通场景,服务器端可通过参数调优扩展至100人并发。

3. 功能性需求(分优先级)

3.1 基础功能(P0-核心必实现)

  • 多用户实时文本聊天:支持消息时间戳、发送者标识显示,消息分行排版
  • 用户状态管理:用户加入/离开系统时触发全局通知,在线用户列表实时更新
  • 连接管理:客户端支持自动重连(网络中断后3秒重试)、连接状态可视化显示(绿灯在线/红灯离线)
  • 消息类型识别:自动区分文本、文件、语音消息,按对应格式解析处理

3.2 扩展功能(P1-重点实现)

  • 文件传输:支持任意类型文件传输,单文件大小限制≤10MB,显示传输进度条(百分比+剩余时间)
  • 图片传输与预览:聊天区域显示图片缩略图(默认150×100像素),点击可查看原图,支持本地保存
  • 语音聊天:按住录音按钮开始录制(最长60秒),松开自动发送,接收方点击播放按钮即可收听
  • 视频文件支持:生成视频文件缩略图(叠加播放图标标识),支持调用本地播放器播放、保存至本地

3.3 优化功能(P2-可选实现)

  • 专用图片发送通道:独立图片选择按钮,文件选择器内置图片预览功能
  • 拖拽文件发送:支持直接拖拽本地文件至聊天区域完成发送
  • 聊天记录本地缓存:文本消息自动保存至本地(默认路径:C:\ChatApp\Logs),支持手动导出
  • 音频设备检测:启动时自动检测麦克风、扬声器可用性,异常时给出明确提示

4. 非功能性需求

4.1 性能需求

  • 文本消息延迟:局域网内≤300ms
  • 文件传输速度:局域网内10MB文件传输≤5秒
  • 并发支持:稳定支持50用户同时在线,消息广播无丢失
  • 响应时间:界面操作(按钮点击、输入提交)响应≤500ms

4.2 安全性需求

  • 数据传输:基于TCP协议的可靠传输,确保文件/消息完整性
  • 本地存储:接收的文件、图片、语音默认保存至用户指定目录,无自动上传行为
  • 权限控制:无非法用户接入机制,仅支持局域网内可见用户连接(基于IP限制)

4.3 易用性需求

  • 界面设计:简洁直观,功能按钮图标化,支持工具提示(hover显示功能说明)
  • 操作流程:连接服务器步骤≤3步(输入IP、端口、用户名),核心功能操作≤2步
  • 错误提示:网络中断、设备异常、文件过大等场景给出明确中文提示,提供解决方案指引

5. 技术需求

5.1 开发环境

  • 开发语言:Java 8+
  • 开发工具:IntelliJ IDEA 2021.3+
  • 构建工具:原生javac编译(提供编译脚本)
  • 版本控制:Git(码云仓库)

5.2 运行环境

  • 服务器端:openEuler 20.03 LTS及以上,2vCPU+4GB内存,开放8888端口(TCP)
  • 客户端:Windows 10/11(32/64位),1GB内存以上,配备麦克风(语音录制)、扬声器(语音播放)
  • 网络环境:局域网(支持TCP/IP协议),服务器与客户端网络互通

5.3 核心技术栈

  • 网络通信:TCP Socket编程、Java对象序列化
  • GUI框架:Java Swing、AWT
  • 多媒体处理:Java Sound API(音频录制/播放)、ImageIO(图片处理)
  • 辅助技术:多线程编程、文件I/O、网络工具类

6. 系统真实性、可用性及价值阐述(每项2分,共6分)

  • 真实性:封闭局域网环境(如实验室、涉密办公区)的即时沟通需求真实存在,现有商业聊天软件(微信、QQ)依赖外网,且文件传输限速、广告干扰等问题突出,本系统精准匹配该场景痛点。
  • 可用性:客户端支持一键启动(提供run-client.bat脚本),无需复杂配置;服务器端部署步骤简化(提供编译、启动脚本),非专业人员也可操作;核心功能(文本聊天、文件传输)操作流程≤2步,学习成本低。
  • 价值所在:相比商业软件,局域网内传输速度更快(无外网路由损耗)、数据本地流转更安全(无云端上传)、无广告和功能冗余;整合文本、文件、语音、图片等多维通信方式,满足团队协作多样化需求,具备实际应用价值。

7. 系统独特设计与功能(差异化亮点)

  • 智能文件类型识别:自动区分图片、视频、普通文件,提供差异化显示和操作(图片预览、视频播放、文件保存)
  • 语音消息优化:支持录音时长显示(0-60秒)、播放进度条、重播功能,类似微信语音操作逻辑,降低用户学习成本
  • 跨平台部署:服务器端支持openEuler(Linux),客户端支持Windows,依托Java跨平台特性,适配不同团队的服务器环境
  • 轻量无依赖:无需安装额外运行库,客户端仅需JRE 8+环境,可通过脚本自动检测依赖缺失

三、Git仓库配置与协作(3分)

1. 码云仓库地址

ChatApp网络聊天系统 - 码云仓库(实际使用时替换为真实仓库地址)

2. 仓库结构设计

ChatApp/
├── doc/                  # 文档目录(版本化管理)
│   ├── 需求规格说明书.md
│   ├── 项目计划.md
│   ├── 测试计划.md
│   ├── 编码规范.md
│   └── 部署指南.md
├── src/                  # 源代码目录
│   ├── common/           # 公共模块
│   ├── server/           # 服务器端模块
│   ├── client/           # 客户端模块
│   └── utils/            # 工具模块
├── script/               # 脚本目录
│   ├── compile.bat       # Windows编译脚本
│   ├── run-server.bat    # 服务器启动脚本
│   ├── run-client.bat    # 客户端启动脚本
│   └── compile.sh        # Linux编译脚本
├── test/                 # 测试目录
│   ├── 测试用例.xlsx
│   └── 测试数据/
└── README.md             # 项目说明文档

3. 协作方式

  • 分支管理:采用"master+开发分支"模式,master分支保持稳定版本,开发分支按功能模块创建(如server-dev、client-gui-dev、file-transfer-dev)
  • 代码提交规范:提交信息格式为「[模块名] 操作描述(关联Issue ID)」,例如:「[客户端GUI] 实现图片预览功能(#12)」
  • Issue管理:所有任务通过码云Issue创建,标注优先级(P0/P1/P2)、负责人、截止日期,关联里程碑(如"第10周-需求与基础准备")
  • 代码审核:核心模块(服务器消息转发、文件传输)提交前需双人审核,通过Issue评论反馈修改意见

4. 码云Issue截图(2分)

码云Issue列表截图(实际使用时替换为真实截图,包含任务列表、优先级标注、负责人分配、关联里程碑)

四、团队项目计划(8分)

1. 计划制定依据

基于《构建之法》第8-15章"软件开发完整生命周期"内容,结合词典App案例分析经验,采用"三点估计法"矫正时间安排。矫正公式:期望时间=(乐观时间+4×最可能时间+悲观时间)/6,聚焦核心场景,避免功能冗余,确保计划可行性。

2. 原有安排(3分)

周次 核心任务 细分任务 负责人 计划耗时
第9周 团队组建与初始化 1. 团队博客创建与发布
2. 角色分配与选题确定
3. 团队贡献分规则制定
4. Git仓库搭建
共同负责 6小时
第10周 需求与基础准备 1. 需求规格说明书编写
2. 原型设计(Axure)
3. 编码规范制定
4. 开发环境搭建
5. 初步架构搭建
刘浩辉(需求+原型)
努尔艾力(环境+架构)
12小时/人
第11周 设计与计划完善 1. 原型改进(用户调研+反馈)
2. 详细架构设计
3. WBS任务分解
4. 测试计划制定
共同负责 10小时/人
第12-13周 Alpha敏捷冲刺 1. 核心功能开发
2. 每日Scrum会议+博客发布
3. 代码提交与版本管理
4. 功能测试与Bug修复
努尔艾力(服务器端)
刘浩辉(客户端)
56小时/人(7天×8小时)
第14周 Alpha阶段总结 1. 用户反馈收集+测试计划改进
2. 个人总结编写
3. 发布说明+测试报告编写
刘浩辉(总结文档)
努尔艾力(测试+发布)
8小时/人
第15周 事后分析与复审 1. 事后诸葛亮分析
2. 其他团队项目复审
3. 贡献分核算
共同负责 5小时/人

3. 矫正后安排(3分)

周次 核心任务 细分任务 负责人 乐观时间 最可能时间 悲观时间 期望时间 实际分配时间
第9周 团队组建与初始化 1. 团队博客创建与发布
2. 角色分配与选题确定
3. 团队贡献分规则制定
4. Git仓库搭建
共同负责 3小时 5小时 8小时 5.2小时 6小时
第10周 需求与基础准备 1. 需求规格说明书编写
2. 原型设计(Axure)
3. 编码规范制定
4. 开发环境搭建
5. 初步架构搭建
刘浩辉(需求+原型)
努尔艾力(环境+架构)
6小时 10小时 15小时 10.2小时 12小时/人
第11周 设计与计划完善 1. 原型改进(用户调研+反馈)
2. 详细架构设计
3. WBS任务分解
4. 测试计划制定
共同负责 5小时 8小时 12小时 8.2小时 10小时/人
第12-13周 Alpha敏捷冲刺 1. 服务器端核心功能开发
2. 客户端核心功能开发
3. 每日Scrum会议+博客
4. 功能测试与Bug修复
努尔艾力(服务器端)
刘浩辉(客户端)
35小时 45小时 55小时 45.8小时 56小时/人
第14周 Alpha阶段总结 1. 用户反馈收集+测试计划改进
2. 个人总结编写
3. 发布说明+测试报告
刘浩辉(总结文档)
努尔艾力(测试+发布)
4小时 6小时 10小时 6.3小时 8小时/人
第15周 事后分析与复审 1. 事后诸葛亮分析
2. 其他团队项目复审
3. 贡献分核算
共同负责 3小时 4小时 6小时 4.2小时 5小时/人

4. 矫正计算方法(2分)

以"第10周-需求与基础准备"任务为例,说明矫正过程:

  • 刘浩辉负责"需求规格说明书编写+原型设计",乐观时间4小时,最可能时间8小时,悲观时间12小时
  • 期望时间=(4 + 4×8 + 12)/6 = (4+32+12)/6 = 48/6 = 8小时
  • 努尔艾力负责"编码规范+开发环境搭建+初步架构",乐观时间2小时,最可能时间2小时,悲观时间3小时
  • 期望时间=(2 + 4×2 + 3)/6 = (2+8+3)/6 = 13/6 ≈ 2.2小时
  • 两人合计期望时间=8+2.2=10.2小时,结合双人协作效率(1.2倍),实际分配12小时/人,确保任务充分落地

5. 关键里程碑

  • 第9周末:Git仓库搭建完成,团队博客发布,Issue任务创建完毕
  • 第10周末:需求规格说明书定稿,原型设计完成,开发环境搭建完成,编码规范发布
  • 第11周末:详细架构设计文档定稿,WBS任务分解完成,测试计划发布
  • 第13周末:Alpha版本核心功能开发完成,7篇冲刺博客发布,代码提交≥15次
  • 第14周末:Alpha版本发布说明、测试报告、个人总结完成
  • 第15周末:事后分析报告发布,团队项目复审完成,贡献分分配完毕

五、团队分工(5分)

1. 分工明细

姓名 角色 核心职责 第10周具体任务 任务完成情况
努尔艾力·司马义(组长) PM/后端开发 项目管理、服务器端开发、部署运维、测试设计 1. 搭建开发环境(IDEA、JDK、openEuler服务器)
2. 制定编码规范(命名规则、注释要求、代码结构)
3. 完成初步架构设计(服务器-客户端通信流程)
4. 配置Git仓库权限与分支规则
已完成开发环境搭建、编码规范制定、架构设计初稿,Git仓库配置完毕
刘浩辉 前端开发/全栈支持 客户端GUI开发、多媒体功能实现、需求分析、文档编写 1. 编写需求规格说明书(完整版本)
2. 设计Axure低保真原型(登录界面、主聊天界面、文件选择界面)
3. 整理用户调研反馈,优化需求细节
4. 撰写本次作业博客初稿
已完成需求规格说明书终稿、Axure原型设计,用户调研反馈收集完毕,博客初稿完成

2. 协作机制

  • 每日短会:每晚20:00召开15分钟线上会议,同步任务进度、沟通问题
  • 文档共享:核心文档(需求规格说明书、设计文档)通过Git仓库同步,使用Markdown格式确保兼容性
  • 问题解决:遇到技术难题时,先独立调研1小时,未解决则共同讨论,记录解决方案到项目文档

六、每个人完成情况(2分)

1. 努尔艾力·司马义

  • 已完成任务:开发环境搭建(本地Windows+云端openEuler)、编码规范制定(含命名规则、注释要求、提交规范)、初步架构设计(绘制系统通信流程图)、Git仓库配置(分支管理、Issue创建、权限设置)
  • 进度状态:所有分配任务100%完成,提前1天完成架构设计,编码规范已同步至Git仓库
  • 产出物:编码规范.md、架构设计流程图.png、Git仓库配置说明.md

2. 刘浩辉

  • 已完成任务:需求规格说明书(完整版本,含用户分析、功能需求、技术需求)、Axure低保真原型(4个核心界面)、用户调研(3名目标用户访谈+反馈整理)、本次作业博客初稿
  • 进度状态:所有分配任务100%完成,需求规格说明书经过2轮优化,原型设计已根据用户反馈调整
  • 产出物:需求规格说明书.md、Axure原型文件.rp、用户调研反馈.md、博客初稿.md

七、每个人的感想(10分)

1. 努尔艾力·司马义

通过本次需求规格说明书编写和项目计划制定,我深刻体会到"凡事预则立,不预则废"的道理。作为PM,不仅要把控项目整体方向,还要细致到每个任务的时间分配和风险预判。在使用"三点估计法"矫正计划时,发现最初的时间预估过于乐观,尤其是开发环境搭建和架构设计环节,需要考虑到各种异常情况(如服务器端口开放、JDK版本兼容)。Git仓库的配置让我学会了如何通过Issue和分支管理实现高效协作,编码规范的制定则为后续开发奠定了基础。后续冲刺阶段,我会重点关注服务器端多线程并发处理和消息转发功能,确保系统稳定性,同时做好项目进度监控,及时调整计划应对突发问题。

2. 刘浩辉

本次作业让我对"需求分析"有了更深入的理解,需求规格说明书不是简单的功能罗列,而是要站在用户角度思考场景和痛点。在进行用户调研时,有用户提到"希望图片能直接预览,不用单独打开文件",这让我们补充了图片缩略图功能,让产品更贴近实际使用需求。Axure原型设计过程中,我反复调整界面布局,力求操作直观,这也让我意识到GUI开发不仅要实现功能,还要注重用户体验。在协作方面,通过Git仓库同步文档和任务,避免了版本混乱问题,每日短会则让我们及时沟通进度,减少信息差。后续我会专注于客户端GUI开发和多媒体功能实现,确保界面美观、操作流畅,同时积极收集用户反馈,持续优化产品。

八、排版(3分)

本次博客采用Markdown格式编写,结构清晰,层级分明:

  • 一级标题:作业核心主题
  • 二级标题:核心模块(需求规格说明书、Git仓库配置、项目计划等)
  • 三级标题:细分内容(面向用户分析、功能需求、原有安排等)
  • 采用表格呈现分工、计划等结构化内容,截图辅助说明
  • 语言简洁明了,无冗余内容,重点信息(如仓库地址、预期用户量)突出显示

九、总结

本次作业完成了需求规格说明书的详细编写、Git仓库协作配置、项目计划制定及团队分工落地,严格按照作业评分标准实现了所有要求。通过本次工作,团队明确了项目方向和技术路线,建立了高效的协作机制,为后续Alpha阶段冲刺奠定了坚实基础。后续将按照计划推进原型改进、详细架构设计和核心功能开发,确保项目按时、高质量完成。

posted @ 2026-01-08 15:08  allli  阅读(4)  评论(0)    收藏  举报