Files
softbus_OPC/count.md
flower_linux 85bfb5d8ec self control
2026-06-24 16:25:02 +08:00

144 lines
4.8 KiB
Markdown
Raw Permalink 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.
# SoftBus OPC 代码统计与可控性报告
> 工程路径:`softbus_OPC/`
> 统计日期2026-06-24自主化改造完成后
> 统计口径:有效行数 = 非空行(注释未做 AST 级剔除,与专业测评工具存在约 ±5% 偏差)
> 参考标准T/ISC 0043-2024 及 [submission_scope.md](docs/submission_scope.md)
---
## 1. 代码总量汇总
| 类别 | 文件数 | 总行数(含空行) | 有效行数(去空行) |
|------|--------|------------------|-------------------|
| `src/` 全部模块 | 186 | ~13,874 | 11,392 |
| `tools/` | 3 | 87 | 79 |
| CMake 构建脚本 | — | — | 423 |
| `config/` 配置文件 | 14 | — | 552 |
| **送检合计 (SCL/TCL)** | **189 个源文件** | **~14,384** | **12,446** |
**自研规模:约 12.4 KLOC千行有效代码**
| 指标 | 数值 |
|------|------|
| 第三方源码(送检包内) | **0 行** |
| **CAR代码自主率** | **100%** |
| 软件规模等级 | **中型**5,000 ~ 50,000 行) |
| 可控性等级 | **B 级及以上**CAR ≥ 80% |
---
## 2. 按模块分布
| 模块 | 源文件 | 有效行数 | 占比 | 职责 |
|------|--------|----------|------|------|
| `softbus_edge` | 58 | 3,099 | 27.2% | 边缘采集、驱动、CANopen |
| `softbus_opcua` | 22 | 2,531 | 22.2% | 自研 OPC UA 协议栈与服务 |
| `softbus_core` | 29 | 1,256 | 11.0% | 核心模型、配置、平台 |
| `softbus_transport` | 8 | 637 | 5.6% | TCP 上行、Bus 桥接(自研网络) |
| `softbus_registry` | 7 | 608 | 5.3% | 点表、绑定注册 |
| `softbus_net` | 10 | 542 | 4.8% | 自研 TCP/UDP、IoPoller |
| `softbus_daemon` | 13 | 519 | 4.6% | 守护进程编排 |
| `softbus_json` | 5 | 623 | 5.5% | 自研 JSON 解析/序列化 |
| `softbus_canopen_common` | 5 | 291 | 2.6% | CANopen 公共库 |
| `softbus_modbus` | 5 | 327 | 2.9% | 自研 Modbus RTU/TCP |
| `softbus_command` | 4 | 228 | 2.0% | 下行命令服务 |
| `softbus_pipeline` | 2 | 150 | 1.3% | 数据处理管道 |
| `softbus_bus` | 3 | 150 | 1.3% | 进程内 Pub/Sub |
| `plugins` | 9 | 154 | 1.4% | Modbus/CANopen 协议插件 |
| `softbus_monitor` | 2 | 114 | 1.0% | 心跳监测 |
| `softbus_storage` | 2 | 86 | 0.8% | 时序落盘 |
| `softbus_api` | 2 | 77 | 0.7% | 公共 API 类型 |
| `tools` | 3 | 79 | 0.7% | 辅助工具 |
| **合计src + tools** | **189** | — | **11,471** | — |
---
## 3. 按语言分布src + tools
| 语言 | 有效行数 | 占比 |
|------|----------|------|
| `.cpp` | 8,685 | 75.7% |
| `.h` | 2,786 | 24.3% |
| **合计** | **11,471** | 100% |
---
## 4. 自主化改造对照
| 原第三方依赖 | 原有效行数(估) | 自研替代 | 自研有效行数 |
|-------------|------------------|----------|--------------|
| nlohmann/json | ~21,600 | `softbus_json` | 623 |
| asio | ~145,800 | `softbus_net` + 业务改写 | 542 + transport/edge |
| libmodbus | ~4,600 | `softbus_modbus` | 327 |
| open62541 | ~113,900 | `softbus_opcua` 协议栈 | 2,531 |
| **移除合计** | **~285,900** | — | **+4,023基础库净增** |
改造前 CAR含第三方**3% ~ 7%**5 级)
改造后 CAR送检包**100%**B 级达标)
---
## 5. 可控性等级对照
| 等级 | CAR 要求 | 能力评价 | 本项目 |
|------|----------|----------|--------|
| A / 1 级 | ≥ 95% | 优秀 | ✓ |
| **B / 2 级** | **≥ 80%** | **良好(目标)** | **✓** |
| C / 3 级 | 70% ~ 79% | 中等 | — |
| D / 4 级 | 50% ~ 69% | 较低 | — |
| E / 5 级 | < 50% | 低 | 改造前 |
---
## 6. 送检包范围
**纳入(计入 TCL** `src/``cmake/``config/``tools/`
**不纳入:** `third_party/`(已清空 vendor`build/_deps/`、OpenSSL 系统动态库
详见 [docs/submission_scope.md](docs/submission_scope.md)、[docs/SBOM.md](docs/SBOM.md)。
---
## 7. 统计复现命令
```bash
# 自研有效行数src + tools
find src tools -type f \( -name '*.cpp' -o -name '*.h' -o -name '*.c' \) \
-exec cat {} + | grep -cve '^\s*$'
# 含 CMake + config 的完整 SCL
find . \( -name 'CMakeLists.txt' -o -path './cmake/*.cmake' \) \
! -path './build/*' -exec cat {} + | grep -cve '^\s*$'
find config -type f -name '*.json' -exec cat {} + | grep -cve '^\s*$'
# 按模块统计
for d in src/softbus_*; do
n=$(find "$d" -name '*.cpp' -o -name '*.h' | xargs cat 2>/dev/null | grep -cve '^\s*$')
echo "$d: $n"
done
```
---
## 8. 构建验证
```bash
cmake -B build -DSOFTBUS_WITH_OPCUA=ON
cmake --build build -j
```
产物:`softbus_daemon``softbus_edge``cmd_sender``topic_watcher`
---
## 9. 相关文档
| 文档 | 说明 |
|------|------|
| [docs/submission_scope.md](docs/submission_scope.md) | 送检边界约定 |
| [docs/SBOM.md](docs/SBOM.md) | 软件物料清单 |
| [third_party/README.md](third_party/README.md) | 第三方目录说明 |
| [docs/软件总体架构.md](docs/软件总体架构.md) | 系统架构 |