This chapter explores the foundational concepts that underlie architectural design. It begins with architectural coupling, emphasizing the need for reducing dependencies between system components to improve flexibility. The chapter continues with architectural design, which covers how to structure software systems for efficiency and scalability. It also discusses architectural requirements—ensuring that the system meets both functional and non-functional requirements—and addresses the architectural risks associated with poor design choices.