dongdorodongdong
소프트웨어 생명 주기 본문
정의
- S/W를 개발하기 위해 정의, 개발, 유지보수 과정을 각 단계별로 나눈 것
표현 형태
- 폭포수
- 프로토타입
- 나선형
- 애자일
생명주기 단계
- 정의 단계 (What)
- 타당성 검토
"법적, 경제적, 기술적으로 실현 가능한지 조사"
- 계획
"자원, 비용을 측정"
- 요구사항 분석
"요구한 문제를 보다 상세하게 분석" - 개발 단계 (How)
- 설계
"구조, 알고리즘, 자료구조 등을 작성"
- 구현
"작성된 문서를 기초로 프로그래밍하고 번역"
- 테스트
"내재되어 있는 오류를 찾음" - 유지보수 단계
- 가장 시간, 비용이 많이 듬
역할
- 프로젝트 비용한정
- 계획 수립의 기본 골격
- 진행방향을 명확히 함
- 용어, 기술의 표준화를 통한 일관성 유지
- 단계별 종료 시점은 명확하지 않음
폭포수 모형
- 단계
1. 타당성 검토
2. 계획
3. 요구 분석
4. 설계
5. 구현
6. 검사
7. 운용
8. 유지보수 - 특징
- 가장 오래되고 폭 넓게 사용된 전통적인 생명주기
- 단계가 순차적으로 진행되고 단계별 정의, 산출물가 분명
- 여러 과정이 병행 수행되거나 이전 단계로 넘어가는 경우가 없음
- 개발 과정 중 새로운 요구나 경험을 반영하기 여러움
프로토타입
- 정의
- 시스템의 일부, 모형을 만드는 과정
- 요구된 S/W의 일부를 구현
- 구현단계에서 사용될 골격코드가 되는 모형 - 단계
1. 요구 수집
2. 빠른 설계
3. 프로토타입 구축
4. 고객 평가
5. 프로토타입 조정
6. 구현 - 특징
- 시스템 견본을 통해 최종 결과물에 대한 예측 가능
- 개발 단계에서 오류 수정 가능
- 요구사항 충실히 반영
- 시스템 견본을 만들어야 해서 비용이 증가
- 미리 제작된 S/W를 사용할 경우 실제 S/W와 차이가 발생할 수 있어 혼란을 줄 수 있음
- 단기간에 제작해야 하기 때문에 비효율적인 알고리즘, 언어 사용할 수 있음
- 발주자나 개발자 모두에게 공동의 참조 모델을 제공
- 유지보수가 없어지고 개발 단계 안에서 유지보수가 이루어짐
나선형
- 정의
- 폭포수의 장점과 프로토타입의 장점을 결합한 모델
- 여러번의 S/W개발 과정을 점진적으로 완벽한 최종 S/W를 개발하는 것
- 위험을 관리하고 최소화하는 것을 목적 - 단계
1. 계획
2. 위험 분석
3. 개발
4. 고객 평가 - 특징
- 점층적 생명주기
- 위험분석 단계에 초점
- Bohem의 제안
- 비용 및 시간이 많이 듬
- 정밀하여 완성도가 높음, 유지보수 과정이 필요 없음
- 대규모 프로젝트에 유리
애자일
- 정의
- (Agile=기민한, 좋은것을 빠르고 낭비없게 만드는 것) 개발을 가능하게 해주는 다양한 방법론 전체
- 협력과 피드백을 더 빠르고 자주 하는 것 - 배경
- 초기 SW의 개발 방법은 계획 중심의 프로세스였지만 시간이 지나면서 SW의 사용자는 일반 대중들이 되었다. 또, 이런 사용자들의 욕구와 트렌드도 더 빨리 바뀌게 되면서 SW개발의 불확실성이 높아졌다. - 종류
- 익스트림 프로그래밍
"고객과 함께 2주 정도의 반복개발, 테스트우선 개발을 특징"
- 스크럼
"30일마다 동작 가능한 제품을 제공하는 스프린트를 중심으로 함, 매일 정해진 시간과 장소에서 짧은시간의 개발을 하는 팀을 위한, 트로젝트 관리 중심의 방법론"
'Software Engineering' 카테고리의 다른 글
프로젝트 관리 (0) | 2019.04.15 |
---|---|
객체지향 개발 방법론 (0) | 2019.04.15 |
구조적 개발 방법론(5. 디버깅 / 6. 유지보수) (0) | 2019.04.13 |
구조적 개발 방법론(3. 구현 / 4. 검사) (0) | 2019.04.13 |
구조적 개발 방법론(2. 설계) (0) | 2019.04.13 |