프로토타이핑(Prototyping) 모델

최종 제품의 초기 버전 또는 모형을 만들어 사용자의 피드백을 받고 요구사항을 명확히 하는 방법.
이 모델은 특히 사용자 인터페이스나 시스템의 기능이 명확하지 않을 때 유용

%%{init: {'theme': 'default', 'themeVariables': { 'fontSize': '14px'}, 'flowchart': {'width': 800, 'height': 600, 'diagramPadding': 15}}}%%
graph TD
    Start([프로젝트 시작]) --> Init[요구사항 수집]
    
    subgraph PrototypeCycle [프로토타입 개발 사이클]
        subgraph Requirements [1. 요구분석]
            R1[요구사항 정의] --> R2[범위 설정]
        end
        
        subgraph Design [2. 설계]
            D1[기본 설계] --> D2[UI/UX 설계]
        end
        
        subgraph Build [3. 구현]
            B1[프로토타입 개발] --> B2[기능 구현]
        end
        
        subgraph Evaluate [4. 평가]
            E1[사용자 테스트] --> E2[피드백 수집]
        end
    end
    
    subgraph Final [최종 단계]
        F1[프로토타입 개선] --> F2[최종 개발]
    end
    
    %% 메인 프로세스 흐름
    Init --> Requirements
    Requirements --> Design
    Design --> Build
    Build --> Evaluate
    Evaluate --> Decision{요구사항 충족?}
    Decision -->|No| F1
    F1 --> Requirements
    Decision -->|Yes| F2
    F2 --> End([프로젝트 완료])
    
    %% 주요 특성
    subgraph Features [핵심 특성]
        C1[빠른 개발]
        C2[사용자 참여]
    end
    
    %% 스타일 정의
    classDef default fill:#f9f9f9,stroke:#333,stroke-width:1px
    classDef phase fill:#e1f5fe,stroke:#01579b,stroke-width:1px
    classDef decision fill:#fff3e0,stroke:#e65100,stroke-width:1px
    classDef milestone fill:#e8f5e9,stroke:#2e7d32,stroke-width:1px
    
    class Start,End,Init milestone
    class R1,R2,D1,D2,B1,B2,E1,E2,F1,F2 phase
    class Decision decision
    class C1,C2 phase
    
    style PrototypeCycle fill:#fafafa,stroke:#666,stroke-width:1px
    style Final fill:#e1f5fe,stroke:#666,stroke-width:1px
    style Features fill:#f5f5f5,stroke:#666,stroke-width:1px

주요 단계

  1. 요구사항 수집: 기본적인 요구사항을 수집.
  2. 빠른 설계: 프로토타입의 초기 설계를 수행.
  3. 프로토타입 구축: 작동하는 프로토타입을 개발.
  4. 사용자 평가: 사용자가 프로토타입을 사용해보고 피드백을 제공.
  5. 프로토타입 개선: 사용자 피드백을 바탕으로 프로토타입을 수정.
  6. 최종 제품 개발: 완성된 프로토타입을 바탕으로 최종 제품을 개발.

특징

  1. 빠른 개발: 초기 버전을 신속하게 만들어 사용자에게 제시한다.
  2. 반복적 개선: 사용자 피드백을 바탕으로 프로토타입을 지속적으로 개선한다.
  3. 시각화: 추상적인 아이디어를 구체적인 형태로 시각화한다.
  4. 요구사항 명확화: 사용자와의 상호작용을 통해 요구사항을 더 정확히 파악한다.
  5. 위험 감소: 초기 단계에서 설계 문제를 발견하고 수정할 수 있다.

유형

  1. 일회용 프로토타이핑: 프로토타입을 버리고 최종 제품을 새로 개발.
  2. 진화형 프로토타이핑: 프로토타입을 계속 개선하여 최종 제품으로 발전.
  3. 증분형 프로토타이핑: 시스템을 작은 단위로 나누어 각각 프로토타입을 만들고 통합.

장점

  1. 사용자 참여 증가: 사용자가 개발 과정에 적극적으로 참여하게 된다.
  2. 요구사항 명확화: 사용자의 실제 요구사항을 더 정확히 파악할 수 있다.
  3. 조기 피드백: 개발 초기 단계에서 문제점을 발견하고 수정할 수 있다.
  4. 사용성 향상: 사용자 인터페이스와 사용자 경험을 개선할 수 있다.
  5. 위험 감소: 잘못된 설계나 기능을 초기에 식별하고 수정할 수 있다.

단점

  1. 시간과 비용 증가: 여러 번의 프로토타입 개발로 인해 초기 비용이 증가할 수 있다.
  2. 불완전한 문서화: 빠른 개발로 인해 문서화가 부족할 수 있다.
  3. 과도한 사용자 기대: 사용자가 프로토타입을 완성된 제품으로 오해할 수 있다.
  4. 부적절한 프로토타입 사용: 임시로 만든 프로토타입이 최종 제품의 기반이 될 수 있다.

적합한 프로젝트 유형

  • 사용자 인터페이스가 중요한 프로젝트
  • 요구사항이 불명확하거나 복잡한 경우
  • 새로운 기술이나 혁신적인 제품을 개발할 때
  • 사용자와의 지속적인 상호작용이 필요한 프로젝트

참고 및 출처