In this book, we introduce the concept and architecture of software defined systems (SDS). The core enabling technologies, including software defined front-end devices (sensors, IoT devices), software defined access networks (e.g., cognitive radio, CRAN), software defined core networks (e.g., SDN, NFV), software defined storage and computing (e.g., microservice). These technologies jointly enable the programmers or system administrators escape from the heavy reliance on hardware. With SDS, all sensing, communication, computation, and storage resources can be managed in a software-defined way, much promoting the system flexibility and lowering the barrier for information system innovation. SDS brings not only new opportunities, but also new challenges, in resource management and optimization. With the advent of new information technologies, corresponding new resource management and optimization algorithms shall be designed to cater for the indistinguishable characteristics of these new technologies.