A logical component is simply a class in UML terms that expose a number of interfaces.
For mapping purposes, it is probably easier to look at an alternative but more familiar representation:
Components also have a private implementation, which typically involves one or more private classes that carry out the work for the component. The client code using the component via interfaces is completely unaware of how the services requested are being handled internally. This is the key strength of component development.
Any VB class in a Project that has an instancing property that is not private can be treated as a logical component. The classes in the project that have an instancing property of 'Private' are usually there to provide the implementation of the exposed components.
If we consider the Car example introduced in the Statechart mapping, the Car could be exposed as a logical component and the CarFSM would be part of the private implementation.
Was this article helpful?