This document provides an introduction and overview of Model-Driven Architecture (MDA). It discusses the motivation for MDA, including generating code from configurations to reduce boring code. It describes the key concepts of MDA, including using models as the core artifacts written in formal languages defined by metamodels. It also explains how models can be transformed from one form to another, such as from platform-independent to platform-specific models. Finally, it presents a case study of applying MDA to a triathlon tracking system as an example.