본문 바로가기
IT기술노트/소프트웨어공학

소프트웨어 유지보수

by 비트코기 2021. 2. 3.
반응형

리만의 법칙, 유지보수 유형


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

가. 소프트웨어 유지보수의 정의 (TCO 관점을 항상 생각)

   - 소프트웨어의 생명 연장을 위해, 결함제거, 성능향상 등 변화된 환경에 적응을 위한 운영 중심의 단계

나. 소프트웨어 유지보수의 필요성

   - 버그제거, 운영환경의 변화, 정부 정책의 변화, 비즈니스 절차의 변화, 미래 문제 대비


II. 소프트웨어 진화의 법칙 및 유지보수 유형

가. 리만(Lehman)의 법칙

원리

설명

지속적인 변경의 원칙

(Continuing Change)

- 소프트웨어는 변경됨

- 시스템이 릴리즈 된 후, 그 시스템이 대체 될 때까지 계속 변경

프로그램 진화의 법칙

(Large Program Evolution)

- 프로그램 별 변경되는 고유한 추세가 있음

엔트로피, 복잡도 증가의 법칙

(Increasing Complexity)

- 변경이 가해질수록 구조는 복잡해짐

- 변경이 오류를 유발하고, 더 많은 변경을 요구하면서 구조 악화

안정성 유지의 법칙

(Conversation of Organization Stability))

- 조직의 개발 생산성이 조직 변화에 민감하지 않고 안정됨

- 진화하는 시스템 유지보수는 소멸 전까지 일정한 평균 작업량 유지

친근성 유지의 원리

(Conversation of Familiarity)

- 소프트웨어 각 버전의 변화는 일정함

- 시스템의 평균 성장률은 소멸 시까지 일정함

지속적 성장의 법칙

(Continuing Growth)

- 진화하는 시스템은 사용자를 만족시키기 위해 기능적 성장을 계속 진행

품질 저하의 법칙

(Declining Quality))

- 진화하는 시스템의 품질은 운영 환경의 변화에 완전히 적응하지 못하는 한 저하

피드백 시스템의 법칙

(Feedback Systems)

- 진화 프로세스는 여러 단계의  여러 번 반복, 중요한 역할을 담당하는 여러 관련자들의 피드백으로 구성

나. 유지보수의 유형

유지보수 유형

설명

사례

수정 유지보수

(Corrective)

발견된 오류의 원인을 찾아 문제 해결 오류와 결함의 수정 부분

A/S 시점

적응 유지보수

(Adaptive)

새로운 자료나 운영체제, 하드웨어 환경으로 이식

SW 환경 변경으로 Porting

완전 유지보수

(Perfective)

오류가 아닌 부족한 부분, 불완전 부분 유지보수

신규 비즈니스

프로세스 발생

예방 유지보수

(Preventive)

유지보수성, 신뢰성 향상 위한 구조 변경 등 향후 발생 가능성 사전에 처리 유지보수

Refactoring

 

반응형

댓글