cs/소프트웨어공학

소프트웨어 개발 프로세스

ssoonn 2022. 11. 22. 15:51

Softeware Development Life Cycle

전통적인 sw 개발 프로세스

폭포수 모델 Waterfall

특징

  • 각 단계 완료 후 다음단계 진행 (이전 단계 못돌아감, 순차적, 다음 단계 시작 전 결과 점검)
  • 결과물 정의 중요.  
  • 프로젝트 진행과정 세분화 --> 관리 용이
  • 목표시스템은 후반부에 구체화 --> 중요 문제점 나중에 발견될 가능성
  • 관리는 쉽지만 요구사항 변경 대응력 :(   
  • 기술 위험 낮음

 

적용

  • 유사 프로젝트 경험 존재하거나 요구사항 명확하게 정의된 경우 적용

 

프로토타이핑 모델

시스템 일부분을 일시적 구현 <--> 요구사항 반영 반복

 

특징

  • 요구분석 어려움 해결(사용자 참여 유도-커뮤니케이션 수단)
  • 간단 시제품 개발
  • 개발 타당성 검토
  • 폭포수 모델 단점 보완

 

단점

  • 폐기처분에 대한 경제적 손실
  • 프로토타입의 산출물 관리 어려움
  • 프로토타입 개발 비용/시간

 

나선형 모델

폭포수 모델과 프로토타입 모델의 장점 활용 --> 여러 번 점증적인 릴리즈

특징-유연한 대처

  • 대규모 시스템 개발(risk reduction).
  • 강인성 향상 (반복 개발, 테스트)
  • 어렵고, 개발기간 장기화될 가능성( ∵위험분석 단계)

 

적용

  • 재정적, 기술적 위험 부담 큰 경우
  • 요구사항/아키텍쳐 이해 어려운 경우

 

진화적 모델

빠른 시간 출시 --> 시스템 분산 릴리즈, 매 릴리즈 기능 완성도 향상(개발 모듈 업그레이드)

장점: (나선형 모델 장점인 강인성 포함)

  • 초기 사용 교육 가능  
  • 사용자 요구 빠른 반영  
  • 시장 빨리 형성
  • 문제 꾸준, 신속 대응

 

단점

  • 프로젝트 관리 복잡
  • 반복 프로세스 --> 실패 위험 ­높다
  • 프로젝트 진행 위험 분석에 크게 의존

 

점증적 모델

  • 요구사항/제품 일부분 반복 개발 --> 대상 범위 확대
  • 폭포수 모델 변형. 증분 따로 개발 후 통합 (증분마다 실행 가능한 완성 모듈 인도, 병행개발o)

V 모델

폭포수 확장-->검증/확인 모델: 감춰진 반복-재작업 드러냄, 작업/결과의 검증에 초점

특징

  • 단계적 검증/확인 --> 오류 감소
  • 폭포수(back 불가) --> 변경 다루기 어려움

 

적용

  • 요구사항 정확한 작은 시스템 개발 / 고신뢰성 분야(국방, 의료)

 

 

애자일 방법론: 빠르고 낭비 없는 개발 방법론

적용 원리

  • 고객 만족을 빠르게 유도하고, 유연한 sw를 지속적으로 제공하며, 요구사항 변경을 적극 수용
  • 실행가능한 sw 1~2주 간격으로 배포 (짧은 개발주기)
  • 사용자-개발자 간 의사소통 중시
  • 신뢰 가능하고 동기부여된 개인 중심으로 진행됨

 

XP 프로세스 Extreme Programming

개발 사이클

  • 엔지니어링 사이클(실제 개발 과정)

  • 배포 사이클

실천 사항

  • 증분계획
  • 작은 배포, 단순 설계
  • 테스트 우선 개발
  • 재구조화
  • 페어프로그래밍(공동 소유권) --> 타인이 이해 가능하도록
  • 지속적 통합

 

스크럼 프로세스

반복 개발의 관리 관점 강조하고, 넓은 응용 범위의 개발 기법을 사용

더보기

용어 정리

  • 스프린트: 반복적 개발 주기(한 주기=한 스프린트)  
  • 스크럼 마스터: 프로젝트 관리자
  • 제품 백로그: 요구사항 목록
  • 스프린트 백로그: 스프린트 목표 도달 위한 작업 목록
  • 제품 증분: 한 스프린트 결과로 나오는 실행 가능 제품
  • 번다운 차트: 백로그에 남아 있는 작업
  • 번업차트: 진척도 보여줌

 

특징

  • 솔루션 포함 기능과 개선점에 우선순위 부여
  • 개발주기 30일
  • 팀원 간 소통 중시