software explination