Un proceso de software es un conjunto de actividades que producen un producto de software e incluyen la especificación, desarrollo, validación y evolución del software. Un modelo de procesos de software es una representación simplificada de un proceso de software que describe las actividades y productos involucrados. Existen tres modelos generales: el enfoque en cascada, el desarrollo iterativo y la ingeniería de software basada en componentes.