PSoC 3, 4 and 5LP have drag’n’drop bootloading modules that make bootloading easy. They currently support the I2C or USB interface. Cypress has also made a computer-based app to install new program code. It literally takes 5mins to set-up a bootloadable PSoC application. You can also modify the code to run with a different comms interface (e.g. UART) with not too much difficulty.