Im Allg. agieren Bausteine nicht eigenständig, sondern müssen mit anderen und andersartigen Bausteinen kooperieren, um ihre Funktionalität zu erbringen.
Bausteine können eng oder nur lose kooperieren. Enge Kooperation findet man typischerweise in Programmgerüsten (engl. program frameworks).
Die Kooperation zwischen Bausteinen kann man syntaktisch an den (rekursiven) Abhängigkeiten der Typdeklarationen erkennen.