3. 软件需求规格说明书 系统设计

news2024/12/22 23:41:25

目录

1. 软件需求规格说明书

2. 系统设计

3. 技术选型

4. 数据库实体

4.1 数据库设计

4.1.1 数据库名 forum_db

4.1.2 用户表 t_user

4.1.3 板块表 t_board

4.1.4 帖子表 t_article

4.1.5 帖子回复表 t_article_reply

4.1.6 站内信表 t_message

4.2 SQL 脚本

4.3 API 接口规范


1. 软件需求规格说明书

通过识别参与者、合并需求获取用例、细化用例描述、定义概念类、确定类之间的关系、为类添加职责、建立交互图等步骤,已经完成了需求的定义,并把现实世界中的事物抽象成了面向对象中的类,同时也确定了系统的主要功能和范围,上述的工作是编写软件需求规格说明书的基础,只要这些需求汇总起来就形成了软件需求规格说明书中的需求部分。
软件需求规格说明书做为需求分析阶段交付的成果,对系统设计与系统开发有重要的指导意义。

2. 系统设计

根据需求文档进行系统设计
目标:

  1. 确定技术选型
  2. 设计数据库结构

3. 技术选型

目标:确定技术平台以及开发和部署相关工具及版本。

1. 开发环境

2. 测试环境

3. 生产环境

类别描述
构架基于 MVC 构架,实现前后端分离
编码格式UTF-8
前后端交互数据格式
JSON
JDK 版本JDK1.8
服务器端技术
SpringBoot 2.7.6
Spring MVC
MyBaits Start 2.3.0
浏览器端技术
HTML, CSS, JavaScript
jQuery3.x
Bootstrap
数据库MySQL5.7
项目构建工具Maven 3.8.x
版本控制工具Git 2.36.0 及以上 + GITEE
开发工具
IntelliJ IDEA社区版 2022.1.3
API⽂档⽣成⼯具
Swagger
Springfox 3.0.0

我们需要确保不同环境中版本号一致。

4. 数据库实体

通过需求分析获得概念类并结合业务实现过程中的技术需要,设计出数据库实体。

4.1 数据库设计

4.1.1 数据库名 forum_db
公共字段:无特殊要求的情况下,每张表必须有长整型的自增主键,删除状态、创建时间、更新时
间,如下所示:
字段类型非空(Y/N)主键(Y/N)默认值备注
idbigintYY编号,主键自增
statetinyintYN0状态,0正常,1禁用
deleteStatetinyintYN0是否删除,0否,1是
createTimedateTimeYN创建时间,精确到秒
updateTimedateTimeYN更新时间,精确到秒

需要注意的是,目前大部分的项目中不真正的删除数据,而是用标识表示是否删除。

4.1.2 用户表 t_user

关于图片数据库中至存储 URL,不保存具体的二进制文件。

4.1.3 板块表 t_board
4.1.4 帖子表 t_article
4.1.5 帖子回复表 t_article_reply
4.1.6 站内信表 t_message

4.2 SQL 脚本

根据数据库设计的结果及表格内容,用数据库客户端工具创建数据库与数据表,并导出SQL脚本,如下所示:
-- 创建数据库,并指定字符集
drop database if exists forum_db;
create database forum_db character set utf8mb4 collate utf8mb4_general_ci;

 根据表格所示,编写 SQL 语句,实现数据库的构建。

4.3 API 接口规范

  • 根据需求分析中顺序图的描述,完成业务代码。
  • 完成编码后对外提供API,具体的参数和返回值,调试完成后,生成相应文档。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/861123.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

最小生成树—Kruskal算法

什么是最小生成树? 首先,最小生成树一定数无向图,并且在不影响所有点都连通的情况下,所有边的权重加起来最小值是多少。 比如说:无向图abcp如下图所示,每条边权重也标记出来了。最小生成树就如右侧所示。 …

什么是DNS的缓存?

DNS 缓存是一个临时的数据库,存储在计算机或网络设备(如路由器)上,用于保存最近的 DNS 查询结果。这种缓存机制可以加速后续的相同查询,因为设备可以直接从缓存中提取先前的查询结果,而不需要再次到外部的 …

0基础学C#笔记08:插入排序法

文章目录 前言一、过程简单描述:二、代码总结 前言 我们在玩打牌的时候,你是怎么整理那些牌的呢?一种简单的方法就是一张一张的来,将每一张牌插入到其他已经有序的牌中的适当位置。当我们给无序数组做排序的时候,为了…

07-2_Qt 5.9 C++开发指南_二进制文件读写(stm和dat格式)

文章目录 1. 实例功能概述2. Qt预定义编码文件的读写2.1 保存为stm文件2.2 stm文件格式2.3 读取stm文件 3. 标准编码文件的读写3.1 保存为dat文件3.2 dat文件格式3.3 读取dat文件 4. 框架及源码4.1 可视化UI设计4.2 mainwindow.cpp 1. 实例功能概述 除了文本文件之外&#xff…

竞赛项目 深度学习的口罩佩戴检测 - opencv 卷积神经网络 机器视觉 深度学习

文章目录 0 简介1 课题背景🚩 2 口罩佩戴算法实现2.1 YOLO 模型概览2.2 YOLOv32.3 YOLO 口罩佩戴检测实现数据集 2.4 实现代码2.5 检测效果 3 口罩佩戴检测算法评价指标3.1 准确率(Accuracy)3.2 精确率(Precision)和召回率(Recall)3.3 平均精…

刷题笔记 day7

力扣 209 长度最小的子数组 解法:滑动指针(对同向双指针区间内的数据处理) 1)先初始化 两个指针 left ,right。 2)右移指针right的同时使用sum记录指针right处的值,并判断sum的值是否满足要求&…

直接在html中引入Vue.js的cdn来实现一个简单的博客

摘要 其实建立一个博客系统是非常简单的&#xff0c;有很多开源的程序&#xff0c;如果你不喜欢博客系统&#xff0c;也可以自己开发&#xff0c;也可以自己简单做一个。我这次就是用Vue.js和php做后端服务实现一个简单的博客。 界面 代码结构 代码 index.html <!DOCTYP…

逆向破解学习-单机斗地主

试玩 破解思路 9000 是成功的代码 Hook代码 import de.robv.android.xposed.XC_MethodHook; import de.robv.android.xposed.XposedHelpers; import de.robv.android.xposed.callbacks.XC_LoadPackage; public class HookComJuneGameDouDiZhu extends HookImpl{ Override p…

实验室如何选择适合的LIMS实验室管理系统

实验室信息管理系统(LIMS)是从20世纪70年代末开始发展起来的&#xff0c;距今在国外已发展40多年。国内发展历史约20多年&#xff0c;且前十几年国内市场上主要是国外进口的LIMS产品&#xff0c;存在价格高、产品重&#xff0c;实施周期长等水土不服的情况。近十年开始&#xf…

matplotlib fig.legend()常用参数 包括位置调整和字体设置等

一、四种方法 legend() legend(handles, labels) legend(handleshandles) legend(labels)1 legend() labels自动通过绘图获取&#xff08;Automatic detection of elements to be shown in the legend&#xff09; # 第一种方法 ax.plot([1, 2, 3], labelInline label) ax.l…

竞赛项目 深度学习实现语义分割算法系统 - 机器视觉

文章目录 1 前言2 概念介绍2.1 什么是图像语义分割 3 条件随机场的深度学习模型3\. 1 多尺度特征融合 4 语义分割开发过程4.1 建立4.2 下载CamVid数据集4.3 加载CamVid图像4.4 加载CamVid像素标签图像 5 PyTorch 实现语义分割5.1 数据集准备5.2 训练基准模型5.3 损失函数5.4 归…

仿到位|独立版家政上门预约服务小程序家政保洁师傅上门服务小程序上门服务在线派单源码

上门预约服务派单小程序家政 小程序 同城预约 开源代码 独立版. 程序完整,经过安装检测,可放心下载安装。 适合本地的一款上门预约服务小程序,功能丰富,适用多种场景。 程序功能:城市管理/小程序DIY/服务订单/师傅管理/会员卡功能/营销功能/文章功能等等

业绩难言乐观,皓泽电子撤回上市申请,小米等为其关联方

撰稿|行星 来源|贝多财经 8月8日&#xff0c;深圳证券交易所披露的信息显示&#xff0c;由于河南皓泽电子股份有限公司&#xff08;下称“皓泽电子”&#xff09;及其保荐人主动要求撤回申请文件&#xff0c;深交所终止了皓泽电子的发行注册程序。 据此前招股书披露&#xff…

大模型的数据隐私问题有解了,浙江大学提出联邦大语言模型

作者 | 小戏、Python 理想化的 Learning 的理论方法作用于现实世界总会面临着诸多挑战&#xff0c;从模型部署到模型压缩&#xff0c;从数据的可获取性到数据的隐私问题。而面对着公共领域数据的稀缺性以及私有领域的数据隐私问题&#xff0c;联邦学习&#xff08;Federated Le…

火车头采集伪原创插件【php源码】

大家好&#xff0c;小编来为大家解答以下问题&#xff0c;python代码大全和用法&#xff0c;python代码大全简单&#xff0c;现在让我们一起来看看吧&#xff01; 火车头采集ai伪原创插件截图&#xff1a; 1、题目&#xff1a;列表转换为字典。 程序源代码&#xff1a; 1 #!/us…

外部节点访问 k8s 集群内的 starrocks

问题描述 用kubeadm在虚拟机搭建了k8s&#xff0c;按starrocks官网步骤&#xff0c;用k8s部署了starrocks 部署成功&#xff1a; 在 k8s集群内节点访问到 sr&#xff1a;&#xff08;通过 clusterIP &#xff09; mysql -h 10.97.182.109 -uroot -P 9030 k8s 节点内访问成功…

windows10开启远程连接

目录 开启远程连接远程连接 开启远程连接 右击电脑图标->属性 点击 远程设置 远程连接 找到 远程桌面连接 点击 远程桌面连接 输入远程ip 10.0.8.5 然后点击连接 4.输入默认用户名new的密码&#xff0c;然后确定&#xff0c;搞定。

tensorflow-gpu cuda cudNN tensorRT 安装

tensorflow-gpu cuda cudNN tensorRT 安装 tensorflow-gpu 版本对应关系 https://tensorflow.google.cn/install/source#gpu CUDA 安装 安装文档 https://docs.nvidia.com/cuda/ linux 安装文档 &#xff1a;https://docs.nvidia.com/cuda/cuda-installation-guide-linux/i…

爬虫如何应对网站的反爬机制?如何查找user-agent对应的值

import requestsurl https://movie.douban.com/top250 response requests.get(url) # 查看结果 print(response)在requests使用一文中我们有讲到&#xff0c;当状态码不是200时表示爬虫不可用&#xff0c;也就是说我们获取不到网页源代码。但是我们还是可以挣扎一下&#xff…

WordPress博客发布到公网可访问【 windows系统及linux系统操作】

文章目录 1. 免费注册并下载安装cpolar内网穿透1.1 windows系统1.2 linux系统 2. 将内网映射到公网3. 获取所映射的公网地址 要将自己搭建的个人WordPress博客网站发布到公网可访问&#xff0c;比较常规的做法是买服务器、域名&#xff0c;将其部署到服务器上&#xff0c;备案发…