본문 바로가기
Exam & Study

[쉬운설명] 소프트웨어 생명주기 정리!! (정의,단계,종류)

by Life-Journey 2021. 10. 27.
반응형

 

소프트웨어 생명주기의 정의와 단계, 종류에 대해 정리해보았습니다.

저도 이해할 만큼 쉽게 정리해 봤으니, 모두에게 도움이 되었으면 좋겠습니다.

 

 

 

 

 

 

소프트웨어 생명주기(Software Development Life Cycle : SDLC)

 

 

  • 시스템의 요구분석부터 유지보수까지 전 공정을 체계화한 절차
  • 시스템의 개발부터 유지보수까지의 어떠한 작업이 이루어지는지의 단계별로 정리

 

 

 


 

 

 

 

소프트웨어 생명주기 모델 단계

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

 

 

 

 

1. 요구사항 분석

 

  • 다양한 이해관계자의 요구사항을 고려하여 새로운 제품이나 변경될 제품의 요구와 조건을 결정하는 단계
  • 개발할 소프트웨어의 기능과 제약조건 등을 실제 사용자와 함께 명확히 정의하는 단계
  • 기능 / 비기능 요구사항으로 구분

 

 

기능 요구사항 

개념 - 시스템이 제공하는 기능, 서비스에 대한 요구사항

특징 - 기능성, 완전성, 일관성

예) 쇼핑몰 장바구니 기능, 결제수단은 신용카드 포인트 결제, 무통장 입금 등이 가능해야함.

 

 

 

비기능 요구사항 

개념 - 시스템이 수행하는 기능 이외의 사항, 시스템 구축에 대한 제약사항에 관한 요구사항

특징 - 신뢰성, 사용성, 효율성, 유지보수성, 이식성, 보안성 등

예) 시스템은 24시간 가동 필요, 특정 함수 호출은 3초 초과 금지, 패치/업그레이드 필수

 

 

 

 

2. 설계

 

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

 

 

 

3. 구현

 

  • 설계 단계에서 논리적으로 결정한 문제 해결 방법을 특정 프로그래밍 언어를 사용하여 구현하는 단계프로그래밍 언어 선택, 기법, 스타일, 순서 등을 결정하는 단계
  • 인터페이스 개발 / 자료 구조 개발 /  오류 처리로 구성

 

 

 

4. 테스트 

 

  • 시스템이 요구를 만족하는지, 예상과 실제 결과가 어떤 차이를 보이는지 검사하고 평가하는 단계
  • 단위 테스트 / 통합 테스트 / 시스템 테스트 / 인수 테스트로 구분

 

 

 

단위 테스트 

사용자 요구사항에 대한 단위 모듈, 서브루틴 등을 테스트하는 단계

기법 - 자료 구조 테스트, 실행 경로 테스트, 오류 처리 테스트, 인터페이스 테스트

 

 

통합 테스트 

단위 테스트를 통과한 모듈 사이의 인터페이스로써 통합된 컴포넌트 간의 상호작용을 검증하는 단계

기법 - 빅뱅 테스트, 샌드위치 테스트, 상향식 테스트, 하향식 테스트

 

 

시스템 테스트 

통합된 단위 시스템의 기능이 시스템에서 정상적으로 수행되는지를 검증하는 단계

기법 - 기능.비기능 요구사항 테스트

 

 

인수 테스트 

계약상의 요구사항이 만족되었는지 확인하기 위한 테스트 단계

기법 - 계약 인수, 규정 인수, 사용자 인수, 운영상의 인수, 알파.베타 테스트

 

 

 

 

 

5. 유지보수 

시스템이 인수되고 설치된 후 일어나는 모든 활동

예방, 완전, 교정, 적응, 유지보수로 구분

 

 

 

 


 

 

 

 

소프트웨어 생명주기 모델 종류

폭포수 모델 / 프로토타이핑 모델 / 나선형 모델 / 반복적 모델

 

 

 

 

 

폭포수 모델 (Waterfall Model):

  • 소프트웨어 개발 시, 각 단계를 확실하게 마무리 지은 후에 다음 단계로 넘어가는 모델
  • 가장 오래된 모델
  • 선형 순차적 모형으로 고전적 생명주기 모형이라고도 함
  • 단계별 정의와 산출물이 명확
  • 요구사항 변경이 어려움

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

 

 

 

 

 

프로토타이핑 모델 (Prototyping Model) :

  • 고객이 요구한 주요 기능을 프로토타입으로 구현하여, 고객의 피드백을 반영하여 소프트웨어를 만들어가는 모델
  • 프로토타입의 뜻은 평가 받기 위한 실물 크기의 모형으로써, 구현 단계의 골격
  • (모형을 만들어 고객에게 검사를 맞는다고 생각하시면 됩니다!)
  • 프로토타입은 발주자나 개발자 모두에게 공동의 참조 모델을 제공
  • 요구분석이 쉽고 타당성 검증이 가능하나 프로토타입(모형)의 폐기에 따른 비용 증가

 

 

 

 

 

나선형 모델(Spiral Model) :

  • 시스템 개발 시, 위험을 최소화하기 위해 점진적으로 완벽한 시스템으로 개발해 나가는 모델
  • (고객 평가까지 진행되었다가 다시 계획 및 정의로 돌아가는 반복적인 개발 모델입니다.)
  • 위험성 감소와 변경에 유연한 대처가 가능하나, 단계 반복에 따른 관리 어려움

절차 - 계획 및 정의 > 위험 분석 > 개발 > 고객 평가

 

 

 

 

 

 

반복적 모델(Iteration Model) :

  • 구축대상을 나누어 병렬적으로 개발 후 통합하거나, 반복적으로 개발하여 점증 완성시키는 모델
  • (대규모 프로젝트를 여러 개발자들이 일을 나누어 개발하다가 나중에 통합하는 방식입니다.)
  • 사용자의 요구사항 일부분 혹은 제품 일부분을 반복적으로 개발하여 최종 시스템으로 완성하는 모델
  • 병행 개발로 인한 일정 단축이 가능하나, 병행 개발에 따른 관리 비용이 증가

 

반응형

댓글