DevGang

[SE-17] 전통적 개발 방법론 - 유지보수 본문

정보처리/SE

[SE-17] 전통적 개발 방법론 - 유지보수

별천랑 2021. 2. 8. 17:53

1. 유지보수(Maintenance)의 개요

  • 개발된 소프트웨어의 품질을 항상 최상의 상태로 유지하기 위한 것으로, 소프트웨어 개발 단계 중 가장 많은 노력과 비용이 투입되는 단계
  • 유지보수는 소프트웨어가 사용자에게 인수되어, 설치된 후 발생하는 모든 공학적 작업
  • 소프트웨어 유지보수를 용이하게 하려면 시험 용이성, 이해성, 수정 용이성, 이식성 등이 고려되어야 함
  • 유지보수 작업의 목적 - 하자 보수, 환경 적응, 예방 조치
  • 소프트웨어에 가해지는 연결을 제어 관리하는 것을 형상 관리라고 함

- 유지보수 유형

  • 수정(Corrective) 보수 (수리, 교정, 정정, 하자 보수) - 시스템을 운영하면서 검사 단계에서 발견하지 못한 오류를 찾아 수정하는 행동
  • 적응(Adative) 보수 (환경 적응, 조정 보수) - 소프트웨어 산물의 수명 기간 중에 발생하는 환경의 변화를 기존의 소프트웨어 산물에 반영하기 위하여 수행하는 활동
  • 완전화(Perfective) 보수 (기능 개선, 기능 보수) - 소프트웨어의 본래 기능에 새로운 기능을 추가하거나 성능을 개선하기 위해 소프트웨어를 확장시키는 활동, 유지보수 활동 중 가장 큰 업무 및 비용을 차지하는 활동
  • 예방(Preventive) 보수 - 미래에 유지보수를 용이하게 하거나 기능을 향상하기 위해 소프트웨어를 변경하는 활동, 예방 유지보수를 소프트웨어 재공학이라고도 함

2. 유지보수의 과정

  • 유지보수 요구
  • 현 시스템에 대한 이해
  • 수정 및 시험

3. 유지보수의 비용

  • 유지보수 비용은 분석, 평가, 설계 변경, 코딩 등의 생산적인 활동과 프로그램과 자료 구조의 이해, 인터페이스의 특성 파악, 성능 측정 등의 실험 활동에 따라 달라질 수 있음
  • 소프트웨어 유지보수 단계에서 사용되는 비용은 소프트웨어 개발에 필요한 비용 중 약 70%를 차지
  • 유지보수 비용 산정 공식

4. 유지보수의 문제점

  • 유지보수 활동을 토해 예기치 못한 부작용이 발생될 수 있음
  • 코딩 부작용 - 코딩 내용의 변경으로 인해 발생하는 부작용
  • 자료 부작용 - 자료나 자료 구조의 변경으로 인해 발생하는 부작용
  • 문서화 부작용 - 자료 코드에 대한 변경이 설계 문서나 사용자가 사용하는 매뉴얼에 적용되지 않을 때에 발생하는 부작용

* 외계인 코드 (Alien Code)

  • 외계인 코드는 아주 오래전에 개발되어 유지보수 작업이 어려운 프로그램을 의미
  • 일반적으로 15년 전 또는 그전에 개발된 프로그램을 의미, 문서화를 철저하게 해 두면 방지할 수 있음

5. 소프트웨어 시스템 명세서의 유지보수

  • 명세서의 유지 보수란 명세서를 항상 최신의 상태로 만드는 것을 말함
  • 소프트웨어는 계속 수정 보완되기 때문에 명세서도 따라서 보완되지 않으면 일관성 유지 어려움
  • 최신의 명세서는 필요한 경우 즉시 사용자에게 배포해야 함
Comments