An architectural pattern used to separate an application into three main logical components: Model, View, and Controller.