본문 바로가기
Computer Science/Software Engineering

[Software Engineering] Requirement Engineering

by __K.Jun__ 2025. 1. 12.

Requirements Engineering

System requirements 문서를 생성하고 유지보수 하기 위한 과정으로 세 개의 sub-processes로 진행된다.

- Elicitation: 도출

- Validation: 검증

- Management: 관리

Requirements Elicitation

애플리케이션 도메인, 시스템이 무엇을 서비스 해야하는지, 시스템의 성능, 하드웨어의 제약사항 등을 찾아내는 과정이다.

- 이를 수행하기 위해 다양한 이해 관계자와 소통해야 한다.

- 이해 관계자/의뢰인은 개발자와 domain knowledge가 다르다는 것을 유념해야한다.

- 목적, 컴퓨터 솔류선을 요구하는 문제에 대한 기초적인 이해, 프로젝트의 맥락과 환경, 고객이 바라는 시스템의 영향력, 고객이 가진 동기와 기대치를 이해하는 것이 중요하다.

 

Elicitation Techniques

- Interviewing: Closed interviews(미리 준비한 질문), Open interviews(즉흥적인 질문)를 적절히 섞는다. 인터뷰는 의뢰인이 구체적으로 무엇을 원하는지 알 수 있는 좋은 방법이다. 인터뷰어는 오픈마인드를 가지고, 편견이 없어야하며, 경청해야한다.

- Scenarios: 실제 사례를 예시로 얻어내어 의뢰인이 원하는 소프트웨어 사용의 흐름을 읽기 좋다. 

- Use-cases: 시나리오는 유스케이스로서 작성될 수 있는데, 이는 상호작용을 표현하기 좋지만, 고수준 비즈니스, 제약사항, 비기능적 요구사항을 도출하기 어렵다.

- Ethnography: 직접 현장에서 관찰하며 요구사항을 이해해보는 것이다. 하지만 세부적인 일은 알기 어려울 수 있다.

- Questionnaires: 설문조사를 하는 것인데, 응답률이 낮거나, 사람들이 응답을 건성으로 할 수도 있다. 그러므로 설문 문항을 잘 써야 한다.

- Appreticing: 직접 의뢰인이 하는 일에 참여하여 체험해보며 요구사항을 이해해 보는 것이다.

- Brainstorming: 프로젝트 관련된 개발자, 이해 관계자들이 모여서 브레인 스토밍하는 것이다. 옳고 그름을 결정 하려고 하는 자리가 아닌 만큼 다양한 아이디어를 끄집어 내기 위해 노력해야한다.

- Document Inspection: 이미 존재하는 유사 시스템에 대한 문서를 참고하는 것이다.

Requirements Validation

Requirement에 고객이 원하는 것이 잘 정의 되었는지 확인하는 과정이다.

- Validity checks: 유저가 원하는 프로그램인지?

- Consistency checks: 요구사항들끼리 일관성이 있는지?

- Completeness checks: 빠진 것은 없는지?

- Realism checks: 현실성 있는 요구사항인지?

- Verifiability: 테스팅 가능 한지?

 

- Requirements reviews

요구사항을 다시 체크

- Prototyping

작동하는 모델을 프로토타입으로하여 시스템이 잘 작동하지 확인

- Test-case generation

테스트케이스를 생성하고 그것을 통과/불통과하는지

Requirements Management

요구사항은 소프트웨어 개발 과정에서 언제든지 바뀔 수 있다.

Enduring requirements: 거의 잘 바뀌지 않는 요구사항

Volatile requirements: 개발 도중에 바뀔 수 있는 요구사항

 

Source traceability: requirement -> stakeholder, 누가 이 요구사항을 제안하였는지 알 수 있음

Requirements traceability: requirement <-> requirement, 요구사항 간의 종속성을 알 수 있음

Design traceability: requirement -> design, 요구사항에 대한 디자인이 무엇인지 알 수 있음

 

이는 Traceability matrix인데, D은 row에 있는 요구사항이 column에 있는 요구사항 의존한다는 것이고, R는 약한 연관관계가 있음을 의미한다.

728x90