[정보처리기사] 소프트웨어 생명주기 모델 단계, 종류 (요설구테유, 폭프나반)

소프트웨어 생명주기 모델 

소프트웨어 생명주기(SDLC; Software Development Life Cycle) 모델의 개념 

- 시스템의 전 공정을 체계화한 절차 
- 시스템의 개발부터 운용, 유지보수, 폐기까지의 프로세스를 모델화 한 것.


소프트웨어 생명주기 모델 프로세스 (요설구테유)

요구사항 분석 > 설계 > 구현 > 테스트 > 유지보수 

1. 요구사항 분석
- 다양한 이해관계자의 요구사항을 고려하여 제품에 부합하는 요구, 조건을 결정하는 단계 
- 기능 요구사항, 비기능 요구사항으로 구분 

> 기능 요구사항
- 시스템이 제공하는 기능, 서비스에 대한 요구사항
- 기능성, 일관성, 완정성 

> 비기능 요구사항
- 시스템이 수행하는 기능 이외의 요구 사항
- 신뢰성, 사용성, 보안성, 유지보수성, 효율성, 이식성 


2. 설계
- 시스템 명세 단계에서 정의한 기능을 실제 수행할 수 있도록 수행 방법을 논리적으로 결정하는 단계 
- 시스템구조 설계, 프로그램 설계, 사용자 인터페이스 설계


3. 구현 
- 설계 단계에서 논리적으로 결정한 문제 해결 방법을 프로그래밍 언어(JAVA, Python, C++ 등)를 사용하여 구현하는 단계
- 인터페이스 개발, 자료 구조 개발, 오류 처리


4. 테스트 
- 시스템이 정해진 요구를 만족하는지, 예상과 실제 결과가 어떠한 차이를 보이는지 검사 및 평가하는 단계
- 단위 테스트, 통합 테스트, 시스템 테스트, 인수 테스트 

> 테스트의 종류 (단통시인)
단위 테스트 
-  사용자의 요구사항에 대한 단위 모듈, 서브루틴 등을 테스트하는 단계 
기법 - 자료구조 테스트, 실행 경로 테스트, 오류 처리 테스트, 인터페이스 테스트 

통합 테스트
- 단위 테스트를 통과한 모듈 사이의 인터페이스로써 통합된 컴포넌트 간의 상호작용을 검증하는 단계 
기법 - 상향식 테스트, 하향식 테스트, 샌드위치 테스트, 빅뱅 테스트

시스템 테스트
- 통합된 단위 시스템의 기능이 시스템에서 정상적으로 작동하는지 검증하는 단계 
기법 - 기능, 비기능 요구사항 테스트

인수 테스트
- 계약상 요구사항이 만족되었는지 확인하기 위한 테스트 단계 
기법 - 계약 인수, 규정 인수, 운영상의 인수, 사용자 인수, 알파.베타 테스트 


5. 유지보수 
- 시스템이 인수되고 설치된 후 일어나는 모든 활동. 즉 시스템이 배포된 후의 유지보수 활동 
- 예방, 완전, 교정, 적응 유지보수 







소프트웨어 생명주기 모델 종류 (폭프나반)


폭포수 모델 Water fall Model
- 소프트웨어 개발 시 각 단계를 확실히 마무리 한 후 다음 단계로 넘어가는 모델 
- 단계별 정의와 산출물이 명확
- 요구사항 변경의 어려움 
- 선형 순차적 모형, 고전적 생명주기 모형
- 가장 오래된 모델 

폭포수 모델의 절차 - 타당성 검토 > 계획 > 요구사항 분석 > 설계 > 구현 > 테스트 > 유지보수 


프로토타이핑 모델Prototyping Model 
- 고객이 요구한 주요 기능을 프로타입으로 구현하여, 고객의 피드백을 반영하며 소프트웨어를 만드는 모델 


나선형 모델 Spiral Model
- 시스템을 개발할 때 위험을 최소화 하기 위하여 점진적으로 시스템을 개발해 나아가는 모델
- 위험성 감소, 변경에 유연한 대처 가능
- 단계 반복에 따른 관리 난이도의 증가 

나선형 모델 절차 > 계획 및 정의 > 위험 분석 > 개발 > 고객 평가


반복적 모델 Iteration Model 
- 구축 대상을 나누어 병렬적으로 개발 후 통합, 반복적으로 개발하여 점증 완성 시키는 모델 
- 병행 개발로 일정 단축이 가능하지만 관리 비용이 증가함




다음 이전