团队作业3——需求改进&系统分析
团队作业3——需求改进&系统分析
这个作业属于哪个课程 | 计科2班 |
---|---|
这个作业的要求在哪里 | 团队作业3--需求改进&系统设计 |
这个作业的目标 | 需求改进、系统设计、Alpha 任务分配、测试计划 |
1. 需求&原型改进
1.1 需求改进
问题1:新用户对应用的使用不熟悉,无法正确引导用户
改进1:在应用安装时通过弹窗等方式为用户简单介绍本应用,同时在各功能处添加功能引导
问题2:用户是否能充分发挥自定义程度,让应用更能被用户接受
改进2:在搜索、歌单等部分制作时预留其可拓展位置,使用户能自定义程度更高
问题3:用户目前没有类似于“我的”模块,信息缺乏
改进3:可以进行该模块开发
1.2 完善需求规格说明书
-
不足之处:需求说明可再根据情况进行改进,如上述问题3,计划添加新开发模块:个人信息模块;提供给用户进行个人信息的管理或自定义,并支持后续拓展到后端模块进行交接
-
需求场景:
小明想要在手机上有一款轻量级、简洁的音乐播放应用。他想在应用中能够自由摆放自己所需要的模块,自由增删信息,并拥有歌曲搜索、歌单查询、音乐播放等功能。通过本应用程序,小明可以将自己的歌单摆放到首页,或者方便歌单搜索将歌单摆放到首页,能根据自己的喜好赋予应用程序不同的界面反馈
2. 参考《构建之法》5节功能的定位和优先级,给出功能分析的四个象限
第一象限:音乐播放核心功能
第二象限:音乐和歌单的搜索
第三象限:用户自定义界面
第四象限:用户个人信息模块
3. 根据修改后的需求,调整任务分解WBS及相应的项目进度计划
周次 | 任务分配及其内容 | 完成度 |
---|---|---|
第九周 | 项目调研、需求分析 | 100% |
第十周 | 系统模块设计、功能开发设计 | 100% |
第十一周 | 三方库及本地库的设计与评估 | 100% |
第十二周 | 应用程序主体开发 | 0% |
第十三周 | 应用程序主体开发 | 0% |
第十四周 | 应用测试(包括但不限于视图反馈、网络通信) | 0% |
第十五周 | 成果对用户开放、进行用户反馈调研、总结经验、改进项目 | 0% |
2. 系统设计
1. 系统架构设计
网络等外部接口层:进行网络请求或其他资源加载的调用
应用视图逻辑层:应用的核心部分,负责展示界面和用户进行交互等逻辑调用
数据库层:本地缓存的一些网络资源、用户在使用过程中需要保存到本地的数据
2. 数据库设计
表名 | 内容 |
---|---|
User | 存储用户个人的信息,包括歌单表 |
MusicList | 存储用户某歌单中的歌曲信息 |
User表各字段:
name: String | id: Int | musicList: List |
---|
MusicList表各字段:
name: String | id: Int | owner: String | musics: List |
---|
Music 中的各项为歌曲具体信息,包含其专辑封面 imageUrl,播放地址 Url 等
3. Alpha 任务分配计划
1. 依据项目组能提供的总时间、功能模块的优先级以及模块之间的依赖关系,在Product Backlog中选取待实现的功能项
- 总时间:第11周 -> 第15周
- 优先级(按任务优先级从高到低排序):
应用交互逻辑开发、应用视图层开发、应用数据接口层开发(本地库、网络请求)、应用程序测试、应用程序 bugfix 及其调整 - 模块依赖关系:
- 应用视图层开发依赖于应用数据接口层开发
- 应用交互逻辑层开发依赖于应用视图层开发
- 应用测试依赖于应用交互逻辑开发
- 应用程序 bugfix 及其调整依赖于应用测试
2. 对已选择的功能项再做进一步分解,分解为1-10小时左右的任务,构成Sprint Backlog。在PM的协助下,编码的同学对任务进行认领
- 应用程序视图的开发(10h)
负责开发应用程序的主页面
负责人:林楦、陈祖民 - 应用程序逻辑交互开发(12h)
负责开发应用程序和用户交互的逻辑
负责人:陈大锴、徐嘉炜 - 应用程序测试(10h)
负责测试应用程序各方面的功能是否正常
负责人:蔡家显、陈祥意、肖商
3. 以甘特图的方式拟定迭代冲刺计划
Sprint计划示例:
任务 | Start | DDL | 成员 |
---|---|---|---|
视图开发 | 第12周 | 第13周 | 林楦、陈祖民 |
交互逻辑开发 | 第11周 | 第14周 | 陈大锴、徐嘉炜 |
应用程序测试 | 第12周 | 第15周 | 蔡家显、陈祥意、肖商 |
4. 测试计划
1. 测试内容
- 应用界面测试:测试界面是否交互正常,显示内容是否正常、交互是否正常
- 数据测试:测试用户使用过程中产生的数据是否能正常被读写
- 工具测试:测试网络请求或本地加载请求是否正常
- 性能测试:测试程序运行过程是否有卡顿、内存泄漏或响应较慢的问题
2. 测试时间
测试和开发同步进行,开发完成某模块后即可对其测试,并在相应时间点进行全面回测
3. 测试人员
主要测试人员为 蔡家显、陈祥意、肖商,其他人员协助测试工作