Protob: an object oriented methodology for developing discrete event dynamic systems