在汽车软件的开发周期中,首先是需要将模糊的概念转化为清晰、可量化的需求列表,明确软件需实现的功能、性能指标、用户界面要求以及安全标准等。随后,进入软件架构设计阶段,这是将需求转化为实际解决方案的过程。软件架构工程师在此阶段扮演核心角色,基于需求分析的结果,结合行业最佳实践、技术趋势及项目约束条件,构思出软件的整体架构。这包括定义系统的层次结构、组件划分、接口定义、数据流及控制流等关键要素。为了确保架构的灵活性与可扩展性,还会考虑模块化设计、服务化架构等先进理念。
在设计过程中,软件架构工程师会利用专业工具和技术手段,如UML图等来辅助表达设计思想。最终,他们会输出详尽的软件架构描述文档,这些文档不仅包含SWC的详细描述信息,如组件功能、接口协议、依赖关系等,还会以多种形式呈现,以满足不同受众的需求。例如,使用Office文档来撰写详细的架构说明书和进行交流展示;利用ARXML(AUTOSARXML)文件来定义符合AUTOSAR标准的软件架构,便于在汽车行业生态系统中进行集成与验证等。
本文将使用MATLAB完成AUTOSARCP(ClassicalPlatform)平台下的软件架构中的SWC(SoftwareComponent)的搭建。
建模时,对MATLAB版本和工具包有一定的要求。以下是详细的说明:
MATLAB版本要求
工具包要求
对于AUTOSARCPSWC建模,除了MATLAB的基本安装外,还需要特定的工具箱和插件。以下是一些关键的工具包要求:
1.Simulink:Simulink是MATLAB的一个附加产品,用于建模、仿真和基于模型的设计。对于AUTOSAR建模,Simulink是必不可少的,因为它提供了图形化的建模环境,可以方便地构建和测试系统模型。
3.EmbeddedCoder:EmbeddedCoder是MATLAB的一个产品,用于将Simulink模型和MATLAB函数自动转换为优化的C和C++代码。在AUTOSARSWC建模中,EmbeddedCoder能够将模型转换为符合AUTOSAR标准的代码,这对于与AUTOSAR兼容的ECU(ElectronicControlUnit,电子控制单元)的部署至关重要。
综上所述,为了使用MATLAB进行AUTOSARCPSWC建模,需要确保安装了最新版本的MATLAB、Simulink以及必要的AUTOSAR支持工具包和EmbeddedCoder。
#03建模输入
SWC的设计属于SWE.2软件架构设计的工作,需要接收来自于SWE.1的软件需求分析输出,再着手SWC的设计。这包括SWC的划分、port&interface接口的定义、参数与数据类型等。
假定之前的准备工作均已经完成,“座椅加热”功能的需求与需求分析的结果如下:
主驾座椅加热用户需求Case:
UC01:座椅加热关闭时,手动点击屏幕主驾座椅加热虚拟按键,座椅加热开到2挡;
UC02:座椅加热2挡位时,手动点击屏幕主驾座椅加热虚拟按键,座椅加热开到1挡;
UC03:座椅加热1挡位时,手动点击屏幕主驾座椅加热虚拟按键,座椅加热关闭;
UC04:座椅加热开启时时,且主驾离座时,触发座椅加热关闭。
软件需求分析结果
软件架构设计如下:
(为了操作演示,参数分了枚举与整形两类)
#04建模
首先打开matlab,创建新的Simulink脚本,选择AUTOSARBlockset工具箱中的SoftwareArchitecture模板;
双击进入,可以进行Composition内的SWC的设计;
按照SWC设计结果,构建两个Component,SeatHeat_VC_SWC,SeatHeat_AS_SWC
再对Interface进行模型数据字典的建立;
点击Simulink界面左下角的Interface,如之前没有复用或者已经建立好的数据字典,则需要点击CreateDictionary来创建;
注:如果Interface关联的ADT是枚举类型,不要填写最大值&最小值。
Interface本身也需要配置属性,如接口类型、是否是服务(应该是SOA架构中需要)
也可以导出数据字典对应的ARXML文件
或者,选择port后,直接在属性检查器中选择其对应的Interface
按照对应关系,完成所有关联map;
返回主界面,将Composition的输入、输出port,连接到架构模型边界
再执行导出,生成Seat_Heat_Composition.ARXML
ARXML包含其外部输入port/interface信息,内部port/interface信息,port与SWCmap关系、SWCprototype、portprototype、datatype等
至此,该ARXML文件便可作为软件架构模型输出,给到软件单元开发工程师进行进一步开发,当然,如果架构模型建立与单元构建同属于一拨人的职责,可以直接在上面工程中继续创建Runnable,并继续开发。