这个作业属于哪个课程 | 广工23软件工程社区 |
---|---|
这个作业要求在哪里 | 团队作业3—需求改进&系统设计 |
这个作业的目标 | 需求改进&系统设计 |
其他文献参考 | 分析设计方法、Scrum/Sprint、如何编写测试计划? |
需求&原型改进
对修改选题及需求进行修改
整体的改进:总体的软件需求仍不改变,依旧是一款轻量级的音乐软件,打造一个无广告的,提供纯净听歌的软件。
问题1:如何维持该软件的持续运营?
修改1:将软件更改为买断制,一次购买永久使用
问题2:如果遇到超出软件原本预计的并发压力应该如何应对?
修改2: 提前进行用户量的计算,提高服务器的承载量
修改完善上周提交的需求规格说明书
需求规格说明书
(1)面向用户分析
我们要做的就是这么一个不需要vip的软件,同时也去除市面上的音乐软件中包含的大量的广告,让一些没有消费能力或者消费能力不足的人也可以享受自己喜欢的音乐,主要面向高中生和大学生。
(2)功能性需求
本软件主要实现的功能有:播放列表的生成、音频的基本播放控制、登录注册、音乐搜索、设置、播放器页面、本地音频文件搜索、下载网上的音乐资源。
(3)技术需求
文件管理、网上资源嗅探、UI界面设计、播放器音频接口、数据库管理
修改需求后的WBS
系统设计
架构设计
Android模块 | 直接与用户打交道,与用户进行交互 |
---|---|
后台模块 | 处理请求,搜索信息 |
后台模块
- 音乐数据的存储:可以使用关系型数据库,如MySQL或PostreSQL,并使用ORM框架,如Hibernate或MyBatis,来操作数据库
- 音乐数据的获取:可以使用Web框架,如Spring MVC或Spring Boot,实现RESTful API,并使用ORM框架从数据库中获取音乐数据,可以使用缓存技术,如Redis,提高音乐数据获取的效率
- 音乐播放器:可以使用Java中的Javax.sound.sampled包提供的API,或使用第三方开源框架,如JavaZoom的jlplayer等
- 推荐算法:可以使用基于协同过滤的推荐算法,如UserCF、ItemCF等,也可以使用基于内容的推荐算法,如基于标签的推荐算法等
- 用户管理:可以使用Spring Security等安全框架,实现用户认证、授权等功能,同时使用JWT等技术来实现用户的状态管理
Android模块 - UI设计:可以使用Android Studio提供的布局工具,如ConstrainLayout等,同时可以使用Material Design等设计语言,提升用户界面的美观度和易用性
- 音乐播放器:可以使用Android系统提供的MediaPlayer或ExoPlayer等,或者使用第三方开源框架,如IJKPlayer、Vitamio等
- 音乐列表:可以使用ListView或Recycler View等UI组件,同时使用MVVM等架构模式,将数据和UI进行分离,提高代码的可维护性和可扩展性
- 音乐搜索:可以使用Retrofit等网络框架,实现对后台模块中的音乐搜索接口的调用,同时使用异步任务或协程等技术,提高搜索效率
- 用户管理:可以使用SharedPreference或SQLite等本地存储技术,来存储用户的登录状态和信息,同时使用Retrofit等网络框架,与后台模块进行交互,实现用户管理相关功能
Alpha任务分配计划
测试计划
(1)测试的总体策略和方法:
测试方法采用黑盒测试。白盒测试容易陷入盲区,即已经知道如何运作所以会避开会使软件运行错误的地方
(2)测试日程安排:
测试安排在软件已经建立起原型之后进行
(3)质量目标:
目标是能正常运作,各种功能没有严重异常
(4)资源:组内两名测试人员
(5)测试变量矩阵:目前仅支持安卓系统