El término se refiere a un proceso de escritura y mantenimiento del código fuente, pero en un sentido más amplio del término incluye todo lo que está involucrado entre la concepción del software deseado hasta la manifestación final del software.