Page 282 - 《软件学报》2026年第3期
P. 282
徐雄 等: 嵌入式软件 IP 通用模型 1245
Component
图 1 软件功能模型通用模型 图 2 软件构件模型
Block
图 3 数据/事件流模型
2.2 嵌入式软件 IP 通用模型
与一般的软件功能模块不同, 软件 IP 是具有知识产权的可复用的软件知识实体的总称, 是具有特定功能的、
上下文依赖关系及接口定义明确、设计文档规范完整, 经过严格质量验证的软件 [14] . 然而软件 IP 本质上也是一种
软件功能模块, 因此软件 IP 模型也遵照图 1 的模型, 如图 4 所示, 其中输入和输出端口构成了软件 IP 的接口.
输入输出端口
输 输
入 出
端 端
口 口
图 4 嵌入式软件 IP 通用模型
接口部分描述了软件 IP 与外部环境的交互, 每个软件 IP 只对外开放一个接口. 接口描述了软件 IP 对外可见
的部分, 不在接口中的内容对外不可见. 软件 IP 的功能是通过一个函数来实现的, 但是实现细节对外不可见. 外部
环境通过调用 IP 的名称, 实现对这个 IP 功能的调用.
软件 IP 是面向嵌入式实时系统的, 在嵌入式实时系统中资源是至关重要的, 因此在软件 IP 模型中, 接口中的
输入端口、输出端口以及输入输出端口是对资源需求的一种表示. 关于这些端口的类型、存储位置以及占用空间
的大小等信息必须在软件 IP 中有明确的说明.
图 4 中的软件 IP 模型是一种将控制流从数据流分离的软件模型: 如果一个软件 IP 被外部调用, 那么它将执
行它的功能, 即从输入端口 (包括输入输出端口) 读取数据, 进行计算之后从输出端口 (包括输入输出端口) 输送出
去. 实际上软件 IP 的这种工作模式类似于“管道-过滤器”交互式模型 [84] , 如图 5 所示. 所谓“管道-过滤器”交互式模
型是指功能模块可以视为处理数据的“过滤器”, 模块之间的连接称作“管道”, 用于在模块之间传递数据; 控制流的
作用是将某个模块激活, 使其能够响应特定的信号然后执行相应的功能. 文献 [84] 认为, “管道-过滤器”模型在嵌
入式与实时系统领域广泛使用的原因是控制理论可以很容易地映射到这种交互式模型.
一般的软件构件模型采用“请求-响应”模式, 如图 6 所示. 一个构件在请求另一个构件的服务之后, 被请求方
可能会提供给请求方返回值. 这种控制流和数据流不分的模式符合一般软件系统的开发习惯, 因此 CBD 方法更适
用于一般软件系统的开发.
文献 [84] 对比了“管道-过滤器”和“请求-响应”这两种交互式模式, 并且认为一般软件构件模型会使用“请求-
响应”模式, 但是在一些特殊领域 (尤其是嵌入式系统), “管道-过滤器”模式是占据主导地位的. 软件 IP 是面向嵌

