정답: 4번 소프트웨어 리엔지니어링은 주로 유지보수의 문제를 해결하기 위해 필요합니다. 소프트웨어는 시간이 지남에 따라 환경 변화, 사용자의 요구 변경, 기술 발전 등으로 인해 유지보수가 필요합니다. 이를 효율적으로 관리하기 위한 방법 중 하나가 리엔지니어링이며, 이는 기존 시스템을 분석하고 재구성하여 유지보수를 용이하게 합니다.