◼︎ 요구분석 (Requirements Analysis)의 개념
- 사용자의 요구를 추출하여 목표를 정하고 어떤 방식으로 해결할 것인지 결정하는 단계
- 개발 대상에 대한 사용자의 요구사항 중 명확하지 않거나 모호하여 이해되지 않는 부분을 발견하고 이를 걸러내기 위한 과정
◼︎ 요구분석의 특징 **
- 소프트웨어 개발의 실제적인 첫 단계 (사용자의 요구에 대해 이해하는 단계)
- 분석 결과의 문서화로 유지보수에 유용하게 활용 가능
- 소단위 명세서 활용 for more detailed 명세
- 소단위 명세서(Mini Spec) : 데이터 흐름도에 나타나있는 처리 항목을 1~2페이지 정도의 소규모 분량으로 요약하여 작성하는 논리적 명세서
- 개발 비용이 가장 많이 소요되는 단계 X (It's 유지보수 단계)
- 요구분석 중 도메인 분석은 요구에 대한 정보를 수집하고 배경을 분석하여 이를 토대로 모델링을 하게 됨
◼︎ 요구사항 분석 단계 절차 *
- 요구사항 분석을 통해서 요구사항을 기술할 때는 요구사항의 확인(Validation), 요구사항 구현의 검증(Verification), 비용 추정이 가능하도록 충분 & 정확하게 기술해야 함
- 요구 분석 단계는 요구사항 도출 다음 단계
- 즉, 요구사항 도출 → 요구 분석 → 명세화 → 확인 및 검증
► 요구사항 분석 단계 절차 (순서 외우기**)
- 요구사항 분류
- 요구사항 유형(기능 요구사항, 비기능 요구사항)을 확인하는 단계
- 기능 요구사항 : 기능과 관련하여 소프트웨어가 가져야 하는 기능적 속성에 대한 요구사항
- 비기능 요구사항 : 기능적 속성이 아닌 성능, 보안, 품질 등에 대한 요구사항
- 요구사항이 SW에 미치는 여향의 범위를 파악
- 요구사항이 SW 생명주기 동안 변경이 발생하는지를 확인
- 요구사항 유형(기능 요구사항, 비기능 요구사항)을 확인하는 단계
- 개념 모델링 생성 및 분석
- 요구사항을 단순화, 개념적으로 표현한 것 = 모델
- 모델을 만드는 단계 = 모델링
- 객체 모델, 데이터 모델, 상태 모델 등 다양한 모델 작성 가능
- 모델링 표기를 위해 DFD(data flow diagram), 자료 사전(DD), UML 다이어그램, E-R 다이어그램 사용
- 요구사항 할당
- 요구사항을 만족시키기 위한 아키텍처 구성요소를 식별하는 단계
- 다른 구성요소와 어떻게 상호 작용하는지 분석을 통해 추가적인 요구사항을 발견 가능
- 요구사항 협상
- 두 명의 이해관계자가 적절한 지점에서 합의하기 위한 단계
- 우선순위 부여하면 문제 해결에 도움 됨
- 정형 분석
- 형식적으로 정의된 의미를 지닌 언어로 요구사항을 표현하는 단계
- 구문(Syntax)과 의미(Semantics)를 갖는 정형화된 언어를 사용하여 수학적 기호로 표현
- 요구사항 분석의 마지막 단계에서 이루어짐
◼︎ 요구사항 분석 기술
요구사항 도출 단계에서도 활용 됨
분석 기술 | 설명 |
청취 기술 | 이해관계자로부터 의견을 듣는 기술 |
인터뷰와 질문 기술 | 이해관계자를 만나 정보를 수집하고 이야기를 나누는 기술 |
분석 기술 | 추출된 요구사항에 대해 충돌, 중복, 누락 등의 분석을 통해 완전성과 일관성을 확보하는 기술 |
중재 기술 | 이해관계자들의 상반된 요구에 대한 중재 기술 |
관찰 기술 | 사용자가 작업하는 것을 관찰하면서 사용자가 언급하지 않은 미묘한 의미를 탐지할 . 수있는 기술 |
작성 기술 | 요구사항 분석서 등의 문서 작성 기술 |
조직 기술 | 수집된 방대한 정보를 일관성 있는 정보로 구조화하는 능력 |
모델 작성 기술 | 수집한 자료를 바탕으로 제어의 흐름, 기능 처리, 동작 행위, 정보 내용 등을 이해하기 쉽도록 모델로 작성하는 기술 |
◼︎ 요구사항 분석에 사용하는 기능 모델링 기법
➀ 데이터 흐름도(Data Flow Diagram) ***
- 시스템 분석과 설계에서 주로 used
- aka 자료 흐름 그래프, 버블 차트
- 구조적 분석 기법에 used
- 데이터의 흐름에 중심을 두는 분석용 도구
- 제어의 흐름은 Not 중요
- 시간 흐름/제어의 흐름/실행 순서/ 조건에 따른 흐름을 명확하게 표현은 X only 데이터의 흐름만 다룸
►. 데이터 흐름도 구성 요소 (프플스터 : PFST)
- 프로세스/처리기(Process) - 원 (Bubble)
- 입력된 데이터를 원하는 형태로 변환하여 출력하기 위한 요소(자체적으로 데이터 생성 불가)
- 처리, 기능, 변환, 버블으로도 불림
- 원 안에는 프로세스가 수행하는 일 or 프로세스를 수행하는 행위자를 기술
- 데이터흐름(Data Flow) - 화살표
- DFD의 구성요소 간의 인터페이스를 다룸
- 화살표 위에 자료의 이름을 기입 but 서로 다른 데이터 흐름에는 동일한 이름을 부여하지 않음
- 데이터저장소(Data Store) - 두 평행선
- 데이터가 저장된 장소를 나타내는 요소
- 평행선 안에는 데이터 저장소의 이름을 넣음
- 추후 액세스를 위해 데이터를 저장하는 수동적 객체
- 데이터저장소는 테이프, 디스크, 카드 데이터, 캐비닛의 인덱스화일 등일 수도 있으며, 때로는 휴지통일 수도 있음
- 데이터저장소는 단순한 데이터의 저장을 나타내는 것이지 데이터의 변동을 표시하는 것 X
- 데이터흐름을 표시함으로써 데이터의 입출력을 나타냄
- 단말(Terminator)/외부엔티티(External Entity) - 사각형
- 프로세스 처리 과정에서 데이터가 발생하는 시작과 종료를 나타내는 요소
- 시스템과 교신하는 외부 개체
- 데이터 흐름도상에서 프로세스(Process)와의 상호관련성을 표시하며, 일반적으로 DFD 범위 밖에 사각형 형태로 표시
- 사각형 안에는 외부 엔터티의 이름을 넣음

'CS' 카테고리의 다른 글
[CS] 소프트웨어 설계 - UML 다이어그램(시퀀스/상태) (0) | 2025.01.19 |
---|---|
[CS] 소프트웨어 설계 - UML 다이어그램(클래스/유스케이스) (0) | 2025.01.19 |
[CS] 소프트웨어 설계 - UML 기본 개념 (0) | 2025.01.18 |
[CS] 요구사항 분석 기법 - 자료 사전 (DD) (0) | 2025.01.18 |
[CS] 요구사항 확인 - 현행 시스템 분석 (0) | 2025.01.18 |