Autosar4.4:软件组件模板-软件组件、端口和接口简介(3/3)

一口气对软件组件模板的各个方面进行详细介绍被认为过于复杂。因此,本章概述了软件组件,端口和接口的主要概念。然后在以后将概述细分为更多详细信息。

AUTOSAR概念的目标之一是在应用程序软件级别上支持可重用性。

换句话说:应该有可能重新使用现有的工件来创建更多的模型元素,而不是*从头开始创建每个单独的模型细节。这种方法的后果之一是应用了所谓的类型原型模式(见Generic Structure Template)。

除其他事项外,该概念允许创建具有任意复杂度的软件组件的分层结构。但是,层次结构的创建本身不会对整个系统的运行时行为产生影响。实际行为是在各个软件组件中完全定义的。

该结论基于以下理解:软件组件是针对所谓的虚拟功能总线(VFB)开发的,虚拟功能总线是一种抽象的通信通道,而无需直接依赖ECU和通信总线。 VFB不提供任何表达软件组件层次结构的方法。

当然,VFB的使用会对软件组件的设计产生进一步的影响,这些组件不应直接调用操作系统或通信硬件。结果,可以在开发过程的后期将软件组件部署到实际的ECU。

为了使描述更加精确,以下文本优选使用准确的元模型术语,而不是模糊的术语“组合”和“软件组件”。

本章有三节:

1、Software Component(软件组件)

2、Composition(组合)

3、Port Interface(端口接口)

本章分三部分讲解:

3、Port Interface(端口接口)

Autosar4.4:软件组件模板-软件组件、端口和接口简介(3/3)

Port Interface 端口接口

PortPrototypes在AUTOSAR体系结构中的作用

PortPrototype主要提供了作为AUTOSAR概念的连接点的功能。由PortInterface定义细节,即有关在两个PortPrototype之间实际传输哪种信息的信息。 

PortInterfaces在AUTOSAR体系结构中的作用

PortInterfaces用于支持按合同设计的工作流程,即PortInterface提供了正式验证软件组件之间结构和动态兼容性的方法。

换句话说:PortInterfaces表示AUTOSAR概念中的关键点。

请注意,PortInterface为包含的信息创建一个名称空间。这样就可以定义特定PortInterface的细节,而不必考虑其他PortInterfaces可能产生的副作用。同样,AUTOSAR概念的此属性直接支持可重用性。

不同类型的PortInterfaces

在AUTOSAR概念中,定义了PortInterfaces的不同样式:

• SenderReceiverInterface

• NvDataInterface

• ParameterInterface

• ModeSwitchInterface

• ClientServerInterface

• TriggerInterface

DataInterface定义为抽象基类

请注意,SenderReceiverInterface,NvDataInterface和ParameterInterface的概念关系由抽象基类DataInterface的定义表示。

Autosar4.4:软件组件模板-软件组件、端口和接口简介(3/3)
DataInterface作为抽象基类

PortInterface充当PortPrototype的类型

从抽象的角度来看,PortInterface充当PortPrototype的类型。 这尤其意味着可以通过同一PortInterface键入多个PortPrototype。 

当然,这方面极大地促进了软件组件之间有效连接的创建。 通过使用特定的PortInterface键入特定的PortPrototype,后者可以通过定义相互连接。

Autosar4.4:软件组件模板-软件组件、端口和接口简介(3/3)
AUTOSAR元模型中的PortInterfaces

 

但是,创建有效连接不必基于相同PortInterfaces的用法。 也可以使用其他但兼容的PortInterfaces。 

连接各种PortInterfaces

连接不同类型的PortInterfaces类型的PortPrototypes应该是不可能的。 DataInterface的子类是此规则的一个例外,可以用于创建彼此的连接。 

为了澄清起见,在SenderReceiverInterface类型的PortPrototype与ClientServerInterface类型的PortPrototype之间将不可能建立连接。 但是,支持在SenderReceiverInterface类型的PortPrototype和ParameterInterface类型的PortPrototype之间创建连接。

ParameterInterface的适用性

由ParameterInterface键入的PPortPrototype只能由ParameterSwComponentType拥有。

请注意,PortInterfaces在定义所谓的AUTOSAR服务方面也起着重要作用。 特别是,通过属性isService,PortInterface可以定义是否应在AUTOSAR服务的上下文中使用它,除此之外,它还可以(通过属性serviceKind)定义打算使用的服务类型。

Autosar4.4:软件组件模板-软件组件、端口和接口简介(3/3)
PortInterfaces和AUTOSAR服务

 

serviceKind中包含的信息可以以多种方式使用。主要目的是区分标准AUTOSAR服务的使用与供应商特定服务的使用。此信息可能会影响使用PortInterface的软件组件的开发和构建过程。

另外,还可以使用serviceKind中包含的信息来过滤AUTOSAR创作工具中的AUTOSAR模型的表示,例如独立于相应PortInterface的内容,显示服务PortPrototypes的性质。

与serviceKind的值和PortInterface的实际实现有关的不一致

如果serviceKind的值与PortInterface的实际实现不一致,则PortInterface的实现将赢得属性PortInterface.serviceKind的值(出于预期目的,应将其视为注释,而不是语义绑定信息)。

如果未定义serviceKind,则为默认值

如果未在特定PortInterface的上下文中定义属性serviceKind,则默认值为anyStandardized。

在CompositionSwComponentTypes上下文中使用的PortInterfaces不能引用AUTOSAR服务

CompositionSwComponentTypes不应拥有在属性isService设置为true的情况下由PortInterfaces键入的PortPrototypes。

 

 

 

Autosar4.4:软件组件模板-软件组件、端口和接口简介(3/3)