CS

[CS] 요구사항 분석 기법 - 기본 개념과 DFD

y_lime 2025. 1. 18. 16:41

◼︎ 요구분석 (Requirements Analysis)의 개념

  • 사용자의 요구를 추출하여 목표를 정하고 어떤 방식으로 해결할 것인지 결정하는 단계
  • 개발 대상에 대한 사용자의 요구사항 중 명확하지 않거나 모호하여 이해되지 않는 부분을 발견하고 이를 걸러내기 위한 과정

◼︎ 요구분석의 특징 **

  • 소프트웨어 개발의 실제적인 첫 단계 (사용자의 요구에 대해 이해하는 단계)
  • 분석 결과의 문서화로 유지보수에 유용하게 활용 가능
  • 소단위 명세서 활용 for more detailed 명세
    • 소단위 명세서(Mini Spec) : 데이터 흐름도에 나타나있는 처리 항목을 1~2페이지 정도의 소규모 분량으로 요약하여 작성하는 논리적 명세서
  • 개발 비용이 가장 많이 소요되는 단계 X (It's 유지보수 단계)
  • 요구분석 중 도메인 분석은 요구에 대한 정보를 수집하고 배경을 분석하여 이를 토대로 모델링을 하게 됨

◼︎ 요구사항 분석 단계 절차 * 

  • 요구사항 분석을 통해서 요구사항을 기술할 때는 요구사항의 확인(Validation), 요구사항 구현의 검증(Verification), 비용 추정이 가능하도록 충분 & 정확하게 기술해야 함
  • 요구 분석 단계는 요구사항 도출 다음 단계
    • 즉, 요구사항 도출 → 요구 분석 → 명세화 → 확인 및 검증

► 요구사항 분석 단계 절차 (순서 외우기**)

  1. 요구사항 분류
    • 요구사항 유형(기능 요구사항, 비기능 요구사항)을 확인하는 단계
      • 기능 요구사항 : 기능과 관련하여 소프트웨어가 가져야 하는 기능적 속성에 대한 요구사항
      • 비기능 요구사항 : 기능적 속성이 아닌 성능, 보안, 품질 등에 대한 요구사항
    • 요구사항이 SW에 미치는 여향의 범위를 파악
    • 요구사항이 SW 생명주기 동안 변경이 발생하는지를 확인
  2. 개념 모델링 생성 및 분석
    • 요구사항을 단순화, 개념적으로 표현한 것 = 모델
    • 모델을 만드는 단계 = 모델링
    • 객체 모델, 데이터 모델, 상태 모델 등 다양한 모델 작성 가능
    • 모델링 표기를 위해 DFD(data flow diagram), 자료 사전(DD), UML 다이어그램, E-R 다이어그램 사용
  3. 요구사항 할당
    • 요구사항을 만족시키기 위한 아키텍처 구성요소를 식별하는 단계
    • 다른 구성요소와 어떻게 상호 작용하는지 분석을 통해 추가적인 요구사항을 발견 가능
  4. 요구사항 협상
    • 두 명의 이해관계자가 적절한 지점에서 합의하기 위한 단계
    • 우선순위 부여하면 문제 해결에 도움 됨
  5. 정형 분석
    • 형식적으로 정의된 의미를 지닌 언어로 요구사항을 표현하는 단계
    • 구문(Syntax)과 의미(Semantics)를 갖는 정형화된 언어를 사용하여 수학적 기호로 표현
    • 요구사항 분석의 마지막 단계에서 이루어짐

◼︎ 요구사항 분석 기술

요구사항 도출 단계에서도 활용 됨

분석 기술 설명
청취 기술 이해관계자로부터 의견을 듣는 기술
인터뷰와 질문 기술 이해관계자를 만나 정보를 수집하고 이야기를 나누는 기술
분석 기술  추출된 요구사항에 대해 충돌, 중복, 누락 등의 분석을 통해 완전성과 일관성을 확보하는 기술
중재 기술 이해관계자들의 상반된 요구에 대한 중재 기술
관찰 기술 사용자가 작업하는 것을 관찰하면서 사용자가 언급하지 않은 미묘한 의미를 탐지할 . 수있는 기술
작성 기술 요구사항 분석서 등의 문서 작성 기술
조직 기술  수집된 방대한 정보를 일관성 있는 정보로 구조화하는 능력
모델 작성 기술 수집한 자료를 바탕으로 제어의 흐름, 기능 처리, 동작 행위, 정보 내용 등을 이해하기 쉽도록 모델로 작성하는 기술

 

◼︎ 요구사항 분석에 사용하는 기능 모델링 기법

➀ 데이터 흐름도(Data Flow Diagram) ***

  • 시스템 분석과 설계에서 주로 used
  • aka 자료 흐름 그래프, 버블 차트
  • 구조적 분석 기법에 used
  • 데이터의 흐름에 중심을 두는 분석용 도구
  • 제어의 흐름은 Not 중요
  • 시간 흐름/제어의 흐름/실행 순서/ 조건에 따른 흐름을 명확하게 표현은 X only 데이터의 흐름만 다룸

►. 데이터 흐름도 구성 요소 (프플스터 : PFST)

  1. 프로세스/처리기(Process) - 원 (Bubble)
    • 입력된 데이터를 원하는 형태로 변환하여 출력하기 위한 요소(자체적으로 데이터 생성 불가)
    • 처리, 기능, 변환, 버블으로도 불림
    • 원 안에는 프로세스가 수행하는 일 or 프로세스를 수행하는 행위자를 기술
  2. 데이터흐름(Data Flow) - 화살표
    • DFD의 구성요소 간의 인터페이스를 다룸
    • 화살표 위에 자료의 이름을 기입 but 서로 다른 데이터 흐름에는 동일한 이름을 부여하지 않음
  3. 데이터저장소(Data Store) - 두 평행선 
    • 데이터가 저장된 장소를 나타내는 요소
    • 평행선 안에는 데이터 저장소의 이름을 넣음
    • 추후 액세스를 위해 데이터를 저장하는 수동적 객체
    • 데이터저장소는 테이프, 디스크, 카드 데이터, 캐비닛의 인덱스화일 등일 수도 있으며, 때로는 휴지통일 수도 있음
    • 데이터저장소는 단순한 데이터의 저장을 나타내는 것이지 데이터의 변동을 표시하는 것 X
    • 데이터흐름을 표시함으로써 데이터의 입출력을 나타냄
  4. 단말(Terminator)/외부엔티티(External Entity) - 사각형
    • 프로세스 처리 과정에서 데이터가 발생하는 시작과 종료를 나타내는 요소
    • 시스템과 교신하는 외부 개체
    • 데이터 흐름도상에서 프로세스(Process)와의 상호관련성을 표시하며, 일반적으로 DFD 범위 밖에 사각형 형태로 표시
    • 사각형 안에는 외부 엔터티의 이름을 넣음