Requirements Engineering Processes (요구 공학 프로세스)

1. Feasibility Study (타당성 조사)
2. Requirements Elicitation and Analysis (요구사항 도출 및 분석)
: 기술 스태프가 고객과 협력하여, 애플리케이션 도메인, 시스템이 제공해야 하는 서비스, 시스템 운영 상의 제약사항을 찾아내는 것
- 최종 사용자, 관리자, 유지보수와 관련된 엔지니어, 도메인 전문가, 노동조합 등이 포함될 수 있다. (이해관계자)
요구사항 도출 및 분석 단계
- 요구사항 발견
- 요구사항 분류 및 구성
- 요구사항 우선순위 정하기, 협상
- 요구사항 문서화

요구사항 분석의 문제점들
- 이해관계자들은 자신이 진정으로 원하는 것이 무엇인지 모른다.
- 이해관계자는 요구사항을 자신의 용어로 표현한다.
- 이해관계자마다 요구사항이 상충할 수 있다.
- 조직적 및 정치적 요인이 시스템 요구사항에 영향을 미칠 수 있다.
- 요구사항은 분석 프로세스 도중 변경된다. 새로운 이해관계자가 등장하거나 비즈니스 환경이 바뀔 수 있다.
Interviewing (요구사항 도출 및 분석 방법)
: 이해관계자와의 공식/비공식 인터뷰
▶ 인터뷰 유형
- 폐쇄적 인터뷰: 이해관계자들이 미리 정해진 질문들에 답한다.
- 개방적 인터뷰: 다양한 이슈를 이해관계자들이 함께 탐색한다.
--> 일반적으로, 폐쇄적 인터뷰 + 개방적 인터뷰
▶ 효과적인 인터뷰
: 인터뷰 대상자에게 스프링보드 질문, 요구사항 제안, 프로토타입 시스템을 함께 사용하여 토론을 진행한다.
3. Requirements Specification (요구사항 명세화)
시나리오
- 시나리오는 시스템을 사용할 수 있는 방법의 실제 예이다.
▶ 시나리오에 포함되는 것:
- 시작 상황에 대한 설명
- 사건의 정상적인 흐름에 대한 설명
- 잘못될 경우에 대한 설명
- 동시에 진행할 수 있는 다른 활동에 대한 정보
- 시나리오가 종료되었을 때의 시스템 상태에 대한 설명

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


4. Requirements Validation (요구사항 검증)
: 요구사항이 고객이 진정으로 원하는 시스템을 정의하고 있는지 점검하는 과정
- 요구사항 문제를 수정하는 비용이 설계, 코드 오류보다 훨씬 높기 때문에, 요구사항 검증이 매우 중요하다.
- 고객 인도 후 요구사항 오류를 수정하는 데에는 구현 오류를 수정하는 비용의 최대 100배가 소요될 수 있다.
Requirements Checking
- 유효성: 시스템이 고객의 요구를 가장 잘 반영하는 기능을 제공하는가?
- 일관성: 요구사항 간의 충돌이 있는가?
- 완전성: 요구사항에 고객이 요구하는 모든 기능이 포함되어 있는가?
- 실현성: 요구사항이 주어진 예산, 기술로 구현 가능한가?
- 검증 가능성: 요구사항을 검증할 수 있는가?
요구사항 검증 techniques
- 요구사항 리뷰: 요구사항의 체계적인 분석
- 프로토타이핑: 시스템의 실행 가능한 모델을 사용하여 요구사항 확인
Requirements reviews (요구사항 리뷰)
: 요구사항 정의가 공식화되는 동안, 정기적인 리뷰가 이루어져야 한다.
- 고객, 계약 직원 모두 리뷰에 참여해야 한다.
- 공식적/비공식적 요구사항 리뷰
Requirements management (요구사항 관리)
: 요구공학 프로세스 및 시스템 개발 중에 변화하는 요구사항을 관리하는 프로세스
- 시스템이 개발되고 사용되기 시작한 후에 새로운 요구사항이 나타난다.
- 요구사항 변경의 영향을 평가할 수 있도록, 개발 요구사항을 추적하고, 종속된 요구사항 간의 링크를 유지해야 한다.
변경 제안을 하고, 이를 시스템 요구사항에 연결하기 위한 공식 프로세스를 수립해야 한다.
'소프트웨어공학' 카테고리의 다른 글
| [소프트웨어공학] L5 - Architectural Design (0) | 2023.11.05 |
|---|---|
| [소프트웨어공학] 7. Architectural Design (0) | 2023.10.15 |
| [소프트웨어공학] 5. Requirements Engineering (2) (0) | 2023.10.06 |
| [소프트웨어공학] 5. Requirements Engineering (1) (0) | 2023.09.27 |
| [소프트웨어공학] 4. Software Processes (2) (0) | 2023.09.21 |