Page 279 - 《软件学报》2026年第3期
P. 279
1242 软件学报 2026 年第 37 卷第 3 期
块进行封装, 使之具有高度的可复用性、可组合性和可验证性, 极大提升了芯片设计的可靠性和效率. 基于现有软
件和硬件的设计思想, 文献 [14] 提出了软件 IP 的概念以及基于软件 IP 的嵌入式软件智能合成 (IP-based embedded
software intelligent synthesis, IPESIS) 框架. 该框架主要包括以下 4 个部分.
(1) 设计一种基于软件 IP 的嵌入式软件需求描述语言, 该语言支持对软件需求、软件 IP 及系统行为的多维
度抽象表达, 同时利于机器的理解和处理, 利用该语言可以编写软件需求形成软件需求规约.
(2) 构建软件 IP 的表示模型, 以对软件 IP 的功能和性能、输入输出接口等进行抽象和表达, 在此基础上, 从
软件存量资产中提取软件 IP, 构建软件 IP 知识库, 为软件合成提供知识引擎.
(3) 程序合成, 以软件需求规约和软件 IP 知识库中的软件 IP 为输入, 通过智能化技术合成程序代码.
(4) 建立面向合成过程和合成产品的软件质量保障体系, 确保合成程序代码的正确性.
与传统的软件开发过程不同, IPESIS 关注任务需求的抽象和表达, 基于已有的软件资产自动构造程序, 因此
开发者可以将更多精力集中在抽象层次更高的软件需求分析和设计上, 而不被具体的编程实现所困扰.
针对 IPESIS 框架的第 (2) 部分, 本文将定义嵌入式软件 IP 通用模型, 包括知识模型、形式模型和实现这 3 部
分. 知识模型封装软件开发者的知识, 能够帮助开发者和使用者从各个方面理解软件 IP, 并能够辅助软件 IP 的搜
索、适配和组装过程. 知识模型的定义体现了软件 IP 与传统模型表示方法的主要不同. 形式模型形式地定义了软
件 IP 的接口规约以及对外部环境的依赖, 支持软件 IP 的验证和正确的组合, 能够为软件智能合成提供安全保障.
实现则包括软件 IP 的相关代码. 为了支持开发者不同的需求, 本文还提出基于不同关注点的软件 IP 视图, 包括基
本视图、设计视图、验证视图、开发视图以及用户自定义视图, 分别对应不同粒度和不同需求的软件开发.
本文第 1 节介绍嵌入式软件建模、分析与开发的相关工作. 第 2 节介绍面向嵌入式系统的软件 IP 通用模型,
包括知识模型、形式模型和实现, 这 3 部分分别在第 3、4、5 节中进行详细描述. 第 6 节讨论软件 IP 知识模型、
形式模型和实现这三者之间的一致性关系. 第 7 节介绍软件 IP 的各种视图. 第 8 节通过实际案例展示从嵌入式软
件存量资产提取软件 IP 的方法及其有效性和可行性. 最后一节总结本文提出的方法.
1 嵌入式软件建模、分析与开发相关工作
1.1 模型驱动开发
[15] [16] [8]
UML 和 SysML 是广泛使用的图形建模语言, 它们均由 OMG 负责维护 . UML 提供不同种类的图对系统
的功能、结构和行为进行建模, 主要应用于软件工程的需求分析和设计中. SysML 是 UML 的轻量级版本, 但是提
供一些额外的支持系统工程的建模机制. MARTe [17] 是由 OMG 发布的 UML 的面向实时和嵌入式系统的扩展. 然
而, 它们均缺乏严格的形式语义, 并且不支持对系统行为的仿真与验证.
目前已有多个基于模型的嵌入式系统开发环境. Simulink [18] 是由 MathWorks 研制的嵌入式系统图形建模、仿
真与综合的集成开发环境. 它同时支持离散和连续数据流的刻画, 以模块作为基本单元, 通过图、子系统等组合方
[4]
式建立层次化系统模型. AADL 是美国汽车工程师协会 SAE 于 2004 年提出的嵌入式实时系统体系结构的建模语
言, 被广泛应用于航空航天、汽车控制等工业领域中. AADL 通过定义基本构件和复合构件, 能够同时描述系统的
软硬件体系结构和功能行为. 然而, 它对构件的功能和行为描述能力不够, 需要相关领域的专用语言来辅助实现.
Modelica [19] 是一个适用于大规模物理系统和动态系统的建模与仿真环境. 它以面向对象为基础, 允许非因果关系的
数据流刻画, 适用于不同的运行上下文, 因此更强调系统的复用性. 近年来 Modelica 提出 FMI 标准 [20,21] , 致力于将
不同来源的计算模型进行组合并利用各组件所拥有的仿真工具进行协同仿真. Ptolemy [22] 以角色作为系统的基本构
造单元, 通过端口及层次结构来构造复杂的嵌入式系统, 支持包括顺序、并发、实时等不同类型的计算模型. 以上
两个框架能够充分描述系统不同部件之间的组合和交互, 然而它们均不支持嵌入式系统体系结构以及连续动态行
[23]
为的建模. Metropolis 是一个基于特定平台的嵌入式系统建模与仿真环境, 它所提供的元模型语言能够同时描述
计算行为、软硬件体系结构以及功能与体系之间的映射, 并且支持与第三方工具和算法的集成. 文献 [24] 提出了
一个嵌入式系统模型语言框架 ESMoL, 支持系统控制行为、硬件平台以及软件行为多个侧面的集成, 通过描述它

