1. A method for modeling and simulating a system, the method comprising: modeling the behavior of a first component using a first specification; modeling the behavior of a second component using a second specification, wherein each of the first and second specifications are specified in a first computer program and include a functional specification and an associated simulation element; processing the first computer program to generate a second computer program; generating an implementation of the first component based on the second computer program; and simulating the behavior of the first component using the generated implementation by instantiating an entity within a hierarchy of entities; and wherein the simulation elements communicate with one another to provide a simulation system.