Let us return to the idea of a software component.
There are many different aspects to this simple idea, we will consider just a few: