요구 분석 과정

BiteSnail·2023년 11월 11일
0

왜 요구 분석을 해야 하는가?

소프트웨어는 현실 세계에서 문제를 해결하기 위해 만들어집니다.

클라이언트가 원하는 소프트웨어를 개발하기 위해, 즉 문제를 해결하기 위해 가장 중요한 것은 요구사항을 분석하는 것 입니다.

소프트웨어 개발의 계획 단계에서 클라이언트가 무엇(what)을 요구하는지 정확하게 파악하는 것은 매우 중요합니다. 클라이언트는 개발적 지식을 모르는 경우가 많습니다. 그리고 클라이언트 본인이 어떤 것을 원하는지 정확하게 모를 수도 있습니다.
따라서 클라이언트와의 원활한 협력을 위해서 요구사항을 정확하게 파악하는 것은 프로젝트의 성공을 좌지우지 하는 중요한 작업입니다.

요구 분석 과정

요구 분석 과정에서는 어떻게(how)보다는 무엇을(what)에 관점을 두어야 합니다.
분석과정에서는 요구를 어떻게 구현할지를 고민하는 단계가 아니라, 무엇을 구현해야 하는지를 도출해나가는 단계이기 때문입니다.

요구

요구란?
시스템에 대한 고객의 요청을 확정한 것을 의미합니다. 이는 짧고 간단하게 시스템이 무엇을 하는가를 나타내는 것입니다.

기능과 비기능 요구

요구는 기능요구와 비기능 요구로 나눌 수 있습니다.
기능 요구란 업무절차나 동작과 같이 쉽게 파악될 수 있고 동사로 표현되는 요구사항입니다. 반면에 비기능 요구란 기능 이외에 갖추어야 하는 조건이나 특징으로 형용사로 표현되는 요구사항입니다.

도메인 분석

소프트웨어 엔지니어는 클라이언트의 도메인(전문분야)에 대해 알아가는 과정을 거쳐야 합니다. 문제를 해결하는 것도 중요하지만, 문제의 배경에 대한 이해가 필요하기 때문입니다.
이를 통해 빠른 개발과 더 좋은 시스템, 추가적인 확장을 고려해볼 수 있습니다.

방법

도메인 개념 찾기

도메인의 목적, 구조, 동작을 위한 객체, 프로세스, 규칙 등을 찾습니다.

도메인 사전 작성

도메인의 개념을 정리하여 사전을 작성합니다.

비즈니스 규칙 정리

운영 규칙, 정책, 규정, 절차, 가이드라인, 표준안 등을 정리합니다.

요구 추출

클라이언트와의 인터뷰, 설문, 브레인스토밍, 사용사례 분석 등을 통해 요구사항을 추출할 수 있습니다.

요구 분석

추출한 요구 후보를 요구 품질에 적합한지 분석하고 결정하여 최종 요구로 확정하는 단계입니다.

요구 품질

  • 원자적 - 각 요구사항은 최소한의 단위로 분할되고 다른 요구사항과 중복되지 않아야 합니다.
  • 완전성 - 요구사항에 누락된 정보가 존재하지 않아야 합니다. (자세하게 적으라는 뜻)
  • 비모호성 - 요구사항은 명확하고 오해의 소지가 없어야 합니다.
  • 통일성 - 모든 요구사항들은 서로 모순되거나 충돌하지 않아야 합니다.
  • 추적성 - 요구사항은 문서나 시스템 내에서 쉽게 추적 및 관리될 수 있어야 합니다.
  • 우선순위화 - 요구사항 간 중요도나 실행 순서를 정해 효율적인 개발이 가능해야 합니다.
  • 테스트 가능성 - 요구사항은 결과를 명확히 드러내어 테스트할 수 있어야 합니다.

정리

소프트웨어 엔지니어는 요구사항 분석 과정을 통해 자신이 무엇을 해야하는지 정확하게 파악하는 것이 프로젝트의 성공을 향한 지름길이라고 할 수 있습니다.

profile
느리지만 조금씩

0개의 댓글