La ingeniería de software aplica principios de ciencia de la computación y matemáticas para lograr soluciones de software de manera eficiente. El proceso de desarrollo de software incluye etapas como análisis de requisitos, diseño, programación, pruebas y mantenimiento. La programación orientada a objetos organiza programas como grupos cooperativos de objetos que representan instancias de clases.