La ingeniería del software nace como una disciplina para aplicar los principios técnicas y herramientas para el desarrollo del software, surgió porque todos los desarrolladores en la década de los años 1980, realizaban el software de forma artesanal, es decir utilizando métodos y técnicas adhoc donde la experiencia, basada en el ensayo-error, era el camino a seguir. Este enfoque produjo grandes y exitosos productos de programación pero conforme los proyectos se volvieron más complejos debido al avance del hardware y software y la penetración cada vez mayor de la informática en todos los ámbitos de la sociedad, llevó a que se produjera software sin calidad, se incumplieran los presupuestos y se incrementara dramáticamente los costos de mantenimiento.