본문 바로가기
Exam & Study

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

by GoodDayDeveloper 2021. 10. 27.
반응형

 

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

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

 

 

 

 

 

 

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

 

 

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

 

 

 


 

 

 

 

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

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

 

 

 

 

1. 요구사항 분석

 

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

 

 

기능 요구사항 

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

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

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

 

 

 

비기능 요구사항 

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

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

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

 

 

 

 

2. 설계

 

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

 

 

 

3. 구현

 

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

 

 

 

4. 테스트 

 

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

 

 

 

단위 테스트 

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

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

 

 

통합 테스트 

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

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

 

 

시스템 테스트 

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

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

 

 

인수 테스트 

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

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

 

 

 

 

 

5. 유지보수 

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

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

 

 

 

 


 

 

 

 

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

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

 

 

 

 

 

폭포수 모델 (Waterfall Model):

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

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

 

 

 

 

 

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

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

 

 

 

 

 

나선형 모델(Spiral Model) :

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

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

 

 

 

 

 

 

반복적 모델(Iteration Model) :

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

 

반응형

댓글