소프트웨어 공학과 개발 프로세스 – 2


소프트웨어 개발 프로세스 모델

폭포수 모델

  • 폭포에서 물이 떨어지듯이 다음 단계로 넘어가는 모델(고전적인 생명주기)
  • 초기에 개발된 전통적인 모델
  • 공장 생산라인과 유사하다, 소프트웨어를 순차적으로 개발

폭포수 모델의 개발절차

  • 각 단계가 끝날때 마다 확실한 산출물(결과물)이 있어야함
  • 요구 분석 명세서라는 문서를 작성하며
  • 명세서를 기준으로 이상 유무를 확인하고 다음 단계로 넘어감

폭포수 모델 장점

  • 관리가 용이
  • 체계적으로 문서화 가능
  • 요구 사항의 변화가 적은 프로젝트에 적합 (특징)

폭포수 모델 단점

  • 각 단계는 앞 단계가 완료 되어야 수행가능
  • 만약 후반부에 문제 발생시 문제가 있는 경우 그 단계까지 앞으로 가야한다.
  • 결과물이 완벽하게 작성되어야 다음 단계에 오류를 넘겨주지 않음
  • 사용자가 마지막 쯤 되어야 결과물을 볼 수 있음

V 모델

  • 폭포수 모델의 변형으로, 그와 동일하지만 테스트 부분을 세분화 하였음,
  • 폭포수 모델이 산출물 중심이라면 V 모델은 각각의 단계를 검증하는데 초점을 두고 있음

V 모델의 장점

  • 소프트 웨어 개발에 검증과 확인 과정을 거쳐서, 개발에 대한 오류를 줄일 수 있음
  • 요구 사항이 적은 소프트웨어를 개발하기 용이

V 모델의 단점

  • 폭포수 모델의 변형이기 때문에, 개발 하는동안 반복이 힘듦

프로토타입 모델

  • 완전한 소프트웨어 개발 이전, 사용자의 요구대로 모형을 만들고, 사용자 의사소통
  • Ex) 아파트 모델하우스

프로토타입 모델의 개발

  • 프로토타이핑 : 프로토타입을 만드는 것
  • 개발자는 사용자의 초기 요구사항을 반영해 1차 프로토타입(입출력 화면)을 만들고, 이를 사용자에게 보여준다.
  • 사용자는 1차 프로토타입을 보면서 수정요구를 하고, 이를 반영하여 2차 프로토 타입 제작
  • 사용자의 요구가 불투명하고 요구사항의 변화가 계속 많이 발생하는 경우에 적합

프로토타입 모델의 장점

  • 대화가 명시적으로 원활하게 대화 할 수 있음 -> 요구사항 분석 UP
  • 이를 통해, 사용자의 요구가 충분히 반영된 요구분석명세서 제작 가능
  • 개발 초기의 만족감을 가질 수 있음
  • 사용자의 요구가 충분히 반영 되므로, 유지보수의 필요한 노력과 시간 단축 가능

프로토타입 모델 단점

  • 반복적인 개발 단계로 인해 필요한 투입 인력과 비용 산정이 어려움
  • 프로토타입은 완전히 동작할 수 없음에도 빠른시간 안에 결과가 나올것이라 사용자가 착각할 수 있음
  • 프로토 타이핑 과정을 관리, 통제 하기 어려움
  • 소프트웨어 개발 목표나 종료 시점이 불명확해질 수 있음
  • 추가 비용 발생 가능

프로토타입 모델의 개발 절차

  1. 요구사항 정의 및 분석
  2. 프로토타입 설계
  3. 프로토타입 개발
  4. 사용자에 의한 프로토타입 개발
    • 사용자에게 보여주고 피드백을 받음
    • 개발자는 피드백을 반영해 2차 설계를 한뒤 2차 프로토타입 개발
    • 위 과정을 반복하여, 추가 요구 사항이 없을 때 최종 프로토타입 생성

나선형 모델

  • 점진적으로 시스템을 개발하는 모델
  • 개발 과정이 반복적이고 점진적으로 진행되는 나선 모양
  • 목표 설정 -> 위험 분석 -> 구현 및 테스트 -> 평가 및 다음 단계 수립의 활동 반복
  • 실제로 많이 못봤음, 대부분 에자일로 개발

나선형 모델의 개발 절차

  1. 계획 및 요구 분석 단계
    • 개발 의도를 파악해, 프로젝트의 목표를 명확히 하고, 여러 제약 조건들속 대한을 고려
  2. 위험 분석 단계
    • 나선형 모델의 특징
    • 프로젝트 수행에 방해되는 위험 요소를 찾아 작성 및 논의
    • 심각한 위험 존재 시 프로젝트 존속 여부 논의
  3. 개발 단계
    • 프로토타입 개발, 다른 모델과 동일
  4. 사용자 평가 단계
    • 사용자가 만족할 때 까지 반복하여 최종 제품을 개발

단계적 개발 모델

단계적 개발 모델 – 점증적 개발 방법

  • 중요하다고 생각 되는 부분부터 차례대로 개발 후 그 일부를 사용하면서 개발 범위를 점차 늘려간다.
  • Ex) 코스 요리에서 전체 요리-메인 요리-후식으로 하나가 끝나면 또 하나를 먹음
  • 핵심은: 개발 범위의 증가

점증적 개발 방법 – 소프트웨어 개발

  • 요구 분석 명세서에 명시된 시스템을 기능에 따라 독립성이 높은 서브 시스템으로 분할
  • 각 서브 시스템을 단계적으로 릴리즈하여 완성하는 방법

점증적 방법의 장단점

  • 한번에 많은 비용 필요 없음
  • 소프트웨어를 단계적으로 도입하면 자연스러운 변화 가능
  • 서브 시스템이 서로 관련이 있어 처음 설계 시 이후에 개발된 다른 서브 시스템과의 연관성을 고려해야함
  • 기존에 개발된 서브 시스템과 통합 시 어려움을 겪을 수 있음

단계적 개발 모델 – 점증적 개발 방법

  • 시스템 전체를 일차적으로 개발하여 인도 후, 각 서브 시스템의 기능과 성능을 변경 및 보강하여 완성도를 높인다.
  • 초기의 요구 사항이 불 분명할 시 적합
  • 핵심: 반복 = 품질의 증가

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다