소프트웨어공학
유지보수 (Part1)
chlqhrud0208
2024. 12. 16. 21:57
- 레거시(Legacy) 시스템을 대체하지 못하는 이유
- 높은 비용
- 전문가, 사용자의 오랜 경험과 지식이 녹아 있음
- 새로운 시스템이 더 좋다는 보장이 없음
-> but 레거시 시스템을 계속 사용할 경우 유지보수가 점점 어려워짐
- 유지보수 유형
- 수정형 유지보수
-> 테스트 단계에서 미처 찾지 못한 잠재적인 오류 발견
- 적응형 유지보수
-> 프로그램 환경 변화에 적응하기 위함
- 완전형 유지보수
-> 새로운 요구사항을 반영하기 위함
-> 유지보수 활동 중 가장 많은 자원 소모
- 예방형 유지보수
-> 선재적 유지 보수
- 리먼(Lehman)의 소프트웨어 변화 법칙 (8가지)
- 지속적인 변경의 원칙
- 엔트로피, 복잡도 증가의 원칙
-> 시스템의 구조는 변경할수록 더 나빠짐
-> 변경될수록 구조가 더 복잡해지고, 구조를 단순화 하기 위한 재구조화 또는 리엔지니어링 필요
- 자기 통제의 법칙
-> 변경되는 사항은 고유한 패턴/추세가 있음
- 안정성 유지의 법칙
-> 진화하는 시스템의 유지보수 프로세스는 시스템이 소멸할 때까지 일정한 평균 작업량을 보임
- 친근성 유지의 법칙
-> 시스템의 각 버전의 변화는 거의 일정함 (예측가능)
- 지속성 성장의 법칙
-> E타입의 시스템은 사용자를 만족시키기 위해 기능적 성장을 계속 해야함
- 품질 저하의 법칙
-> E타입의 시스템은 변화에 적응하지 못하면 품질 저하됨
- 피드백 시스템의 법칙
-> 진화 프로세스는 여러 관련자의 피드백으로 구정됨
- 유지보수 프로세스 모델
- 즉시 수정 모델
장점 : 빠르게 유지 보수 가능
단점 : 인력과 자원이 긴급 보수에 투입 -> 문서 변경에 투입되는 시간 감소 (오류 탐색 기회 감소 -> 큰 시스템에는 적합하지 않음)
- 반복적 개선 모델
단점 : 언제 끝날지 모름
- 재사용 중심 모델
순서
1) 재사용 후보가 될 시스템 부품을 파악
2) 해당 시스템 부품을 새로운 요구에 맞추어 변경
3) 변경된 부품을 새 시스템에 통합
- 유지보수의 작업 과정
1) 현재 프로그램의 이해
-> 상향식, 묶음화 원리 사용
2) 변경 파악과 분석
3) 변경의 영향 파악
-> 의존관계가 있다면 변경 시 영향이 가게됨
4) 변경 구현, 테스트, 설치
-> 리그레션 테스트