1. 소프트웨어 개발 프로세스의 정의 및 중요성
1-1. 소프트웨어 개발 프로세스의 정의
1-1-1. 기본 용어 정의
- (컴퓨터) 프로그램 : 컴퓨터 명령어가 나열된 코드
- 소프트웨어 : 컴퓨터에서 실행되는 모든 종류의 프로그램
- 시스템 소프트웨어 : 하드웨어와 애플리케이션 소프트웨어 간의 중개역할( OS가 해당)
- 응용 소프트웨어(특히 웹 브라우저) : 특정 사용자 작업을 수행하기 위한 소프트웨어를 뜻한다.
- 프로세스 : 과제를 해결하기 위한 절차
1-1-2. 소프트웨어 개발 프로세스
소프트웨어 개발 프로세스란?
- 요구사항 수집, 설계, 구현, 테스트, 배포, 유지보수
좁은 의미로 : 사용자의 요구사항을 SW 시스템으로 구현하기 위한 일련의 활동
넓은 의미로 : SW 개발 목적을 이루는 데 필요한 모든 수단(+방법, 도구, 참여자)
1-1-3. 프로세스의 3요소
인원, 작업들의 관계를 정의하는 절차와 방법, 도구와 장비
1-2. 소프트웨어 개발 프로세스의 필요성
- 개발 과정이 복잡하다.
- 참여 인력이 많다.
- 개발 기간이 길다.
그래서
- 개발의 복잡성을 줄이기 위한 방법과 기술
- 인원을 관리하는 효율적인 방법
- 프로젝트를 효율적으로 관리하기 위한 체계
의 필요성이 생겨났다.
2. 주요 소프트웨어 프로세스 모델
2-1. 소프트웨어 프로세스 모델의 정의
<aside> 💡
소프트웨어 개발 생명주기에 따라 어떻게 개발할 것인지 전체적인 흐름을 체계화한 개념
요구사항 → 설계 → 구현 → 테스트 → 문서로 정리
</aside>
2-2. 소프트웨어 프로세스 모델의 목적
<aside> 💡
- 소프트웨어 개발의 전 과정을하나의 프로세스로 정의
- 주어진 예산과 자원으로, 개발하고 관리하는 방법을 구체적으로 정의
- 고품질의 소프트웨어 제품 생산 </aside>
2-3. 소프트웨어 프로세스 모델의 역할
- 전체적인 기ㅣ본 골격을 세워줌.
- 용어의 표준화 가능
- 문서가 생기기 때문에 그러한 산출물을 활용하여 검토할 수 있음
2-4. 소프트웨어 프로세스 모델의 종류
<aside> 💡
선형 순차적 모델, V모델, 진화적 프로세스 모델, 나선형 모델, 단계적 개발 모델, 통합 프로세스 모델, 애자일 프로세스 모델 등
</aside>
2-4-1. 선형 순차적 모델(워터폴)
Q. 테스팅 : 사용자 피드백??
- 정의
<aside> 💡
각 개발단계가 선형적으로 진행되며 다시 처음 단계로 돌아갈 수 없다.
</aside>
- 장점
<aside> 💡
문서화가 잘 된다.
</aside>
- 단점
💡
사용자 피드백을 개발 후반에 받을 수 있다. 그래서 정확한 요구사항을 파악해야 한다.
2-4-2. 애자일 프로세스 모델(애자일 방법론)
- 정의
💡
짧은 개발 사이클을 통해 지속적으로 제품을 개선한다.
스프린트(sprint) : 전력질주를 뜻하며, 작업량도 많지 않고, 개발 기간도 짧은 단위의 작은 개발 업무동안 전력 질주하여 개발한다는 뜻이다.
- 장점
💡
요구사항이 변화했을 시 유연하게 대처 가능
- 단점
💡
프로젝트 규모가 커지면 관리 어려움
문서화가 충분히 이루어지지 않을 수 있음 → 새로운 팀원의 참여가 어려울 수 있음.