리먼 소프트웨어 변화 원리

IT위키
Lehman's laws of software evolution[1]
소프트웨어는 지속적으로 변화한다는 것을 전제로, 시스템 변화에 대해 일반적으로 적용되는 원칙 제시
  • 임페리얼 칼리지 런던의 교수였던 Lehman과 Belady가 1974년부터 1996년까지 발전시켜 온 이론

시스템 분류

  • S-타입(Static Type): 단순 계산 프로그램
  • P-타입(Practical Type): 요구되는 동작이 명확하여 변화가 거의 일어나지 않는 프로그램
  • E-타입(Embedded Type): 실제 일상(업무)에서 수행하는 활동을 위해 만들어진 프로그램
리먼의 원리는 E-타입에만 적용된다.

8가지 변화 원리

Continuing Change

지속적 변경(1974년)

An E-type program that is used must be continually adapted else it becomes progressively less satisfactory.

  • 소프트웨어는 계속 진화하며 요구사항에 의해 계속적으로 변경됨
  • 소프트웨어는 자체적으로 갱신 불가하며 인간의 의지의 개입이 필요
  • 다시 만드는 것보다 더 경제적이라고 판단되는 한 계속 변화

Increasing Complexity

복잡도 증가(1974년)

As a program is evolved its complexity increases unless work is done to maintain or reduce it

  • 변경이 가해질수록 구조는 복잡해짐
  • 복잡도는 이를 유지하거나 줄이고자 하는 특별한 작업을 하지 않는 한 계속 증가

Self Regulation

자가 조절(1974년)

The program evolution process is self regulating with close to normal distribution of measures of product and process attributes.

  • 프로그램별로 변경되는 사항은 고유한 패턴/추세가 있음
  • 복잡성을 단순화 시키려는 인간 의지의 개입

Conservation of Organisational Stability

조직적 안정성(1978년)

The average effective global activity rate on an evolving system is invariant over the product life time.

  • 변화하는 시스템의 평균적인 효과성은 제품 생애 전반 동안 불변
  • 조직의 경영 사정, 전사적 안정성 추구 등에 따라 효과성은 크게 변하지 않음

Conservation of Familiarity

익숙함의 보존(1978년)

During the active life of an evolving program, the content of successive releases is statistically invariant.

  • 소프트웨어 각 버전의 변화는 일정함
  • 소프트웨어는 규칙적인 수행결과와 추이를 보여주기 때문에 계측 가능

Continuing Growth

지속적 성장(1991년)

Functional content of a program must be continually increased to maintain user satisfaction over its lifetime.

  • 소프트웨어의 기능성은 사용자 만족도를 유지하기 위해 증가됨

Declining Quality

품질 감소(1996년)

E-type programs will be perceived as of declining quality unless rigorously maintained and adapted to a changing operational environment.

  • 소프트웨어는 엄격하게 관리 및 운영되지 않거나, 환경 변화에 적응하지 않으면 품질 하락

Feedback System

피드백 시스템(1996년)

E-type Programming Processes constitute Multi-loop, Multi-level Feedback systems and must be treated as such to be successfully modified or improved

  • 시스템의 지속적인 변화 또는 진화를 유지하려면 성능을 모니터링 할 수단이 필요
  • law이므로 '법칙'으로 해석하는 것이 더 적절하다. Lehman은 리만브라더스에서의 리만이다. 흔히 한글로 표기되는 이름인데 이상하게 이 법칙만 'Lehman 소프트웨어 변화의 원리'라고 다소 이상하게 표기된다. 그냥 '리만의 소프트웨어 변화 법칙'이라고 부르는게 가장 적절하나, 본 위키에선 범용적인 명칭을 어느정도 따른다.