Darwin es un lenguaje de descripción de arquitectura (ADL). Se puede utilizar en un contexto de ingeniería de software para describir la organización de un software en términos de componentes, sus interfaces y las conexiones entre componentes.