Классификация программного обеспечения: виды и особенности