Appia의 IT세상

SDLC(Software Development Life Cycle),소프트웨어공학 - 소프트웨어개발 라이프사이클(Software Development Life Cycle)란? 본문

Development/ETC

SDLC(Software Development Life Cycle),소프트웨어공학 - 소프트웨어개발 라이프사이클(Software Development Life Cycle)란?

Appia 2020. 8. 2. 07:14
반응형

SDLC(Software Development Life Cycle),소프트웨어공학 

- 소프트웨어개발 라이프사이클(Software Development Life Cycle)란?

 

라이프사이클(Life Cycle)이라고 하면, 제품이 개발 및 생산에서부터 폐기까지의 전 과정을 나타내는 것을 의미합니다. 이런 라이프사이클(Life Cycle)에서 중점적으로 보는 것은 프로세스입니다. 즉, 제품의 요구사항 부터 개발, 검증, 향후 유지 보수 및 폐기까지의 전 과정을 프로세스화 하여 다루다고 생각하시면 됩니다. 

 

그럼 이런 부분에 대해서 소프트웨어 개발에 적용한 것을 Software Development Life Cycle이라고 합니다. 불과 몇십년 전만해도 소프트웨어는 매우 간단하거나, 사이즈가 크지 않았습니다. 하지만, 시간이 지날 수록 원하는 기능 및 기술들이 추가되고, 자연스럽게 소프트웨어의 사이즈는 방대하게 켜졌습니다. 이러한 과정에서 많은 문제점들이 발생하였고, 이러한 문제점들에 대해서 효율적인 방법을 찾고, 앞선 문제점들을 개선하여 품질 좋은 소프트웨어를 만드는 것을 목적으로 하고 있습니다. 

 

SDLC의 각 프로세스의 단계

SDLC의 각 프로세스의 단계는 다음과 같이 야기를 많이 합니다. 그럼 각 단계에 대해서 이야기를 해보도록 하겠습니다. 

SDLC의 각 프로세스의 단계

요구 사항 분석 단계(Requirement Analysis) 

이 단계는 매우 중요한 단계입니다. 이 단계는 프로젝트를 시작하기 전에 고객의 요구사항을 수령하고, 그 요구사항을 기반으로 요구사항에 대하여 협의하는 단계입니다. 물론, 이 단계에서 불가능한 요구 사항에 대해서는 협의하여 다른 요구사항으로 변경하다던지, 아니면 관련해서 논의하여 구현 여부를 결정하는 단계입니다. 이 단계에서는 단순히 기술적인 가능성 유무만 보는 것이 아니라, 관련된 경제적인 관점에서도 고려가 되어야 하는 단계입니다.  또한 이 단계에서 프로젝트 참여 인원등에 대해서 지정하고 준비하는 단계입니다. 

 

요구사항 확정 단계(Defining Requirement) 

앞선 요구 사항 분석 단계에서 협의된 요구사항들에 대해서 문서화 하여 수령하고, 그 수령된 문서를 바탕으로 승인되는 단계입니다. 여기에서 요구사항에 대한 문서를 흔히들 SRS(Software Requirement Specification)이라고 합니다. 여기에서 기술된 SRS는 협의체가 된 두 회사에서 반드시 구현하는 것을 약속한 것이라고 생각하시면 됩니다. 

 

아키텍처 설계 단계(Design the Architecture) 

이 단계는 SRS를 기반으로 개발된 제품에 대한 아키텍처를 작성하는 단계입니다. SRS에 명시된 조건들을 기반으로 필요한 기능들이 원활하게 동작할 수 있는 아키텍처를 설계하는 단계입니다. 실은 매우 중요한 단계입니다. 전체적인 데이터 flow에 대해서 고려해야 하고, 동작등에 대해서 고려가 되어야 합니다. 아키텍처가 잘 되어 있으면 그 다음 단계에서의 작업이 수월합니다.

 

소트프웨어 개발(Development Product)

이 단계는 실제 개발이 진행되는 단계입니다. 소프트웨어 상으로 코드를 작성하고 이를 정적 분석등을 통해서 1차 검토를 하고, 문제 상황등에 대해서 수정합니다. 이 단계에서는 사내에 정의한 코드 작성 가이드라인등을 준수하는 지에 대해서 확인을 하고 검토가 요구 됩니다. 그런 후에 전체 코드들을 통합하여 빌드하는 단계까지 포함이 됩니다. 

 

검증 단계(Testing) 

이 단계는 SDLC 모델에서 후반부에 위치하는 검증 단계입니다. 이 단계에서는 정상적인 기능에 대해서 테스트를 하고, 요구사항에 부합하게 동작되는지에 대해서 다시 한번 확인합니다. 만약 문제가 있으면, 관련된 부분에 대해서 개발단계를 담당하는 부문에 전달하고, 관련하여 결함이 수용될 때까지 반복됩니다. 

 

시장 출시/유지 보수(Deployment / Maintenance) 

일단 제품이 검증단계까지 정상적으로 통과되면, 시장에 출시됩니다. 여기에서는 제품에 대한 평가 및 반응을 토대로, 패치등이 출시 될 수 있고, 향후 제품에 반영될 수 있습니다. 

 

SDLC을 기반으로 하여 위와 같은 단계를 걸쳐서 소프트웨어 개발을 이루어집니다. 

 

위와 같은 SDLC에는 다음과 같은 개발 모델들이 있습니다. 

 

  • Waterfall Model
  • Iterative Model
  • Spiral Model
  • V-Model
  • Big Bang Model
  • Agile Model
  • RAD Model 
  • Prototyping Model 

위의 모델들에 대해서는 별도의 포스팅을 각각 알아보도록 하겠습니다. 

 

이번 포스팅은 SDLC(Software Development Life Cycle),소프트웨어공학 - 소프트웨어개발 라이프사이클(Software Development Life Cycle)란?라는 주제로 SDLC의 간단한 개요에 대해서 살펴봤습니다. 감사합니다. 

반응형
Comments