内容介绍
本书专注于嵌入式工业软件开放架构——基于 FACE 架构的应用和实践。首先,探讨了软件工程与软件架构的发展历程,介绍了软件工程的诞生背景、软件架构的定义和作用,以及软件架构的分类与描述方法。其次,聚焦嵌入式工业软件的可移植性及其解决方案,讨论了紧耦合问题和包依赖问题,并提出了关注点分离的解决方案;介绍了不同嵌入式工业系统的软件架构,展示了嵌入式工业软件架构设计的普遍原则和趋势。接着,专注于航空电子系统 FACE 架构,全面描述了其需求及设计原理,探讨了基于 FACE 架构的数字地图管理器案例。同时,详细介绍了航空电子系统的数据架构原理及相关案例。然后,介绍了开放架构下的软件嵌入式系统建模方法、模型与代码的映射关系,以及开放架构模型的代码生成技术,包括系统代码生成、ARINC653 系统代码自动生成方法和数据模型代码生成方法的研究。*后,介绍了航空电子系统 FACE 架构建模平台的研制原理,包括设计方案、工具功能设计、数据模型的解析、开发框架和实现原理,以及组件代码生成方法的研究与飞机作战辅助系统案例分析。本书旨在帮助读者深入理解软件架构在嵌入式工业软件领域的应用,特别是航空电子系统的 FACE 架构及其相关技术,对于从事相关领域研究和开发的专业人士具有重要的参考价值。
目录
目 录
第 1 章 软件工程与软件架构·················································································1
1.1 引言 ······················································································································.1
1.1.1 软件工程的诞生背景························································································.1
1.1.2 软件架构的定义······························································································.1
1.1.3 软件架构的作用······························································································.2
1.2 软件工程与软件架构的发展 ························································································.2
1.3 软件架构的分类与描述方法 ························································································.3
1.3.1 软件架构的分类······························································································.3
1.3.2 不同类型软件架构的结合应用············································································10
1.3.3 软件架构的描述方法························································································11
第 2 章 嵌入式工业软件可移植面临的问题及解决方案·············································.13
2.1 嵌入式工业软件可移植面临的问题 ···············································································13
2.1.1 紧耦合问题····································································································13
2.1.2 包依赖问题····································································································15
2.2 关注点分离解决方案 ·································································································16
第 3 章 嵌入式工业系统的软件架构·····································································.19
3.1 航空电子系统软件架构 ······························································································19
3.2 机器人操作系统软件架构 ···························································································20
3.3 分布式控制系统软件架构 ···························································································20
3.4 汽车开放系统的软件架构 ···························································································21
3.5 嵌入式工业软件架构设计的普遍原则和趋势 ···································································23
第 4 章 航空电子系统 FACE 架构 ·······································································.24
4.1 FACE 架构概览········································································································24
4.2 OSS·······················································································································25
4.2.1 总体需求·······································································································25
4.2.2 操作系统分区·································································································27
4.2.3 分区间通信····································································································27
4.2.4 分区内通信····································································································31
4.2.5 本地内存分配·································································································34
4.2.6 共享内存·······································································································35
4.3 IOSS······················································································································36
4.3.1 IOSS 的定义···································································································37
4.3.2 关键特性·······································································································38
4.3.3 I/O 服务接口 ··································································································39
4.3.4 可配置性·······································································································40
4.3.5 可变性··········································································································41
4.4 PSSS ·····················································································································48
4.4.1 配置服务·······································································································48
4.4.2 系统级健康监控······························································································55
4.5 TSS ·······················································································································59
4.5.1 TSS 的概念····································································································59
4.5.2 TSS 的功能····································································································59
4.5.3 消息数据结构·································································································61
4.5.4 传输服务 API ·································································································62
4.5.5 可移植 FACE UoP 内的传输 API ·········································································63
4.5.6 传输服务支持的通信方式和类型·········································································63
4.5.7 传输服务配置·································································································64
4.5.8 传输服务的实现方式························································································65
4.5.9 TSS 通信代码调用结构与实现············································································67
4.6 PCS ·······················································································································68
4.6.1 UoP 概述·······································································································69
4.6.2 UoP 分解·······································································································70
4.6.3 PSSS UoP ······································································································72
4.6.4 UoP 打包·······································································································73
4.7 基于 FACE 架构的数字地图管理器案例分析···································································74
4.7.1 运行视图·······································································································74
4.7.2 功能视图·······································································································74
4.7.3 物理视图·······································································································75
4.7.4 前提假设·······································································································76
4.7.5 架构环境·······································································································76
第 5 章 航空电子系统数据架构···········································································.83
5.1 数据模型语言 ··········································································································84
5.1.1 数据模型·······································································································84
5.1.2 UoP 模型·······································································································85
5.1.3 集成模型·······································································································86
5.1.4 可追溯性模型·································································································86
5.2 共享数据模型 ··········································································································87
第 6 章 开放架构下软件嵌入式系统建模方法·························································.88
6.1 系统建模方法概述 ····································································································88
6.2 系统功能的组件化方法 ······························································································89
6.2.1 系统功能分析·································································································89
6.2.2 系统功能组件化······························································································89
6.3 面向组件的端口和消息类型的数据建模 ·········································································91
嵌入式工业软件开放架构技术与实践——基于 FACE 架构 ·VI·
6.3.1 CDM ············································································································92
6.3.2 LDM ············································································································93
6.3.3 PDM ············································································································93
6.3.4 UoP 模型·······································································································93
6.4 组件与外部设备通信的 I/O 服务···················································································94
6.4.1 I/O 配置文件建模方法 ······················································································94
6.4.2 I/O 配置文件实例分析 ······················································································95
6.5 组件间的传输服务 ····································································································96
6.6 ARINC 653 系统分区的自动化配置方法研究···································································98
6.6.1 ARINC 653 系统资源配置建模及系统资源配置的定义 ·············································98
6.6.2 资源配置文件的自动化解析及验证···································································.102
6.6.3 分区间调度模型及分区内任务调度模型可调度性判定···········································.104
6.7 飞机作战辅助系统案例建模方法 ···············································································.114
6.7.1 功能组件化·································································································.115
6.7.2 操作系统选型及操作系统分区·········································································.117
6.7.3 数据建模····································································································.117
第 7 章 开放架构下模型与代码的映射关系研究·····················································.122
7.1 目标代码结构定义 ·································································································.122
7.1.1 系统代码设计······························································································.122
7.1.2 数据模型代码设计························································································.123
7.1.3 组件代码设计······························································································.123
7.2 FACE 模型与代码的映射规则···················································································.124
7.2.1 PDM 到 IDL 的映射 ······················································································.124
7.2.2 IDL 到程序语言(C++)的映射·······································································.125
7.2.3 系统模型与系统代码的映射关系······································································.127
7.2.4 数据模型与数据类型代码的映射关系································································.128
7.2.5 UoP 与组件代码的映射关系············································································.129
7.2.6 ARINC 653 系统配置模型与代码的映射规则 ······················································.129
第 8 章 开放架构下模型的代码生成技术······························································.132
8.1 模型到代码自动生成方法概述 ··················································································.132
8.2 系统代码生成模板设计 ···························································································.132
8.3 ARINC 653 系统代码自动生成方法研究······································································.134
8.3.1 ARINC 653 系统模块配置文件生成模板设计 ······················································.134
8.3.2 分区初始化代码生成模板设计·········································································.135
8.3.3 自动化编译模板文件设计···············································································.135
8.4 数据模型代码生成方法研究 ·····················································································.135
8.4.1 数据模型代码生成方法概述············································································.135
8.4.2 不同数据类型的 String Template 模板设计··························································.136
8.4.3 生成数据类型代码························································································.140
第 9 章 FACE 架构建模平台研制 ·······································································.142
9.1 FACE 建模平台设计方案·························································································.142
9.1.1 工具总体架构设计························································································.142
9.1.2 FACE 模型组成元素的类图设计 ······································································.142
9.1.3 模型文件设计······························································································.145
9.2 FACE 建模平台的开发····························································································.146
9.2.1 工具功能设计······························································································.147
9.2.2 数据模型的解析···························································································.156
9.2.3 工具开发框架······························································································.157
9.3 组件代码生成方法研究 ···························································································.158
9.3.1 组件 String Template 模板设计·········································································.158
9.3.2 解析组件模型文件和生成组件代码···································································.160
9.4 飞机作战辅助系统案例分析 ·····················································································.160
参考文献 ········································································································.162
作者介绍
马春燕,西北工业大学软件学院副院长,具有丰富的科研经历和写作经历,同时承担多项重点科研项目。在科研和教学工作中多次获奖。
媒体评论
本书专注于嵌入式工业软件开放架构——基于 FACE 架构的应用和实践。首先,探讨了软件工程与软件架构的发展历程,介绍了软件工程的诞生背景、软件架构的定义和作用,以及软件架构的分类与描述方法。其次,聚焦嵌入式工业软件的可移植性及其解决方案,讨论了紧耦合问题和包依赖问题,并提出了关注点分离的解决方案;介绍了不同嵌入式工业系统的软件架构,展示了嵌入式工业软件架构设计的普遍原则和趋势。接着,专注于航空电子系统 FACE 架构,全面描述了其需求及设计原理,探讨了基于 FACE 架构的数字地图管理器案例。同时,详细介绍了航空电子系统的数据架构原理及相关案例。然后,介绍了开放架构下的软件嵌入式系统建模方法、模型与代码的映射关系,以及开放架构模型的代码生成技术,包括系统代码生成、ARINC653 系统代码自动生成方法和数据模型代码生成方法的研究。*后,介绍了航空电子系统 FACE 架构建模平台的研制原理,包括设计方案、工具功能设计、数据模型的解析、开发框架和实现原理,以及组件代码生成方法的研究与飞机作战辅助系统案例分析。
关联推荐
本书专注于嵌入式工业软件开放架构——基于 FACE 架构的应用和实践。首先,探讨了软件工程与软件架构的发展历程,介绍了软件工程的诞生背景、软件架构的定义和作用,以及软件架构的分类与描述方法。其次,聚焦嵌入式工业软件的可移植性及其解决方案,讨论了紧耦合问题和包依赖问题,并提出了关注点分离的解决方案;介绍了不同嵌入式工业系统的软件架构,展示了嵌入式工业软件架构设计的普遍原则和趋势。接着,专注于航空电子系统 FACE 架构,全面描述了其需求及设计原理,探讨了基于 FACE 架构的数字地图管理器案例。同时,详细介绍了航空电子系统的数据架构原理及相关案例。然后,介绍了开放架构下的软件嵌入式系统建模方法、模型与代码的映射关系,以及开放架构模型的代码生成技术,包括系统代码生成、ARINC653 系统代码自动生成方法和数据模型代码生成方法的研究。*后,介绍了航空电子系统 FACE 架构建模平台的研制原理,包括设计方案、工具功能设计、数据模型的解析、开发框架和实现原理,以及组件代码生成方法的研究与飞机作战辅助系统案例分析。