소프트웨어 공학

소프트웨어 개발 프로세스

rabbit-jun 2025. 3. 25. 14:38

전통적인 소프트웨어 개발 과정

소프트웨어 개발 프로세스

1. 소프트웨어 프로세스

  • 프로세스: 흔히 일을 처리하는 과정 또는 순서
  • 소프트웨어 프로세스: 소프트웨어 개발 과정을 체계적으로 계획,관리할 의도 아래 서로 관련 있는 활동을 단계로 분리하여 정의한 것
  • 블랙박스 프로세스:
    • 개발 초기에 요구사항을 한 번 정한 뒤, 중간 피드백 없이 일괄적으로 개발을 수행하는 방식
    • 개발 과정이 사용자에게 보이지 않으며, 최종 결과만 전달됨
    • 장점: 빠른 개발 가능
    • 단점: 사용자 요구 반영이 어려움, 잘못된 방향으로 개발될 가능성
  • 투명한 프로세스:
    • 개발 단계를 작은 단위로 나누고, 각 단계마다 사용자 피드백을 받으며 개발하는 방식
    • 사용자와의 지속적인 소통을 통해 점차적으로 제품 완성도를 높임
    • 장점: 사용자 만족도 상승, 요구사항 반영 용이
    • 단점: 개발 시간 증가, 반복 작업 발생 가능
  • 적절한 프로세스의 필요성: 요구사항 만족도 향상 -> 수정 및 재개발 절감(비용 절감) -> 품질 관리 가능 -> 프로젝트 성공

2. 소프트웨어 개발 프로세스의 의미

  • 좁은 의미: 소프트웨어 제품을 개발할 때 필요한 절차나 과정
  • 넓은 의미: 작업을 수행하는 데 필요한 방법과 도구를 비롯해 개발과 관련된 절차를 따라 작업을 수행하는 참여자 포함

3. 소프트웨어 개발 프로세스 모델

  • 소프트웨어를 어떻게 개발할 것인가에 대해 개발 계획 수립부터 최종 폐기까지의 전 과정을 순차적으로 다룸
  • 주어진 예산으로 개발, 관리하는 방법을 구체적으로 정의
  • 참여자 간에 의사소통의 기준을 정할 수 있고 용어의 표준화를 가능하게 한다.
  • 개발 진행 상황 파악 및 각 단계별 문서화된 산출물을 활용해 검토할 수 있게 한다.

4. 비형식적 개발 방식(주먹구구식 모델)

  • 공식적인 프로세스 없는 개발 방식
  • 제품을 만든 후 요구분석, 설계, 유지보수에 대해 생각
  • 첫 번째 버전의 코드 작성 후 문제가 있으면 코드 수정, 없으면 계속 사용

5. 주먹구구식 모델의 단점

  • 각 단계별 문서화된 산출물이 없어 관리 및 유지보수가 어려움
  • 프로젝트 전체 범위를 알 수 없고 좋은 아키텍처를 만들 수도 없음
  • 팀원간 일을 효과적으로 분배 할 수 없음
  • 진행 상황을 파악하기 힘듬
  • 수정을 거듭할 확률도 높을 뿐더러 거듭 된 수정에 가독성도 나빠질 수 있다.

선형 순차적 모델(폭포수 모델, V모델)

1. 폭포수 모델

  • 초기에 개발된 전통적인 모델
  • 표준 프로세스를 정해 소프트웨어를 순차적으로 개발
  • 각 단계가 끝날 때마다 확실히 매듭 짓고 그 결과를 확인한 후에 다음 단계로 나아감

요구사항 분석 단계가 끝나면 요구분석명세서를 작성 후 사용자에게 이상 유무를 확인받고 다음 단계로 넘어가는 식

2. 폭포수 모델의 장점과 단점

  • 장점:
    • 관리 용이
    • 체계적 문서화
    • 요구사항의 변화가 적은 프로젝트에 적합
  • 단점:
    • 앞 단계가 완료되지 않으면 뒷 단계의 개발자는 아무것도 할 수 없음
    • 각 단계마다 완벽한 수준으로 작성해야 다음 단계에 오류를 넘겨주지 않음
    • 사용자는 테스트전까지 가시적인 결과를 볼 수 없음

3. V 모델

  • 폭포수 모델의 변형
  • 테스트 단계를 추가 확장해 테스트 단계가 분석 및 설계와 어떻게 관련되어 있는지를 나타냄

각 개발 단계를 검증하는데 초점을 두므로 오류를 줄일 수 있다.

진화적 프로세스 모델

  • 새로운 요구가 수시로 발생해 이에 민첩하게 대응할 수 있는 방법
  • 초기 사용자의 요구에 따라 가상으로 실행되는 초기 버전의 프로토타입을 작성
    • (프로토타입을 만드는 것을 프로타이핑이라 한다)
    • 프로토타이핑 != 진화적 프로세스 모델
  • 사용자는 UI 중심의 화면과 실행 후 가상의 결과 화면 확인
  • 변경된 요구사항을 반영해 n차 프로토입을 만드는 과정을 반복

1. 프로토타입 모델

  • 대량 생산에 앞서 미리 제작해보는 시제품
  • 사용자와 의사 소통하는 도구로 활용
  • 사용자의 요구가 불투명하고 요구사항의 변화가 계속 많이 발생하는 경우에 적합

2. 프로토타입 모델의 장점과 단점

  • 장점:
    • 개발자와 사용자의 원활한 의사소통 가능
    • 사용자의 만족도를 높일 수 있음
    • 유지보수에 필요한 노력과 시간을 많이 줄일 수 있음
  • 단점:
    • 반복으로 인한 투입 인력과 비용 산정이 어려움
    • 사용자가 프로토타입을 보며 제품이 빠르게 완성될 것이란 착각할 수 있음
    • 중간 점검을 할 수 있는 산출물을 생성할 수 없어 프로토타이핑 과정을 관리, 통제하기 어려움
    • 개발 범위가 불명확해 개발 목표나 종료 시점이 불명확해질 수 있음
반응형