An object-oriented approach to discrete-event simulation applied to underground railway systems