Part of the new series, Advanced Topics in Science and Technology in China, this book aims to introduce the theoretical foundations, various sub-fields, current research, and practical methods of software architecture. First off, readers can acquire a basic knowledge of software architecture, including why software architecture is necessary. They are then shown how to describe a system's architecture with formal language. The authors continue by delineating which architecture styles are popular in practice.