본문 바로가기
정보처리/소프트웨어설계

요구사항 확인 요구사항 1/2

by 피갓자 2025. 4. 5.

요구사항 확인 요구사항
요구사항 확인 요구사항

요구사항

요구사항 개념

요구공학(Requirements Engineering)의 개념

사용자의 요구가 반영된 시스템을 개발하기 위하여 사용자 요구사항에 대한 도출, 분석, 명세, 확인 및 검증하는 구조화된 활동

요구공학의 목적

  • 이해관계자 사이에 효과적인 의사소통 수단을 제공하고 시스템 개발의 요구사항에 대한 공통된 이해를 설정함
  • 요구사항 누락 방지 및 이해 오류로 인한 불필요한 비용을 절감하고 요구사항 변경 추적을 가능하게 함
  • 초기 요구사항 관리로 개발 비용과 시간을 절약하고 효과적인 의사소통 수단을 제공함

요구사항의 분류

기능적 요구사항

개념

  • 시스템이 제공하는 기능, 서비스에 대한 요구사항

도출 방법

  • 특정 입력에 대해 시스템이 어떻게 반응해야 하는지에 대한 기술
  • 특정 상황에 대해 시스템이 어떻게 동작해야 하는지에 대한 기술

특성

  • 기능성, 완전성, 일관성

사례

  • 온라인 홈페이지에서는 쇼핑카트에 주문할 품목을 저장할 수 있는 장바구니 기능을 제공해야 함
  • 상품의 결제 수단은 신용카드, 무통장 입금, 포인트 결제가 가능해야 함

비기능적 요구사항

개념

  • 기능과 관련되지 않은 사항, 시스템 구축에 대한 제약사항에 관한 요구사항

도출 방법

  • 품질 속성과 관련하여 시스템이 갖춰야 할 사항에 관한 기술
  • 시스템이 준수해야 할 제한 조건에 관한 기술

특성

  • 신뢰성, 사용성, 효율성, 유지보수성, 이식성, 보안성 및 품질 관련 요구사항, 제약사항

사례

  • 특정 함수의 호출시간은 3초를 넘지 않아야 함
  • 시스템은 하루 24시간 가동되어야 하며 가동률 99.5%를 만족해야 함
  • 시스템은 운영되는 중에 패치 및 업그레이드를 할 수 있어야 함

요구공학 프로세스

요구사항 개발 단계 구성(CMM Level 3 프로세스 영역)

1. 요구사항 출(Elicitation)

  • 소프트웨어가 해결해야 할 문제를 이해하고, 고객이 제시하는 추상적 요구 관련 정보를 식별하고 수집 방법 결정, 수집된 요구사항을 구체적으로 표현하는 단계
  • 이해관계자(Stakeholder)가 식별되며, 개발팀과 고객 사이의 관계 형성과 다양한 이해관계자의 효율적인 의사소통이 중요
  • 주요 활동에는 고객 분석, 조직 환경 분석, 후보 요구사항 분류, 후보 요구사항 정제, 요구사항 소스 관리가 있음

2. 요구사항 석(Analysis)

  • 도출된 요구사항에 대해 충돌, 중복, 누락 등을 분석하여 요구사항의 완전성과 일관성을 확보하는 단계
  • 요구사항 간 상충하는 문제를 해결하고, 소프트웨어의 범위를 파악하며, 소프트웨어가 환경과 어떻게 상호작용을 하는지 이해하는 단계
  • 주요 활동에는 시스템 요구사항 정제, 소프트웨어 요구사항 분류, 후보 요구사항 모델링, 요구사항의 우선순위 부여, 해당 릴리즈에 수행할 요구사항 선정, 요구사항 협의가 있음
  • 비용과 일정에 대한 제약설정, 타당성 조사, 요구사항 정의 문서화 수행

3. 요구사항 세(Specification)

  • 검토, 평가, 승인을 받을 수 있는 체계적인 문서를 작성하는 단계
  • 합의된 요구사항을 하나 이상의 형태로 저리하고, 정형화된 요구사항을 생성하는 활동 수행
  • 주요 활동에는 요구사항 명세 기준 정의, 요구사항 명세서 작성, 요구사항 추적 관련 정보 저장이 있음

4. 요구사항 인 및 검증(Validation & Verification)

  • 분석가가 요구사항을 이해했는지 확인(Validation)하고, 요구사항 문서가 회사 표준에 적합하며, 이해하기 쉽고 일관성이 있으며, 완전한지 검증(Verification)하는 단계
  • 주요 활동에는 요구사항 명세서 검토, 요구사항 용어 검증, 요구사항 베이스라인 수립이 있음
  • 이해관계자들이 요구사항 문서 검토하고, 요구사항 관리 툴을 이용하여 요구사항 정의 문서들에 대한 형상 관리 수행
  • 리소스가 요구사항에 할당되기 전에 문제를 파악하기 위하여 검증 수행

요구사항 개발 단계 상세

요구사항 도출 단계

요구사항 도출 단계 주요 기법

인터뷰(Interview)

  • 이해관계자와 직접 대화를 통해 정보를 구하는 공식적, 비공식적 정보 수집 방법

브레인스토밍(Brainstorming)

  • 말을 꺼내기 쉬운 분위기로 만들어, 회의 참석자들이 내놓은 아이디어들을 비판 없이 수용할 수 있도록 하는 회의

델파이 기법(Delphi Method)

  • 전문가의 경험적 지식을 통한 문제 해결 및 미래 예측을 위한 방법

롤 플레잉(Role Playing)

  • 현실에 일어나는 장면을 설정하고 여러 사람이 각자가 맡은 역을 연기함으로써 요구사항을 분석하고 수집하는 방법

워크숍(Workshop)

  • 단기간의 집중적인 노력을 통해 다양하고 전문적인 정보를 획득하고 공유하는 방법
  • 프로젝트에 참여하는 모든 핵심 인물의 참여가 필요
  • 참석자들은 해당 전문 영역별로 팀 협력이 필요하며 사전 준비가 요구

설문 조사(Survey)

  • 설문지 또는 여론조사 등을 이용해 간접적으로 정보를 수집하는 방법
  • 개발될 시스템 사용자가 다수일 때 의견 수렴에 용이

요구사항 분석 단계

요구사항 분석 단계 절차

1. 요구사항 분류

  • 요구사항이 기능인지 비기능인지 확인하는 활동
  • 요구사항이 소프트웨어에 미치는 영향의 범위를 파악
  • 요구사항이 소프트웨어 생명주기 동안 변경이 발생하는지를 확인
  • 하나 이상의 상위 요구사항에서 유도된 것인지 또는 이해관계자나 다른 원천으로부터 직접 발생한 것인지 분류

2. 개념 모델링 생성 및 분석

  • 요구사항을 더 쉽게 이해할 수 있도록 현실 세계의 상황을 단순화, 개념적으로 표현한 것을 모델이라고 하며, 모델링은 이러한 모델을 만드는 활동
  • 개념 모델은 문제 도메인의 엔티티(Entity)들과 개별 관계 및 종속성을 반영
  • 유스케이스 다이어그램(Use Case Diagram), 데이터 흐름 모델(Data Flow Model), 상태 모델(State Model), 목표 기반 모델(Goal-Based Model), 사용자 인터랙션(Interaction), 객체 모델(Object Model), 데이터 모델(Data Model) 등과 같은 다양한 개념 모델 작성 가능
  • 모델링 표기는 주로 UML을 사용

3. 요구사항 할당

  • 요구사항을 만족시키기 위한 아키텍처 구성요소를 식별하는 활동
  • 다른 구성요소와 어떻게 상호작용을 하는지 분석을 통해 추가적인 요구사항 발견 가능

4. 요구사항 협상

  • 두 명의 이해관계자가 서로 상충하는 내용을 요구하는 경우, 어느 한쪽을 지지하기보다는 적절한 지점에서 합의하기 위한 활동
  • 요구사항이 서로 충돌되는 경우에 각각에 우선순위를 부여하면, 무엇이 더 중요한지를 인식할 수 있기 때문에 문제 해결에 도움이 됨

5. 정형 분석

  • 형식적으로 정의된 의미를 지닌 언어로 요구사항을 표현하는 활동
  • 구문(Syntax)과 의미(Semantics)를 갖는 정형화된 언어를 사용하여 수학적 기호로 표현
  • 요구사항 분석의 마지막 단계에서 이루어짐

요구사항 분석 단계 기법

  • 자료 흐름 지향 분석 : 데이터 흐름도(DFD, Data Flow Diagram) 및 자료 사전(DD, Data Dictionary)으로부터 소프트웨어 구조를 유도하는 방법
  • 객체 지향 분석 : 시스템의 기능과 데이터를 함께 분석, 통합 모델링 언어(UML, Unified Modeling Language)로 표준화

요구사항 분석 기술

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