所属课程 | 软件工程 |
---|---|
作业要求 | 团队项目 |
作业目标 | 了解团队成员、确定选题、计划后续项目安排 |
github链接 | OpenGL-MiniEngine |
需求规格说明书
一、引言
1.1 项目描述
基于OpenGL的3D场景绘制渲染与交互界面:
本系统主要面向于初学图形学与人机交互的同学,通过开源的方式为初学者提供一个较为轻量、易解读的图形交互界面。
- 产品名称:MiniEngine
- 项目背景:对于初学者而言,目前互联网上的学习资源良莠不齐,查询时费心费力,本项目意在通过制作一个体量较小的图像引擎为初学者提供帮助。
- 产品类型:Windows桌面应用程序
- 界面语言:英文/中文
- Github链接
1.2 编写目的
为明确软件需求、安排项目规划与进度、组织软件开发与测试,撰写本文档。
1.3 阅读对象
本《需求规格说明书》的阅读对象是:
- 开发组成员
- 测试组成员
- 团队授权可阅读本文档的其他人员
二、需求概述
2.1 面向用户分析
2.1.1 用户特征
使用图形引擎的大学生一般是计算机科学、软件工程、游戏设计等相关专业的学生,他们对图形学、游戏开发、虚拟现实等领域有浓厚的兴趣和热情,希望通过使用图形引擎来实现自己的创意和想法,或者完成课程作业和毕业设计。他们的年龄一般在18-25岁之间,性别比例可能男生多于女生,地域分布可能以发达国家和地区为主。
2.1.2 用户需求
使用图形引擎的大学生的主要需求是能够快速、方便、高效地开发出高质量的图形应用或游戏,同时能够学习和掌握图形编程的基本原理和技巧。他们需要一个功能强大、性能优良、文档完善、社区活跃的图形引擎,提供丰富的资源和工具,以及友好的用户界面和交互方式。
2.1.3 用户行为
使用图形引擎的大学生的典型行为是在网上搜索和下载图形引擎,阅读官方文档和教程,观看视频教程和案例演示,参与社区讨论和交流,编写代码和脚本,调试和运行程序,测试和优化性能,发布和分享作品等。他们可能会根据自己的喜好和需求选择不同的图形引擎,比如虚幻引擎等。他们可能会花费几个小时到几个月不等的时间来完成一个项目,取决于项目的复杂度和难度。
2.1.4 用户画像
姓名 | 性别 | 年龄 | 专业 | 兴趣 | 目标 | 图形引擎 |
---|---|---|---|---|---|---|
小明 | 男 | 20 | 软件工程 | 游戏开发 | 做一个3D射击游戏 | 虚幻引擎 |
小红 | 女 | 21 | 计算机科学 | 图形学 | 做一个数据可视化应用 | Three.js |
小李 | 男 | 22 | 游戏设计 | 虚拟现实 | 做一个VR体验项目 | Unity |
2.2 需求分析
2.2.1 具体功能
- 查看特定格式的3D模型
- 对3D模型添加光照效果
- 实现对场景与模型的交互
- 程序使用教程
2.2.2 意义分析
真实: 对于初学者而言,目前互联网上的学习资源良莠不齐,查询时费心费力,即使网络上比较成熟的开源图形交互软件都有较完整的文档,但体量较大,抽丝剥茧实属不易。
可用:开发程序的同学都是这学期初接触OpenGL的新手,故更能理解初学者不解之处,可以在适当的地方补充注解,更适合作为教学项目。
有价值:开源项目在大学生群体中越来越受欢迎,很多学生通过参与开源项目来提升编程技能、了解业界技术、结识良师益友、展示个人能力。也希望这个项目能唤起更多同学对开源项目的热情,为国内的开源生态增添活力。
2.3 技术需求
2.3.1 图形学基础知识
技术项 | 具体技术 |
---|---|
编程语言 | C++ |
引擎库 | OpenGL |
代码版本控制 | Git |
2.3.2 界面交互
技术项 | 具体技术 |
---|---|
编程语言 | C++ |
原型设计软件 | 墨刀/Axure |
2.3 预期用户数量
早期在同级同学内推广,预期有200人试用本应用程序。
三、分工设计
3.1 分工
姓名 | 学号 | 团队分工 | 本周任务 |
---|---|---|---|
潘俊羽 | 3121005138 | 开发、文档编写 | 参与讨论编写需求规格说明书、提交个人感想、技术学习 |
石云欣 | 3221004809 | 设计产品需求、文档编写 | 参与讨论编写需求规格说明书、编写博客、技术学习 |
杨恒 | 3121005146 | 开发、文档编写 | 参与讨论编写需求规格说明书、提交个人感想、技术学习 |
游烽 | 3121005148 | 测试、文档编写 | 参与讨论编写需求规格说明书、提交个人感想、技术学习 |
沈纪康 | 3121004750 | 开发、文档编写 | 参与讨论编写需求规格说明书、提交个人感想、技术学习 |
罗寰宇 | 3121005137 | 管理项目进度、文档编写 | 参与讨论编写需求规格说明书、提交个人感想、技术学习 |
3.2 时间安排表
3.2.1 新旧时间安排表
旧时间 | 旧任务 | 新时间 | 新任务 |
---|---|---|---|
第9周 | 1.团队组队、团队博客 | 第9周 | 1.团队组队、团队博客 |
2.团队介绍、成员展示、角色分配、选题确定 | 2.团队介绍、成员展示、角色分配、选题确定 | ||
第10周 | 1.需求规格说明书 | 第10周 | 1.需求规格说明书 |
2.原型设计,队员估计任务难度并学习必要的技术 | 2.原型设计,队员估计任务难度并学习必要的技术 | ||
3.编码规范完成、平台环境搭建完成、初步架构搭建 | 3.编码规范完成、平台环境搭建完成、初步架构搭建 | ||
第11周 | 1.原型改进(给目标用户展现原型,并进一步理解需求) | 第11周 | 1.原型改进(给目标用户展现原型,并进一步理解需求) |
2.架构设计,WBS, 团队成员估计各自任务所需时间 | 2.架构设计,WBS, 团队成员估计各自任务所需时间 | ||
3.测试计划 | 3.测试计划 | ||
4.确定应用程序界面设计 | |||
5.成员继续学习技术 | |||
第12、13周 | 1. 团队项目Alpha任务分配计划 | 第12、13周 | 1. 团队项目Alpha任务分配计划 |
2. 连续7天的Alpha敏捷冲刺,7 篇 每日Scrum Meeting博客+代码提交 | 2. 连续7天的Alpha敏捷冲刺,7 篇 每日Scrum Meeting博客+代码提交(预计时间为11.16-11.23) | ||
3.改进测试计划 | |||
第14周 | 1.用户反馈+测试计划改进 | 第14周 | 1. 用户反馈+测试计划改进 |
2. 团队Alpha阶段个人总结 | 2. 团队Alpha阶段个人总结 | ||
3. 团队项目Alpha博客:发布说明、测试报告、展示博客、项目管理 | 3. 团队项目Alpha博客:发布说明、测试报告、展示博客、项目管理 | ||
第15周 | 1. 团队项目Alpha博客:事后分析 | 第15周 | 1. 团队项目Alpha博客:事后分析 |
3.2.2 修正算法
- 实际情况
考虑到大家的学习进度,适当延长了学习时间、缩短了开发时间,同时根据课程及考试安排,进行更加人性化的时间安排,给大家留出充足的个人发展时间。 - 对时间和任务进行细化
3.3 issues截图
四、总结
4.1 成员个人感想
姓名 | 学号 | 任务完成情况 | 个人感想 |
---|---|---|---|
潘俊羽 | 3121005138 | 已完成 | 第一次接触详细设计文档,对于其中需求分析的部分很有感触,能够细化开发的模块和过程对开发来说是很有效率的一件事。 通过issues功能能够直观看到项目的问题和进度,可以控制好开发的时间流程,也是很有效率的。 |
石云欣 | 3221004809 | 已完成 | 需求规格说明书的内容覆盖面还挺广的,感觉像技术岗和营销岗的结合。下周就要开始正式开发了,很期待最后的成品。 |
杨恒 | 3121005146 | 已完成 | |
游烽 | 3121005148 | 已完成 | |
沈纪康 | 3121004750 | 已完成 | |
罗寰宇 | 3121005137 | 已完成 |