SW 유지보수
태그 :
- 개념
- - S/W의 수명을 연장시키는 일련의 행위 - S/W 생명주기(SDLC)의 폐기 전 단계로 오류를 수정하고 사용자의 요구사항을 정정하며 기능과 수행력을 증진시키기 위한 활동 - S/W가 개발완료 후 사용자가 사용하기 시작하면서부터 폐기될 때 까지 오류를 수정하거나 새로운 기능을 추가하기 위해 S/W를 변경하는 과정 - S/W가 항상 최상의 상태로 유지하기 위한 노력으로 가장 많은 노력과 비용이 투자되는 활동
1. S/W 효율적 운영의 핵심, S/W 유지보수
가. S/W 유지보수의 정의
- S/W의 수명을 연장시키는 일련의 행위
- S/W 생명주기(SDLC)의 폐기 전 단계로 오류를 수정하고 사용자의 요구사항을 정정하며 기능과 수행력을 증진시키기 위한 활동
- S/W가 개발완료 후 사용자가 사용하기 시작하면서부터 폐기될 때 까지 오류를 수정하거나 새로운 기능을 추가하기 위해 S/W를 변경하는 과정
- S/W가 항상 최상의 상태로 유지하기 위한 노력으로 가장 많은 노력과 비용이 투자되는 활동
나. S/W 유지보수의 중요성
관점 |
내용 |
관리적 |
S/W기능의 복잡화에 따라 문서화등의 관리업무 증가 |
운영적 |
유지보수 운영 비용이 전체 비용의 70~80% 차지 |
기술적 |
S/W 신규 인력이 기술적으로 중요한 신규프로젝트보다 유지보수에 투입되는 낭비요소 발생 |
다. 유지보수의 종류
분류 |
유지보수 종류 |
사유 |
교정 유지보수, 적응 유지보수, 완전화 유지보수 |
기간 |
계획 유지보수, 예방 유지보수, 응급 유지보수, 지원 유지보수 |
대상 |
데이터/프로그램 유지보수, 문서화 유지보수, 시스템 유지보수 |
2. S/W 유지보수의 주요활동
가. S/W 유지보수 절차
나. 유지보수 단계별 활동
단계 |
주요활동 |
활동주체 |
요청 |
- MRF(Modification Request Form) 작성 - CR(Change Request) 작성 |
사용자 |
분석 |
- 유지보수 유형 분류, 심각성 판단 - 유지보수의 내용, 영향도 분석 - 유지보수 우선순위 결정 |
분석전문가 |
승인 |
- 분석내용에 따라 유지보수 여부 승인 - 유지보수 실행에 대한 승인 |
유지보수 관리위원회 |
실행 |
- 유지보수 대상에 대한 유지보수 실행 - 소프트웨어 변경보고서(SCR) 작성 - 관련문서 변경 |
유지보수자 |
다. 기타 유지보수 활동
1) 문서 유지관리
- 유지보수 과정에서 발생하는 여러 문서들을 관리 및 유지
2) 품질보증
- S/W유지보수 시기, 구성 계획 등의 적절성과 유지보수 내용의 관련문서와 일치성 확보
3. S/W 유지보수의 형태와 분류
가 . S/W 유지보수의 형태
형태 |
설 명 |
특 징 |
수정적 유지보수 |
- Corrective Maintenance - 프로그램 오류로 인한 SW 오류수정 |
하자유지보수, 처리오류, 수행오류, 구현오류 |
적응적 유지보수 |
- Adaptive Maintenance - 프로그램 환경변화에 S/W의 적응 |
이식개념, H/W or S/W 변화 |
완전적 유지보수 |
- Perfective Maintenance - 프로그램 특성 변경, 첨가 및 장래 유지 보수성 향상 |
수행력 향상 |
예방 유지보수 |
- Preventive Maintenance - 프로그램의 예측되는 오류를 선점 처리 |
프로그램의 예상되는 기능,오류에 대해 발생 전 수정 |
나. 유지보수 대상에 따른 분류
유지 보수 대상 |
세부 내용 |
자료/프로그램유지보수 |
응용프로그램소스,데이터에 대한 오류처리,기능개선 |
문서유지보수 |
SDLC 전 단계의 문서에 대한 이력관리 |
시스템 유지보수 |
모니터링, H/W, S/W, DB등에 대한 업그레이드 작업 |
다. 시점에 따른 분류
유지 보수 대상 |
세부 내용 |
계획 유지보수 |
주기적인 유지보수 |
예방 유지보수 |
미리 예방 차원에서의 유지보수 |
응급 유지보수 |
긴급한 경우의 유지보수, 사후 승인 필요 |
지연 유지보수 |
시스템에 대해 변경된 부분에 대한 추후 지원 |
라. 유지보수 유형에 따른 대상과의 연계 및 계약관계
유지보수유형 |
유지보수발생 |
대상 |
계약측면 |
Corrective |
응급유지보수 |
프로그램 |
하자 |
Perfective |
계획유지보수 |
자료, 문서 |
무상 |
Preventive |
예방유지보수 |
시스템 |
유상 |
Adaptive |
지연유지보수 |
시스템 |
무상 |
4. S/W 변화관리와 유지보수의 핵심인 Lehman 변화의 원리 이해
가. Lehman의 S/W변화에 대한 원리와 개념
- S/W는 요구에 의해 계속적으로 변경되며, 변경에 따른 복잡성, 프로그램의 고유한 변경추세, S/W조직 생산성의 일관성, S/W 각 버전의 변화에 대한 일관성을 제시한 S/W 변화의 원리
나. Lehnam S/W 변화의 원리 중요성
- S/W 변화의 특성을 이해하고 유지보수, 변경관리, 형상관리, 품질통제의 중요 모델로 반영
- S/W변화의 특성을 반영하여 S/W조직, 프로세스, 기술에 반영하여 Baseline 유지, CCB구성, 인력고도화, 버전관리등을 설계
다. Lehman S/W 변화의 원리 주요내용
원리 |
설 명 |
Continuing change |
소프트웨어는 진화함 |
Increasing complexity |
변경이 가해질수록 구조는 복잡해짐 |
Program evolution |
프로그램별로 변경되는 고유한 추세가 있음 |
Organizational Stability |
개발생산성이 변화에 민감하지 않고 안정됨 |
Conservation of familiarity |
소프트웨어 각 버전의 변화는 일정함 |
- Baseline을 기반으로 안정성 추구, 성능개선, 리펙토링등을 통한 만족도 향상
라. Lehman S/W 변화의 원리 고려사항
- 유지보수는 Baseline 을 기반으로 안정성을 추구하나 성능개선, 예방유지보수, 리펙토링활동을 수행하여 안정성과 더불어 효과성 사용자 만족성을 높이는 활동을 병행해야 한다.
- Increasing Complexity의 원리에 따라 변경을 수행한 후 Regression Test를 수행하여 Unit, Input, Partition, Path, DataFlow에 대한 검증을 통해 복잡성 증가에 대한 품질 보증활동 수행 요구
5. S/W 생산성 및 효율적인 유지보수 향상을 위한 3R
가. S/W 3R의 정의
- 레포지토리(Repository)를 기반으로 역공학(Reverse Engineering), 재공학(Reengineering), 재사용(Reuse)을 통해 S/W의 생산성 및 유지보수 효율성을 극대화 하는 기법
- 정보저장소(Repository)는 3R을 구현하는 수단으로 사용됨
나. S/W 3R 추진 배경
- S/W 위기극복, 개발 생산성 향상
- 유지보수 비용의 절감
- S/W 변경 요구사항의 신속한 대처
다. 3R의 구성요소
접근방법 |
주요 내용 |
역공학(Reverse Engineering) |
자동화된 도구의 도움으로 물리적 수준의 S/W정보를 논리적인 S/W 정보의 서술로 추출하는 프로세스 |
재공학(Re- Engineering) |
자동화된 도구를 현존하는 시스템을 점검 또는 수정하는 프로세스 |
재사용 (Reuse) |
이미 개발되어 그 기능, 성능 및 품질을 인정받았던 S/W의 전체 또는 일부분을 다시 사용 |
VI. S/W 유지보수 문제점 및 해결방안과 발전전망
가. S/W 유지보수 문제점 및 해결방안
문제점 |
해결방안 |
유지보수 역효과 발생(코딩,자료,문서) |
SDLC각 단계에서 QA 활동 강화 |
시스템의 신뢰성 저하 가능성 |
표준화된 개발방법론 및 개발도구 적용 |
유지보수 비용, 인력의 증가 |
S/W 재공학 도구 활용(3R) |
유지보수 절차,조직 및 인력운영 방법이 비체계적 |
변경관리, 형상관리등 적절한 프로젝트 관리기법 도입 |
예방활동 미흡 |
유지보수 요인에 대한 예방활동 실시 |
유지보수 인력의 기술부족 |
유지보수 인력에 대한 교육프로그램 개발 |
나. S/W 유지보수의 발전방향
관점 |
발전전망 |
표준화 |
변경관리, 분석활동, 기본설계, 상세설계, 구현활동과 같은 개발활동을 현 시스템에 맞춰 표준화 시행 |
자동화 |
재공학 도구의 발전으로 유지보수 자동화 지원 활동이 강화될 전망 |
전략 |
S/W 패키지화 및 효율적인 형상관리 기법을 도입하여 유지보수 향상을 위해 전략적으로 노력해야 함 |