학교 CS/소프트웨어공학 (3-1학기)
CH2 소프트웨어 프로세스
우중충
2025. 4. 26. 15:17
반응형
📘 CH2. 소프트웨어 프로세스
1. 소프트웨어 프로세스란?
- 정의: 주어진 목적을 달성하기 위해 정해진 일련의 절차
- 목적:
- 품질 높은 소프트웨어를 예산과 일정 내에 개발
- 개발 실패율을 낮추기 위한 체계적 접근 필요
- 활동 흐름:
- → 명세 → 설계 및 구현 → 검증 → 진화(유지보수)
2. 소프트웨어 개발 모델
📌 [1] 주먹구구식 모델 (Build-Fix Model)
- 특징: 요구사항, 설계 없이 바로 개발 시작 후 반복 수정
- 적용: 소규모, 간단한 프로그램에 적합
- 단점: 계획 부재, 문서 부족, 유지보수 어려움
📌 [2] 폭포수 모델 (Waterfall Model)
- 특징: 가장 전통적인 순차적 개발 모델
- 단계:
- 요구사항 분석
- 설계
- 구현
- 테스트
- 유지보수
- 장점: 체계적 문서화, 명확한 진행 관리
- 단점: 후기 단계에서 피드백이 늦음, 유연성 부족
📌 [3] 원형 모델 (Prototyping Model)
- 특징: 초기 요구사항이 불완전할 때 원형을 반복 개발
- 절차:
- 요구 정의 → 원형 설계 → 원형 개발 → 고객 평가 → 정제 반복
- 장점: 고객 피드백 반영 용이
- 단점: 원형과 최종 제품 간 품질 차이 발생 가능
📌 [4] 나선형 모델 (Spiral Model)
- 특징: 폭포수+원형+위험분석 포함, 반복적이고 점진적 개발
- 절차:
- 계획 및 정의
- 위험 분석
- 개발
- 고객 평가
- 장점: 고비용 시스템에 적합, 위험 요소 사전 대응
- 단점: 복잡하고 프로젝트 관리 어려움
3. 소프트웨어 개발 방법론
방법론 설명
구조적 방법론 | 문서화 기반, 단계별 분석 중심 |
정보공학 방법론 | 데이터 중심, 전 과정 형상화 |
객체지향 방법론 | 객체 단위로 설계, 재사용성 강조 |
컴포넌트 기반 방법론 | 조립식 구성, 생산성 향상 |
애자일 방법론 | 유연한 변화 대응, 사용자 피드백 중시 |
🔄 애자일 방법론 상세
- 특징:
- 짧은 개발 주기
- 빠른 피드백
- 문서보다 작동하는 SW 중심
- XP(eXtreme Programming):
- 가치: 의사소통, 단순성, 피드백, 용기
- 실천 사항: 짝 프로그래밍, 지속 통합, 리팩토링 등 12가지
- 기타 애자일:
- 스크럼(Scrum): 매일 짧은 회의 중심
- 린(Lean): 낭비 제거에 초점
📌 UP (Unified Process)
- 단계:
- 도입 (Inception): 요구 분석, 원형 설계
- 상세 (Elaboration): 아키텍처 확정
- 구축 (Construction): 핵심 기능 구현
- 이행 (Transition): 테스트 및 릴리즈
- 장점:
- 반복적 개발
- 위험 요소 조기 발견
- 변경 대응 용이
🧠 마무리 메모
모든 소프트웨어 프로세스가 정답은 아니다. 상황에 맞는 적절한 프로세스를 선택하고 적용하는 것이 중요함.