소프트웨어공학_4

김경민·2024년 10월 7일

3학년 2학기

목록 보기
11/29

📌요구분석 개요

정의

  • 요구분석(Requirements Anltsis)은 소프트웨어 개발에서 사용자 및 이해관계자의 요구를 명확히 파악하고 이를 체계화하여 개발의 기초를 만드는 과정

목적

  • 소포트웨어 시스템이 해결해야 할 문제를 정의하고, 시스템이 수행해야 할 기능을 명확히 규정
  • 요구가 명확하지 않으면 프로젝트 실패 가능성이 증가

중요성

  • 잘못된 요구 정의는 프로젝트 실패의 주요 원인
  • 개발 중간에 요구가 바뀌면 개발 비용과 시간이 크게 증가

📌요구분석 주요 활동

이해관계자 식별

  • 요구사항을 제공하는 주요 이해관계자를 파악

요구사항 수집

  • 다양한 방법을 통해 사용자 요구를 수집
  • 관찰, 인터뷰, 설문조사, 브레인스토밍, 워크샵 등

요구사항 문서화

  • SRS(Software Requirement Spec.)작성

요구사항 검토 및 확인

  • 이해관계자와 함께 요구사항 검토 및 최종 확인

📌요구사항의 유형

기능 요구사항(Functional Requirements)

  • 시스템이 수행해야 하는 작업이나 기능을 정의
  • ex_사용자가 로그인기능, 데이터를 저장 기능

비기능 요구사항(Non-Functional Requirements)

  • 성능, 확장성, 보안, 가용성 등의 시스템 풀질을 정의
  • ex_시스템은 1초 이냉에 응답, 하루에 1만 건의 거래를 처리

도메인 요구사항(Domain Requirements)

  • 특정 비즈니스나 도메인에 관련된 요구사항
  • ex_금융시스템 거래규정 준수, 항공교통관제 규정 준수 등

📌요구분석 프로세스

요구 수집(Requirements Elicitation)

  • 요구를 추출 및 정보 수집, 사용자와의 인터뷰, 설문조사 등

요구 분석(Requirements Analysis)

  • 수집된 요구를 정리, 기능과 비기능 요구로 명확하게 분류

요구 명세(Requirements specification)

  • 정리된 요구 사항을 문서로 작성. 요구사항 명세서(SRS)

요구 검증 및 확인(Requirements validation)

  • 요구 사항이 정확한지, 프로젝트 목표와 일치하는지 검증
  • 소프트웨어 요구사항 검토회 (SRR-Review)
  • 변경관리 (변경요청-일정/범위 영향분석-추적성)

🔥요구사항 수집기법 - 장단점

관찰(Observation)

  • 사용자 환경에서 실제로 사용하는 방법을 관찰하여 요구를 파악

인터뷰(Interviews)

  • 이해관계자와의 1:1 대화를 통해 요구 사항을 도출
  • 구조화된 인터뷰 vs. 비구조화된 인터뷰

설문조사(Suveys and Questionnaires)

  • 대규모 사용자 집단으로부터 요구를 수집할 때 사용

브레인스토밍(Brainstorming)

  • 팀 단위로 자유롭게 아이디어를 공유하여 요구사항을 도출

워크샵(Workshops)

  • 여러 이해관계자가 참여하는 워크샤브 협력적 요구 도출

🔥요구분석 정리기법(Diagram)

유스케이스 다이어그램(Use Case Diagram)

  • 사용자가 어떤 기능을 어떻게 이용하는지 시나리오 형식으로 작성

    Ex- 사용자가 로그인하는 절차를 상세히 기술

데이터 흐름도(DFD: Data Flow Diagram)

  • 데이터가 시스템 내에서 어떻게 흐르는지를 도식화하여 요구 분석

UML(Unified Modeling Language)

  • 시스템의 구조와 행위를 모델링하는 데 사용되는 표준화된 기법
  • 클래스 다이어그램, 시퀀스 다이어그램 등을 활용

🔥요구분석 문서 SRS/IRS 작성

명확성(Clearness)

  • 모든 요구 사항은 모호하지 않고 명확하게 기술되어야 함

일관성(Consistency)

  • 요구 사항 간에 충돌이나 모순이 없어야 함

검증 가능성(Verifiability)

  • 요구 사항은 구체적으로 확인 및 검증할 수 있어야 함

SRS 내용

  • 시스템 목적, 범위, 시스템 개요
  • 기능 요구 사항, 비기능 요구 사항 등으로 구성

🎯요구분석 문서 SRS 구성요소(Software Requirement Spec.)

정의 : 요구분석 최종 산출물, 기능/비기능 요구사항 상세히 기술

구성요소

  • 목적 및 범위 : 시스템이 해결할 문제와 개발의 목표를 정의
  • 시스템 개 : 시스템의 전체적인 동작과 흐름을 설명
  • 기능적 요구사항 : 시스템이 제공할 기능을 구체적으로 명시
  • 비기능적 요구사항 : 시스템의 성능, 안정성, 보안성 등 특성 기술
  • 제약 사항 : 시스템이 따라야 할 법적, 기술적, 환경적 제약을 정의

🔥요구분석 검증

요구 검증의 목적

  • 시스템이 실제로 원하는 요구 사항을 충족시키고 있는지 확인
  • 고객의 피드백을 받아 수정 및 재확인

검증 방법

  • Software Requirement Review
    : 이해관계자와 함께 요구 사항을 검토
  • 프로토타입(Prototype) : 시제품을 만들어 요구를 확인하고 수정
  • 요구사항 추적 매트릭스 : 요구사항과 관련된 구성요소 연결성 추적

실패 사례 분석

  • 잘못된 요구 - 프로젝트 실패 사례 (예: Boeing 737 Max의 사례)

🎯요구분석 핵심

1. 사용자의 요구를 정확하게 이해하고 명확히 정의(관찰, 인터뷰, 설문, 브레인스토밍, 워크샵)함 이를 통해 소프트웨어가 해결과제 확인

2. 기능적 및 비기능적 요구사항을 구체적으로 명시

3. 요구사항의 우선순위를 결정

4. SRS 작성

5. 검증과정(review) 최종 확인 및 방향 설정

profile
무지(無知)

0개의 댓글