目录
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) | 默认值 | 备注 |
---|---|---|---|---|---|
id | bigint | Y | Y | 编号,主键自增 | |
state | tinyint | Y | N | 0 | 状态,0正常,1禁用 |
deleteState | tinyint | Y | N | 0 | 是否删除,0否,1是 |
createTime | dateTime | Y | N | 创建时间,精确到秒 | |
updateTime | dateTime | Y | N | 更新时间,精确到秒 |
需要注意的是,目前大部分的项目中不真正的删除数据,而是用标识表示是否删除。
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,具体的参数和返回值,调试完成后,生成相应文档。