시작하기 전
기존 SDLC 방법론 소개를 question 카테고리에서 진행했으나 생각보다 분량이 많아 software develop에서 진행할 예정입니다. 현재 블로그에서는 SDLC 정의를 한번 더 집고 단계를 설명하겠습니다.
SDLC - Software Development Life Cycle
소프트웨어 개발 생애주기
소프트웨어 개발 생애주기란?
개발팀 내에 소프트웨어 기획, 설계, 개발, 테스트를 진행하는데 사용하는 체계적인(or 구조화된) 과정을 의미합니다.
대략적으로 SDLC에서 각 단계는 어떻게 구성되어 있을까요?
SDLC에서 각 단계는 개발, 유지, 수정 및 개선하는 계획으로 구성되어 있다. 이러한 계획은 작업 기간 내 적은 비용으로 사용자 또는 프로젝트 요구 사항에 일치하는 소프트웨어를 배포하는 것을 목표로 하여 소프트웨어의 품질 향상 및 전반적인 개발 과정을 개선 시킬 수 있다.
짧게 요약하자면?
SDLC
소프트웨어 개발의 전 과정을 단계별로 정의하는 방법론
SDLC - 목표
사용자 요구 사항에 부합하는 고품질의 유지보수 가능한 소프트웨어 제공
SDLC의 각 단계는 다음과 같은 목표를 가지고 있습니다.
소프트웨어 엔지니어 또는 소프트웨어 개발자는 최종 제품이 고객의 기대에 부응하고 전체 예산 내에서 적합하도록 다양한 단계에서 수행해야 할 작업을 지정합니다.
( 소프트웨어 개발자가 해당 소프트웨어 개발 프로세스에 대한 사전 지식이 있다면 각 단계별로 작업을 처리하는데 도움이 됩니다. )
SDLC - 단계 1
계획 & 요구사항 분석
들어가기 전 용어 정리 SRS - Software Requirements statement
소프트웨어 요구사항 명세서(이하 SRS)는 전체 프로젝트 기간 동안 정의되고 추가해야하는 모든 사항(요구사항, 소프트웨어 개념, 목적과 같은 프로젝트 관련)을 작성하는 문서
1. 프로젝트가 시작되면.
시작과 동시에 프로젝트의 생성 이유와 목표를 정합니다. 이후 예상 사용자, 개발자, 이외 이해 관계자들의 요구사항을 통하여 SRS에 작성합니다.
2. 이해 관계자의 요구사항의 일반적인 예시는 아래와 같습니다.
시장 분석을 통한 예상 요구사항 추측
예상 사용자층의 요구사항을 분석하는데 도움이 될만한 정보를 분석하거나 유사한 기능을 개발한 경쟁사를 분석하여 예상가능한 부작용 또는 개선이 필요한 부분을 찾을 수 도 있습니다.
예상 사용자층의 요구사항
예상 사용자층을 특정한 후 인터뷰를 하여 "사용자가 해당 프로젝트에 요구하는 바"를 확보합니다. 이때 확보한 인터뷰 내용을 토대로 사용자 페르소나(가상 역할)을 생성하여 주로 사용할 사용자 그룹을 정의하여 이용 수도 있습니다.
페르소나 기법
1명 이상의 예상 사용자층의 비슷한 사람들을 분류하여 정리를 하여 그룹화합니다. 그 다음 해당 그룹을 대표하는 가상 사용자 profile를 생성하여 개발의 방향성을 조정하거나 추후에 사용자와 관련된 요소인 UX와 같은 부분을 계획 및 개발을 할때 참고 할 수 있습니다.
개발자 그룹의 요구사항
기능적 요구사항 - 소프트웨어의 어떤 기능이 작동하는가
사용자가 소프트웨어를 사용하면서 있어야하는 기능을 의미합니다.
예를 들어
업로드 서비스에서는 사용자가 파일을 업로드 할 수 있도록 기능이 필요하며, 스트리밍 서비스에서는 사용자가 재생 버튼을 눌렀을때 영상 또는 오디오가 전송되는 기능이 필요합니다.
기술적 요구사항 - 소프트웨어의 기능이 어떻게 작동하는가
사용자가 이용하는 기능이 보안, 성능, 확장성면에 있어서 어떻게 동작할 것인가를 의미합니다.
예를 들어
업로드 서비스에서는 파일을 업로드하는 방식을 제한하거나 바이러스를 감지하는 기술이 필요하며 스트리밍 서비스에서는 사용자가 불법적으로 스트리밍을 저장 및 배포하는 것을 방지하는 기술과 스트리밍의 안정성을 보장해주는 기술이 필요합니다.
다시 한번 강조 하자면.
SRS는 프로젝트 메니저 재량에 따라 상호간 협의 하에 프로젝트 중간에 조정되거나 추가 및 삭제가 이루어 질 수 있습니다.
3. SRS 작성이 완료되었을떄
프로젝트 진행에 필요한 모든 요소가 결정된 상태 또는 진행에 차질이 없는 상태가 된 경우
작성한 SRS는 시장 분석가 또는 프로젝트 관계자(설계자, 관리자, 내부/외부 전문가)와 같은 이해 관계자의 승인을 받은 후 설계 단계를 진행합니다.
포스트를 마무리하자면_
SDLC를 짧은 분량으로 끝내려 하였으나 자세히 이해하기 위해서는 장기간 포스팅을 하는 것이 더 좋을 것이라 판단하여 각 단계별로 중요도에 따라 분량이 결정될 것 같습니다. 해당 포스트는 개발 & 요구사항 정리를 하며 끝을 맺고 다음 포스트에서는 설계 과정에 대해 자세히 설명하겠습니다. 읽어주셔서 감사합니다.
Reforence
'study > software develop' 카테고리의 다른 글
SDLC 방법론 <1-2> | 기능요구 사항이란? [2/5] (0) | 2024.11.17 |
---|---|
SDLC 방법론 <1-1> | 소프트웨어 요구 사항이란? [1/5] (0) | 2024.11.16 |