본문으로 건너뛰기

리먼(Lehman)의 소프트웨어 진화 법칙

· 약 4분

소프트웨어 진화 법칙 개요

소프트웨어 진화 법칙 개념

  • 대부분의 소프트웨어가 존재하는 동안 변경이 일반적이며, 지속적으로 유지되기 위해 준수해야하는 법칙
  • 품질관리와 변경관리의 중요성 강조, 유지보수 비용증가에 따른 관리전략 수립을 위해 필요

소프트웨어 진화 법칙 필요성

  • SW 변화의 특성을 이해하여 유지보수, 변경관리, 형산관리, 품질 통제의 중요 모델로 반영할 수 있으므로 효과적인 유지보수 및 변화관리 가능.

소프트웨어 진화 법칙 개념도, 핵심요소, 적용방안

소프트웨어 진화 법칙 개념도

소프트웨어 진화 법칙 핵심요소

구분법칙내용
완전유지관리조직적 안전성평균 유효한 글로벌 작업률은 제품 수명 기간동안 변하지 않음
지속적인 성장사용자를 만족시키기 위해 기능적 성장 필요
적응유지관리지속적인 변화SW는 지속적으로 적응하고 변화해야함
자기 규제시스템 진화는 제품의 배포와 프로세스 측정으로 자체 조절됨
피드백 시스템진화 프로세스는 다중 레벨, 다중 에이전프 피드백 시스템이여야함
수리유지관리품질 저하변경이 엄격하게 유지 관리되고 적응하지 않으면 품질 감소
예방유지관리증가하는 복잡성시스템이 발전할 때 관리하지 않으면 복잡성 증가
친숙도 보존사용자는 만족스러운 진화가 될 수 있게 내용과 행동을 숙달해야함
  • SW 변화 특성을 이해하고, 유지보수, 변경관리, 형상관리, 품질 통제의 중요 모델로 반영

소프트웨어 진화 법칙 적용방안

구분방안비고
요구사용자 요구 지속적 수집, 분석요구관리 툴
설계모듈화된 설계를 통한 변경 용이성컴포넌트화
구현변경관리 프로세스 통한 코드 관리VCS 활용
테스트자동화된 테스트 통한 품질 검증Continuous Test
배포점진적 배포를 통한 안정적 대응블루-그린 배포
유지보수지속적 모니터링과 피드백 수집, 개선CMS
폐기SW 수명 종료시 폐기 절차 수행데이터 마이그레이션

소프트웨어 진화법칙 추가적인 고려사항

  • 신기술 도입과 기존 기술의 진화를 지속적으로 모니터링하여 SW 기술 부채를 최소화하는 활동 필요