I componenti sono le più piccole unità che possono essere fornite nell'ambito di un sistema. In Java, si tratta dei file jar. In .Net, si tratta delle dll. Nei linguaggi interpretati, si tratta delle aggregazioni di file di codice sorgente. Comunque vengono chiamati, dei componenti ben progettati devono mantenere la capacità di essere forniti in modo indipendente e, pertanto, di essere anche sviluppati in modo indipendente.