Un framework es una estructura conceptual y tecnológica definida que sirve como base para el desarrollo de software. Representa una arquitectura de software que modela las relaciones generales del dominio y provee una estructura y metodología de trabajo. Los frameworks están diseñados para facilitar el desarrollo de software permitiendo a los desarrolladores concentrarse en los requerimientos en lugar de detalles técnicos. El patrón MVC es un ejemplo común de framework que separa una aplicación en las secciones de modelo, vista y controlador.