0%

《时光漫步》软件需求说明书

1 引言

1.1 编写目的

本需求说明书是为了“时光漫步”系统而编写的,“时光漫步”系统是允许用户合法合规分享日常生活的图文视频和互动的一个平台系统。

1.2 背景

1.2.1项目概况

本需求分析报告所预期开发的软件系统是:时光漫步;

1.2.2 任务分配

  1. 任务提出者:魏杰;
  2. 软件开发者:马静莲、桑杰卓玛、魏杰、王雅妮、禹婷婷(按照姓名首字母排序);
  3. 文档编写者:魏杰;
  4. 预期产品使用者:合法合规用户。

1.3 定义

  1. Spring Boot 3:Spring Boot是一个开源Java-based框架,用于创建独立的、基于Spring的生产级应用程序。Spring Boot 3是Spring Boot的第三个主要版本,它提供了更快的启动时间和自动配置的特性。
  2. MySQL:数据库工具。
  3. MyBatis:MyBatis是一个开源的持久层框架,它提供了一个简单的API,用于将对象与数据库中的记录进行映射。MyBatis支持自定义SQL、存储过程和高级映射。
  4. **JWT (JSON Web Token)**:JWT是一种开放标准(RFC 7519),它定义了一种简洁的、自包含的方法用于通信双方之间以JSON对象的形式安全地传输信息。在《时光漫步》软件中,JWT用于身份验证和授权。
  5. Redis:Redis是一个开源的、高性能的键值数据库。它支持多种类型的数据结构,如字符串、列表、集合、散列表等。《时光漫步》软件使用Redis作为缓存和消息代理。
  6. Vue 3:Vue 3是Vue.js的第三个主要版本,它是一个用于构建用户界面的渐进式JavaScript框架。Vue 3提供了更快的性能、更小的体积和更好的TypeScript支持。
  7. API:Application Programming Interface(应用程序编程接口),是一套协议、工具和定义,用于构建和交互软件应用程序。
  8. RESTful API:RESTful API是一种基于REST(Representational State Transfer)架构风格的网络应用程序接口。它使用HTTP协议的请求方法(如GET、POST、PUT、DELETE)来进行数据交互。
  9. OAuth 2.0:OAuth 2.0是一个开放标准,允许用户提供一个令牌而不是用户名和密码来访问他们存储在第三方服务上的资源。《时光漫步》软件使用OAuth 2.0进行第三方登录。
  10. CRUD (Create, Read, Update, Delete):CRUD是指增加(Create)、查询(Read)、更新(Update)和删除(Delete)四个基本的数据库操作。
  11. DDD (Domain-Driven Design):领域驱动设计(Domain-Driven Design)是一种软件开发方法,它强调的是基于领域模型进行软件设计。
  12. DTO (Data Transfer Object):数据传输对象(Data Transfer Object)是一种设计模式,用于在不同层之间传输数据。
  13. VO (Value Object):值对象(Value Object)是一种设计模式,用于表示没有唯一标识符的对象。
  14. DAO (Data Access Object):数据访问对象(Data Access Object)是一种设计模式,用于将数据访问逻辑与业务逻辑分离。
  15. ORM (Object-Relational Mapping):对象关系映射(Object-Relational Mapping)是一种编程技术,用于将对象与数据库中的记录进行映射。
  16. MVVM (Model-View-ViewModel):MVVM是一种软件架构模式,用于将视图与业务逻辑分离。
  17. Nginx:Nginx是一个高性能的HTTP和反向代理服务器,它将客户端请求转发到多个应用程序服务器。

2 任务概述

2.1 目标

《时光漫步》项目的开发意图是为了提供一个平台,让用户能够方便地分享自己的日常生活,并通过图文视频的形式与其他用户互动。该项目旨在鼓励用户记录生活中的美好瞬间,与他人分享快乐和成长,同时增进社交互动和交流。

应用目标是提供一个用户友好的界面,让用户能够轻松上传和分享自己的图文视频内容。建立一个社交网络,让用户能够浏览、点赞和评论其他用户的分享,促进用户之间的互动和交流。提供个性化的推荐功能,根据用户的兴趣和偏好推荐相关的内容,增加用户的使用体验和满意度。确保用户隐私和安全,保护用户的个人信息和内容不被未经授权的访问或滥用。

作用范围为《时光漫步》项目旨在为广大用户提供一个互动、分享和交流的平台。它适用于所有年龄段和背景的用户,无论他们是在城市还是农村,都可以通过该平台分享自己的生活点滴。该软件可以在各种设备上使用,包括智能手机、平板电脑和电脑,以适应不同用户的需求。

在当今社会,人们越来越注重记录和分享自己的生活。社交媒体平台的兴起为人们提供了一个方便快捷的方式来分享自己的图文视频内容,并与他人互动。然而,现有的社交媒体平台往往过于庞大和复杂,用户可能感到不够专注和亲密。《时光漫步》项目的开发旨在提供一个更简单、更专注于日常生活分享的平台,让用户能够更加轻松地记录和分享自己的生活点滴。

《时光漫步》是一个独立的软件产品,除了必要的MySQL数据库、Redis数据库等必要的数据处理工具外它不依赖于其他软件或系统。虽然市场上已经存在许多社交媒体平台,但《时光漫步》将提供独特的特性和功能,以吸引用户并满足他们的需求。如果将来有需要,可以考虑与其他软件或系统进行集成,以提供更多的功能和扩展性。

2.2 用户的特点

操作人员:

广泛的用户群体:包括不同年龄、职业、兴趣和地域的用户。

多样的技术水平:用户的技术水平可能从初学者到高级用户不等,因此界面需要直观易用。

社交媒体经验:用户可能已经熟悉其他社交媒体平台,对分享和互动有一定的经验。

内容创造者:用户可能包括业余摄影师、博主、旅行爱好者等,他们喜欢记录和分享生活。

维护人员:

教育水平:维护人员可能需要具备计算机科学、信息技术或相关领域的专业背景。

技术专长:维护人员应具备软件开发、网络管理、数据库管理和系统安全等方面的知识和技能。

经验要求:理想情况下,维护人员应具有在社交媒体或相关领域的工作经验。

预期使用频度:

《时光漫步》作为一个日常生活分享平台,预期会有较高的使用频度,特别是对于活跃的内容创造者和社交用户。

用户可能会每天登录多次,以分享新的内容、浏览朋友的动态、点赞和评论。

在特定时间段(如节假日、特殊事件或活动期间),使用频度可能会进一步增加。

2.3 假定和约束

本软件假定项目使用用户合规合法。

开发人:马静莲、桑杰卓玛、魏杰、王雅妮、禹婷婷(按照姓名首字母排序)

指导老师:杜威老师

经费限制:无

开发时间:2024年4月一2024年5月

3 需求规定

3.1 对功能的规定

在本“时光漫步”系统中主要有用户注册登陆、用户信息管理、图文视频分类、图文视频用户管理、用户互动、关注用户管理、图文视频文章与评论审核等功能模块,功能分析如下:

  1. 用户登陆注册功能用户登陆注册功能

  2. 用户信息管理功能用户信息管理功能

  3. 图文视频分类img

  4. 图文视频管理img

  5. 用户互动img

  6. 关注用户管理img

  7. 图文视频文章与评论审核img

3.2 对性能的规定

3.2.1 精度

输入数据精度要求

文本输入:软件应能够准确接收和处理用户输入的文本信息,包括标题、描述和评论,不发生字符错误或乱码。

图像和视频输入:软件应尽量确保上传的图像和视频内容的分辨率和品质,不损失细节,同时支持常见的图像和视频格式。

输出数据精度要求

显示精度:软件在用户界面上显示的图文视频内容应与原始上传内容保持一致或采用适当压缩,不出现压缩失真或像素化。

数据同步:如果软件支持多设备同步,应确保在不同设备上显示的内容一致,包括点赞、评论和分享的状态。

搜索结果:搜索功能应提供精确匹配的结果,确保用户能够快速找到相关的分享内容。

传输过程中的精度要求

上传和下载:软件应确保数据在上传和下载过程中不丢失,保持完整性。

数据传输速度:软件应优化数据传输机制,确保用户在上传和浏览内容时体验流畅,减少等待时间。

网络适应能力:软件应能够在不同网络条件下保持稳定运行,包括2G、3G、4G和Wi-Fi网络。

3.2.2 时间特性要求

说明对于该软件的时间特性要求,如对:

a. 响应时间:

用户界面操作:软件应提供快速响应的用户界面,确保用户在点击、滑动或进行任何操作时,系统能够在0.5秒内做出反应,以提供流畅的用户体验。

登录/注销:用户登录和注销账户的过程应在3秒内完成,以保持用户的使用效率。

b. 更新处理时间:

内容发布:用户发布新的图文视频内容后,软件应在5秒内完成上传、处理和显示在时间线上的过程。

动态更新:当其他用户对内容进行点赞、评论或分享时,相关动态应在1秒内更新到数据库中。

c. 数据的转换和传送时间:

格式转换:软件在处理用户上传的不同格式的图像和视频时,应在后台高效地进行格式转换,保证转换过程不超过1小时。

数据同步:如果用户在多个设备上使用软件,数据(包括个人资料、设置、收藏等)应在设备之间实时同步,延迟不超过1分钟。

3.2.3 灵活性

本系统采用可视化界面,用户通过单击界面上的相关按钮就可以完成各项相关操作,使用方便。

  1. 在操作方式上,用户的操作更加简明易懂;
  2. 运行环境尽量的起到兼容的效果;

3.3 输入输出要求

输入数据

用户注册信息:

数据类型:文本

媒体:Web表单或移动应用表单

格式:字符串(姓名、用户名、密码、电子邮件地址)

特殊要求:密码应至少包含8个字符,包括大小写字母、数字和特殊字符;电子邮件地址需有效格式

图文视频内容

数据类型:图像、视频、文本

媒体:文件上传

格式:图像(JPEG, PNG),视频(MP4, MOV),文本(UTF-8编码)

特殊要求:图像和视频大小不超过设定的最大文件大小限制

用户互动(点赞、评论、分享):

数据类型:交互操作

媒体:Web界面或移动应用界面

格式:按钮点击、文本输入

特殊要求:评论文本不超过规定的字符限制

3.4 数据管理能力要求

文卷和记录的个数:

用户账户记录:预计初期有100个用户账户,预计每年增长5%。

分享内容记录:预计初期每个用户平均每周分享1次内容,总共约100条分享,预计每年增长10%。

互动记录(点赞、评论、分享):预计初期每条分享平均有5次互动,总共约500条互动记录,预计每年增长15%。

表和文卷的大小规模:

用户账户信息表:每个用户账户信息平均占用1KB,预计初期需要100KB存储空间,考虑到增长,每年需增加5KB。

分享内容表:每条分享内容平均占用100MB(包括文本、图像和视频),预计初期需要9.76GB存储空间,每年需增加0.97GB。

互动记录表:每个互动记录平均占用0.5KB,预计初期需要250KB存储空间,每年需增加37.5KB。

存储要求的估算:

考虑到数据的可预见增长,初期至少需要10GB的存储空间,并且每年需要增加额外的存储空间以满足增长需求。

需要建立数据备份和恢复机制,确保数据的安全性和完整性。

应采用可扩展的存储解决方案,如云存储服务,以便于根据实际需求动态调整存储容量。

3.5故障处理要求

软件故障

数据库连接失败

后果:用户无法登录、上传内容、点赞或评论。

处理要求:系统应自动重试连接,并通知管理员。同时,应显示用户友好的错误消 息,指导用户尝试重新登录或稍后重试。

服务器过载

后果:系统响应时间变慢,可能导致服务不可用。

处理要求:实施负载均衡和自动扩展功能,以分散请求和增加服务器容量。同时, 显示适当的系统维护消息,告知用户系统正在努力恢复服务。

软件错误

后果:功能异常,如内容无法正确显示,互动功能失效。

处理要求:立即修复错误并部署更新。在问题解决前,向用户显示清晰的错误信息, 并提供临时解决方案或联系方式以获取帮助。

硬件故障

硬盘故障

后果:数据丢失或服务中断。

处理要求:定期进行数据备份,并使用RAID配置或等效的冗余存储解决方案以防 止数据丢失。在发生故障时,快速更换损坏的硬件并恢复数据。

网络设备故障

后果:用户无法访问服务。

处理要求:确保有足够的网络设备冗余,如多个路由器和交换机。在发生故障时, 立即切换到备用设备,并通知网络提供商以解决根本问题。

故障处理的一般要求

  1. 实时监控系统状态,及时发现并响应故障。
  2. 建立故障响应流程,包括通知相关人员、记录故障信息、诊断问题、制定解决方案和恢复服务。
  3. 定期进行故障演练和恢复测试,确保故障处理方案的可行性和有效性。
  4. 为用户提供透明的故障信息和定期的状态更新,以维护用户信任和满意度。

3.6 其他专门要求

  1. 安全保密要求
  • 用户数据保护:软件应确保用户数据的安全,包括个人信息、上传的内容和互动记录,应采用传输过程中的安全。个人敏感数据应该使用加密技术来保护数据存储。
  • 访问控制:实施严格的用户身份验证和权限管理,确保只有授权用户才能访问和修改数据。
  • 安全审计:定期进行安全审计,以识别潜在的安全漏洞并及时修复。
  1. 使用方便要求

用户界面:提供直观、易操作的界面,确保新用户能够快速上手。

  1. 可维护性、可补充性要求
  • 模块化设计:软件应采用模块化设计,以便于未来的扩展和维护。
  • 代码注释和文档:开发过程中应详细注释代码,并维护最新的开发文档,以便于新团队成员理解和接手项目。
  1. 易读性要求
  • 代码规范:遵循一致的代码风格和命名规范,确保代码的可读性。
  • 清晰的结构:软件应有清晰的目录结构和逻辑流程,便于开发者理解和修改。
  1. 可靠性要求
  • 错误处理:软件应有完善的错误处理机制,确保在遇到异常情况时能够优雅地处理错误,并向用户提供有用的错误信息。
  • 系统监控:实施实时系统监控,以及时发现并解决潜在的问题。

4 运行环境规定

4.1 设备

该软件运行在4H8G10M-Linux-CentOS7.9(X86_64)服务器上,处理器型号为Intel(R) Xeon(R) Platinum 8255C CPU @ 2.50GHz * 1其中有1个物理CPU,4个物理核心,4个逻辑核心。

磁盘挂载点:/ 共:98.25G,文件系统:/dev/vda1类型:ext4,系统占用:4.1G

运行总内存:7695 MB

4.2 支持软件

操作系统

开发环境:Windows, macOS, Linux(建议使用Ubuntu或CentOS)

生产环境:Linux(如Ubuntu, CentOS, Debian)

编译(或汇编)程序

Java编译器:JDK 17或更高版本(因为Spring Boot 3要求Java 17)

Node.js编译器:用于编译Vue.js应用程序

依赖管理工具

Maven或Gradle:用于管理Java项目的依赖项和构建过程

npm或yarn:用于管理Vue.js项目的依赖项

IDE(集成开发环境)

IntelliJ IDEA、Eclipse或Visual Studio Code:提供代码编辑、调试和项目管理功能

版本控制系统

Git:用于版本控制和源代码管理

数据库管理系统

MySQL

缓存服务器

Redis:用于提高系统性能和减少数据库负载

测试支持软件

JUnit:用于Java单元测试

Cypress或TestCafe:用于端到端(E2E)测试

其他工具和库

Spring Boot开发工具:用于简化Spring Boot应用的开发流程

Vue CLI:用于快速搭建Vue.js项目框架

Element UI或Vuetify:用于Vue.js项目的UI组件库

4.3 接口

数据库接口

软件需要与数据库管理系统通信,以存储和检索用户数据、内容分享数据等。这通常通过JDBC(Java Database Connectivity)或特定的数据库驱动程序实现。

缓存接口

使用缓存服务器(如Redis),软件需要通过适当的客户端库与缓存服务器通信,以存储和管理缓存数据。

文件存储接口

对于用户上传的图像和视频文件,软件可能需要与文件存储服务通信,以存储和检索文件。

推送通知接口

如果软件提供推送通知功能,需要与推送服务(如邮箱推送接口)接口,以发送实时通知给用户。

前后端分离架构接口

在Spring Boot后端和Vue.js前端之间,通常使用RESTful API或WebSocket进行数据通信。这可能涉及JSON或XML数据格式。

4.4 控制

用户界面控制:

用户通过Web界面或移动应用与软件交互,包括上传内容、点赞、评论等操作。这些操作是用户直接发出的控制信号,通过前端应用程序传递到后端服务器。

后端服务控制:

后端服务的管理通常通过配置文件、环境变量或命令行参数来控制。例如,Spring Boot应用通常有一个application.properties或application.yml文件,用于配置数据库连接、服务器端口、日志级别等。

控制台命令:

运维人员可以通过命令行接口(CLI)执行控制台命令来管理应用程序,如启动、停止、重启服务,以及查看日志、运行状况检查等。

自动化脚本:

自动化脚本(如Shell脚本、Python脚本)可以用来批量处理任务或定时执行特定的操作,如数据备份、系统更新等。

第三方服务集成:

如果软件集成了第三方服务(如对象存储),这些服务可能会提供控制信号,如存储成功的通知、认证失败的警告等。

监控和日志管理系统:

监控系统(如Prometheus、Nagios)和日志管理系统(如ELK Stack)可以提供控制信号,如系统性能指标超出阈值时的警告或系统异常时的警报。

分布式控制系统:

如果软件部署在容器化或云环境中,如Kubernetes,控制信号可能来自集群管理系统,用于自动扩展、负载均衡和故障恢复。

定时任务和调度器:

定时任务(如Cron作业)或调度器(如Quartz)可以用来定期执行特定的任务,如数据清理、报告生成等。

控制信号的来源:

用户操作:用户通过用户界面直接发出的控制信号。

系统管理员:运维人员通过命令行、脚本或配置文件进行的操作。

自动化系统:自动化脚本、定时任务或分布式控制系统自动发出的控制信号。

第三方服务:集成的第三方服务通过API调用或消息队列发出的控制信号。

监控系统:监控系统根据设定的规则和阈值发出的警报和通知。

技术分享,如果您觉得内容不错的话不妨进行打赏,您的支持将鼓励我继续创作!


如果你对本文有看法或更好的见解可以点击下方按钮进行评论
*注:本站为非交互网站
此按钮将会转跳至评论站点 i-nmb.chat 进行评论

欢迎关注我的其它发布渠道