Creating Computer Simulation Systems: An Introduction to the High Level Architecture