Современное программное обеспечение: задачи, разновидности, особенности