Un tipar este o soluție reutilizabilă la o problemă comună de proiectare în programare. O paradigmă este un cadru conceptual și un set de reguli pentru dezvoltarea de soluții software. În timp ce tiparele sunt mai specifice și se concentrează pe probleme specifice de proiectare, paradigmale sunt mai largi și încearcă să abordeze întregul proces de dezvoltare a software-ului.