소프트웨어 생명주기의 정의와 단계, 종류에 대해 정리해보았습니다.
저도 이해할 만큼 쉽게 정리해 봤으니, 모두에게 도움이 되었으면 좋겠습니다.
소프트웨어 생명주기(Software Development Life Cycle : SDLC)
- 시스템의 요구분석부터 유지보수까지 전 공정을 체계화한 절차
- 시스템의 개발부터 유지보수까지의 어떠한 작업이 이루어지는지의 단계별로 정리
소프트웨어 생명주기 모델 단계
요구사항 분석 -> 설계 -> 구현 -> 테스트 -> 유지보수
1. 요구사항 분석
- 다양한 이해관계자의 요구사항을 고려하여 새로운 제품이나 변경될 제품의 요구와 조건을 결정하는 단계
- 개발할 소프트웨어의 기능과 제약조건 등을 실제 사용자와 함께 명확히 정의하는 단계
- 기능 / 비기능 요구사항으로 구분
기능 요구사항
개념 - 시스템이 제공하는 기능, 서비스에 대한 요구사항
특징 - 기능성, 완전성, 일관성
예) 쇼핑몰 장바구니 기능, 결제수단은 신용카드 포인트 결제, 무통장 입금 등이 가능해야함.
비기능 요구사항
개념 - 시스템이 수행하는 기능 이외의 사항, 시스템 구축에 대한 제약사항에 관한 요구사항
특징 - 신뢰성, 사용성, 효율성, 유지보수성, 이식성, 보안성 등
예) 시스템은 24시간 가동 필요, 특정 함수 호출은 3초 초과 금지, 패치/업그레이드 필수
2. 설계
- 시스템 요구사항 단계에서 정의한 기능을 실제 수행할 수 있도록 수행 방법을 논리적으로 결정하는 단계
- 시스템 구조 설계/ 프로그램 설계 / 사용자 인터페이스 설계로 구성
3. 구현
- 설계 단계에서 논리적으로 결정한 문제 해결 방법을 특정 프로그래밍 언어를 사용하여 구현하는 단계프로그래밍 언어 선택, 기법, 스타일, 순서 등을 결정하는 단계
- 인터페이스 개발 / 자료 구조 개발 / 오류 처리로 구성
4. 테스트
- 시스템이 요구를 만족하는지, 예상과 실제 결과가 어떤 차이를 보이는지 검사하고 평가하는 단계
- 단위 테스트 / 통합 테스트 / 시스템 테스트 / 인수 테스트로 구분
단위 테스트
사용자 요구사항에 대한 단위 모듈, 서브루틴 등을 테스트하는 단계
기법 - 자료 구조 테스트, 실행 경로 테스트, 오류 처리 테스트, 인터페이스 테스트
통합 테스트
단위 테스트를 통과한 모듈 사이의 인터페이스로써 통합된 컴포넌트 간의 상호작용을 검증하는 단계
기법 - 빅뱅 테스트, 샌드위치 테스트, 상향식 테스트, 하향식 테스트
시스템 테스트
통합된 단위 시스템의 기능이 시스템에서 정상적으로 수행되는지를 검증하는 단계
기법 - 기능.비기능 요구사항 테스트
인수 테스트
계약상의 요구사항이 만족되었는지 확인하기 위한 테스트 단계
기법 - 계약 인수, 규정 인수, 사용자 인수, 운영상의 인수, 알파.베타 테스트
5. 유지보수
시스템이 인수되고 설치된 후 일어나는 모든 활동
예방, 완전, 교정, 적응, 유지보수로 구분
소프트웨어 생명주기 모델 종류
폭포수 모델 / 프로토타이핑 모델 / 나선형 모델 / 반복적 모델
폭포수 모델 (Waterfall Model):
- 소프트웨어 개발 시, 각 단계를 확실하게 마무리 지은 후에 다음 단계로 넘어가는 모델
- 가장 오래된 모델
- 선형 순차적 모형으로 고전적 생명주기 모형이라고도 함
- 단계별 정의와 산출물이 명확
- 요구사항 변경이 어려움
절차 - 타당성 검토 > 계획 >요구사항 분석 > 설계 > 구현 > 테스트 > 유지보수
프로토타이핑 모델 (Prototyping Model) :
- 고객이 요구한 주요 기능을 프로토타입으로 구현하여, 고객의 피드백을 반영하여 소프트웨어를 만들어가는 모델
- 프로토타입의 뜻은 평가 받기 위한 실물 크기의 모형으로써, 구현 단계의 골격
- (모형을 만들어 고객에게 검사를 맞는다고 생각하시면 됩니다!)
- 프로토타입은 발주자나 개발자 모두에게 공동의 참조 모델을 제공
- 요구분석이 쉽고 타당성 검증이 가능하나 프로토타입(모형)의 폐기에 따른 비용 증가
나선형 모델(Spiral Model) :
- 시스템 개발 시, 위험을 최소화하기 위해 점진적으로 완벽한 시스템으로 개발해 나가는 모델
- (고객 평가까지 진행되었다가 다시 계획 및 정의로 돌아가는 반복적인 개발 모델입니다.)
- 위험성 감소와 변경에 유연한 대처가 가능하나, 단계 반복에 따른 관리 어려움
절차 - 계획 및 정의 > 위험 분석 > 개발 > 고객 평가
반복적 모델(Iteration Model) :
- 구축대상을 나누어 병렬적으로 개발 후 통합하거나, 반복적으로 개발하여 점증 완성시키는 모델
- (대규모 프로젝트를 여러 개발자들이 일을 나누어 개발하다가 나중에 통합하는 방식입니다.)
- 사용자의 요구사항 일부분 혹은 제품 일부분을 반복적으로 개발하여 최종 시스템으로 완성하는 모델
- 병행 개발로 인한 일정 단축이 가능하나, 병행 개발에 따른 관리 비용이 증가
'Exam & Study' 카테고리의 다른 글
[쉬운설명] HTTP 상태별 코드 설명 정리!! (0) | 2021.11.17 |
---|---|
[쉬운설명] HTTP메서드 (GET / POST / PUT / PATCH / DELETE) (0) | 2021.10.29 |
[쉬운설명] URI, URN, URL 개념 설명!! (0) | 2021.10.26 |
[쉬운설명] 인터넷 네트워크의 통신방법 (IP,TCP,UDP,PORT,DNS) (0) | 2021.10.23 |
[2021년 3회] 정보처리기사 실기 기출문제!! (feat.복원) (22) | 2021.10.17 |
댓글