수시로 발생하는 고객의 요구사항에 유연하게 대응하기 위해 고객의 참여와 개발과정의 반복을 극대화하여 개발생산성을 향상시키는 방법.
짧고 반복적인 개발주기, 단순한 설계, 적극적인 참여를 통해 소프트웨어를 빠르개 개발한다.
XP의 5가지 핵심가치 : 의사소통
, 단순성
, 용기
, 존중
, 피드백
사용자스토리
: 요구사항을 간단한 시나리오로 표현
릴리즈 계획 수립
: 부분 혹은 전체 개발 완료 시점 일정 수립
스파이크
: 요구사항 신뢰도와 기술 문제 위험 문제를 위해 별도로 간단히 만든 프로그램. 처리할 문제 외에 다른 조건은 모두 무시한다.
이터레이션
: 한 릴리즈를 더 세분화한 단위가 이터레이션.
승인검사(인수테스트)
: 이터레이션 안의 릴리즈 단위 중 구현 완료된 것을 수행하는 테스트
소규모 릴리즈
: 고객의 반응을 기능별로 확인가능
실천방법 | 내용 |
---|---|
짝프로그래밍(Pair Programming) | 다른 사람과 함께 프로그래밍하여 개발 책임을 공동으로 나눔 |
테스트 주도 개발(Test-Driven Devleopment) | 실제 코드 작성 전 테스트 케이스를 먼저 작성하여 개발할 것을 정확히 파악하며, 자동화된 테스팅 구조(프레임워크)를 사용 |
전체 팀(Whole Team) | 개발에 참여한 모든 구성원은 자신의 역할에 책임이 있다. |
지속적 통합(Countinuous Integration) | 모듈 단위로 나눠 개발한 코드들을 한 작업이 마무리될 때마다 지속적으로 통합한다. |
디자인 개선, 리팩토링(Design Improvement, Refactoring) | 프로그램 기능 변경 없이, 단순화, 유연화 강화 등으로 시스템 재구성 |
소규모 릴리즈(Small Releases) | 릴리즈 기간 짧게 반복하여 요구 변화에 신속 반응 |
새로 개발하려는 시스템 개발 범위를 명확히 설정하기 위해 현행 시스템의 구성 등을 파악하는 과정
1단계
: 시스템 구성 파악, 시스템 기능 파악, 시스템 인터페이스 파악
2단계
: 아키텍처 구성 파악, 소프트웨어 구성 파악
3단계
: 하드웨어 구성 파악, 네트워크 구성 파악
개발하려는 소프트웨어와 관련된 운영체제, 데이터베이스 관리 시스템, 미들웨어 등을 선정할 때 고려할 사항을 확인하는 과정
운영체제
: 컴퓨터 시스템 자원을 효율적 관리하며, 사용자가 편리하고 효율적으로 사용하도록 환경을 제공하는 소프트웨어데이터베이스 관리 시스템(DBMS)
: 사용자-데이터베이스 간 사용자의 요구에 따라 정보를 생성하고 데이터베이스를 관리하는 소프트웨어. 데이터의 종속성과 중복성 문제를 해결한다.웹 애플리케이션 서버(WAS)
: 동적인 컨텐츠를 처리하기 위해 사용하는 미들웨어소프트웨어가 문제를 해결하기 위해 제공하는 서비스의 설명과 운영 시 필요한 제약조건 등을 나타낸다.
기능 요구사항
: 시스템이 반드시 수행해야 하는 기능
비기능 요구사항
: 시스템 장비, 성능, 인터페이스 등 품질이나 제약사항에 관한 요구사항
사용자 요구사항
: 사용자 관점으로 시스템이 제공해야 할 요구사항
시스템 요구사항
: 개발자 관점으로 시스템 전체가 사용자 및 다른 시스템에 제공해야 할 요구사항이며, 소프트웨어 요구사항이라고 한다.
개발대상에 대한 요구사항을 체계적 도출, 분석 결과를 명세서화하여 확인 및 검증하는 구조화된 활동
도출(수집)
: 시스템, 사용자, 시스템 개발 관련자들이 의견을 교환하여 요구사항을 식별하고 이해하는 과정
분석
: 개발 대상에 대한 요구사항 중 명확하지 않거나 모호한 부분을 발견하고 걸러내는 과정
명세
: 요구사항을 체계적 분석 후 문서화하는 과정
확인
: 개발자원을 요구사항에 할당 전 요구사항 명세서가 정확한지 검토하는 과정
요구사항 분류
: 기능 / 비기능 요구사항으로 분류하여 분석
개념 모델링
: 개체(Entity)들 간의 관계 및 종속성을 정의하여 분석하며, 모델링 표기는 주로 UML(Unifiend Modeling Language) 사용
요구사항 할당
: 요구사항을 만족시키기 위한 구성요소 식별
요구사항 협상
: 요구사항이 서로 충동할 때 해결하는 과정
정형분석
: 언어를 통해 요구사항을 수학적 기호로 표현 후 분석하는 과정이먀, 요구사항 분석의 마지막 단계에 이루어진다.
요구사항 검토
: 문서화된 요구사항을 훑어보며 확인
프로토타이핑
: 프로토타입을 만들고 요구사항을 반영하며 지속적으로 프로토타입을 재작성하는 과정
모델 검증
: 개발된 모델이 요구사항 충족하는지 검증하는 과정
인수테스트
: 실제로 사용될 환경에서 요구사항들이 충족되는지 확인하는 과정