///
Search
🎺

3주차_2단원보충자료_소프트웨어 생명주기

소프트웨어 생명 주기
소프트웨어를 개발하기 위해 정의하고 운용, 유지보수 등의 과정을 각 단계별로 나눈것

1. 폭포수 모형(Waterfall Model)

폭포에서 한번 떨어진 물을 거슬러 올라갈 수 없듯이 소프트웨어 개발도 이전 단계로 돌아갈 수 없음
소프트웨어 공학에서 가장 오래되고 폭넓게 사용된 전통적인 모형, 고전적 생명 주기 모형
소프트웨어 개발 과정의 한 단계가 끝나야만 다음 단계로 넘어갈 수 있음
다음 단계를 수행하기 위한 결과물이 명확하게 산출되어야 함
순서적: 각 단계 사이에 중복이나 상호작용이 없음
각 단계의 결과는 다음 단계가 시작되기 전에 점검
직능 중심의 프로젝트 조직이 결과물 정의가 중요
크고 복잡한 오래 지속되는 프로젝트에 적합
장점
1.
프로세스가 단순하여 초보자가 쉽게 적용 가능
2.
중간 산출물이 명확, 관리하기 좋음
3.
코드 생성 전 충분한 연구와 분석 단계
단점
1.
소용없는 다종의 문서를 생산할 가능성 있음
2.
애매한 부분이 남아 있거나 프로세스 진행 과정에 변경될 수 있는데 이를 수용할 수 없음
3.
테스트 작업이 프로젝트 후반, 즉 시스템이 완성된 후에 시작됨

2. V 모델(V-Model)

폭포수 모델의 확장 형태
생명주기 단계별로 상응하는 테스트 단계가 존재
V 형태로 진행 - 아래 방향으로 진행하다가 코딩 단계를 거치면서 위로 향함
테스트 중요시 - 적정 수준의 품질 보증
폭포수 모델에 비해 반복과 재처리 과정이 명확함
테스트 작업을 단계별로 구분하므로 책임 소재가 명확함

3. 프로토 타입 모형(Prototype Model, 원형 모형)

사용자의 요구사항을 정확히 파악하기 위해 실제 개발될 소프트웨어에 대한 견본(시제)품을 만들어 최종 결과물 예측하는 모형
요구 사항에 대한 피드백을 받기 위해 시스템을 실험적으로 만들어 사용자에게 보여주고 평가하게 하는 방법
프로토 타이핑 도구
화면 생성기
시스템의 작동을 시뮬레이션 하여 사용자가 볼 수 있는 반응을 보여줌
공동의 참조 모델
사용자와 개발자의 의사소통을 도와주는 좋은 매개체
프로토타입의 목적
단순한 요구 추출 – 만들고 버림
제작 가능성 타진-개발 단계에서 유지 보수가 이루어짐

4. 나선형 모형(Spiral Model, 점진적 모형)

폭포수 모형과 프로토타입 모형의 장점에 위험 분석 기능을 추가한 모형
소프트웨어의 기능을 나누어 점증적으로 개발
실패의 위험을 줄임
테스트 용이
피드백
보헴이 제안
위험 최소화 목적
점진적 모형
여러 번의 점증적인 릴리스(Incremental Releases)
반복 순환 단계
목표, 방법, 제약 조건 결정
위험 요소 분석 및 해결
개발과 평가
다음 단계의 계획
(추가) 정보처리기사에서는 이렇게 나오니 참고하자. (시험에 나온다면 위에 있는걸로 하겠음)

5. 애자일 모형(Agile Model)

고객의 요구사항 변화에 유연하게 대응할 수 있도록 일정한 주기를 반복하면서 개발과정 진행
스프린트(Sprint) 또는 이터레이션(Iteration)이라고 불림
반복되는 주기마다 만들어지는 결과물에 대한 고객 평가와 요구 적극 수용
2~6주간의 짧은 주기로 개발을 반복
실행되는 소프트웨어를 개발하여 단계적으로 시스템 전체를 완성
애자일 선언
1.
형식적인 문서보다는 커뮤니케이션을 통하여 프로젝트가 목표를 향하여 나아가게 함
2.
사용자는 문서가 아니라 실행되는 소프트웨어를 통하여 요구를 확인
3.
사용자의 요구는 비즈니스 환경에 따라 프로젝트 중간에 바뀔 수 있음을 고려
4.
짧은 주기 동안 요구 정의에서 구현, 테스트까지 이루어지며 각 반복 주기의 반성 의견을 다음 계획에 포함
애자일 개발 4가지 핵심 가치
1. 프로세스와 도구보다는 개인과 상호작용에 더 가치를 둔다.
2. 방대한 문서보다는 실행되는 SW에 더 가치를 둔다.
3. 계약 협상보다는 고객과 협업에 더 가치를 둔다.
4. 계획을 따르기 보다는 변화에 반응하는 것에 더 가치를 둔다.