The approach is anyway mostly a functional top-down decomposition (Note: agents.), not an object-oriented, data-based and bottom-up one.