X

SW유지보수

I. 소프트웨어 생명 연장, SW유지보수 개요

가. SW유지보수의 개념

  • SW가 인수, 설치된 후 폐기될 때까지 결함제거, 성능향상, 변화된 환경에 소프트웨어의 수명을 연장시키는 행위

나. SW유지보수의 특징

관리적 기능 복잡도 증가에 따른 관리업무 증가
유지보수 비효율성으로 인한 패키지 SW 도입 확산
비용 측면 유지보수 운영비용이 전체 비용의 70 ~ 80%
인력 운용 신규 기술 개발보다 유지보수에 투입되는 인력이 증가

 

II. SW유지보수 절차 및 단계 별 활동

가. SW 유지보수 절차

  • 유지보수 기간에 사용자 요구사항이 시스템에 반영되기까지 단계

나. SW유지보수 단계 별 활동

단계 주요 활동 활동 주체
요청 MRF(Modification Request Form) 작성
CR(Change Request) 작성
사용자
분석 유지보수 유형 분류, 심각성 판단
유지보수의 내용, 영향도 분석
유지보수 우선순위 결정
분석전문가
승인 분석내용에 따라 유지보수 여부 승인
유지보수 실행에 대한 승인
유지보수 관리위원회(PMO)
실행 유지보수 대상에 대한 유지보수 실행
소프트웨어 변경보고서(SCR) 작성
관련문서 변경
유지보수 담당자

다. 기타 유지보수 활동

  • 문서 유지관리: 유지보수 과정에서 발생하는 여러 문서들을 관리 유지
  • 품질 보증: S/W유지보수 시기, 구성 계획 등의 적절성과 유지보수 내용의 관련문서와 일치성 확보

III. 정보시스템 유지보수의 분류

분류기준 종류 설명
시점에 의한
유지보수
계획유지보수 주기적인 유지보수
예방유지보수 미리 예방 차원에서의 유지보수
응급유지보수 긴급한 경우의 유지보수, 후 승인
지연유지보수 시스템에 대해 변경 부분 추후 지원
대상에 의한
유지보수
데이터유지보수 데이터의 conversion등 필요시 처리
프로그램유지보수 프로그램의 변경, 오류 처리
문서유지보수 문서 표준 변경 및 기타 필요시
시스템유지보수 시스템의 변경 및 장애 처리
원인에 의한
유지보수
(암기)
수정유지보수 오류와 결함의 수정(corrective)
완전유지보수 불완전 부분의 표준화 적용(perspective)
예방유지보수 정기적인 유지보수(preventive)
적응유지보수 변화, 갱신의 적용(adaptive, porting)
거리에 의한 유지보수 상주유지보수 현장에 상주하며 실시간 유지보수
방문유지보수 정기 방문에 의한 유지보수
원격유지보수 원격 상담에 의한 원격지 유지보수
비정기유지보수 대상 발생 시 비정기 방문 유지보수
역할에 의한
유지보수
모니터링유지보수 단순 모니터링만을 전담 하는 유지보수
보고유지보수 보고 체계에 의해 표준 절차 수행
평가유지보수 유지보수의 발생율, 험도 등 평가
전담유지보수 업무, 능력 별 전담 담당자 지정

 

IV. SW유지보수 유형과 분류

가. SW유지보수 카테고리

구분 교정카테고리(Correction) 향상카테고리(Enhancement)
ProActive 예방적(Preventive) 완전적(Perfective)
ReActive 교정적(Corrective) 적응적(Adaptive)

나. 시점에 의한 SW유지보수

종류 설명
계획 유지보수 주기적인 유지보수
예방 유지보수 미리 예방 차원에서의 유지보수
응급 유지보수 긴급한 경우, 사후 승인 필요
지연 유지보수 시스템에 대한 변경된 부분에 대한 추후 지원

다. 원인에 의한 SW유지보수

유형 설명 특징
수정적
(Corrective)
발견된 오류의 원인을 찾아 문제 해결 하자유지보수, 처리오류,
수행오류, 구현오류
완전적
(Perfective)
새로운 기능을 추가하여 개선 신규 비즈니스 프로세스
발생, 수행력 향상
예방적
(preventive)
유지보수성, 신뢰성 향상 위한 구조 변경 노후화된 SW의 refactoring
적응적
(Adaptive)
새로운 자료나 운영체제, 하드웨어 환경으로 이식 SW 환경 변경으로 porting, HW, SW 변화

라. 대상에 의한 SW유지보수

유지보수 대상 세부 내용
자료/프로그램 응용 프로그램 소스, 데이터 오류처리, 기능 개선
문서 SDLC 전 단계의 문서에 대한 이력관리
시스템 모니터링, HW, SW, DB 등에 대한 업그레이드 작업

 

V. SW유지보수 분류 기준과 연관 관계 비교

가. 유지보수 유형에 따른 대상과의 연계 및 계약 관계

유지보수유형 유지보수 발생 대상 계약측면
Corrective 응급 유지보수 프로그램 하자
Perfective 계획 유지보수 자료, 문서 무상
Preventive 예방 유지보수 시스템 유상
Adaptive 지연 유지보수 시스템 무상

나. 유지보수 유형에 따른 비용/효과/난이도/시급성의 분류

구분 Corrective Perfective Preventive Adaptive
비용
효과
난이도
시급성

 

VI. SW유지보수와 개발업무 차이점

항목 유지보수 개발업무
비용 초기 이해단계에 최고점 구현 단계에 최고점
특성 이해중심 작업 코딩 중심 작업
테스트 회귀테스트, 통합테스트 단위테스트, 통합테스트
기간 지속적인 기간
SW의 폐기시까지 지속적
한정된 기간
개발 결과물 완료 시까지
적용범위산정 변경요구사항 영향도 파악 요구사항의 파악 통한 산정
베이스라인 변경요청서 요구사항 명세서
변경관리 형상관리 위원회 변경관리 위원회
관리기술/기법 Refactoring, 3R, 형상관리 TDD, pair programming
생명주기비용 70% 30%

 

VII. SW유지보수 비용 예측방법

가. BL(Belady와 Lehman) 방법

  • 소프트웨어 개발 시 얼마나 열심히 공학기법에 의해 노력했는지에 따라 유지보수 비용 증감 관계

M = P + exp(C-D)
M: 유지보수를 위한 노력(인원), P: 생산적 노력
C: 설계의 비구조성이나 문서정리 미흡에 따른 복잡도
D: 소프트웨어 인식정도

나. COCOMO 방법

M = ACT x DE x EAF
M: 유지보수를 위한 노력(인원)
ACT: 전체 프로젝트 규모에서 유지보수 작업이 차지하는 비율
DE: 개발 때 필요한 노력(인원), EAF: 실험적 상수
 

VIII. SW유지보수 고려사항 및 적용 가능 방안

가. SW유지보수 고려사항

  • 형상관리의 부재로 인해 발생되는 변경에 대해 우선순위 변경 발생
  • 유지보수 담당 인력에 동기부여가 미흡하고, 유지보수 자동화 도구 부족
  • 시스템의 다른 부분에 영향을 미치는지에 대한 여부의 확인 필요

나. SW유지보수 적용 가능 방안

적용방안 설명
3R 역공학, 재공학, 재사용으로 생산성, 유지보수 효율성 극대화
모듈화 소프트웨어 유지보수성 증대를 위해 객체지향 방법론, CBD등 최신 방법론과 개발 도구의 활용
유지보수 감리 정보시스템 유지보수의 구축 운영에 관한 사항을 종합적으로 점검하고 문제점 개선
EA/ITA EA / ITA 구축을 통해 전사적 유지보수 관리
문서관리 요구 분석서, 산출물, MRF(Modification Request Form), CR(Change Request), SCR(Software Change Request) 등의 관리
변경관리
형상관리
소프트웨어의 이해, 요구사항 분석, 변경 효과 예측
표준화 변경관리, 분석활동, 기본설계, 상세설계, 구현활동과 같은 문서 작업, 개발 활동을 현 시스템에 맞춰 표준화 시행
자동화 재공학 도구 발전으로 유지보수 자동화 지원 활동 강화 전망
전략 S/W 패키지화 및 효율적인 형상관리 기법을 도입하여 유지보수 향상을 위해 전략적으로 노력해야 함

 

도리: