본문 바로가기

정보관리기술사/소프트웨어공학

XP

반응형

 

I. 신속하고 유연한 애자일 방법론, XP의 개요

가. XP(eXtreme Programming)의 정의

- 의사소통과 TDD(Test driven development)를 기반으로 짧은 주기의 반복개발을 통해 고품질 소프트웨어를 빠르게 생산하는 애자일 대표 개발 방법론

나. XP의 특징

 

구분

설명

Time to Market

- 급변하는 환경에서 소프트웨어를 빠르게 개발할 목적으로 설계

- 작은 기능 개발 단위로 소프트웨어를 빠르게 시장에 출시함

기존 방법론

문제점 극복

- 요구사항 변화에 대해 적극적, 긍정적 대처

- 산출물 보다는 동작하는 소프트웨어에 집중(Code Oriented)

 

 

II. XP의 구성도 및 구성요소

가. XP의 구성도

 

- 사용자스토리를 기반으로 배포계획을 수립하고, 일정 단위기능을 포함한 소규포 배포 수행

나. XP의 구성요소

 

구성요소

설 명

사용자스토리

(User Story)

- 요구사항수집 및 의사소통의 도구

- 기능단위의 필요한 내용을 간단히 기재

스파이크

(Spike)

- 어려운 요구사항 또는 잠재솔루션을 고려하기 위해 작성하는 프로그램

- 사용자스토리의 신뢰성 증대 및 기술문제의 위험감소 목적

배포계획

(Release Planning)

- 전체 프로젝트에 대한 배포계획 수립

- 의사결정을 위해 프로젝트 내 모든 것에 대한 규칙을 가짐

- 규칙을 프로젝트를 수행하기 위한 방법으로 정의

반복

(Iteration)

- 1~3주의 기간으로 반복을 정의하고, 프로젝트 전반에 대해 균형적으로 유지

- 프로세스의 평가와 계획을 단순하고 신뢰하게 하는 핵심 항목

- 즉각적인 계획 및 실행은 요구사항변경에 쉽게 대처하기 위한 전략

인수테스트

(Acceptance Test)

- 사용자가 직접 진척상황 확인

- 사용자스토리의 반영여부 확인 및 테스트

소규모 배포

(Small Release)

- XP 주기의 마지막 단계

- 빈번한 배포는 사용자에게 효용 제공, 프로그램에 빠른 피드백 제공

 

 

III. XP의 핵심가치와 실천사항

가. XP의 핵심가치(Core Value)

 

핵심가치

설 명

용기

(Courage)

- 사용자의 요구사항변화에 능동적인 대처

단순성

(Simplicity)

- 부가적 기능, 사용하지 않는 구조와 알고리즘 배제

의사소통

(Communication)

- 개발자, 관리자, 사용자 간 원활한 의사소통

피드백

(Feedback)

- 지속적인 테스트 및 반복적 결함수정으로 빠른 피드백

존중

(Respect)

- 모든 프로젝트 관리자는 팀원의 기여를 존중

 

나. XP의 실천사항(Practice)

 

구분

실천 항목

설명

개발

Pair Programming

오류 감소와 생산성을 위해 하나의 컴퓨터로 짝을 지어 코딩

Collective Ownership

시스템에 있는 코드는 누구든지 언제나 수정 가능

Continuous Integration

하루에 몇 번이라도 시스템 통합 빌드 가능 (중단된 시스템이 아니어야 함)

관리

Planning Game

User Story를 이용하여 Next Release 범위를 빠르게 결정

Small Release

필요한 기능들만 갖춘 간단한 시스템을 빠르게 릴리즈(2주단위)

Metaphor

문장 형태로 시스템 아키텍쳐 기술, 고객과 개발자 간 의사소통

구현

Simple Design

요구사항을 만족시키도록 가능한 단순하게 설계

Test Driven Development

테스트 주도 개발(TDD), 테스트를 통한 고객 검증, 승인

Refactoring

기능의 변화 없이 코드 수정을 통해 디자인 개선

환경

40-hour per week

주 40시간 이상 일하지 않고, 2주 연속 오버타임 금지

One-site Customer

고객이 프로젝트에 풀 타임 상주, 의사결정 지원

Coding Standard

커뮤니케이션 향상을 위해 표준화 관례에 따라 코드 작성

 

IV.XP과 타 개발 방법론 비교

가.XP와 SCRUM의 비교

 

구분

XP

SCRUM

형태

프로그램 실천법에 집중

엔지니어링방법에 초점

관리 및 조직적 실천법 집중

개발프로세스 프레임워크

개발주기

1 ~ 2주 (10일)

4 ~ 6주 (30일)

요구사항변경

요구사항 변경 수용

Sprint내 요구사항변경 불가

개발우선순위

고객이 개발우선순위를 결정

Team이 개발 우선순위 결정

 

 

나.XP와 구조적 방법론, 객체지향방법론과 비교

 

구분

XP

구조적 방법론

객체지향방법론

중심내용

반복과 검증

시스템의 작업중심

객체와 역할 발견

중요관점

나선형 모델 적용

데이터흐름

데이터와 관련연산

분석/설계방법

객체지향방법론

DFD, 구조차트

ERD, UML

 

 

반응형

'정보관리기술사 > 소프트웨어공학' 카테고리의 다른 글

칸반(Kanban)  (0) 2020.07.28
번다운차트  (0) 2020.07.27
정보공학 방법론  (0) 2020.07.23
SW 개발방법론  (0) 2020.07.22
진화형 모델  (0) 2020.07.21