소프트웨어 생명주기 5단계 - sopeuteuweeo saengmyeongjugi 5dangye

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

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

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

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

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

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

1. 요구사항 분석

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

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

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

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

비기능 요구사항 

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

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

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

2. 설계

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

3. 구현

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

4. 테스트 

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

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

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

통합 테스트 

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

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

시스템 테스트 

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

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

인수 테스트 

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

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

5. 유지보수 

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

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

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

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

폭포수 모델 (Waterfall Model):

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

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

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

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

나선형 모델(Spiral Model) :

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

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

반복적 모델(Iteration Model) :

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

소프트웨어의개발은소프트웨어개발의생명주기에따라진행되게되는데고객의요구또는개발하고자하는시스템의목표를정하는 요건정의통해시스템을구현하는데문제가없는지구현가능성을파악하는분석단계진행합니다. 그리고분석된 내용을바탕으로구체적인설계를진행하는설계단계설계에따른시스템을구현하는구현단계, 구현된시스템이정상적으로작동하는지, 요구사항에서분석된요건들이부합하는지테스트거칩니다. 이후개발된시스템은실제사용처에배포하게되는배포 운영단계통해소프트웨어개발단계를마무리하게됩니다.

단계 수행작업
요구사항분석 ·         Requirement Analysis
·         사용자요구사항분석
·         고객의요건또는 개발하고자하는시스템의목표정합니다.
·         세부적으로타당성분석, 개발계획을 수행합니다.
·         요건정의목록을시스템화하는데문제가없는지, 구현가능한지 판단합니다.
·         요구사항명세서
 
//codedragon.tistory.com/4045
설계 ·         Design
·         요건정의와분석한부분을시스템의구현가능하도록구체적설계 합니다.
·         시스템개념설계, 상세설계
·         설계문서
 
//codedragon.tistory.com/4046
구현
 
·         Coding(개발)
·         설계에맞도록시스템을구현합니다.
·         소프트웨어구현을위한코딩
·         실행코드
 
//codedragon.tistory.com/4047
테스트 ·         Test
·         구현된시스템이정상작동하는지, 요건과부합하는지 테스트합니다.
·         소프트웨어오류탐지수정
·         테스트계획서, 테스트결과서
  
//codedragon.tistory.com/4048
유지보수 ·         Maintenance
·         배포운영
·         구현된시스템을사용처에 배포하고실제운영합니다.
·         소프트웨어운영, 유지보수, 기능개선
·         소프트웨어대체등에 따른폐기처리
·         유지보수계획서, 폐기승인서
 
//codedragon.tistory.com/4049

Toplist

최신 우편물

태그