Existen diversos dominios en los que el software se aplica, cada uno con características y objetivos específicos. El software incrustado, por ejemplo, se encarga de ejecutar funciones limitadas y específicas como el control de tableros de microondas o sistemas de frenado en automóviles.