SW공학

소프트웨어 개발 프로세스

grove1212 2025. 1. 23. 18:49

1. 소프트웨어 개발 프로세스의 정의 및 중요성

1-1. 소프트웨어 개발 프로세스의 정의

1-1-1. 기본 용어 정의

  • (컴퓨터) 프로그램 : 컴퓨터 명령어가 나열된 코드
  • 소프트웨어 : 컴퓨터에서 실행되는 모든 종류의 프로그램
  • 시스템 소프트웨어 : 하드웨어와 애플리케이션 소프트웨어 간의 중개역할( OS가 해당)
  • 응용 소프트웨어(특히 웹 브라우저) : 특정 사용자 작업을 수행하기 위한 소프트웨어를 뜻한다.
  • 프로세스 : 과제를 해결하기 위한 절차

1-1-2. 소프트웨어 개발 프로세스

소프트웨어 개발 프로세스란?

  • 요구사항 수집, 설계, 구현, 테스트, 배포, 유지보수

좁은 의미로 : 사용자의 요구사항을 SW 시스템으로 구현하기 위한 일련의 활동

넓은 의미로 : SW 개발 목적을 이루는 데 필요한 모든 수단(+방법, 도구, 참여자)

1-1-3. 프로세스의 3요소

인원, 작업들의 관계를 정의하는 절차와 방법, 도구와 장비

1-2. 소프트웨어 개발 프로세스의 필요성

  1. 개발 과정이 복잡하다.
  2. 참여 인력이 많다.
  3. 개발 기간이 길다.

그래서

  1. 개발의 복잡성을 줄이기 위한 방법과 기술
  2. 인원을 관리하는 효율적인 방법
  3. 프로젝트를 효율적으로 관리하기 위한 체계

의 필요성이 생겨났다.

2. 주요 소프트웨어 프로세스 모델

2-1. 소프트웨어 프로세스 모델의 정의

<aside> 💡

소프트웨어 개발 생명주기에 따라 어떻게 개발할 것인지 전체적인 흐름을 체계화한 개념

요구사항 → 설계 → 구현 → 테스트 → 문서로 정리

</aside>

2-2. 소프트웨어 프로세스 모델의 목적

<aside> 💡

  1. 소프트웨어 개발의 전 과정을하나의 프로세스로 정의
  2. 주어진 예산과 자원으로, 개발하고 관리하는 방법을 구체적으로 정의
  3. 고품질의 소프트웨어 제품 생산 </aside>

2-3. 소프트웨어 프로세스 모델의 역할

  • 전체적인 기ㅣ본 골격을 세워줌.
  • 용어의 표준화 가능
  • 문서가 생기기 때문에 그러한 산출물을 활용하여 검토할 수 있음

2-4. 소프트웨어 프로세스 모델의 종류

<aside> 💡

선형 순차적 모델, V모델, 진화적 프로세스 모델, 나선형 모델, 단계적 개발 모델, 통합 프로세스 모델, 애자일 프로세스 모델 등

</aside>

2-4-1. 선형 순차적 모델(워터폴)

프로젝트 진행 절차

Q. 테스팅 : 사용자 피드백??

  • 정의

<aside> 💡

각 개발단계가 선형적으로 진행되며 다시 처음 단계로 돌아갈 수 없다.

</aside>

  • 장점

<aside> 💡

문서화가 잘 된다.

</aside>

  • 단점

 💡

사용자 피드백을 개발 후반에 받을 수 있다. 그래서 정확한 요구사항을 파악해야 한다.

 

2-4-2. 애자일 프로세스 모델(애자일 방법론)

  • 정의

 💡

짧은 개발 사이클을 통해 지속적으로 제품을 개선한다.

 

스프린트(sprint) : 전력질주를 뜻하며, 작업량도 많지 않고, 개발 기간도 짧은 단위의 작은 개발 업무동안 전력 질주하여 개발한다는 뜻이다.

  • 장점

 💡

요구사항이 변화했을 시 유연하게 대처 가능

 

  • 단점

💡

프로젝트 규모가 커지면 관리 어려움

문서화가 충분히 이루어지지 않을 수 있음 → 새로운 팀원의 참여가 어려울 수 있음.