정답: 3번 소프트웨어 재공학은 소프트웨어의 구조를 재설계하거나 개선하여 유지보수성을 높이는 과정을 포함합니다. 이는 주로 문제를 예방하고 향후 유지보수를 용이하게 하기 위한 활동으로, 예방적 유지보수(Preventive maintenance)와 밀접한 관련이 있습니다. Preventive maintenance는 소프트웨어의 장기적 효율성을 높이고, 잠재적인 문제를 사전에 방지하기 위한 활동으로 정의됩니다.