【软考-系统架构设计师】特定领域软件体系结构(DSSA)
真实场景:为一家汽车制造巨头开发“车载信息娱乐系统(IVI)”平台
- 领域(Domain): 车载信息娱乐系统(In-Vehicle Infotainment)
- 领域范围(Domain Scope): 为不同品牌、不同档次的车型提供一套统一的软件平台,用于管理车载音频、视频、导航、车辆设置、手机互联(如Apple CarPlay/Android Auto)以及第三方应用(如 Spotify)。
一、为什么需要DSSA?
传统做法:为每款新车型,软件团队都几乎从零开始开发IVI系统。这导致:
- 开发成本极高:重复造轮子。
- 开发周期漫长:无法快速适配新车型。
- 质量参差不齐:不同团队开发,Bug多多。
- 维护噩梦:一个Bug需要在几十个不同版本的系统上修复。
DSSA的解决方案:不为某一款特定车型开发一个特定的IVI系统,而是为“IVI”这个领域设计一个标准的参考架构和一套可复用的核心构件。任何新车型的IVI开发,都将基于这个基础进行“定制”和“组装”。
二、DSSA的实施过程
1. 领域分析(Domain Analysis)
- 参与人员:领域专家(来自各大车厂的产品经理、资深IV系统架构师)、领域分析师(软件架构师)。
- 工作:分析所有现有和未来的IVI系统,找出共性和可变性。
- 产出 - 《领域模型》:
- 共性(Commonalities):
- 所有IVI系统都必须有音频管理(播放、暂停、音场调节)、视频管理、导航功能、蓝牙电话、车辆设置(如氛围灯、座椅调节)等核心功能。
- 都必须与车辆CAN总线通信以获取车辆数据。
- 都需要支持OTA(空中下载)升级。
- 可变性(Variabilities):
- 硬件抽象:不同车型使用的芯片(如高通、英特尔)、屏幕(大小、分辨率)、音响品牌(如Bose、B&O)都不同。
- 功能组合:经济型车型可能只有基础音频和蓝牙,而豪华车型会有高级导航、后排娱乐控制等功能。
- UI/UX:每个汽车品牌希望有自己的独特用户界面和交互风格。
- 共性(Commonalities):
2. 领域设计(Domain Design)
- 参与人员:领域设计人员(顶级系统架构师)。
- 工作:基于领域模型,设计一个能容纳所有共性和可变性的参考架构(Reference Architecture)。
- 产出 - 《参考架构图》(通常采用分层架构风格):
- 硬件抽象层(HAL):应对“硬件可变性”。定义统一的接口(如AudioInterface、DisplayInterface),屏蔽不同硬件厂商的驱动差异。为高通平台和英特尔平台提供不同的实现,但向上层提供相同的服务。
- 核心服务层:实现“功能共性”。提供可复用的服务构件,如AudioService、NavigationService、BluetoothService。这些构件通过HAL的接口操作硬件,实现核心业务逻辑。
- 应用层:应对“功能组合可变性”。包含具体的功能应用,如“音乐App”、“导航App”。它们调用核心服务层的接口。可以根据车型配置决定预装哪些应用。
- UI框架层:应对“UI/UX可变性”。提供一套强大的UI开发框架(如Qt),允许UI设计师通过配置主题、皮肤、布局来为不同品牌生成完全不同的界面,而无需修改底层业务代码。
3. 领域实现(Domain Implementation)
- 参与人员:领域实现人员(开发工程师)。
- 工作:根据参考架构,开发可复用的领域构件,并建立构件库。
- 产出 - 《可复用资产库》:
- AudioService构件及其针对不同芯片的HAL适配器。
- NavigationEngine导航引擎构件。
- OTAUpdateManagerOTA升级管理构件。
- 代码生成工具:输入车型的硬件配置单(用什么芯片、多大屏幕),自动生成HAL和底层驱动代码的骨架。
- 应用工厂:可以快速组装出一个包含指定功能组合的IVI系统镜像。
三、DSSA的应用:如何开发一款新车的IVI?
现在,当公司需要为一款新的电动SUV开发IVI系统时,流程变得极其高效:
- 领域特定应用开发:应用工程师(而非领域专家)接手项目。
- 收集需求:新车型使用高通8155芯片、12.8英寸OLED屏、需要高级导航和Harman音响。
- 选取构件:从构件库中选取AudioService、NavService,以及为高通8155和Harman音响定制好的HAL适配器。
- 定制UI:UI设计师使用UI框架层的工具,根据SUV的品牌调性设计一套新的UI主题。
- 组装与测试:利用“应用工厂”工具,将所选构件、HAL驱动、UI主题打包,生成一个可运行的系统镜像,进行测试。
- 部署:将镜像烧录到新车中。
整个开发过程从过去的“研发”变成了“配置、组装和定制”,周期从数年缩短到数月。
总结
在这个场景中,特定领域软件体系结构(DSSA) 就是指:
那套《参考架构》(分层架构+微内核思想)。
那本《领域模型》(对IVI领域共性和可变性的深刻理解)。
那个《可复用资产库》(一堆高内聚、低耦合的服务构件、HAL适配器和开发工具)。
DSSA不是某个具体的软件产品,而是一套用于快速生成该领域内多个具体应用的体系结构、构件和方法的集合。它的终极目标是实现大规模、高效率的软件复用,将软件开发从“手工作坊”模式升级为“现代化工厂”的组装模式。