What is lower and upper multiplicity in autosar configuration element (module, container, parameter or reference). What does it mean in code. I mean if a parameter is has lower multiplicity = 1, and upper multiplicity=5, how is it reflected in code when generated?
2 Answers
Multiplicity means how many times this element (parameter or container) can exist.
If lower and upper multiplicity are equal, there must be exactly so many instances of the element. Most common with lower == upper == 1.
If lower and upper multiplicity are not equal, then there may be as few elements as the lower multiplicity, and as many as the upper. Most common with lower == 0 and upper == 1, which means the element can exist 0 or 1 times. That is, it's optional.
If the upper multiplicity is denoted with an asterisk (*), it means infinite. So an element with lower == 1 and upper == * must have at least one instance, and can have arbitrarily many.
Multiplicity is not directly reflected in the generated code, but the number of instances in a particular configuration is.
As a very common example, the multiplicity of ComSignal under ComConfig is 0 to *
. So there may be no ComSignal
containers at all, or there may be any number of them. The generated code will certainly have a signal ID in Com_Cfg.h
for each ComSignal
element, but the details of the generated code depend on the generator used.

- 2,560
- 13
- 16
As per Autosar Software Architecture, General Requirements on Basic Software Modules.
“Multiplicity” defines how many times an entity (in this case configuration parameter) is instantiated. The multiplicity of each configuration parameter has to be documented. Description: It shall be documented what determines the number of entries (e.g. “one per frame”).
Additional Info not in the documentation:
1.Containers are named as such because containers contain Configuration parameters.
- A container /sub container can refer to other container/sub container, now the reference can hold a multiplicity value, multiplicity then defines the possible number of instances of the contained parameters.
Ofcourse an example always is better illustrious than these words
Example: Dcm module contains(when I say contains it actually means a sub container from here), DcmConfigSet(exists one config for one set of Dcm configuration), if you need multiple Dcm Configuration you could add many of them, One DcmConfigSet contains
(DcmDsd[1],DcmDsl[1],DcmDsp[0..1],DcmGeneral[1],DcmPageBufferCfg[1],DcmProcessingConditions[0....1])
This means for subcontainers having referenced as [1] has the same lower and upper multiplicity hence one instance of each subcontainer should be configured, whereas for DcmDsp,DcmProcessingConditions (you can have 0 instantiation "no need to configure" or can be configured based on your functional needs- higher multiplicity 1).
I really hope I can share you some code, but autosar code is not open source so I can't share it. Still I hope you understand the gist.
The reference link is General Software Architecture

- 119
- 2
- 13