[SE] 소프트웨어 공학 개발공정

Updated:

대규모 소프트웨어 개발 공정

  1. 요구사항분석
  2. 설계
  3. 구현
  4. 테스트 및 검증
  5. 운용 및 유지보수

폭포수 모델 (Water fall 모델)

  • 각 세션마다 결과물이 도출됨 ( 요구 사양서, 기본설계사양서, 상세설계 사양서, 프로그램 리스트 , 테스트 사양서 )
  • 각 세션마다 생성된 결과물을 다음 공정으로 전달하여 공정이 진행이됨.
  • 가장 전통적인 모델임

장점

  • 진행상황 파악이 수월핳고 프로젝트 관리가 수월함
  • 개발공정과 테스트 공정이 원활하게 대응함
  • 많은곳에서 사용하기때문에 유사 SW 개발경험을 많이 보유하고있고, 요구사양이 명확한 대규모 SW개발에 적합함.

문제점

  • 상위 공정에서 문제(요구 사양)가 발생되면 재작업량이 다른 공정에 비해 늘어남. - 폭포의 물은 절대 물을 거슬러 올라갈 수 없다고 생각하면됨. 다시 문제가 발생된 공정과정부터 시작해야됨.

  • 상위 공정 문제에서 문제가 생기면 도미노가 쓰러지는것처럼 뒷 공정도 다 문제가 생김. - 각 세션마다 생성된 결과물을 다음 공정에서 참조하기도 하기 때문임

진화형 프로세스 모델

  • 스노우볼링을 통해서 소프트웨어를 만드는 과정으로 발전형 , 성장형 소프트웨어 개발 모델이라곡 부르기도함.
  • 처음에는 조그마하게 시작해서 점점 내용을 첨부하여 그 크기를 불려나감.
  • 내용을 첨부하는 방법에 따라 다양한 모델이 존재함.

진화형 개발 방식

  • 만약에 10개의 기능을 갖는 소프트웨어를 개발한다고 가정하면 10개의 기능중 가장 중요한 몇가지 기능(1 ~2개) 정도 를 설계하고 구현함.
  • 테스트를 통하여 이 기닝들을 검증하고 이를 반복하며 소프트웨어를 개발함

장점

  • 가시화 된 자료를 자주 산출하기 때문에 사용자의 피드백을 즉각적으로 수렴하여 수정할 수 있음.
  • 버전업을 해가면서 점진적으로 기능들을 추각하긱 떄문에, 초기버전 -> 중간버전 -> 최종버전으로 개발이 버전업 과정을 거쳐 진행됨
  • 요구사항 변화에 즉각대응이 가능함으로 실제 소프트웨어 개발에 적합함.

문제점

  • SW 개발공정을 여러번 반복하기 때문에 개발에 필요한 공수 및 비용산정이 난해함.

Leave a comment