1. 유지 보수 유형
    1. 수정형 유지보수 : 발견된 결함을 고치기 위해 소프트웨어 제품을 수정하는 유지보
    2. 적응형 유지보수 : 변경된 환경에서도 계속 사용할 수 있도록 소프트웨어를 이식하거나 변경하는 유지보수
    3. 완전형 유지보수 : 성능이나 유지보수성을 개선하기 위해 실시하는 유지보수
    4. 예방형 유지보수 : 오류 발생을 방지하기 위해 수행하는 유지보수
  2. Lehman의 진화 법칙이 각각 무엇을 의미하는지 알아야함
    1. 지속적인 변경의 법칙 : 시스템이 변경될 때까지 변경
    2. 엔트로피, 복잡도 증가의 법칙 : 시스템이 변경될수록 구조는 복잡해지고 결합도는 증가
    3. 자기 통제의 법칙 : 시스템 진화는 지속적인 피드백 과정을 가짐 (안전성 유지, 친근성 유지, 지속적 성장 규칙을 일반화)
    4. 안전성 유지의 법칙 : 소멸될 때까지 일정한 평균 작업량을 보임
    5. 친근성 유지의 법칙 : 소멸될 때까지 버전의 변화는 거의 일정
    6. 지속적 성장의 법칙 : 사용자 만족을 위해 기능적 성장을 지속
    7. 품질 저하의 법칙 : 운영 환경의 변화에 적응하지 못하면 저하
    8. 피드백 시스템의 법칙 : 진화 프로세스는 중요한 역할의 관련자들의 피드백으로 구성
  3. 유지보수 작업의 순서
    1. 현재 프로그램의 이해
    2. 변경 파악과 분석 (필요한 변경을 파악, 분석)
    3. 변경 영향 파악 (변경의 이해 당사자들에게 알리고 피드백 받음)
    4. 변경 구현, 테스트, 설치
  4. 형상관리란? : 개발 주기 동안 생성된 문서를 관리하고, 소프트웨어 시스템과 컴포넌트의 상태를 추적하는 작업
  5. 형상 관리 절차
    1. 소프트웨어 형상 파악 ( : 베이스 라인과 형상 항목을 구분하기 위한 명명 체계 정의)
    2. 형상 변경 제어 ( : 변경 관리)
    3. 소프트웨어 형상 감사 ( : 변경 여부 확인 후 검증)
    4. 소프트웨어 형상 상태 보관
  6. 베이스 라인이란? : 소프트웨어 결과물인 형상 항목의 집합으로 프로젝트의 중요한 상태를 정의한다.
  7. 역공학, 리엔지니어링 설명
    1. 역공학 : 대상 시스템을 분석하여 시스템의 컴포넌트와 관계를 찾아내어 같은 수준의 다른 표현이나 더 높은 수준의 표현으로 만드는 작업
    2. 리엔지니어링 : 소프트웨어의 특정 측면을 개선하기 위해 시스템 도는 컴포넌트를 재구조화하는 과정을 의미한다.
  8. 역공학의 재구조화, 설계 복구에 대해 설명
    1. 재구조화 : 같은 추상 수준을 가진 표현을 생성하는 작업으로 현재 보유한 문서를 개선시키고 새로 수정된 프로그램을 문서화한다.
    2. 설계 복구 : 원시코드를 자세히 검토하여 의미있는 추상성 높은 표현을 찾아내고 추출하는 작업으로, 복구된 설계는 원시코드 이해에 도움이 되고, 향후 유지보수 또는 리엔지니어링을 위한 베이스라인으로 사용될 수 있다.