El software se divide según la necesidad que satisface
Genéricos: contienen herramientas para satisfacer la mayor cantidad de posibles necesidades del usuario. Limitándose a la función especifica del programa
Dedicados: Comprenden herramientas que satisfacen los requerimientos específicos de una determinada materia relacionada con la función del programa
Especializados: son aquellos que tienen herramientas especiales para resolver un solo problema muy complejo y que requiere gran poder de cálculo