본문 바로가기
소프트웨어공학

[소프트웨어공학] 6. Requirements Engineering Process (요구 공학 프로세스)

by leziwn.cs 2023. 10. 6.
Requirements Engineering Processes (요구 공학 프로세스)

Requirements Engineering Processes

 

1. Feasibility Study (타당성 조사)

 

 

2. Requirements Elicitation and Analysis (요구사항 도출 및 분석)

: 기술 스태프가 고객과 협력하여, 애플리케이션 도메인, 시스템이 제공해야 하는 서비스, 시스템 운영 상의 제약사항을 찾아내는 것

  • 최종 사용자, 관리자, 유지보수와 관련된 엔지니어, 도메인 전문가, 노동조합 등이 포함될 수 있다. (이해관계자)

 

요구사항 도출 및 분석 단계
  1. 요구사항 발견
  2. 요구사항 분류 및 구성
  3. 요구사항 우선순위 정하기, 협상
  4. 요구사항 문서화

요구사항 도출 및 분석 예시

 

요구사항 분석의 문제점들
  • 이해관계자들은 자신이 진정으로 원하는 것이 무엇인지 모른다.
  • 이해관계자는 요구사항을 자신의 용어로 표현한다.
  • 이해관계자마다 요구사항이 상충할 수 있다.
  • 조직적 및 정치적 요인이 시스템 요구사항에 영향을 미칠 수 있다.
  • 요구사항은 분석 프로세스 도중 변경된다. 새로운 이해관계자가 등장하거나 비즈니스 환경이 바뀔 수 있다.

 

Interviewing (요구사항 도출 및 분석 방법)

: 이해관계자와의 공식/비공식 인터뷰

▶ 인터뷰 유형

  • 폐쇄적 인터뷰: 이해관계자들이 미리 정해진 질문들에 답한다.
  • 개방적 인터뷰: 다양한 이슈를 이해관계자들이 함께 탐색한다.
    --> 일반적으로, 폐쇄적 인터뷰 + 개방적 인터뷰

▶ 효과적인 인터뷰

: 인터뷰 대상자에게 스프링보드 질문, 요구사항 제안, 프로토타입 시스템을 함께 사용하여 토론을 진행한다.

 

 

3. Requirements Specification (요구사항 명세화)
시나리오
  • 시나리오는 시스템을 사용할 수 있는 방법의 실제 예이다.

▶ 시나리오에 포함되는 것:

  • 시작 상황에 대한 설명
  • 사건의 정상적인 흐름에 대한 설명
  • 잘못될 경우에 대한 설명
  • 동시에 진행할 수 있는 다른 활동에 대한 정보
  • 시나리오가 종료되었을 때의 시스템 상태에 대한 설명

시나리오 예시

 

Use Cases

: 상호작용에서 행위자를 식별하고, 상호작용 자체를 설명하는 UML 시나리오 기반 기술

  • 유스케이스 집합은 시스템과의 가능한 모든 상호작용을 설명해야 한다.
  • 자세한 표 설명(Tabular description): 고수준의 그래픽 모델
  • 시퀀스 다이어그램 --> 시스템에서 이벤트의 처리 순서를 보여줌으로써, 유스케이스에 세부사항을 추가하는데 사용할 수 있다.

유스케이스 예시
보다 자세한 표 설명 (Tabular description for Use Cases)

 

 

4. Requirements Validation (요구사항 검증)

: 요구사항이 고객이 진정으로 원하는 시스템을 정의하고 있는지 점검하는 과정

  • 요구사항 문제를 수정하는 비용이 설계, 코드 오류보다 훨씬 높기 때문에, 요구사항 검증이 매우 중요하다.
    - 고객 인도 후 요구사항 오류를 수정하는 데에는 구현 오류를 수정하는 비용의 최대 100배가 소요될 수 있다.

 

Requirements Checking
  • 유효성: 시스템이 고객의 요구를 가장 잘 반영하는 기능을 제공하는가?
  • 일관성: 요구사항 간의 충돌이 있는가?
  • 완전성: 요구사항에 고객이 요구하는 모든 기능이 포함되어 있는가?
  • 실현성: 요구사항이 주어진 예산, 기술로 구현 가능한가?
  • 검증 가능성: 요구사항을 검증할 수 있는가?

 

요구사항 검증 techniques
  • 요구사항 리뷰: 요구사항의 체계적인 분석
  • 프로토타이핑: 시스템의 실행 가능한 모델을 사용하여 요구사항 확인

 

Requirements reviews (요구사항 리뷰)

: 요구사항 정의가 공식화되는 동안, 정기적인 리뷰가 이루어져야 한다.

  • 고객, 계약 직원 모두 리뷰에 참여해야 한다.
  • 공식적/비공식적 요구사항 리뷰

 

 

Requirements management (요구사항 관리)

: 요구공학 프로세스 및 시스템 개발 중에 변화하는 요구사항을 관리하는 프로세스

  • 시스템이 개발되고 사용되기 시작한 후에 새로운 요구사항이 나타난다.
  • 요구사항 변경의 영향을 평가할 수 있도록, 개발 요구사항을 추적하고, 종속된 요구사항 간의 링크를 유지해야 한다. 
    변경 제안을 하고, 이를 시스템 요구사항에 연결하기 위한 공식 프로세스를 수립해야 한다.