본문 바로가기
좋은 개발자가 되기위한 방법들

소프트웨어 개발 생명주기의 정의

by chief_sac 2021. 8. 25.
반응형
💡 소프트웨어을 어떻게 개발할 것인가에 대한 최상위 수준의 프로세스

 

**소프트웨어 개발 생명주기의 역할**


 

  • 소프트웨어의 개발 단계를 정의한다.

  • 소프트웨어 개발에 있어 접근 방식을 제공한다.

  • 마일스톤과 일정 수립의 기준을 제공한다.
    ( 👆마일스톤이란 프로젝트를 진행하면서 중간 중간 중요한 시점을 말한다.)

  • 소프트웨어 비용 산정의 기준을 제공한다.



접근방식


 

SW개발에 생명주기는 크게 2가지로 접근할 수 있는데

 

BigBang Approach와 Evolutionary Approach가 있다. 먼저

  • "Big Bang" Approach란?빅뱅(big bang) 접근 방식은 단계적 접근이 아닌 급격한 접근 방식을 뜻한다.
    • 기존 체제에서 한 번에 새로운 체제 혹은 다른 체제로 옮겨가는 방법을 말한다.
    • 단계적 접근이 오랜 시간을 필요로 한다면 빅뱅 접근은 빠른 변화 속도가 특징이나 충분한 자원을 필요로하며 단계적 접근과 비교해 불안정하다는 단점이 있다.

  • "Evolutionary" Approach란?BigBang의 경우 작은 소프트웨어개발에서는 한번에 좋은 소프트 웨어를 개발할수있지만
    • 소프트웨어개발 전체 과정에 있어서 점진적이고 반복적으로 개발하는 방식이다.
    • R:요구사항 D:설계 C:코딩 T:테스팅

위에서 설명한 방법으로 소프트웨어의 개발

 

생명주기는 4가지 유형으로 나눠 볼 수 있는데


 

생명주기 유형


주먹구구식 개발 모델(Build & Fix Model)

 

💡 주먹구구식 개발 모델(Build & Fix Model)요구사항의 개발(분석), 설계 단계 없이 구현한 후 만족할 때까지 수정한다.

  • 소프트웨어의 크기가 아주 작은 경우에만 가능하다.
  • 개발 현황 관리 및 유지보수가 어렵다.

( 👆이후에 체계적인 소프트웨어 개발의 생명주기 모델의 연구를 가져온다)



폭포수 모델(Waterfall Model)

💡 폭포수 모델(Waterfall Model)소프트웨어 개발 전 과정을 체계적이고 순차적으로 접근하는 방법이다.
  • "Big Bang" Approach이다.
  • 소프트웨어 크기가 비교적 작으며, 고객의 요구사항이 명확하다면 적용한다.
  • 이전 단계의 산출물은 다음 단계의 입력으로 활용된다.
  • 이전 단계가 완료 될 때 까지 다음단계들은 대기 상태가 되어야한다.
  • 고객은 개발 후반부에나 실제 동작하는 소프트웨어를 확인 가능하다.

 

 

원형 모델(Prototyping Model)

 

💡 원형 모델(Prototyping Model)원형을 만들어서 고객과 함께 평가한 후 개발될 소프트웨어 요구사항을 명확히 하여서 완제품을 만드는 방식
  • "Evolutionary" Approach
  • 소프트웨어 개발 초기에 고객의 요구사항을 파악하기 어려운 경우에 적용된다.
  • 폭포수 모델의 단점을 보완하며, 원형을 빨리 개발하여서 고객과 검증하는것이 주된 목표이다.
  • 원형 개발 시 주요 기능만 고려 되므로 성능,보안,등은 일반적으로 고려하지않는다.
  • 원형은 고객에 의해서 확인된 후 폐기


나선형 모델(Spiral Model)

 

💡 나선형 모델(Spiral Model)폭포수 밒 원형 모델의 장점을 수용하고 위험 분석을 추가한 모델

    • "Evolutionary" Approach
    • 위험에 대처 가능하므로 고비용의 기간이 긴 소프트웨어 개발에 적용
    • 프로젝트 수행 시 발생하는 위험을 관리하고 최소화 하려는 것이 목적
    • 정확하지 않은 위험 분석을 했을 경우 또 다른 문제 발생 가능
    • 폭포수, 원형 모델에 비해 상대적으로 복잡하여 프로젝트 관리가 어려울 수 있음




이렇게 소프트웨어공학 기초과정에서 배웠던 소프트웨어 개발의 생명주기의 유형에 관한 정리를 해보았습니다.

 

반응형