소프트웨어 생명 주기 - Software Life Cycle
소프트웨어 생명주기(SLC) 또는 소프트웨어 개발 생명주기(SDLC)라고 부릅니다.
소프트웨어 개발을 위한 일련의 과정을 각각의 단계별로 나누어 표현합니다.
- 정식 명칭 및 약어
- 소프트웨어 생명 주기(SLC) - Software Life Cycle
- 소프트웨어 개발 생명주기(SDLC) - Software Development Life Cycle
- 정의
- 소프트웨어 개발을 위한 일련의 과정을 단계별로 나누어 표현
- 대표적인 생명주기 모델(모형)
- 폭포수 모델 - Waterfall Model
- 프로토타입 모델 - Prototype Model
- 나선형 모델 - Spiral Model
- 애자일 모형 - Agile Model
1. 폭포수 모델 - Waterfall Model
- 정의
- 각 단계를 확실하게 매듭짓고 다음 단계를 진행하는 모델
- 이전 단계로 돌아갈 수 없다.
- 각 단계가 완전히 끝나야만, 다음 단계를 진행할 수 있다.
- 특징
- 가장 오래되고 전통적인 소프트웨 생명 주기 모델이다.
- 따라서 고전적 생명 주기 모델이라고도 불린다.
- 그래서 모델의 적용 사례 및 성공 사례가 많다.
2.프로토타입 모델 - Prototype Model
- 정의
- 견본품을 만들어 최종 결과물을 예측하는 모델
- 견본품을 통해 사용자의 요구사항을 쉽게 파악하고 결과물을 예측할 수 있다.
- 특징
- 원형 모델이라고도 불린다.
- 견본품이 존재하는 모델이다.
3. 나선형 모델 - Spiral Model
- 정의
- 여러 번의 소프트웨어 개발 과정을 반복해 점진적으로 최종 소프트웨어를 개발하는 모델
- 계획 수립 → 위험 분석 → 개발 및 검증 → 고객 평가의 과정을 반복
- 특징
- 점진적 모델이라고도 불린다.
- 보헴(Boehml)이 제안한 모델
- 폭포수 모델과 프로토타입 모델의 장점 + 위험 분석 기능이 추가된 모델
- 누락 또는 추가되는 요구사항을 반영할 수 있다.
4. 애자일 모델 - Agile Model
- 정의
- 고객의 요구사항 변화에 유연하게 대응할 수 있는 모델들을 일컫는다.
- 특징
- 폭포수 모델과 대조적인 모델이다.
- 특정한 형태가 아닌, 고객과의 소통 및 대응에 초점을 맞춘 모델들의 통칭이다.
- 절차보다는 개인과의 상호작용에 가치를 둔다.
- 문서보다는 실행되는 결과물에 가치를 둔다.
- 계약보다는 고객과의 소통에 가치를 둔다.
- 계획보다는 변화에 대응하는 것에 가치를 둔다.
- 대표적인 애자일 모델 종류
- 스크럼 - Scrum
- 익스트림 프로그래밍(XP) - eXtreme Programming)
- 칸반 - Kanban
- Lean
- 기능 중심 개발(FDD) - Feature Driven Development
소프트웨어 공학?
소프트웨어공학(SE : Software Engineering)은 위와 같은 소프트웨어를 체계적으로 관리하여 품질과 생산성 향상을 목적으로 둔 여러 가지 방법론, 도구, 관리 기법등을 연구하는 학문이다.
소프트웨어 공학의 기본 3대 원칙
- 현대적인 프로그래밍 기술을 계속적으로 적용해야 된다.
- 개발된 소프트웨어의 품질이 유지되도록 지속적으로 검증해야 한다.
- 소프트웨어 개발 관련 사항 및 결과에 대한 명확한 기록을 유지해야 된다.
결과적으로 소프트웨어를 체계적으로 관리하여 품질과 생산성 향상을 위한 원칙.
Commnet