La programmation structurée (Algol, Pascal), a été conçue pour mieux organiser les programmes complexes en associant les traitements aux structures de données qu'ils manipulent.
Cette approche s'est révélée bien adaptée au développement d'applications complexes et peu évolutives. Elle atteint ses limites lorsque les structures de données et/ou les procédures doivent être partagées par différents programmes.