폭포수 모델과 애자일 방법론 정리

폭포수 모델

   - 계획, 요구사항 분석, 설계, 구현, 시험 및 유지 보수 과정

   - 전통적인 방법론

   - 폭포수 방법론의 순차적이고 구조화된 접근 방식은 초기 단계에서의 광범위한 계획과 구조화된 개발 프로세스가 중요한 대규모 모놀리식 시스템의 개발에 적합

계획, 요구사항 분석, 설계, 구현, 시험 및 유지 보수 과정

 

- 일정 계획

   - WBS(Work Breakdwon Structure)가 대표적작업 분할 구조도

   - 프로젝트 목표를 달성하기 위해 필요한 활동과 업무를 세분화하는 작업

   - 수행사 및 담당자까지 지정

   - 설계 : 시스템 설계, DB 설계, SW 설계

   - 구현 : 코딩(전체 중 20% 시간 할당)

   - 시험 : 전체 개발 기간의 40% 가까이를 차지

 

테스트 유형

  • 유닛테스트(Unit Testing)
    • 프로그램의 기본단위인 모듈에 대한 테스트를 수행하는 단위 시험
  • 통합테스트(Integration Testing)
    • 단위 시험 후 모듈들을 통합하여 테스트를 수행하는 통합 시험
  • 시스템테스트
    • 통합 시험 이후 소프트웨어와 다른 시스템 요소(하드웨어, 정보 등)들과 통합하여 시스템의 기능을 만족하는지 확인하는 시스템 시험
  • 인수테스트
    • 고객이 참여하여 고객 요구사항 만족 여부를 검증하는 인수 시험

유지보수

   - 사용 중 발생하는 여러 변경사항에 대해 적응하는 활동이며 변화에 따른 프로그램 추가/수정을 하는 과정

 

폭포수 모델 장점

   - 프로젝트 진행과정을 세분화하기 때문에 큰 프로젝트의 진척과 인력 관리가 용이

   - 개발방법론의 초기 모델로서 많은 수행과 검증을 거쳐왔고, 대규모 시스템 구축에 있어 경험 축적

   - man/month 기반의 비용선정과 일정산정의 용이

 

폭포수 모델 단점

   - 고객이 원하는 요구사항을 초기에 구체화 하기 어려움

   - 오류발견과 수정이 순환적으로 발생하므로, 순차적으로 개발이 현실적으로 어려움

   - 시스템 구축이 후반부에 가서야 완료 되는 경우엔, 시스템 문제적 파악 어려움

   - 설계한 아키텍처의 문제가 후반부에 가서야 발견되는 경우가 많아, 수정의 어려움

   - man/month 기반의 비용산정의 불합리성과 일정산정의 부정확함

 

 

애자일 방법론

   - 개발자들이 좋은 것을 빠르고 낭비 없이 만들기 위해 경량화된 가벼운 개발방법론이 애자일

 

애자일 방법론의 단계

   - 분석, 설계, 구현, 시험이 끊임없이 진행되는 반복되는 순환적 개발 과정

   - 각 단계를 짧게 1-2주정도의 짧은 기간(sprint)을 잡소 특정 기능이 동작하는 데모, 즉 최소 기능 제품(MVP - Minimum Viable Product)를 통해 배포후에 고객에게 시연하고 피드백을 통해 다시 반복적으로 분석, 설계, 구현, 시험

   - 요구사항의 변화가 자주 일어나거나 개발자가 소규모인 소형 또는 중간 사이즈의 비즈니스 시스템, 게임 소프트웨어 개발이 적합

 

애자일 방법론의 작은단위의 기능개발, 팀별 자율성 등의 특징은 모놀리식 아키텍처가 아닌 msa 아키텍처와 적합한 구조

 

전통모델 → 모놀리식 → 일반적으로 대기업 or 공공기관

애자일모델 → MSA

 

애자일 방법론의 최소 기능 제품(MVP-Minimum Viable Product)과 prototype의 차이점이 궁금해서 ChatGPT에게 물어보았다. 중요한 차이점이라고 생각하는 부분에 굵은 글씨 표시하였다.

💡 You
prototype이랑 Minimum Viable Product의 차이를 알려줘

ChatGPT
프로토타입(Prototype)과 최소 실현 가능 제품(Minimum Viable Product, MVP)은 제품 개발 프로세스에서 다르게 사용되는 두 가지 개념입니다. 아래는 두 용어 간의 주요 차이를 설명합니다:

프로토타입 (Prototype):
목적: 프로토타입은 아이디어나 디자인 컨셉을 시각적으로 나타내고, 제품의 사용자 경험을 시연하는 데 중점을 둡니다. 주로 개발 전 초기 단계에서 사용되어 기능, 디자인, 사용자 인터페이스 등을 검증하고 피드백을 수집하는 데 사용됩니다.
특징: 프로토타입은 완전한 제품이 아닌 일부 기능 또는 디자인 요소를 보여주는 것이 일반적이며, 빠른 시일 내에 만들어질 수 있습니다. 프로토타입은 개발 초기에 빠르게 실험하고 수정할 수 있는 유연성을 제공합니다.

최소 실현 가능 제품 (Minimum Viable Product, MVP):
목적: MVP는 제품을 최소한의 기능으로 출시하여 초기 사용자 피드백을 수집하고, 제품 개선 방향을 결정하는 데 중점을 둡니다. 이는 빠르게 시장에 진입하고 실제 사용자의 반응을 확인하기 위해 사용됩니다.
특징: MVP는 제품의 핵심 기능만을 포함하고, 나머지는 최소한의 기능으로 제한합니다. 목표는 초기 버전을 빠르게 출시하여 시장에서의 반응을 측정하고, 이를 통해 제품을 계속 발전시키는 것입니다.

간단히 말하면, 프로토타입은 주로 개발 초기에 디자인과 사용자 경험을 검증하고 개선하기 위해 사용되는 것이며, MVP는 실제로 시장에 출시되어 사용자 피드백을 수집하고 제품을 발전시키는 데 중점을 둡니다.

'SW_ENGINEERING STUDY' 카테고리의 다른 글

Git 명령어 정리  (0) 2023.11.30
JIRA활용 프로젝트 관리(Git 연동)  (0) 2023.11.29