리먼 소프트웨어 변화 원리: Difference between revisions
From CS Wiki
(새 문서: 분류:소프트웨어 공학 ;Lehman's laws of software evolution ;소프트웨어는 요구에 의해 계속적으로 변경된다는 것을 전제로, 시스템 변화에 대...) |
No edit summary |
||
Line 1: | Line 1: | ||
[[분류:소프트웨어 공학]] | [[분류:소프트웨어 공학]] | ||
;Lehman's laws of software evolution | ;Lehman's laws of software evolution<ref>law이므로 '법칙'으로 해석하는 것이 더 적절하다. Lehman은 리만브라더스에서의 리만이다. 흔히 한글로 표기되는 이름인데 이상하게 이 법칙만 'Lehman 소프트웨어 변화의 원리'라고 다소 이상하게 표기된다.</ref> | ||
;소프트웨어는 요구에 의해 계속적으로 변경된다는 것을 전제로, 시스템 변화에 대해 일반적으로 적용되는 원칙 제시 | ;소프트웨어는 요구에 의해 계속적으로 변경된다는 것을 전제로, 시스템 변화에 대해 일반적으로 적용되는 원칙 제시 | ||
* 임페리얼 칼리지 런던의 교수였던 | * 임페리얼 칼리지 런던의 교수였던 Lehman과 Belady가 1974년부터 1996년까지 발전시켜 온 이론 | ||
== Continuing Change == | == 시스템 분류 == | ||
;지속적 변경( | * S-타입(Static Type): 단순 계산 프로그램 | ||
* P-타입(Practical Type): 요구되는 동작이 명확하여 변화가 거의 일어나지 않는 프로그램 | |||
* E-타입(Embedded Type): 실제 일상(업무)에서 수행하는 활동을 위해 만들어진 프로그램 | |||
; 리먼의 원리는 E-타입에만 적용된다. | |||
== 8가지 변화 원리 == | |||
=== Continuing Change === | |||
;지속적 변경(1974년) | |||
* 소프트웨어는 계속 진화하며 요구사항에 의해 계속적으로 변경됨 | * 소프트웨어는 계속 진화하며 요구사항에 의해 계속적으로 변경됨 | ||
* 소프트웨어는 자체적으로 갱신 불가하며 인간의 의지의 개입이 필요 | * 소프트웨어는 자체적으로 갱신 불가하며 인간의 의지의 개입이 필요 | ||
* 다시 만드는 것보다 더 경제적이라고 판단되는 한 계속 변화 | * 다시 만드는 것보다 더 경제적이라고 판단되는 한 계속 변화 | ||
== Increasing Complexity == | === Increasing Complexity === | ||
;복잡도 증가( | ;복잡도 증가(1974년) | ||
* 변경이 가해질수록 구조는 복잡해짐 | * 변경이 가해질수록 구조는 복잡해짐 | ||
* 복잡도는 이를 유지하거나 줄이고자 하는 특별한 작업을 하지 않는 한 계속 증가 | * 복잡도는 이를 유지하거나 줄이고자 하는 특별한 작업을 하지 않는 한 계속 증가 | ||
== Program Evolution == | === Program Evolution === | ||
;프로그램 변화( | ;프로그램 변화(1974년) | ||
* 프로그램별로 변경되는 사항은 고유한 패턴/추세가 있음 | * 프로그램별로 변경되는 사항은 고유한 패턴/추세가 있음 | ||
* 복잡성을 단순화 시키려는 인간 의지의 개입 | * 복잡성을 단순화 시키려는 인간 의지의 개입 | ||
== Organizational Stability == | === Organizational Stability === | ||
;조직적 안정성( | ;조직적 안정성(1978년) | ||
* 조직의 생산성이 조직 변화에 민감하지 않음 | * 조직의 생산성이 조직 변화에 민감하지 않음 | ||
* 개인의 생산성을 최적화 하는 것이 팀의 생산성을 최적화하는데 필수적이지 않음 | * 개인의 생산성을 최적화 하는 것이 팀의 생산성을 최적화하는데 필수적이지 않음 | ||
== Conservation of Familiarity == | === Conservation of Familiarity === | ||
;익숙함의 보존( | ;익숙함의 보존(1978년) | ||
* 소프트웨어 각 버전의 변화는 일정함 | * 소프트웨어 각 버전의 변화는 일정함 | ||
* 소프트웨어는 규칙적인 수행결과와 추이를 보여주기 때문에 계측 가능 | * 소프트웨어는 규칙적인 수행결과와 추이를 보여주기 때문에 계측 가능 | ||
== Continuing Growth == | === Continuing Growth === | ||
;지속적 성장( | ;지속적 성장(1991년) | ||
* 소프트웨어의 생애 동안 기능성은 사용자 만족도는 유지하기 위해 증가됨 | * 소프트웨어의 생애 동안 기능성은 사용자 만족도는 유지하기 위해 증가됨 | ||
== Declining Quality == | === Declining Quality === | ||
;품질 감소( | ;품질 감소(1996년) | ||
* 소프트웨어는 엄격하게 관리 및 운영되지 않거나, 환경 변화에 적응하지 않으면 품질 하락 | * 소프트웨어는 엄격하게 관리 및 운영되지 않거나, 환경 변화에 적응하지 않으면 품질 하락 | ||
== Feedback System == | == Feedback System == | ||
;피트백 시스템( | ;피트백 시스템(1996년) | ||
* 시스템의 지속적인 변화 또는 진화를 유지하려면 성능을 모니터링 할 수단이 필요 | * 시스템의 지속적인 변화 또는 진화를 유지하려면 성능을 모니터링 할 수단이 필요 |
Revision as of 11:06, 18 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년)
- 소프트웨어는 계속 진화하며 요구사항에 의해 계속적으로 변경됨
- 소프트웨어는 자체적으로 갱신 불가하며 인간의 의지의 개입이 필요
- 다시 만드는 것보다 더 경제적이라고 판단되는 한 계속 변화
Increasing Complexity
- 복잡도 증가(1974년)
- 변경이 가해질수록 구조는 복잡해짐
- 복잡도는 이를 유지하거나 줄이고자 하는 특별한 작업을 하지 않는 한 계속 증가
Program Evolution
- 프로그램 변화(1974년)
- 프로그램별로 변경되는 사항은 고유한 패턴/추세가 있음
- 복잡성을 단순화 시키려는 인간 의지의 개입
Organizational Stability
- 조직적 안정성(1978년)
- 조직의 생산성이 조직 변화에 민감하지 않음
- 개인의 생산성을 최적화 하는 것이 팀의 생산성을 최적화하는데 필수적이지 않음
Conservation of Familiarity
- 익숙함의 보존(1978년)
- 소프트웨어 각 버전의 변화는 일정함
- 소프트웨어는 규칙적인 수행결과와 추이를 보여주기 때문에 계측 가능
Continuing Growth
- 지속적 성장(1991년)
- 소프트웨어의 생애 동안 기능성은 사용자 만족도는 유지하기 위해 증가됨
Declining Quality
- 품질 감소(1996년)
- 소프트웨어는 엄격하게 관리 및 운영되지 않거나, 환경 변화에 적응하지 않으면 품질 하락
Feedback System
- 피트백 시스템(1996년)
- 시스템의 지속적인 변화 또는 진화를 유지하려면 성능을 모니터링 할 수단이 필요
- ↑ law이므로 '법칙'으로 해석하는 것이 더 적절하다. Lehman은 리만브라더스에서의 리만이다. 흔히 한글로 표기되는 이름인데 이상하게 이 법칙만 'Lehman 소프트웨어 변화의 원리'라고 다소 이상하게 표기된다.