본문 바로가기

프로그래밍/CS

[소프트웨어 공학] 소프트웨어 프로세스 - 반복진화형, 프로토타이핑

반복진화형 모델

  • 장점
    • 초기 버전을 통해 점차적으로 명확한 요구사항 도출
  • 단점
    • 개발 비용 및 종료 시점 예상 어려움
    • 잦은 수정으로 유지보수 단계에서 문제가 생길지도..

프로토타이핑

  • throwaway prototyping : 프로토타입을 고객과의 의사소통 수단으로만 사용
  • evolutionary prototyping : 계속적으로 발전시켜 완제품 만드는 방법
  • 장점
    • 소프트웨어 요구사항 파악에 용이 
    • 프로젝트 실현 가능성 판단 가능
    • 개발자-사용자 간 의사소통 명확
    • 사용자 교육 효과
    • 개발 단계에서 유지보수 효과
  • 단점
    • 문서화 어려움
    • 진척 사항 제어가 힘듬

점증적 모델

  • 선형 순차 모델 여러번 적용하고 그 결과를 조합하는 것
  • 증분
    •  분해된 각 모듈
    • 핵심 증분 먼저 개발
  • 장점
    • 중요 증분 선 개발 -> 시스템을 빠르게 사용해볼 수 있음
    • 요구사항 변화 대응 유리
  • 단점
    • 기능적, 적당한 크기로 분해하기 어려울 수 있음
    • 증분 개발 전 요구사항 정의 필요

나선형 모델

  • 전체 생명 주기에 위험 분석
  • 프로토타이핑 계획하고 사용하여 위험 최소화
  • 고려사항
    • 위험관리 지원하는 프로세스 프레임워크
    • 실험적이고 복잡한 대형 프로젝트에 적합
  • 장점
    • 대형 프로젝트에서 성공 가능성을 높여줌
    • 변형 용이
  • 단점
    • 충분한 검증 X
    • 복잡한 모델
    • 프로젝트 관리 어려움

V 모델

  • 폭포수 모델 확장형
  • 생명주기 단계 별 테스트 단계 존재 ->  테스트 ↑

애자일 방법

  • 요구사항 변하기 쉬운 중소형 비즈니스 시스템이나 전자상 거래 응용에 적합
  • 익스트림 프로그래밍
    • 빠른 피드백
    • 지속적인 개선
    • 고객도 팀
    • 짝 프로그래밍
    • 테스트 선행 개발
    • 리팩토링
  • 스크럼
    • 애자일 개발 과정의 관리 프레임워크
    • 스프린트 사이클(작은 프로젝트, 3-9명의 팀, 회의)

반복진화형 모델 점증적 모델
요구사항이 불안정하고 불명확할 때 요구사항 중요도에 따라 작업 순서 정함
새로운 기술 적용할 때 -> 중요한 요구사항 먼저 개발
한꺼번에 모든 기능 포함하여 인도 여러번의 배포