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지연 유지보수시스템무상

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

구분CorrectivePerfectivePreventiveAdaptive
비용
효과
난이도
시급성

 

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/ITAEA / ITA 구축을 통해 전사적 유지보수 관리
문서관리요구 분석서, 산출물, MRF(Modification Request Form), CR(Change Request), SCR(Software Change Request) 등의 관리
변경관리
형상관리
소프트웨어의 이해, 요구사항 분석, 변경 효과 예측
표준화변경관리, 분석활동, 기본설계, 상세설계, 구현활동과 같은 문서 작업, 개발 활동을 현 시스템에 맞춰 표준화 시행
자동화재공학 도구 발전으로 유지보수 자동화 지원 활동 강화 전망
전략S/W 패키지화 및 효율적인 형상관리 기법을 도입하여 유지보수 향상을 위해 전략적으로 노력해야 함

 

콘텐츠 사용 시 출처 표기 부탁 드리고, 궁금한 점이나 의견은 댓글 남겨주세요^^