计算机软件通常分为