I. 변화 관리와 유지보수 핵심, Lehman 소프트웨어 변화
가. Lehman 소프트웨어 변화 원리
- 소프트웨어는 요구에 의해 계속적으로 변경되며, 변경에 따른 복잡성, 프로그램의 고유한 변경 추세, SW조직 생산성의 일관성, 소프트웨어 각 버전의 변화에 대한 일관성을 제시한 SW 변화의 원리
나. Lehman 소프트웨어 변화 원리 특징
- 소프트웨어 변화의 특성을 이해하고 유지보수, 변경관리, 형상관리, 품질통제의 중요 모델로 반영
- 소프트웨어 변화의 특성을 반영하여 SW 조직(People), 프로세스(Process), 기술(Technology)에 반영 하여 Baseline 유지, CCB구성, 인력고도화, 버전관리 등을 설계하는 중요 원리로 사용
다. SW 변화(진화) 프로세스
- 내,외부 변화를 인식하고 파급력(Risk)를 분석하여 요구사항 반영 과정
II. Lehman 소프트웨어 변화 원리의 주요 내용 및 적용 방안
가. Lehman 소프트웨어 변화 원리 주요내용
구분 | 세부내용 |
---|---|
계속적 변경 Continuing change | – 소프트웨어는 계속 진화하며 요구사항에 의해 계속 변경 – 변화는 지속되기 때문에 S/E적 관리가 필요함 – 소프트웨어는 자체적 갱신 불가하며 인간 의지 개입 필요 – 다시 만드는 것보다 경제적이라고 판단되는 한 계속 변화 – 아키텍처의 무결성이 훼손되거나 서비스 패치에 대한 비용이 많이 발생할때 마이그레이션이나 리엔지니어링을 고려 |
복잡도증가 Increasing complexity | – 변경이 가해질수록 구조는 복잡해짐 – 시스템의 복잡도는 이를 그대로 유지하거나 줄이고자 하는 특별한 작업을 하지 않는 한 계속 증가된다. |
대규모 프로그램 진화 Program evolution | – 프로그램 별로 변경되는 사항은 고유한 패턴/추세가 있음 – 변화Size, Release, Interval, Error 건수 – 복잡성을 단순화 시키려는 인간 의지의 개입 |
Organizational Stability | – 조직의 생산성이 조직 변화에 민감하지 않음 – 개인의 생산성을 최적화 하는 것이 팀의 생산성을 최적화 하는데 필수적이지 않음 |
Conservation of Familiarity | – 소프트웨어의 각 버전의 변화는 일정함 – 소프트웨어는 규칙적인 수행결과와 추이를 보여주기 때문에 계측 가능 |
Continuing Growth | – 소프트웨어의 Lifetime 내내, 기능 내용은 사용자 만족도를 유지하기 위해 증가가 계속됨(1991년 내용추가) |
Declining Quality | – 변화가 지속되면서 기능은 증가하지만 품질은 저하됨 – 소프트웨어는 엄격하게 관리 및 운영되지 않거나, 환경 변화에 적응 하지 않는다면 품질은 감소함(1996년 추가) |
Feedback System | – 피드백 형식으로 변화가 지속됨 – 진화 프로세스는 다중레벨, 다중루프, Multi-Agent 피드백 시스템을 수용하고 중요한 제품개선을 달성하기 위해 소프트웨어를 피드백으로 구성되어야 함(1996년 추가) |
나. Lehman 소프트웨어 변화 원리와 SW Lifecycle 연장을 위한 유지보수 분류
유지보수 분류 | 세부내용 |
---|---|
목적별 | 완전(유지보수성 향상), 적응(HW, SW의 변화), 예방, 수정(오류수정, 하자보수) |
대상 | 문서, 데이터, 네트워크, 하드웨어, 시스템 소프트웨어, 응용 소프트웨어 |
시간 | 계획(주기적), 응급, 지연, 예방(예방차원) |
ISO/IEC 14764 | 교정적, 적응적, 완전적, 예방적 유지보수; S/W 유지보수의 국제표준 |
다. Lehman 소프트웨어 변화 원리에 대한 적용방안
구분 | 세부내용 | 적용원리 |
---|---|---|
조직 (People) | 유지보수/변경관리를 위한 전문화 조직 구성 1/2/3선 조직, 개발조직/운영조직의 분리 변경통제위원회(CAB)/형상통제위원회(CCB) | Organizational Stability |
프로세스 (Process) | 요구사항 및 변경에 대한 통제프로세스 구성 요구관리프로세스/변경관리프로세스 어플리케이션 변경 영향도 분석 프로세스 | Continuing Change Increasing Complexity |
시스템 (System) | 프로그램과 버전에 대한 시스템적 구성 Baseline/CMDB 구성, 형상관리시스템 구성 | Program Evolution Conservation of Familiarity |
- Baseline을 기반으로 안정성 추구, 성능개선 등을 통해 사용자 만족도 향상
III. Lehman 소프트웨어 변화 원리 적용 고려사항
- 유지보수는 Baseline(기준선)을 기반으로 안정성을 추구하나 성능개선, 예방유지보수, 리팩토링(Refactoring) 활동을 수행하여 안정성과 더불어 효과성, 사용자 만족성을 높이는 활동을 병행해야 함
- Increasing Complexity의 원리에 따라 변경을 수행 후 회귀테스트(Regression Test)를 수행하여 Unit, Input Partition, Path, Data flow에 대한 검증을 통하여 복잡성 증가에 대한 품질 보증 활동 수행이 요구됨