Программное обеспечение: определение и виды