作业3:综合系统开发——需求分析

发布时间 2023-04-29 16:36:34作者: sillyffin

| 这个作业属于哪个课程 | https://edu.cnblogs.com/campus/gdgy/2022softwarecodedevelopmenttechnology |

| ----------------- |--------------- |

| 这个作业要求在哪里| https://edu.cnblogs.com/campus/gdgy/2022softwarecodedevelopmenttechnology/homework/12494 |

| 这个作业的目标 | <学会使用UML,学会撰写需求规格说明书> |

2.建立项目的git仓库,熟悉GitHub的操作。
一、项目介绍
1.1 项目名称
屏保管理系统

1.2 项目背景
在社会的不断发展和进步之下,人们对于诸如手机、计算机、电视机等一系列屏显设备的使用需求不断增加,甚至已经达到了一个依赖的程度。在众多屏显设备的使用之中,屏保这个功能是所有屏显设备所通用的。而每个用户都需要自己的不同设备多次设置不同的屏保,这种操作是耗时且重复的。因此,我们需要解决这种低效的屏保设置模式。

1.3 项目安排及计划
计划名称 预计用时(天) 矫正用时(天) 开始时间 结束时间
需求分析 3 3 2023/3/20 2023/3/22
概要设计 3 3 2023/3/23 2023/3/25
详细设计 3 7 2023/3/26 2023/4/01
代码实现 10 7 2023/4/02 2023/4/08
项目测试 4 6 2023/4/09 2023/4/14
项目交付 2 2 2023/4/15 2023/4/16
矫正计算方法:增加系统的详细设计阶段的用时,可以在设计阶段就完善系统的各实体类的设计和建模,让后续的代码实现工作更为高效。同时略微增加项目测试的时间,进行单元测试和集成测试,确保项目能够在各类情况下正常运行。

二、需求规格说明书
2.1 可行性研究
2.1.1 经济可行性
本次开发的技术基于SpringBoot + Mybatis-plus + mysql等一系列技术。目前SpringBoot、Mybatis-plus与mysql等均为目前主流的开发框架与主流的数据库。由于此前本人已经进行了大量的基于SpringBoot的项目开发,并在实际工作中也同样大量使用过以上技术。本人对于以上技术的使用已经熟练掌握。而由于以上技术的流行性、开发过程中若遭遇一些难以解决的问题也同样可以通过网络查询资料进行较为完善的解决。因此,从技术可行性的角度来说技术可行。
2.1.2 操作可行性
该系统操作界面是存在于web前端网页之中,基于当前时代绝大部分人对于手机、计算机等设备的使用频率与熟悉程度来看。该系统几乎无任何使用门槛,而进行该系统的所有操作也是非常的简单,但凡有过使用手机与计算机的基础。即使是从未使用过该系统也能快速熟悉并掌握该系统的所有操作。
2.1.3 技术可行性
本次开发所使用的SpringBoot + Mybatis-plus + mysql等一系列技术均为市面上免费使用的技术,本次开发所需要的成本仅仅只需要一部性能适中的计算机即可,而本人目前已经拥有符合性能要求的计算机,从经济成本的角度来说经济可行。

2.2 功能需求
2.2.1 根据日期查询节假日
描述:提供用户查询指定日期的节假日信息,至少包含农历、24节气、法定假期、公历节日等信息
2.2.2 黑名单配置
描述:后台管理人员自定义指定产品和组织的节假日黑名单配置或全局的节假日黑名单配置,可以人工控制使某些节假日在查询时不展示。
2.2.3 节假日自动初始化更新
描述:每年的节假日信息根据国家发布的假日信息进行自动初始化更新
2.2.4 上传壁纸
描述:后台管理员用户上传壁纸到公共壁纸库,所有用户均可查询并使用,普通用户上传壁纸到私有壁纸库,仅上传用户可查询使用
2.2.5 浏览壁纸
描述:壁纸浏览时支持分页浏览、分类分页浏览等多种浏览方式
2.2.6 修改壁纸
描述:后台管理员对公共壁纸库中的壁纸进行修改分类或打标签等操作,普通用户对个人私有壁纸库中的壁纸进行修改分类或打标签等操作
2.2.7 设置壁纸
描述:用户设置壁纸保存到云端,在不同设备登陆均可统一使用一致的壁纸
2.2.8 智能推荐壁纸
描述:用户通过节假日或扩展条件向服务器发起推荐壁纸请求从而获取壁纸推荐结果

2.3 拓展需求
2.3.1
描述:第三方节假日API发生异常时需要及时发送告警通知开发人员处理
2.3.2
描述:黑名单配置功能需要拓展出黑名单表的增删改查功能
2.3.3
描述:壁纸库的管理功能需要拓展出壁纸表、分类表、标签表的增删改查功能
2.3.4
描述:设置壁纸功能需要拓展出展示壁纸的功能
2.3.5
描述:展示壁纸时如果当前用户未设置壁纸,需要展示默认壁纸
2.3.6
描述:智能推荐壁纸功能需要拓展出推荐表的增删改查功能
2.3.7
描述:发送告警的方式、上传壁纸存储所使用的存储服务、智能推荐壁纸的推荐策略都可能要随需求的变动灵活切换

2.4边界场景
2.4.1
描述:更新、删除黑名单时需要判断指定黑名单是否存在
2.4.2
描述:修改壁纸时需要判断指定壁纸当前用户是否有权限修改
2.4.3
描述:更新、删除壁纸分类或标签时需要判断指定分类或标签是否存在
2.4.4
描述:设置壁纸需要判断指定壁纸是否为当前用户私有壁纸或公共壁纸
2.4.5
描述:展示壁纸时需要判断当前用户是否已设置壁纸
2.4.6
描述:添加推荐关键字时需要判断指定壁纸的拥有者是否为指定用户
2.4.7
描述:更新、删除推荐关键字时需要判断指定推荐关键字是否存在

2.5 风险点
2.5.1
描述:各功能在使用时可能出现请求方式、请求参数错误的问题,可能导致服务器发生异常,需要做好入参的校验
2.5.2
述:在根据日期查询节假日时可能出现日期格式错误,从而导致服务器发生异常或者没有办法获得预期结果的情况,需要做好日期格式的校验
2.5.3
描述:在上传壁纸时可能上传的文件格式不是图片,可能导致上传图片时或预览图片时发生异常,需要做好图片格式的校验
2.5.4
描述:节假日自动初始化更新功能需要调用第三方节假日API,第三方API可能会发生各种难以预料的异常,需要准备多数据源来保证该功能的可用性。

2.6用例图

3.7活动图

3.8数据字典
3.8.1节假日表(t_holiday)数据字典如下:

3.8.2黑名单表(t_black_list)数据字典如下:

3.8.3壁纸表(t_wallpaper)数据字典如下:

3.8.4壁纸分类表(t_wallpaper_category)数据字典如下:

3.8.5壁纸标签表(t_wallpaper_tag)数据字典如下:

3.8.6用户壁纸表(t_user_wallpaper)数据字典如下

3.8.7推荐表(t_user_recommend)数据字典如下

三、项目git仓库
git仓库链接
https://github.com/wsf/basic_service

博客园后台截图