The design and development of an aircraft is a lengthy and complex process. Many competing requirements must be met to produce a robust design, whether it is structures, aerodynamics, or flight dynamics. The design must be capable of sustaining a flight safely and repeatedly. Basic aircraft design principles include estimating weights, determining flight envelope, estimating structural loads, aerodynamics, controls, and propulsion.