종류 |
XP |
정의 |
° 반복형 모델의 개발주기를 극단적으로 짧게 함으로서 프로그래머가 설계, 구현, 시험 활동을 전체 SW 개발기간에 걸쳐 조금씩 자주 실시하도록 하는 개발 방법 |
원칙 |
° 의사소통
° 단순성
° 피드백
° 용기 |
배경 |
° 요구사항 분석의 어려움
° 사용자도 개발초기에 요구사항을 명확히 전달하지 못함
° 불필요한 다량의 문서작업으로 개발자의 개발시간을 단축시키고 의욕을 저하시킴 |
특징 |
° 짧은 개발주기 반복
° Prototype이 일찍 자주 만들어짐
° 개발계획이 프로젝트 진행동안 계속 변화됨 |
지침 |
° 개발계획 수립(The Planning Process, 'Planning Game')
- 고객과 다양한 스토리카드(story card)를 통한 개발계획 작성
° 시스템 메타포어(Metaphore)
- 문장형태로 시스템 아키텍쳐 기술, 공통의 Naming System 개발, 고객과 개발자간 의사소통 언어
° 1주일40시간
° 단순설계 - 현재의 비즈니스 가치에 집중, ‘refactoring’을 통해 개선
° 코딩표준
° Pair-programming - communication의 중요성 강조
° 공동소유/공동책임 - 시스템에 존재하는 모든 코드는 언제 누구든지 수정 가능함
° 사용자 파견 - 프로젝트팀에 사용자가 상주하여 고객 위주의 프로그래밍, 품질향상의 필수요소
° 테스트 - TFD(Test First Development), 테스트 수행 후 검증코드로 작성해 나감
° 재구성 - 기능 변화 없이 중복제거, 단순화, communication 향상, 유연성 추가를 위해 시스템 재구성
° 짧은 배포주기
° 지속적 통합 |
생명
주기
순환
요소 |
° 가치정의 - 고객의 시스템의 가치를 정의
° 비용산정 - 고객이 결정한 부분에 대해 개발자가 비용추산
° 가치선택 - 고객이 필요한 범위를 결정
° 개발 - 고객이 결정한 범위를 개발자가 개발 |
SCRUM |
° 작은 개발팀, 짧은 개발주기, 팀의 집중력과 생산성을 유지시켜 점진적으로 소프트웨어를 산출하는 것에 초점
° 스프린트는 통상적으로 4~6주 정도의 기간을 가지는 잘 정의된 개발주기를 의미함
° 매일 15분 정도의 스크럼 미팅을 통해 프로젝트 진행상황을 확인하기 때문에 효과적인 프로젝트 운영을 유도함
° XP는 리팩토링을 통해 언제든지 변화를 수용하겠다는 관점이나, SCRUM은 변화를 최대한 빨리 감지하여 처리하고자 하는 관점 |
DSDM |
° 기능모델, 설계와 구현, 수행의 3단계 사이클(2~6주)로 구성 |
FDD |
° 짧은 반복주기(2주), 5단계 프로세스(전체모델, 특성리스트 생성, 계획, 설계, 구축)로 구성
° 설계, 구축 프로세스의 반복 | |