소프트웨어 종류 및 개발 방법론 7

랑아·2023년 4월 13일
0
post-thumbnail

프로젝트 관리 및 생명주기 모형

04. 소프트웨어 개발의 생명주기 모형

1) 폭포수 모형(Waterfall model)

1. 폭포수 모형의 개발 순서

  • 폭포수의 물흐름처럼 한 번 지나가면 다시는 되돌릴 수 없듯이 각 단계를 명확히 하고 다음 단계로 넘어가는 모형
    1. 타당성 검토
    2. 계획 단계
    3. 요구 분석
    4. 설계 단계
    5. 구현 단계
    6. 검사 단계
    7. 운용 + 유지보수
  • 단계가 이미 정해져 있으며 어느 한 단계에 문제가 생겨도 이전 단계 혹은 전전 단계로 되돌아갈 수 없는 것이 원칙
  • 가장 오래된 모형으로 많은 적용 사례가 있지만 요구사항의 변경이 어려움
  • 각 단계의 결과가 확인되어야만 다음 단계로 넘어감
  • 선행 순차적 모형으로 고전적 생명주기 모형이라고도 함
  • 두 개 과정이 병행 수행되거나 이전 단계로 넘어가는 경우가 없음
  • 사용자의 요구를 만족하는지는 최종적인 결과물이 나와야 확인 가능

2. 폭포수 모형의 특징

  • 모형의 적용 경험과 성공 사례가 많음
  • 순차적인 접근 방법을 이용
  • 오래되고 널리 사용된 전통적인 기법
  • 단계적 정의와 산출물이 명확함
  • 단계별로 문서화 작업이 필요
  • 오류 없이 명확하게 하여 다음 단계로 진행
  • 현실적으로 오류 없이 진행하기 어렵기 때문에 거꾸로 되돌아가는 상황이 발생
  • 새로운 요구나 경험을 설계에 반영하기 어려움
  • 개발이 완료되고 사용 단계에 들어서야 사용자 의견 반영 가능
  • 항공 방위 소프트웨어 시스템 개발 경험을 토대로 처음 개발되어 1970년대부터 널리 알려짐
  • 유사한 개발 경험이 있는 경우 효율적이고, 품질 면에서 우수함
  • 명확성이나 정밀성을 강조하는 경우 코딩이나 테스트 작업이 지연될 수 있음

2. 프로토타입 모형(Prototyping model, Working Prototype)

1. 프로토타입 모형의 순서

  1. 요구 수집 : 사용자(고객)에게 전부가 아니더라도 구현이 가능한 수준의 요구를 수집
  2. 빠른 설계 : 수집된 요구사항으로 빠른 설계, 개발 중 발생한 요구사항을 쉽게 반영할 수 있음
  3. 프로토타입 구축 : 프로토타입형 프로그램을 개발
  4. 고객 평가 : 사용자(고객)에게 평가를 받음
  5. 프로토타입 조정 : 프로토타입형 프로그램을 조정
  6. 전체 단계를 다시 반복
  • 모든 단계를 사용자의 요구가 만족되는 수준까지 반복
  • 완성된 프로토타입형 프로그램의 정보를 바탕으로 실제 구현 단계로 진행
  • 개발 초기 단계에 시범 소프트웨어를 만들어 사용자(고객)에게 경험하게 함으로써 사용자 피드백을 신속하게 제공할 수 있음
  • 시스템 개발 초기에 사용자(고객)의 요구 기능을 시제품으로 만들어 사용자로 하여금 기능과 사용성 등에 대해 검증시켜 가면서 시스템을 개발하는 기법

2. 프로토타입의 특징

  • 요구사항의 변경이 용이함
  • 요구사항이 불명확한 경우 적용하기 좋음
  • 최종 결과물의 일부 또는 전체 모형을 볼 수 있음
  • 개발 중 발생한 요구사항을 쉽게 반영 가능
  • 공동의 참조 모델을 제공
  • 구현 단계에서 구현 골격이 됨
  • 가상으로 시뮬레이션을 통하여 최종 결과물에 대한 예측이 가능한 모형
  • 실제 소프트웨어와 차이가 발생할 수 있음

브룩스(Brooks)의 이론

  • 프로토타입 소프트웨어는 폐기 처분하는 첫 번째 시스템이다.
  • 개발 일정이 지연된다고 해서 말기에 새로운 인원을 투입하면 일정이 더욱 지연된다.

3) 나선형 모형(Spiral model)

1. 나선형 모형의 개발 순서

  1. 계획 수립(Planning) : 개발 목적, 수정 계획, 제약조건 등을 설정
  2. 위험 분석(Risk Analysis) : 위험 요소 및 타당성을 분석하여 프로젝트의 추진 여부를 결정
  3. 개발 및 검증(Engineering) : 개선된 한 단계 프로토타입을 개발
  4. 고객 평가(Customer Evaluation) : 개발된 프로토타입을 평가

2. 나선형 모형의 특징

  • 계획 수립부터 모든 단계를 반복하면서 개발
  • 프로토타입을 지속적으로 발전시켜 최종 소프트웨어 개발까지 이르는 개발 방법으로 위험 관리가 중심인 소프트웨어 생명주기 모형
  • 폭포수 모형과 프로토타입 모형의 장점을 살린 모형으로 사용자 요구 확인에 의한 시스템 개발이 가능
  • 나선형 모형은 위험 분석을 해나가면서 시스템을 개발
  • 대규모 시스템의 소프트웨어 개발에 적합

4) V 모형

1. V 모형의 개발 순서

2. V 모형의 특징

  • 코딩을 중심으로 각 단계가 V자 모양을 이루고 있음
  • 폭포수 모형은 명확성을 강조한 반면 V 모형을 검증을 강조한 기법
  • 폭포수 모형에서 오류 발생 시 각 단계로 되돌아갈 수 있다는 것을 드러낸 모형
  • 폭포수 모형의 변형으로 산출물보다는 각 개발 단계의 테스트에 중점을 두며, 테스트 활동이 분석 및 설계와 어떻게 관련되어 있는지 보여줌
  • V자 모양 사이의 연결은 각 검사 단계에서 오류가 발생하였을 때 왼쪽의 단계로 되돌아갈 수 있음을 의미
  • V 모형은 높은 신뢰성을 필요로 하는 의료 제어 시스템이나 원자력 발전소 제어 시스템 등의 개발에 적합

5) 4세대(4GT : Fourth Generation Techniques) 모형

1. 4세대 모형의 이해

  • 4GT는 개발자나 사용자(개발 요청자)가 쉽게 접근할 수 있는 4세대 언어(4GL : Fourth Generation Language)를 이용한 기법
  • 4세대 언어의 이용은 소프트웨어의 중요한 기능을 자연 언어와 가까운 수준에서 개발할 수 있다는 것이며, 설계 단계를 축소하고 요구분석 단계에서 구현 단계로 직접 전환할 수 있는 장점을 이용한 방법
  • 현실적으로 4GT는 소규모 프로젝트에서는 설계를 축소하여 단기간에 개발될 수 있지만 대규모 프로젝트에서의 분석, 설계 그리고 검사 단계에서 많은 시간이 필요하므로 오히려 개발 시간이 오래 걸리는 문제점이 있음

2. 4세대 모형의 특징

  • 자연 언어(4GL 사용)로 원시 코드를 자동 생성
  • 설계 단계가 축소되어 있는 모형(4GL 개발 의지)
  • 중, 소규모 프로젝트는 시간이 단축될 수 있지만 대규모 프로젝트는 시간과 비용이 많이 소비됨

0개의 댓글