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 패키지화 및 효율적인 형상관리 기법을 도입하여 유지보수 향상을 위해 전략적으로 노력해야 함 |