An approach to avionics in which a number of different flight functions share the same hardware platform; this is in order to reduce weight, both of the computing hardware and the necessary cabling. The platform used must have the ability to isolate application software of different levels of criticality, a requirement usually achieved by some form of hypervisor. IMA has been used in jet fighters since the 1990s and in commercial aeroplanes since the late 2000s. It has yet to be adopted for spacecraft.