This book is designed for teaching software architecture modeling techniques to both graduate and undergraduate students, in order to prepare them to architecting complex software-intensive systems. It is also appealing for practitioners and members of a software development team such as architects, designers, programmers, project managers, since it is structured around practical modeling approaches spanning different roles in software development.

