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

4.8 KiB
Raw Permalink Blame History

SoftBus OPC 代码统计与可控性报告

工程路径:softbus_OPC/
统计日期2026-06-24自主化改造完成后
统计口径:有效行数 = 非空行(注释未做 AST 级剔除,与专业测评工具存在约 ±5% 偏差)
参考标准T/ISC 0043-2024 及 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/(已清空 vendorbuild/_deps/、OpenSSL 系统动态库

详见 docs/submission_scope.mddocs/SBOM.md


7. 统计复现命令

# 自研有效行数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. 构建验证

cmake -B build -DSOFTBUS_WITH_OPCUA=ON
cmake --build build -j

产物:softbus_daemonsoftbus_edgecmd_sendertopic_watcher


9. 相关文档

文档 说明
docs/submission_scope.md 送检边界约定
docs/SBOM.md 软件物料清单
third_party/README.md 第三方目录说明
docs/软件总体架构.md 系统架构