Дарвин - это язык описания архитектуры (ADL). Его можно использовать в контексте разработки программного обеспечения для описания организации части программного обеспечения с точки зрения компонентов, их интерфейсов и привязок между компонентами.
Дарвин поощряет компонентный или объектный подход к структурированию программ, в котором единица структуры (компонент) скрывает свое поведение за четко определенным интерфейсом. Программы создаются путем создания экземпляров типов компонентов и связывания их интерфейсов вместе. Дарвин считает такие композиции также типами и, следовательно, поощряет иерархическую композицию. Таким образом, общая форма программы Дарвина - это дерево, в котором корень и все промежуточные узлы являются составными компонентами; листья - это примитивные компоненты, инкапсулирующие поведенческие, а не структурные аспекты.