Software-defined systems