REBOK(Requirements Engineering Body of Knowledge)
REBOK이란?
일본 정보서비스 산업협회에서 IEEE와 협력해 발간한 요구공학 지식체계입니다. SWEBOK을 기초로 요구공학의 내용을 강화했습니다. 체계적인 요구사항 정의를 통한 프로젝트의 성공적 완수를 위해 요구사항 분석가가 갖추어야 할 지식영역을 제시하고 있습니다.
REBOK의 지식영역
일반적 지식
- 공통지식
- 요구계획 및 관리
- 기초지식
- 요구공학의 기초
- 요구공학 프로세스
- 프로세스
- 요구획득
- 요구분석
- 요구사항 명세화
- 요구사항 유효성과 타당성 확인/평가
확장된 지식
- 실천지식
- 실천 시 고려사항
지식영역 상세 내용
요구사항 도출 및 분석
이해관계자로부터 시스템 또는 제품에 대한 요구, 목표 및 기대치에 대한 정보를 수집하고 분석하여 이해관계자의 니즈를 충족하기 위한 요구사항을 식별합니다. 요구사항 도출 및 분석은 시스템 또는 제품 개발 전반에 걸친 지속적인 프로세스입니다. 요구사항이 정확하고 일관성을 유지할 수 있도록 정기적으로 재검토하는 것이 중요합니다. 시스템 또는 제품의 성공은 적절하게 도출되고 분석된 요구사항의 품질에 달려 있다고 할 수 있기 때문에 요구사항 도출 및 분석에 대한 철저하고 체계적인 접근은 모든 프로젝트의 성공에 매우 주요하게 작용합니다.
- 이해 관계자 식별: 요구사항 도출의 첫 번째 단계는 개발 중인 시스템 또는 제품에 이해관계가 있는 이해관계자를 식별하는 것입니다. 이해관계자에는 최종 사용자, 고객, 비즈니스 오너 및 프로젝트 관리자가 포함될 수 있습니다.
- 정보 수집: 다음 단계는 이해관계자로부터 정보를 수집하는 것입니다. 인터뷰, 설문조사, 포커스 그룹, 문서 분석과 같은 다양한 도구를 통해 수행합니다.
- 정보 분석: 그런 다음 이해관계자로부터 수집된 정보를 분석하여 충족해야 하는 요구사항을 식별합니다. 여기에는 정보의 패턴과 추세를 식별하고 요구사항을 그룹화하는 작업이 포함됩니다.
- 요구 사항 확인: 그런 다음 요구사항이 정확하고 완전한지 확인합니다. 이 작업은 프로토타이핑, 시뮬레이션 및 요구사항 단계별 검토와 같은 다양한 기술을 통해 수행할 수 있습니다.
- 요구사항 우선순위 설정: 그런 다음 요구사항의 중요도와 긴급성에 따라 우선순위가 결정됩니다. 이를 통해 가장 중요한 요구사항을 먼저 해결할 수 있습니다.
- 요구 사항 명세: 요구사항 도출 및 분석의 마지막 단계는 명확하고 간결한 방식으로 요구사항을 문서화하는 것입니다. 이 명세는 개발 프로세스 전반에 걸쳐 참조되어 요구사항이 충족되는지 확인하는 데 사용됩니다.
요구 명세
시스템 또는 제품에 대한 요구사항을 문서화하고 전달하는 프로세스입니다. 시스템이나 제품이 무엇을 해야 하는지, 무엇을 해서는 안되는지에 대한 명확하고 간결한 설명을 작성하는 것이 포함됩니다. 요구사항 명세는 이해관계자와 개발팀 간의 계약의 역할을 하며 개발 과정 전반에 걸쳐 참조하게 됩니다.
- 요구 사항 명확화: 요구사항은 정확하고 모호하지 않은 언어를 사용하여 명확하고 간결한 방식으로 정의되어야 합니다. 이를 통해 오해를 방지하고 모든 사람이 시스템 또는 제품에서 예상되는 사항을 공통적으로 이해할 수 있습니다.
- 추적성 확보: 요구사항은 초기 개념부터 최종 제품까지 추적이 가능해야 합니다. 이를 통해 요구사항이 충족되는지 확인하고 원래 요구사항에서 변경 또는 편차의 원인을 식별할 수 있습니다. 요구사항 추적 매트릭스를 개발 초기부터 관리하여 요구사항이 적절히 충족되고 누락없이 개발되는지 확인하여야 합니다.
- 원활한 커뮤니케이션: 요구사항 명세는 이해관계자와 개발팀 간의 의사소통을 용이하게 해야 합니다. 시스템 또는 제품에서 기대되는 것과 개발 팀이 제공하기 위해 노력하는 것에 대한 명확하고 공통적인 이해를 제공해야 합니다.
- 제품 검증에 활용: 요구사항 명세는 개발 중 또는 개발 완료 후에 요구사항 충족에 대한 검증에 사용됩니다. 이를 통해 최종 제품에서 요구사항이 충족되도록 보장할 수 있습니다.
- 테스트 기준: 요구사항 명세는 시스템 또는 제품의 시험을 서포트 합니다. 시스템이나 제품이 무엇을 해야 하고 무엇을 해서는 안 되는지에 대한 명확한 설명을 제공해야 하며, 테스트 케이스를 개발하기 위한 베이시스로 사용되어야 합니다.
요구사항 검증 및 확인
시스템 또는 제품에 대한 요구사항이 정확하고 완전하며 이해관계자의 요구사항을 충족하는지 확인하는 프로세스입니다. 시스템이나 제품 개발 전반에 걸쳐 지속되는 지속적인 프로세스이며, 모든 프로젝트의 성공에 매우 중요합니다.
요구사항 검증 및 확인의 목적
- 정확성 보장: 요구사항은 이해관계자의 요구와 목표를 정확하게 반영한다는 의미에서 정확해야 합니다. 이를 통해 오해를 방지하고 요구 사항이 충족되도록 보장할 수 있습니다.
- 완전성 보장: 요구사항은 완전해야 합니다. 즉, 요구사항은 시스템 또는 제품의 모든 측면을 포함하며, 요구사항에 공백이나 누락이 없어야 합니다. 이를 통해 시스템 또는 제품이 이해관계자의 요구를 충족하고 개발 팀이 예상되는 사항을 명확하게 이해할 수 있도록 보장할 수 있습니다.
- 일관성 보장: 요구사항은 일관성이 있어야 하며, 이는 모순이 없으며 서로 충돌하지 않는다는 것을 의미합니다. 이를 통해 시스템 또는 제품이 논리적으로 건전하고 의도한 대로 작동하는지 확인할 수 있습니다.
- 추적성 확인: 요구사항은 초기 개념부터 최종 제품까지 추적 가능해야 합니다. 이를 통해 요구사항이 충족되는지 확인하고 원래 요구사항에서 변경 또는 편차의 원인을 식별할 수 있습니다.
요구사항 검증 및 확인 기법
- 프로토타이핑: 프로토타입은 요구 사항을 테스트하고 검증하는 데 사용할 수 있는 시스템 또는 제품의 초기 모형입니다.
- 시뮬레이션: 시뮬레이션은 통제된 환경에서 요구 사항을 테스트하고 검증하는 데 사용할 수 있는 시스템 또는 제품의 모형입니다.
- 요구사항 검토(Walkthough): 요구사항 검토는 이해관계자와 개발팀이 요구사항을 검토하고 논의하는 회의입니다.
- 테스트: 테스트는 시스템 또는 제품이 요구 사항을 충족하는지 여부를 결정하기 위해 평가하는 프로세스입니다.
- 인스펙션(Inspection): 인스펙션은 전문가 집단에 의해 요구사항, 설계 또는 코드를 검토하는 활동입니다.
요구사항 관리
시스템 또는 제품의 요구사항을 구성, 추적 및 제어하는 프로세스입니다. 여기에는 요구사항의 식별, 분석, 사양, 검증 및 검증뿐만 아니라 시스템 또는 제품 개발 전반에 걸쳐 요구사항에 대한 변경사항의 관리가 포함된다.
요구사항 관리의 목적
- 정확성 보장: 요구사항은 이해관계자의 요구와 목표를 정확하게 반영한다는 의미에서 정확해야 합니다. 요구사항 관리는 시스템 또는 제품 개발 전반에 걸쳐 요구사항이 정확하고 최신성을 유지하는지 확인하는 데 도움이 됩니다.
- 완전성 보장: 요구사항은 완전해야 합니다. 즉, 요구사항은 시스템 또는 제품의 모든 측면을 포함하며, 요구사항에 공백이나 누락이 없어야 합니다. 요구사항 관리는 요구사항의 완전성을 보장하고 개발팀이 예상되는 사항을 명확하게 이해할 수 있도록 도와줍니다.
- 추적성 확인: 요구사항은 초기 개념부터 최종 제품까지 추적 가능해야 합니다. 요구사항 관리는 요구사항이 충족되는지 확인하고 원래 요구사항에서 변경 또는 편차를 식별하는 데 도움이 됩니다.
- 변경 관리 용이화: 요구사항 변경은 시스템 또는 제품 개발 시 흔히 발생하는 현상입니다. 요구사항 관리는 요구사항에 대한 변경사항을 관리 및 제어하고 변경사항이 적절하게 문서화되어 모든 이해관계자에게 전달되도록 보장하는 데 도움이 됩니다.
- 의사 결정 지원: 요구사항 관리는 시스템 또는 제품 개발에 대한 정보에 입각한 의사 결정을 내리는 데 필요한 정보를 제공합니다. 요구사항의 우선순위를 지정하고, 트레이드오프를 평가하며, 최종 제품에 포함되어야 하는 것과 포함되어서는 안 되는 것에 대해 정보에 입각한 결정을 내리는 데 도움이 됩니다.
요구사항 기반 테스트
시스템 또는 제품이 해당 시스템에 대해 지정된 요구사항을 충족하는지 확인하기 위해 수행되는 테스트의 한 유형입니다. 요구사항 기반 테스트의 주요 목표는 시스템 또는 제품이 의도한 대로 작동하고 이해관계자의 요구를 충족하는지 확인하는 것입니다. 개발 프로세스 초기에 결함과 문제를 파악하는 데 도움이 되므로 장기적으로 시간과 자원을 절약할 수 있습니다.
요구사항 기반 테스트 단계
- 요구사항 리뷰: 요구사항 기반 테스트의 첫 번째 단계는 시스템 또는 제품에 대해 지정된 요구사항을 검토하고 이해하는 것입니다. 이를 통해 테스트가 정확하고 완전한 정보를 기반으로 수행되도록 보장할 수 있습니다.
- 테스트 계획: 요구사항을 검토한 후 다음 단계는 테스트를 계획하는 것입니다. 여기에는 시험의 목적을 정의하고, 시험 조건을 결정하고, 실행할 테스트 케이스를 선정하는 것이 포함됩니다.
- 테스트 설계: 이 단계에서는 예상 결과와 충족해야 하는 전제 조건을 포함하여 테스트 케이스를를 자세히 설계합니다. 테스트 케이스는 요건이 충족되고 시스템 또는 제품이 의도한 대로 작동하는지 검증하도록 설계되어야 합니다.
- 테스트 실행: 이 단계에서는 테스트 케이스가 시스템 또는 제품에서 실행됩니다. 테스트 결과를 예상 결과와 비교하여 요건이 충족되는지 여부를 결정합니다.
- 테스트 평가: 테스트를 실행한 후 요구 사항이 충족되었는지 여부를 판단하기 위해 결과를 평가합니다. 여기에는 시스템 또는 제품의 결함 또는 문제를 식별하고 결함의 근본 원인을 파악하는 작업이 포함됩니다.
- 테스트 종료: 테스트가 평가되고 결함이 해결되면 테스트 단계가 종료되고 결과가 보고됩니다.
요구공학 프로세스 및 기법
시스템 또는 제품의 요구사항을 식별, 분석, 지정, 검증 및 관리하는 데 사용되는 기술 및 접근방식을 의미합니다. 요구사항 엔지니어링은 여러 단계를 포함하는 반복적이고 점진적인 프로세스로, 각각 고유한 활동과 기법이 존재합니다.
요구공학의 주요 프로세스
- 요구사항 도출: 이는 이해관계자로부터 정보를 수집하여 시스템 또는 제품에 필요한 것과 기대하는 것을 결정하는 과정입니다. 이 단계에는 인터뷰, 설문조사, 포커스 그룹 및 프로토타이핑과 같은 활동이 포함됩니다.
- 요구사항 분석: 이 단계에서는 도출 단계에서 수집된 요구사항을 분석하여 충돌이나 불일치를 파악하고 시스템 또는 제품의 타당성과 범위를 결정합니다. 이 단계에서 사용되는 기법에는 요구사항 분해, 요구사항 우선순위 지정 및 요구사항 추적이 포함됩니다.
- 요구사항 명세: 이 단계에서 요구사항은 자연어, 다이어그램, 모델 및 프로토타입과 같은 다양한 방법을 사용하여 상세하게 명세됩니다. 요구사항 명세는 명확하고 간결하며 모호하지 않아야 하며 시스템 또는 제품의 모든 측면을 설명해야 합니다.
- 요구사항 검증: 이 단계에서는 요구사항이 정확하고 완전하며 이해관계자의 요구사항을 충족하는지 확인합니다. 이 단계에는 프로토타이핑, 시뮬레이션 및 테스트와 같은 활동이 포함됩니다.
- 요구사항 관리: 이 단계에서 요구사항은 시스템 또는 제품 개발 전반에 걸쳐 관리 및 통제됩니다. 여기에는 버전 관리, 변경 관리 및 추적성 분석과 같은 작업이 포함됩니다.
요구공학의 주요 기법
- 유즈케이스(Use Case) 분석: 이 방법은 시스템이나 제품이 최종 사용자에 의해 어떻게 사용될 것인지를 설명하는 시나리오나 사용 사례 측면에서 시스템이나 제품의 요구사항을 명세하고 설명하는 기법입니다.
- 기능 분해: 이는 복잡한 요구사항을 더 작고 관리하기 쉬운 부분으로 세분화하는 기술입니다. 이를 통해 요구사항을 더 쉽게 이해할 수 있으며 요구사항이 완전하고 정확한지 확인하는 데 도움이 됩니다.
- 프로토타이핑: 이것은 요구사항을 입증하고 이해관계자의 피드백을 이끌어내기 위해 시스템 또는 제품의 예비 버전을 만드는 기술이다.
- 요구사항 추적: 이것은 요구사항과 설계 및 코드와 같은 다른 아티팩트 간의 관계를 추적하는 기술입니다. 요구사항이 충족되고 요구사항에 대한 변경사항이 적절하게 관리 및 통제되는지 확인하는 데 도움이 됩니다.
요구공학 도구 및 기술(Tools & Techniques)
요구공학 도구 및 기술들은 요구사항 엔지니어링 프로세스의 다양한 단계를 지원하도록 설계되었으며 프로세스를 간소화하고 효율성을 높이며 요구사항의 품질을 개선하는 데 사용할 수 있습니다. 단순한 스프레드시트 및 템플릿에서 보다 복잡한 요구사항 관리 도구에 이르기까지 요구사항 엔지니어링에 사용할 수 있는 다양한 도구와 기술이 있습니다.
- 요구사항 관리 도구: 시스템 또는 제품 개발 전반에 걸쳐 요구사항을 관리하는 데 사용됩니다. 요구사항이 완벽하고 정확하며 최신 상태임을 보장하고 요구사항을 저장하고 추적하기 위한 중앙 저장소를 제공합니다.
- 유즈케이스 모델링 도구: 최종 사용자가 시스템이나 제품을 어떻게 사용할지를 설명하는 유즈케이스 다이어그램과 모델을 만드는 데 사용됩니다. 또한 요구사항 명세 및 기타 문서를 생성하는 데도 사용할 수 있습니다.
- 요구사항 추적 도구: 요구사항 추적 매트릭스로 대표되는 추적 도구는 요구사항과 설계 및 코드와 같은 기타 아티팩트 간의 관계를 추적하는 데 사용됩니다. 요구사항이 충족되고 요구사항에 대한 변경사항이 적절하게 관리 및 통제되도록 지원합니다.
- 프로토타이핑 도구: 요구사항을 검증하고 이해관계자의 피드백을 이끌어내기 위해 시스템 또는 제품의 예비 버전을 만드는 데 사용됩니다. 단순한 종이 프로토타입부터 더 복잡한 디지털 프로토타입까지 다양할 수 있습니다.
- 요구사항 분석 도구: 요구사항을 분석하여 충돌 또는 불일치를 식별하고 시스템 또는 제품의 실현 가능성과 범위를 결정하는 데 사용됩니다. 또한 요구사항의 우선순위를 지정하고 추적성 분석을 수행하는 데도 사용할 수 있습니다.
- 요구사항 명세 도구: 자연어, 다이어그램, 모델 및 프로토타입과 같은 다양한 방법을 사용하여 요구사항을 자세히 명세하는 데 사용됩니다. 또한 요구사항 문서를 생성하는 데도 사용할 수 있습니다.
- 요구사항 검증(Validation) 및 확인(Verification) 도구: 이러한 도구는 요구사항이 정확하고 완전하며 이해관계자의 요구사항을 충족하는지 여부를 확인하기 위해 요구사항을 검증하고 확인하는 데 사용됩니다. 테스트, 시뮬레이션 및 프로토타이핑을 위한 도구가 포함될 수 있습니다.
요구공학 실천 시 고려사항
학제적 측면(Interdisciplinary Aspects)
요구공학은 소프트웨어 엔지니어링, 비즈니스 분석, 프로젝트 관리 및 제품 관리를 포함한 다양한 분야의 전문가들의 협업을 포함하는 종합적인 분야입니다. 이러한 요구사항 엔지니어링의 학제적 특성은 요구사항 엔지니어가 개발 프로세스에 관련된 다양한 이해관계자의 관점과 니즈를 이해하는 것이 필수적이라는 것을 의미합니다.
- 비즈니스 분석(Business Analysis): 요구사항 엔지니어링은 시스템 또는 제품에 대한 비즈니스 요구사항을 식별하고 문서화하는 프로세스인 비즈니스 분석과 밀접한 관련이 있습니다. 요구사항 엔지니어는 비즈니스 분석가와 긴밀하게 협력하여 시스템 또는 제품에 대한 비즈니스 목표와 요구사항을 이해해야 합니다.
- 프로젝트 관리: 요구사항 엔지니어링은 프로젝트 관리 프로세스의 필수적인 부분입니다. 요구사항 엔지니어는 요구사항의 우선순위가 적절하게 지정되고 프로젝트가 예산 범위 내에서 납기 내에 제공되도록 프로젝트 관리자와 긴밀히 협력해야 합니다.
- 제품 관리: 요구사항 엔지니어링은 제품 로드맵 및 제품 백로그를 정의하고 관리하는 프로세스인 제품 관리와도 밀접한 관련이 있습니다. 요구사항 엔지니어는 요구사항이 전체 제품 전략 및 비전과 일치하도록 제품 관리자와 긴밀하게 협력해야 합니다.
- 소프트웨어 엔지니어링: 요구사항 엔지니어링은 소프트웨어 개발 프로세스의 필수적인 부분입니다. 요구사항 엔지니어는 요구사항이 소프트웨어 설계 및 코드로 올바르게 구현되도록 소프트웨어 엔지니어와 긴밀하게 협력해야 합니다.
- 사용자 경험(UX) 설계: 요구사항 공학은 또한 사용자 중심의 시스템과 제품을 설계하는 과정인 사용자 경험(UX) 설계와 깊은 연관이 있습니다. 요구사항 엔지니어는 요구사항이 최종 사용자의 요구사항과 선호도를 고려하도록 UX 설계자와 긴밀히 협력해야 합니다.
전문적 윤리적 측면(Professional and Ethical Aspects)
- 전문성: 요구사항 엔지니어는 해당 분야에 대한 지식과 숙련도가 있어야 하며 지속적인 교육 및 훈련을 통해 전문 역량을 유지해야 합니다. 또한 높은 수준의 전문성을 고수하고 성실하고 정직하게 일해야 합니다.
- 커뮤니케이션: 요구사항 엔지니어는 비즈니스 분석가, 프로젝트 관리자, 소프트웨어 엔지니어 및 최종 사용자를 포함하여 개발 프로세스에 관련된 다양한 이해관계자와 효과적으로 의사소통하기 위해 강력한 의사소통 기술을 보유해야 합니다.
- 기밀성: 요구사항 엔지니어는 민감한 정보 또는 기밀 정보에 액세스할 수 있으며, 이 정보의 기밀성을 유지하고 무단 액세스로부터 정보를 보호해야 합니다.
- 책임: 요구사항 엔지니어는 자신이 생성하는 요구사항이 고품질이며 이해관계자의 요구사항을 충족하는지 확인할 책임이 있습니다. 작업자는 작업의 품질에 대한 책임을 져야 하며 요구 사항이 정확하고 완전한지 확인하기 위해 적절한 조치를 취해야 합니다.
- 윤리: 요구사항 엔지니어는 이해 상충과 같은 요구사항 엔지니어링 과정에서 발생할 수 있는 윤리적 문제를 인식하고 윤리적이고 책임감 있는 방식으로 행동해야 합니다.
'IT Contents > IT Topic' 카테고리의 다른 글
A09 - 2021 : Security Logging and Monitoring Failures (보안 로깅 및 모니터링 실패), OWASP Top 10 (0) | 2023.02.11 |
---|---|
OWASP Top 10 2021, 무엇이 바꼈을까? (0) | 2023.02.11 |
SWEBOK(Software Engineering Body of Knowledge) V3.0 (0) | 2021.04.25 |
알려진 취약점이 있는 구성요소 사용(Using Components with Known Vulnerabilities), OWASP Top 10 2017 A9 (0) | 2021.03.25 |
안전하지 않은 역직렬화(Insecure Deserialization), OWASP Top 10 2017 A8 (0) | 2021.03.24 |
최근댓글