본문 바로가기
전공공부/소프트웨어공학

소프트웨어 유지보수

by 으노으뇨 2021. 11. 16.
728x90
반응형
SMALL

유지보수(Maintenance)

개발된 소프트웨어의 품질을 항상 최상의 상태로 유지하기 위한 것으로, 소프트웨어 개발 단계 중 가장 많은 노력과 비용이 투입되는 단계
  • 소프트웨어가 사용자에게 인수되어 설치된 후 발생하는 모든 공학적 작업
  • 소프트웨어 유지보수를 용이하게 하려면 시험 용이성, 이해성, 수정용이성, 이식성 등이 고려되어야 함
  • 소프트웨어의 수명을 연장시키는 작업
분류
  1. 수정보수
    (Corrective)
  2. 적응보수
    (Adaptive)
  3. 완전화 보수
    (Perfective)
  4. 예방보수
    (Preventive)

수정보수란?

  • 시스템을 운영하면서 검사 단계에서 발견하지 못한 잠재적인 오류를 찾아 수정하는 활동으로 오류의 수정과 진단을 포함함

적응보수

  • 소프트웨어의 수정기간 중에 발생하는 환경의 변화(하드웨어, 운영체제 등)을 기존의 소프트웨어 반영하기 위하여 수행하는 활동
  • 운영체제나 컴파일러와 같은 프로그래밍 환경의 변화와 주변장치 또는 다른 시스템 요소가 향상되거나 변경될 때 대처할 수 있는 유지보수 활동

완전화 보수

  • 소프트웽어 본래 기능에 새로운 기능을 추가하거나, 성능을  개선하기 위해 소프트웨어를 확장시키는 활동
  • 유지보수 활동 중 가장 큰 업무 및 비용을 차지 하는 활동

예방보수

  • 미래에 유지보수를 용이하게 하거나 기능을 향상시키기 위해 소프트웨어를 변경하는 활동
  • 소프트웨어 재공학이라고도 함 - 예방!!
유지보수 요구 유지보수 활동이 필요한 경우 이에 대한 요구를 수행함
현 시스템에 대한 이해 요구된 유지보수 활동을 수행하기 위해서는 먼저 현재 시스템에 대한 이해를 필요로 함
현재 시스템에 대해 이해하지 못한 상태에서 유지보수 활동을 수행하면 오류가 발생할 수 있음
수정 및 시험 유지보수 활동을 수행하고, 유지보수 활동을 수행한 후에도 정상적으로 기능이 수행되는지를 확인하기 위해 테스트함
-> 유지보수 요구, 현 시스템에 대한 이해, 수정 및 시험 순으로 반복해서 일어남


문제점

개발된 소프트웨어에 대한 전문적인 설명을 들을 수가 없음
  • 다른 사람이 개발한 소프트웨어는 이해하기가 어려울 뿐만아니라 소프트웨어 개발자들의 이직률이 높기 때문이다.
내용을 문서화 하지 않을 경우 추적하기 어려움
  • 소프트웨어에 대한 변경이 자주 발생하기 때문이다.
소프트웨어에 대한 적절한 문서가 없거나 문서의 질이 형편 없을 수 있다.
대부분의 소프트웨어는 변경 가능하도록 설계되지 않는다.

유지보수의 부작용
유지보수 활동을 통해 예기치 못한 부작용이 발생될 수 있다.

종류

코딩 부작용 코딩 내용의 변경으로 인해 발생하는 부작용
자료 부작용 자료나 자료 구저의 변경으로 인해 발생하는 부작용
문서화 부작용 자료 코드에 대한 변경이 설계문서나 사용자가 사용하는 메뉴얼에 적용되지 않을 때에 발생하는 부작용

외계인코드?? (Elien code)

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

 

728x90
반응형
LIST

'전공공부 > 소프트웨어공학' 카테고리의 다른 글

CASE와 정보저장소  (0) 2021.11.22
소프트웨어공학의 발전적 추이  (0) 2021.11.22
소프트웨어 위험 관리  (0) 2021.11.16
소프트웨어 품질 보증  (0) 2021.11.15
검사  (0) 2021.11.09