요구사항 정의:
요구사항 정의는 소프트웨어나 시스템이 가져야 하는 기능, 동작, 성능, 제약 조건 등을 명확하게 문서화하고 이해관계자 간에 공유하는 프로세스를 말합니다. 이는 소프트웨어나 시스템을 설계하고 개발하기 위한 출발점으로 사용됩니다.
요구공학:
요구공학은 소프트웨어 및 시스템 개발 과정에서 요구사항을 정의, 관리, 분석, 검증 및 추적하는 학문 분야입니다. 이는 소프트웨어나 시스템의 품질을 향상시키고, 프로젝트 비용을 절감하며, 개발 과정에서의 문제를 최소화하는 데 도움을 줍니다.
요구공학의 목적:
- 요구사항 이해관계자들 간의 의사소통 촉진: 요구사항 공학은 이해관계자들 간의 의사소통을 원활하게 하고, 모든 이해관계자들이 소프트웨어나 시스템의 요구사항에 동의할 수 있도록 돕습니다.
- 요구사항의 명확한 이해 및 문서화: 요구공학은 요구사항을 명확하게 이해하고 문서화하여 다른 이해관계자들과 공유하며, 나중에 개발 과정에서 참조할 수 있도록 합니다.
- 소프트웨어나 시스템의 품질 향상: 요구공학은 올바른 요구사항을 수집하고 검증하여 소프트웨어나 시스템의 품질을 향상시키는 데 기여합니다.
요구공학 개발 프로세스:
요구공학은 보통 다음과 같은 단계로 진행됩니다:
- 요구사항 수집 및 분석: 이해관계자들과의 인터뷰, 설문조사, 문서 검토 등을 통해 요구사항을 수집하고 분석합니다.
- 요구사항 명세: 수집된 요구사항을 명확하게 문서화하여 요구사항 명세서를 작성합니다. 이는 요구사항의 우선순위, 중요성, 제약 조건 등을 포함합니다.
- 요구사항 검증: 명세된 요구사항이 정확하고 완전한지를 확인하기 위해 요구사항 검증을 수행합니다. 이는 검증 기법과 도구를 사용하여 수행될 수 있습니다.
- 요구사항 추적: 요구사항이 변경될 경우, 해당 변경 사항을 추적하고 관리하는 프로세스를 설정합니다. 이는 요구사항의 변경 추적, 관리 및 문서화를 포함합니다.
SWEBOK에 따른 요구사항 개발 프로세스:
SWEBOK(소프트웨어 공학 몸체 지식, Software Engineering Body of Knowledge)은 소프트웨어 공학의 주요 영역과 관련된 지식을 정의하는 국제 표준입니다. SWEBOK은 요구공학 영역에서 다음과 같은 요구사항 개발 프로세스를 제안합니다:
SWEBOK(Software Engineering Body of Knowledge)에 따르면 요구사항 개발 프로세스는 다음과 같이 요약될 수 있습니다:
- 요구사항 도출 (Requirements Elicitation):
- 이해관계자와의 소통을 통해 시스템 또는 소프트웨어에 관련된 요구사항을 수집합니다.
- 이를 위해 다양한 기법이 사용될 수 있으며, 대표적인 것으로는 인터뷰, 설문 조사, 워크샵, 관찰 등이 있습니다.
- 요구사항 분석 (Requirements Analysis):
- 수집된 요구사항을 분석하여 모순되거나 불완전한 부분을 식별하고 명확한 이해관계자의 요구사항을 도출합니다.
- 분석된 요구사항을 기능적 요구사항과 비기능적 요구사항으로 분류하고 문서화합니다.
- 요구사항 명세 (Requirements Specification):
- 분석된 요구사항을 상세하게 문서화하여 요구사항 명세서를 작성합니다.
- 요구사항 명세서는 이해관계자들 간에 의사소통을 원활하게 하고, 소프트웨어 개발 및 테스트에 사용됩니다.
- 요구사항 확인 (Requirements Validation):
- 명세된 요구사항이 시스템이나 소프트웨어의 요구사항을 충족시키는지를 확인하는 과정을 수행합니다.
- 요구사항 검증 기법을 사용하여 명세가 완전하고 일관성 있으며 정확하게 이해되었는지를 확인합니다.
- 요구사항 관리 (Requirements Management):
- 요구사항이 변경될 경우, 해당 변경 사항을 추적하고 관리하는 프로세스를 설정합니다.
- 변경 관리 및 버전 관리를 통해 요구사항의 변경에 따라 프로젝트 일정 및 예산을 조정할 수 있도록 합니다.
'정보처리기사' 카테고리의 다른 글
분석 (참고) 모델 (0) | 2024.03.21 |
---|---|
요구사항 관리 (0) | 2024.03.21 |
개발 기술 환경 분석 (0) | 2024.03.21 |
현행시스템 분석 (0) | 2024.03.21 |
소프트웨어 개발 방법론 (0) | 2024.03.21 |