나선형(Spiral) 모델
위험 분석을 중심으로 반복적인 개발을 수행하며, 각 반복 주기마다 위험 요소를 평가하고 대응한다.
%%{init: {'theme': 'default', 'themeVariables': { 'fontSize': '14px'}, 'flowchart': {'width': 800, 'height': 600, 'diagramPadding': 15}}}%% graph TD %% 시작점 Start([프로젝트 시작]) --> Cycle1 %% 반복 1: 타당성 검토 subgraph Cycle1 [반복 1: 타당성 검토] P1[계획 수립] R1[위험 분석] D1[개발 및 검증] E1[고객 평가] P1 --> R1 --> D1 --> E1 --> P1 end %% 반복 2: 요구사항 정의 subgraph Cycle2 [반복 2: 요구사항 정의] P2[계획 수립] R2[위험 분석] D2[개발 및 검증] E2[고객 평가] P2 --> R2 --> D2 --> E2 --> P2 end %% 반복 3: 시스템 설계 subgraph Cycle3 [반복 3: 시스템 설계] P3[계획 수립] R3[위험 분석] D3[개발 및 검증] E3[고객 평가] P3 --> R3 --> D3 --> E3 --> P3 end %% 반복 4: 구현 및 테스트 subgraph Cycle4 [반복 4: 구현 및 테스트] P4[계획 수립] R4[위험 분석] D4[개발 및 검증] E4[고객 평가] P4 --> R4 --> D4 --> E4 --> P4 end %% 반복 간 연결 E1 --> Cycle2 E2 --> Cycle3 E3 --> Cycle4 E4 --> End([프로젝트 완료]) %% 각 반복의 산출물 subgraph Deliverables [주요 산출물] Del1[개념 정의서] Del2[요구사항 명세서] Del3[설계 문서] Del4[시스템] end %% 위험 관리 subgraph RiskManagement [위험 관리 특성] RM1[위험 식별] RM2[위험 분석] RM3[위험 해결] RM4[위험 모니터링] RM1 --> RM2 --> RM3 --> RM4 end %% 프로젝트 특성 subgraph Characteristics [프로젝트 진행 특성] C1[비용 증가] C2[투입 자원 증가] C3[프로토타입 정교화] C1 --> C2 --> C3 end %% 산출물 연결 Cycle1 -.생성.-> Del1 Cycle2 -.생성.-> Del2 Cycle3 -.생성.-> Del3 Cycle4 -.생성.-> Del4 %% 스타일링 classDef default fill:#f9f9f9,stroke:#333,stroke-width:2px classDef cycle fill:#e1f5fe,stroke:#01579b,stroke-width:2px classDef risk fill:#ffecb3,stroke:#ffa000,stroke-width:2px classDef milestone fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px class P1,P2,P3,P4,R1,R2,R3,R4,D1,D2,D3,D4,E1,E2,E3,E4 cycle class RM1,RM2,RM3,RM4 risk class Start,End milestone style Cycle1 fill:#f0f4f8,stroke:#666,stroke-width:2px style Cycle2 fill:#e1f5fe,stroke:#666,stroke-width:2px style Cycle3 fill:#e0f7fa,stroke:#666,stroke-width:2px style Cycle4 fill:#e8f5e9,stroke:#666,stroke-width:2px style Deliverables fill:#fafafa,stroke:#666,stroke-width:2px,stroke-dasharray: 5 style RiskManagement fill:#fff3e0,stroke:#666,stroke-width:2px style Characteristics fill:#f5f5f5,stroke:#666,stroke-width:2px,stroke-dasharray: 5
주요 단계
- 계획 수립: 목표 설정, 대안 식별, 제약 조건 파악
- 위험 분석: 위험 식별, 평가 및 해결 전략 수립
- 개발 및 검증: 소프트웨어 개발 및 테스트 수행
- 평가: 고객 평가 및 다음 단계 계획
특징
- 반복적 개발: 여러 번의 반복(나선)을 통해 제품을 점진적으로 개발.
- 위험 관리 중심: 각 단계마다 위험 분석과 처리를 수행.
- 프로토타입 생성: 각 나선에서 프로토타입을 만들어 평가.
- 유연성: 요구사항 변경에 유연하게 대응할 수 있다.
장점
- 높은 수준의 위험 분석으로 위험 회피 가능
- 대규모 및 중요 프로젝트에 적합
- 요구사항 변경에 유연하게 대응 가능
- 초기 단계에서 작동하는 소프트웨어 제공
단점
- 복잡하고 비용이 많이 들 수 있음
- 위험 분석에 높은 전문성 요구
- 소규모 프로젝트에는 적합하지 않음
- 프로젝트 종료 시점을 예측하기 어려움
적합한 프로젝트 유형
요구사항이 불확실하거나 지속적으로 변경될 수 있는 복잡한 프로젝트에 적합