La ingeniería de software se refiere a las herramientas y técnicas para crear software, mientras que la ciencia de la computación estudia los procesos algorítmicos y desarrolla sistemas complejos. La ingeniería de software se complementa con la ingeniería de sistemas, enfocándose en el ciclo de vida del software. Un proceso de software describe actividades para crear software, y un modelo define procesos, actividades y tareas involucradas en el desarrollo de software.