Darwina (ADL)

Darwin to język opisu architektury (ADL). Może być używany w inżynierii oprogramowania do opisania organizacji fragmentu oprogramowania pod względem komponentów, ich interfejsów i powiązań między komponentami.

Darwin zachęca do stosowania komponentowego lub obiektowego podejścia do strukturyzowania programu, w którym jednostka struktury (komponent) ukrywa swoje zachowanie za dobrze zdefiniowanym interfejsem. Programy są konstruowane poprzez tworzenie instancji typów komponentów i wiązanie ze sobą ich interfejsów. Darwin uważa takie kompozycje również za typy i dlatego zachęca do kompozycji hierarchicznej. Ogólną postacią programu Darwina jest zatem drzewo, w którym korzeń i wszystkie węzły pośrednie są składnikami złożonymi; liście są prymitywnymi składnikami obejmującymi aspekty behawioralne, a nie strukturalne.