Behaviour PC inclusion into Node PC

For convenience, in the Physical Architecture level, I moved the Behaviour PC into a Node PC. To do that, in the Project Explorer, I dragged and dropped the Behaviour into the Node.
When I run the model validation however, I get an error message stating that a Behaviour cannot be included into a Node.
I wonder why this hard constraint.

Hi Massimiliano,

First of all, you may decide to deactivate this validation rule because, in your context, you want to be able to do what you did. Validation rules can be activated/deactivated in Capella in the preference Window. I am not saying this is a good thing to do, especially that this validation rule generates an error meaning that you should avoid doing this.

Now on the reasons why this is like this, I may not have all the answers to your question, but here are a few things to consider:
- First of all, it enables you to have those elements of the same type all stored in the same place of your model (not sufficient reason on its own of course)
- I am sure you are aware that having a Behaviour PC into your Node PC as you did does not mean that your Node PC is deploying your physical component, this is another relation in Capella
- To me, one of the main reasons why Behaviour PC should stay all under the same folder is because, as you are doing System Architecture, part of your work will be to architecture your Behaviour PCs. And architecting components is done by containment in Capella. By architecting, I mean that you may group behavioral PCs together based on some architecture principles for instance.
- Also, you may reuse Behaviour PCs, so having them under on Node PC may not favor this.
More on this topic (although not 100% related to your question):

I hope this helps.

Hi Stephan
thanks for your feedback. It all makes sense to me.
I have also done similar considerations. However I would suggest to tag the issue as a Warning rather than an Error.
My question was to understand if something more should be considered due to metamodel implemented in the tool.


Behavioural PhysicalComponents (BPC, blue ones) are DEPLOYED on Node Physical Components (NPC, yellow ones). They are not “contained into” them. That’s why the validation rule triggers an error, not a warning (so I do not suggest you to desactivate this rule).

When designing the Physical Architecture, you may be led to perform an analysis to define/refine the expected behaviour of the system following constraints that weren’t considered in the Logical Architecture perspective. This is done through functional analysis and decomposition of BPC. And that’s why the suggested relation between BPC is “containment”.

The NPC are resources in the infrastructure, that are used by the BPC to enable their expected behavior. Hence they “host” the BPC, or the BPC are “deployed” on them. The definition of the infrastructure may lead to a decomposition of NPC: that’s why the suggested relation between NPC is “containment”.

Hope it helps,

Hi Juan
that is a very interesting justification. I see that the BPC are the real key items to define. So the need of including those into NPC becomes less stringent.
However I finfd in some situation this need is required.
For instance I can create in a library a physical item, including BPC, Physical Functions and properries and deploy it on a new model to generate a new architecture. In this scenario, the inclusion sounds natural to me since I mean to deploy the whole set of items related to that NPC

To cope with this need, you can:
- create in a library your NPC, your BPC deployed in the NPC, the Functions allocated to this BPC, etc
- select the whole set and create a Replicable Element Collection (REC)
- reference the library in your project
- instantiate the REC in a RPL
The deployment and allocation relations will be instantiated as well.
Hope it helps,

I do this normally. My comment was to highlight that in this specific scenario, it sounds more natural to INCLUDE the BPC into the NPC.
Nevertheless that is a minor issue.
Your first feedback explained a lot already

Is it possible to deploy existing undeployed BPC and undeploy already deployed one? There is no any difference between deployed and undeployed BPCs in Project Explorer, only one I can find is Deploying Physical Component link in Semantic Browser and Deploying Links/Parts in Properties of BPC, but those can’t be edited. I can move deployed BPC between two NPCs on a PAB diagram, but I can’t move it out of existing NPC and also I cant move undeployed BPC in to existing NPC in order to deploy it there. Any ideas?

Copyright © Eclipse Capella, the Eclipse Capella logo, Eclipse and the Eclipse logo are Trademarks of The Eclipse Foundation.