user/README.md

73 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 数据处理与交互平台(测试系统)
## 概述
本工程是一个模拟的数据处理与交互平台(测试系统),采用管道流式处理架构。
核心功能包括:
- **CSU-01 (DataReceiver)**:模拟 TCP 服务端,按自定义协议(消息头 + 消息体)接收外部数据源的数据。
- **CSU-02 (DataProcessor)**:从队列获取原始数据,进行校验(非空、长度、字符合法性)和格式转换。
- **CSU-03 (DataStorage)**:将处理后的数据持久化存储(当前版本使用内存向量模拟数据库写入)。
三个模块通过线程安全队列(`ThreadSafeQueue`)解耦,形成数据流水线。
## 工程结构
```
.
├── CMakeLists.txt # CMake 构建配置
├── README.md # 本文件
├── include/
│ └── app.hpp # 公共头文件(类声明、数据结构)
├── src/
│ ├── main.cpp # 命令行入口(完整流水线演示)
│ └── app.cpp # 模块实现
└── tests/
└── basic_test.cpp # 单元测试与集成测试
```
## 编译与运行
### 前置条件
- CMake >= 3.14
- 支持 C++17 的编译器GCC 8+, Clang 7+, MSVC 2019+
### 编译步骤
```bash
cd codegen-runs/codegen_fa54ba0e8c734a7683962ff923b15d4b
mkdir -p build && cd build
cmake ..
cmake --build .
```
### 运行主程序
```bash
./dataflow_main
```
### 运行测试
```bash
./basic_test
# 或
ctest
```
## 模块映射
| 文档中的软件单元 | 本工程类名 | 职责 |
|:---|:---|:---|
| CSU-01 | `DataReceiver` | 数据接收(模拟 TCP 服务端、协议拆包) |
| CSU-02 | `DataProcessor` | 数据处理(校验、格式转换) |
| CSU-03 | `DataStorage` | 数据存储(持久化到内存数据库) |
| 内部接口 IF_CSU01_02 | `ThreadSafeQueue<std::string>` | 原始数据传递队列 |
| 内部接口 CSU-02→CSU-03 | `ThreadSafeQueue<std::string>` | 处理后数据传递队列 |
## 需求追踪
| 需求标识 | 需求名称 | 对应函数 |
|:---|:---|:---|
| SRS-测试_F-001 | 数据接收功能 | `DataReceiver::start()`, `DataReceiver::receiveLoop()`, `DataReceiver::parsePacket()`, `DataProcessor::start()`, `DataProcessor::processLoop()`, `DataProcessor::validateAndTransform()`, `DataStorage::start()`, `DataStorage::storageLoop()`, `DataStorage::storeToDatabase()`, `main()` |