O software pode ser dividido em três grandes grupos: