소프트웨어 유지보수

8강. 소프트웨어 유지보수

소프트웨어 유지보수에 대해 알아보자.

주요 용어

  • 소프트웨어 유지보수: 고객에게 인도되어 사용 중에 있는 소프트웨어를 환경 적응, 오류 수정, 성능 향상, 유지보수성 향상 등을 위하여 계속하여 수정, 보완하는 일

  • 재공학: 레가시 시스템의 이해성을 높이고 유지보수성, 재사용성 등을 개선하기 위해 소프트웨어를 변경하는 작업

  • 역공학: 소프트웨어 요소를 분석하여 높은 추상 수준의 표현을 유도하는 작업

  • 코드 스멜: 소스 코드에 존재하고 있는 문제를 일으킬 수 있는 나쁜 부분

  • 소프트웨어 형상관리: 소프트웨어 요소들의 관련성을 파악하고 그것들의 버전들을 일관성 있게 관리함으로써 소프트웨어 시스템의 진화를 통제하는 일

정리하기

  • 소프트웨어 유지보수 유형은 수정, 적응, 완전, 예방 유지보수로 구분된다.
  • 소프트웨어 재공학은 아키텍처의 변화 없이 소프트웨어의 이해성과 유지보수성을 높이도록 시스템을 수정하는 것이다.

  • 재구조화란 같은 추상 수준에서 코드나 문서의 형태를 바꾸는 작업이다.

  • 역공학은 프로그램이나 사용자 매뉴얼로부터 초기 단계 생성물인 기능 명세나 설계 문서 등을 생성하는 과정을 의미한다.
  • 코드 스멜은 설계나 코딩 작업이 잘못되었다는 징후이며 리팩토링이 필요한 이유이다.
  • 소프트웨어 형상 관리는 소프트웨어에 가해지는 변경을 제어하고 관리하는 일이다.
  • 사이클로매틱 수소프트웨어 사이언스는 소스 코드의 복잡도를 측정하는 척도이다.

참고 자료

  • 새로 쓴 소프트웨어 공학, 최은만, 2014, 정익사