리먼 소프트웨어 변화 원리: Difference between revisions

From IT Wiki
No edit summary
No edit summary
Line 13: Line 13:
=== Continuing Change ===
=== Continuing Change ===
;지속적 변경(1974년)
;지속적 변경(1974년)
An E-type program that is used must be continually adapted else it becomes progressively less satisfactory.
* 소프트웨어는 계속 진화하며 요구사항에 의해 계속적으로 변경됨
* 소프트웨어는 계속 진화하며 요구사항에 의해 계속적으로 변경됨
* 소프트웨어는 자체적으로 갱신 불가하며 인간의 의지의 개입이 필요
* 소프트웨어는 자체적으로 갱신 불가하며 인간의 의지의 개입이 필요
Line 19: Line 20:
=== Increasing Complexity ===
=== Increasing Complexity ===
;복잡도 증가(1974년)
;복잡도 증가(1974년)
As a program is evolved its complexity increases unless work is done to maintain or reduce it
* 변경이 가해질수록 구조는 복잡해짐
* 변경이 가해질수록 구조는 복잡해짐
* 복잡도는 이를 유지하거나 줄이고자 하는 특별한 작업을 하지 않는 한 계속 증가
* 복잡도는 이를 유지하거나 줄이고자 하는 특별한 작업을 하지 않는 한 계속 증가


=== Large Program Evolution ===
=== Self Regulation ===
;대형 프로그램의 진화(1974년)
;자기 규제(1974년)
The program evolution process is self regulating with close to normal distribution of measures of product and process attributes.
* 프로그램별로 변경되는 사항은 고유한 패턴/추세가 있음
* 프로그램별로 변경되는 사항은 고유한 패턴/추세가 있음
* 복잡성을 단순화 시키려는 인간 의지의 개입
* 복잡성을 단순화 시키려는 인간 의지의 개입


=== Organizational Stability ===
=== Conservation of Organisational Stability ===
;조직적 안정성(1978년)
;조직적 안정성(1978년)
* 조직의 생산성이 조직 변화에 민감하지 않음
The average effective global activity rate on an evolving system is invariant over the product life time.
* 개인의 생산성을 최적화 하는 것이 팀의 생산성을 최적화하는데 필수적이지 않음
* 변화하는 시스템의 평균적인 효과성은 제품 생에 전반 동안 불변


=== Conservation of Familiarity ===
=== Conservation of Familiarity ===
;익숙함의 보존(1978년)
;익숙함의 보존(1978년)
During the active life of an evolving program, the content of successive releases is statistically invariant.
* 소프트웨어 각 버전의 변화는 일정함
* 소프트웨어 각 버전의 변화는 일정함
* 소프트웨어는 규칙적인 수행결과와 추이를 보여주기 때문에 계측 가능
* 소프트웨어는 규칙적인 수행결과와 추이를 보여주기 때문에 계측 가능
Line 39: Line 43:
=== Continuing Growth ===
=== Continuing Growth ===
;지속적 성장(1991년)
;지속적 성장(1991년)
* 소프트웨어의 생애 동안 기능성은 사용자 만족도는 유지하기 위해 증가됨
Functional content of a program must be continually increased to maintain user satisfaction over its lifetime.
* 소프트웨어의 기능성은 사용자 만족도를 유지하기 위해 증가됨


=== Declining Quality ===
=== Declining Quality ===
;품질 감소(1996년)
;품질 감소(1996년)
E-type programs will be perceived as of declining quality unless rigorously maintained and adapted to a changing operational environment.
* 소프트웨어는 엄격하게 관리 및 운영되지 않거나, 환경 변화에 적응하지 않으면 품질 하락
* 소프트웨어는 엄격하게 관리 및 운영되지 않거나, 환경 변화에 적응하지 않으면 품질 하락


=== Feedback System ===
=== Feedback System ===
;피드백 시스템(1996년)
;피드백 시스템(1996년)
E-type Programming Processes constitute Multi-loop, Multi-level Feedback systems and must be treated as such to be successfully modified or improved
* 시스템의 지속적인 변화 또는 진화를 유지하려면 성능을 모니터링 할 수단이 필요
* 시스템의 지속적인 변화 또는 진화를 유지하려면 성능을 모니터링 할 수단이 필요

Revision as of 14:56, 19 October 2019

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

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