Each source code unit can be considered as a separate component. In this role it participate by usage in different parts of a software project. Let's define a programmer as the user of a source code unit, if he apples it in any way as whole and don't need to know its internal structure. The developer of a software component may participate in user's role too.
The information for an user helps to decide how to apply a software component in the user's code.. This is the outcome of the second type of a micro-project..