This course presents the fundamental concepts and methodologies involved in Software Architecture. In addition to demonstrating common software architectures, the course covers Inter-Process Communication and Design Patterns, providing students with reusable solutions to common problems in software design. Specialized Software Architectures are also discussed, highlighting their role in addressing specific system requirements.