Este documento describe diferentes tipos de software: software de sistema que interactúa con el hardware; software de aplicación diseñado para tareas específicas como procesadores de texto; software científico y de ingeniería que incluye algoritmos para tareas como análisis estructural; software empotrado en productos electrónicos para darles funcionalidad; software de línea de productos enfocado en un nicho; software de inteligencia que usa algoritmos no numéricos para resolver problemas complejos; y software heredado que es anticuado pero aún se usa.