반응형
💡 소프트웨어을 어떻게 개발할 것인가에 대한 최상위 수준의 프로세스
**소프트웨어 개발 생명주기의 역할**
- 소프트웨어의 개발 단계를 정의한다.
- 소프트웨어 개발에 있어 접근 방식을 제공한다.
- 마일스톤과 일정 수립의 기준을 제공한다.
( 👆마일스톤이란 프로젝트를 진행하면서 중간 중간 중요한 시점을 말한다.) - 소프트웨어 비용 산정의 기준을 제공한다.
접근방식
SW개발에 생명주기는 크게 2가지로 접근할 수 있는데
BigBang Approach와 Evolutionary Approach가 있다. 먼저
- "Big Bang" Approach란?빅뱅(big bang) 접근 방식은 단계적 접근이 아닌 급격한 접근 방식을 뜻한다.
- 기존 체제에서 한 번에 새로운 체제 혹은 다른 체제로 옮겨가는 방법을 말한다.
- 단계적 접근이 오랜 시간을 필요로 한다면 빅뱅 접근은 빠른 변화 속도가 특징이나 충분한 자원을 필요로하며 단계적 접근과 비교해 불안정하다는 단점이 있다.
- "Evolutionary" Approach란?BigBang의 경우 작은 소프트웨어개발에서는 한번에 좋은 소프트 웨어를 개발할수있지만
- 소프트웨어개발 전체 과정에 있어서 점진적이고 반복적으로 개발하는 방식이다.
- R:요구사항 D:설계 C:코딩 T:테스팅
위에서 설명한 방법으로 소프트웨어의 개발
생명주기는 4가지 유형으로 나눠 볼 수 있는데
생명주기 유형
주먹구구식 개발 모델(Build & Fix Model)
💡 주먹구구식 개발 모델(Build & Fix Model)요구사항의 개발(분석), 설계 단계 없이 구현한 후 만족할 때까지 수정한다.
- 소프트웨어의 크기가 아주 작은 경우에만 가능하다.
- 개발 현황 관리 및 유지보수가 어렵다.
( 👆이후에 체계적인 소프트웨어 개발의 생명주기 모델의 연구를 가져온다)
폭포수 모델(Waterfall Model)
💡 폭포수 모델(Waterfall Model)소프트웨어 개발 전 과정을 체계적이고 순차적으로 접근하는 방법이다.
- "Big Bang" Approach이다.
- 소프트웨어 크기가 비교적 작으며, 고객의 요구사항이 명확하다면 적용한다.
- 이전 단계의 산출물은 다음 단계의 입력으로 활용된다.
- 이전 단계가 완료 될 때 까지 다음단계들은 대기 상태가 되어야한다.
- 고객은 개발 후반부에나 실제 동작하는 소프트웨어를 확인 가능하다.
원형 모델(Prototyping Model)
💡 원형 모델(Prototyping Model)원형을 만들어서 고객과 함께 평가한 후 개발될 소프트웨어 요구사항을 명확히 하여서 완제품을 만드는 방식
- "Evolutionary" Approach
- 소프트웨어 개발 초기에 고객의 요구사항을 파악하기 어려운 경우에 적용된다.
- 폭포수 모델의 단점을 보완하며, 원형을 빨리 개발하여서 고객과 검증하는것이 주된 목표이다.
- 원형 개발 시 주요 기능만 고려 되므로 성능,보안,등은 일반적으로 고려하지않는다.
- 원형은 고객에 의해서 확인된 후 폐기됨
나선형 모델(Spiral Model)
💡 나선형 모델(Spiral Model)폭포수 밒 원형 모델의 장점을 수용하고 위험 분석을 추가한 모델
-
- "Evolutionary" Approach
- 위험에 대처 가능하므로 고비용의 기간이 긴 소프트웨어 개발에 적용
- 프로젝트 수행 시 발생하는 위험을 관리하고 최소화 하려는 것이 목적
- 정확하지 않은 위험 분석을 했을 경우 또 다른 문제 발생 가능
- 폭포수, 원형 모델에 비해 상대적으로 복잡하여 프로젝트 관리가 어려울 수 있음
이렇게 소프트웨어공학 기초과정에서 배웠던 소프트웨어 개발의 생명주기의 유형에 관한 정리를 해보았습니다.
반응형
'좋은 개발자가 되기위한 방법들' 카테고리의 다른 글
CPU의 명령어 처리방식 (0) | 2021.08.29 |
---|---|
Hacking의 기초이론과 공부해가는 과정 (1) | 2021.08.27 |
VSCODE 한글 단축키 모음 (0) | 2021.08.20 |
라이브러리와 프레임워크의 개념과 필요성 (2) | 2021.07.21 |
OWASP(10대 공격기법) 웹 애플리케이션 취약점 (0) | 2021.07.13 |