티스토리 뷰

It

소프트웨어공학 XP 모델

IT eoeo25 2022. 10. 9. 15:39

XP 모델

XP모델(익스트림 프로그래밍)

고객의 만족을 강조하고 후반부에 변경요구에도 응할수 있도록 프로그래머의 제약도 적고

개발자에게 힘을 실어주며 신속한 결과물을 목적으로하는 에자일방법중 가장 민첩한 방법론

(고객과 팀원과의 대화중요!) 의사소통의 원활을 위해 페어프로그래밍

익스트림 프로그래밍에서는 덩어리가 아닌 세분화된 계획 후 실행, 피드백이 반복되면서

개발하는것이 특징이다

상황에따라 쓰는 기법이 틀림!! 예를 들어 축구 게임을 만든다고 치면 회사원 중에서

축구게임을 만들어본 사람이 있다면 굳이 xp방법을 사용할 필요는 없다고 생각한다.

폭포수방법으로 직진으로 가면 될 것이기 때문이다~.

4가지 가치를 중시함 ( 의사소통, 단순성, 피드백, (개발자)용기)

프로그래머와 고객, 동료 프로그래머와의 의사소통을 중요시 함

단순하고 명확한 설계 유지(단순성)

가장 우선순위가 높은 것을 먼저 개발함(점증적 개발)

되도록 초기에 고객에게 시스템을 전달하여 피드백을 받음

프로그래머는 요구사항과 기술의 변경에 용감하게 대응할 수 있음

XP 12가지 실천사항 ( XP 12가지 실천사항이 아닌 것은?)

계획 세우기(Planning Process) : 초기 계획, 요구 비즈니스의 가치를 정의하고 개발자에게 필요한 것은 무엇이며 어떤 어려움이 있는지 고객에게 이해 시킴, 우선순위와 범위를 정하고 비용 견적

지속적인 테스팅(Continuous Testing) : 소프트웨어의 적합성에 초점을 두고 통합 전후 테스트하며 필요 요구사항을 향상시킴

짝 프로그래밍(Pair Programming) : 짝을 이루어 의견교환하며 프로그래밍함으로(시너지) 이해도와 인해 생산성이 높고 지식 공유, 작업에 대한 만족도 증가

현장 고객 지원(On-site Customer) : 문서가 아닌 현장에서 실제 의사소통을 통한 문서의 최소화,체계화 추구

Small Release : 소규모 처리, 짧은 단위의 갱신 처리를 우선으로 함

Refactoring : 과감한 군더더기와 사용하지 않는 기능의 제거 등 깔끔하고 명료한 정리를 위해 설계의 상세화를 계속함

지속적인 통합(Continuous Integration) : 수시 통합 구축을 통해 지속적인 검사하고 보완함

시스템 상징화(Metaphor) : 클래스 명, 메소드 명, 변수 명의 체계화를 통한 의사소통의 공통 언어 확립

단순한 디자인(Simple Design) : 미래를 많이 고려치 않고 요구에 충족하는 설계의 최대 간단화

공동 코드 소유(Collective Code Ownership) : 정보는 공유될 수록 커지고 강력해지며 보완됨

코딩 표준(Coding Standard) : 코딩의 표준화로 효율의 극대화

주당 40시간 업무(40 hour Week) : 너무 무리하지 말라

XP모델의 장점

피드백 중시로 -> 프로그램 품질향상

언제든지 수정가능

둘이 작업함으로 빠른 문제해결(보이지않는 압력으로 일에 집중)

XP모델의 단점

경험이 있는 팀을 찾게됨

잦은 변경요구는 개발자를 정말 진이 빠지게 할수 있음

재사용의 저하 초래