The architecture of a software system is the master blueprint that drives the initial construction of the system and determines its ability to evolve and adapt to new requirements. For real-time development, many high-level designs tend to solve the same, commonly occurring problems. This paper describes three basic high-level design patterns using UML. The ecursive-control pattern prescribes a highly controllable architecture suitable for very large fault-tolerant systems. The layering pattern defines an effective
means for realizing multi-layered systems. Finally, the guest pattern enables the construction of reliable and certifiable designs for highly dynamic and asynchronous
systems. These patterns are particularly well-suited for complex distributed real-time systems.