UML can be used to describe an entire system of systems. The model of such a system can be developed iteratively to allow for continuous checking of the correctness of the model and of the design. Using UML in an executable model compiler allows the design team to create a solution that is platform independent. This promotes re-use of the code and allows for a ready transition from the design-phase simulation compilation to the resulting delivery-phase final code.