본문 바로가기
이론/IT

소프트웨어 개발 수명 주기 방법론

by 프로그래밍 공부 2023. 11. 11.

 소프트웨어 개발 수명 주기(Software Development Life Cycle, SDLC)란 정보 시스템을 계획, 개발, 시험, 채요하는 과정을 뜻하는 용어다. 이는 하드웨어부터 소프트웨어까지 넓은 범위에 적용할 수 있다. 대개 요구사항 분석 -> 설계 -> 테스트 -> 운영 단계로 구성되어 있다. 

 소프트웨어 개발에는 여러 SDLC 방법론이 있는데, 대표적으론 Waterfall, Agile, Spiral, 반복 점증적 방법론 등이 있다. 

  Waterfall, 즉 폭포수 모델은 다음과 같다.

폭포수 모델 - 위키백과, 우리 모두의 백과사전 (wikipedia.org)

 폭포수 모델은 개발의 흐름이 마치 폭포수처럼 단계적으로 아래를 향하는 것처럼 보여 폭포수 모델이라는 이름이 붙여졌다. 요구사항을 기술하고 설계하며 이를 구현, 시험과 디버깅을 한 뒤 유지 보수하는 것이다. 이를 따르기 위해서는 완전히 순차적으로 한 단계, 한 단계를 진행해 나가야 한다. 따라서 전 단계가 수행되어 완료되기 전에는 다음 단계로 진행될 수 없도록 제한되는 것이다. 

 다음은 반복 점증적 모델이다. 

반복 점증적 개발 - IT위키 (itwiki.kr)

 반복 점증적 모델은 요구사항이나 제품의 일부분만을 개발 및 반복하여 최종 사용자의 요구 사항에 부합하는 시스템을 완성해가는 개발 모델이다. 중요한 것은 반복적으로 사용자가 원하는 요구 사항을 점증적으로 완성해 간다는 것이다. 

 Spiral 모델, 즉 나선형 모델은 다음과 같다.

나선형 모델 - IT위키 (itwiki.kr)

나선형 모델은 반복 모델의 작은 반복 주기와 폭포수 모델의 선형 순차 흐름을 결합하여 위험 분석의 우선 순위를 지정한다. 즉, 프로젝트 수행 시 발생하는 위험을 관리하고 최소화 하려는 목적을 가진 모델이라고 할 수 있다. 성과를 보면서 점진적으로 개발을 진행할 수 있고, 위험관리 능력에 따라 프로젝트의 성공 여부에 영향이 미친다. 하지만 복잡성으로 인해 프로젝트의 관리가 어렵고 개발이 장기화 될 가능성이 존재한다. 이는 대규모 프로젝트와 같이 위험 부담이 큰 시스템 개발에 적합하다. 

 마지막으로 Agile 모델을 알아보자. 

에자일 모델은 절차나 문서보다 사람과 업무 자체를 중요시하여 유연하고 신속한 개발을 추구하는 방법론이다. 프로젝트 생명 주기 동안 반복적인 개발을 진행한다. 애자일 개발 프로세스에는 익스트림 프로그래밍, 스크럼, 스프린트 등이 있다.

익스트림 프로그래밍은 고객과 함께 2주 정도의 반복 개발을하고, 테스트 우선 개발(TDD)을 특징으로 하는 방법이다. 

스크럼은 프로젝트를 30일 단위의 스프린트로 분리하는 것을 중심으로 하여, 매일 정해진 시간에 정해진 장소에서 짧은 시간의 개발을 하는 방법론이다. 

여기서 스프린트는 1~4주 정도의 짧은 개발 단위를 말한다. 

 

'이론 > IT' 카테고리의 다른 글

클라우드 스토리지 솔루션  (1) 2023.11.12
클라우드 보안  (0) 2023.11.12
프로비저닝  (0) 2023.11.11
IT 거버넌스  (0) 2023.11.11
클라우드의 장점과 고려 사항  (0) 2023.11.11