소프트웨어 개발 방법론3

임동준·2024년 1월 8일
0

1) 소프트웨어 개발 수명 주기

1 소프트웨어 개발 수명 주기 정의

  • 소프트웨어 개발 방법론의 바탕이 된다.
  • 소프트웨어 개발 과정을 단계별로 구성한 것으로 단계별 산출물이 존재한다.

2 폭포수 모델

  • 과거에 가장 폭넓게 상용된 방식
  • 정해진 단계를 한 번씩만 진행하며 이전 단계로 돌아갈 수 없다.
  • 단계별로 결과물이 명확하게 산출되어야 다음 단계로 넘어가는 방식이다.
  • 제품의 기능 보완이 불가능하므로 매뉴얼 작성이 필수적이다.
    계획 -> 요구분석 -> 설계 -> 구현 -> 테스트 -> 유지보수

3 프로토타입 모델

  • 폭포수 모델의 단점을 보완한 모델로 시제품을 통해 최종 결과물 예측할 수 있다.
  • 시제품은 사용자와 시스템 사이의 인터페이스에 중점을 두어 개발
  • 시제품은 추후 최정 구현 단계에서 골격으로 사용됨

4 나선형 모델

  • 폭포수 모델과 프로토타입 모델의 장점에 위험 분석기능을 더한 모델
  • 나선을 돌듯이 여러번의 지속적인 개발 과정을 통해 점진적으로 개발하는 것
  • 개발 중 발생할 수 있는 위험을 최소화 하는 것이 목적이며 유지보수가 필요 없다.
  • 누락 및 추가된 요구사항 반영이 가능.

5 애자일 모델

  • 소프트웨어를 사용할 고객과의 소통에 중심을 둔 방법론들의 통칭
  • 짧을 개발 주기를 반복하면서 고객의 피드백을 소프트웨어에 반영
  • 애자일 모델을 기반으로 하는 개발 모델은 scrum, xp, kanban, crystal. FDD(기능주도 개발), ASD(적응형 소프트웨어 개발), DSDM(동적 시스템 개발) 등이 있다.
  • 절차, 문서, 계획보다 소통, 협업, 변화 대응에 가치를 둠

2) 스크럼 모델

1 스크럼 모델의 특징

  • 스크럼 팀을 구성하여 팀을 중심으로 개발의 효율성을 높이는 개발 모델
  • 제품 책임자와 스크럼 마스터, 개발팀으로 구성됨
  • 반복적인 스프린트를 통해 제품을 완성시겨 나감
    • 스프린트: 2~4주 정도의 시간 내에서 하나의 task를 개발하는 과정
    • task(테스크) : 개발 요구사항을 개발자(팀)별로 나눈 것
  • 스크럼의 가치는 확약, 전념, 정직, 존중, 용기 등이 있다.

2 제품 책임자

  • 목표 제품에 대한 책임을 지고 의사를 결정하는 역할 담당
  • 이해관계자들의 의견을 종합하여 요구사항을 백로그에 작성하고 우선순위 조정
    • 제품 백로그 : 우선순위에 따라 개발에 필요한 사용자 스토리를 나열한 목록
    • 스프린트 백로그 : 해당 스프린트에서 개발해야 할 태스크를 나열한 목록
    • 사용자 스토리 : 사용자 요구사항을 단어의 나열이 아닌 이야기의 형태로 표현한 것
    • 릴리즈 계획 : 제품 백로그에 작성된 사용자 스토리를 기반으로 전체 개발 일정 수립
  • 팀원들은 백로그에 스토리 추가만 가능하고 우선순위 조정은 불가능하다.

3 스크럼 마스터

  • 개발팀원들의 원할한 업무를 위한 가이드 역활을 담당한다.
  • 일일 스크럼 회의를 주관할 수 있으며 개발 과정에서 발생된 장애 요소를 공론화 하여 해결
    할 수 있도록 처리
  • 스크럼 마스터의 역할은 팀원들이 상황에 유연하게 대응할 수 있도록 조력하는 역할이며 통제의 권한은 없다.

4 개발팀

  • 제품 책임자와 스크럼 마스터를 제외한 모든 개발에 참여하는 인원
  • 개발팀에는 개발자뿐 아니라 디자이너와 테스터 등도 포함
  • 개발팀원들은 능동적으로 팀을 구성하고 문제를 해결할 수 있어야 한다.

5 스크럼 모델 개발 프로세스

  • 스프린트 계획 회의: 스프린트 백로그 작성, 개발 일정 수립
  • 스프린트 진행 : 백로그에 기록된 태스크를 담당 개발자에게 할당
  • 일일 스크럼 회의 : 짧은 시간동안 소멸차트를 통해 진행 상황 점검, 태스크 상황에 따라
    할 일 , 진행 중, 완료의 상태로 변경
  • 스프린트 검토 회의 : 사용자와 함께 개발이 완료된 부분 또는 전체 제품을 테스트하고 피드백을 제품 백로그에 반영
  • 스프린트 회고 : 스프린트 진행 자체의 문제점, 개선점 도출

3) XP 모델

1 XP모델 특징

  • 고객의 참여와 짧은 개발 과정의 반복을 극대화하여 개발 생산성을 높이는 개발 모델
  • 소규모 인원으로 진행하는 프로젝트에 효과적이며 단계별 단순한 설계를 통해 개발 속도를 향상
  • XP의 가치는 의사소통, 단순성, 용기, 존중, 피드백이 있다.

2 XP모델 개발 프로세스

  • 사용자 스토리에 기록된 내용을 바탕으로 릴리즈 계획을 수립하고 분석된 스토리에 따라 스파이크 또는 이터레이션을 진행
    • 소규모 릴리즈 : 기능별로 고객의 피드백을 받을 수 있도록 릴리즈의 규모를 작게 분할한다.
    • 스파이크 : 특적 기술의 확인을 위해 다은 모든 조건을 무시하고 간단하게 개발하는 프로그램
    • 이터레이션 : 하나의 릴리즈를 1~3주의 개발 기간으로 세분화한 단위
  • 스파이크를 통해 기술이 검증되면 해당 부분을 이터레이션으로 전달
  • 이터레이션 진행 도중 새로운 스토리가 작성될 수 있다.
  • 이터레이션을 통해 부분 완료된 제품을 고객이 직접 사용자 스토리에 포함된 테스트 사항을 톻애 승인 검사를 수행
  • 테스트 과정에서 새로운 요구사항, 오류 등이 발견되면 다음 이터레이션에 반영

3 XP의 기본원리

  • XP의 실천 사항은 12개 항목으로 나뉨
profile
공부하는 중

0개의 댓글