요구 공학(Requirements engineering)
: 고객이 시스템으로부터 필요로 하는 기능들, 그리고 시스템이 동작하고 개발되는 것에 대한 제한사항을 설정하는 과정
: 요구사항은 요구 공학 프로세스 동안 생성되는 시스템 기능 및 제한사항에 대한 설명
요구사항이란?
: 시스템의 기능 또는 제약 조건에 대한 고수준의 추상적 문장으로부터 상세한 수학적인 기능 명세서까지 포함
: 계약을 위한 시도(제안) or 계약서 자체(상세하게) 의 목적으로 사용됨
요구사항 종류
1. 사용자 요구사항 - vaild
: 시스템이 제공하는 기능과 제약 조건에 대해 자연 언어 + 다이어그램으로 작성, 고객을 위해 작성됨
: 해당 영역에 기술적 지식이 없는 사람이 이해할 수 있도록 적어줘야함
자연 언어의 문재점
: 명확성의 부족 - 읽기 쉬우면서 정확하게 만들기 힘듬
: 요구사항 혼란 - 기능적 & 비기능적 요구사항이 혼용되는 경향
: 요구사항 혼합 - 여러 개의 다른 요구사항이 함게 표현되는 경우
2. 시스템 요구사항 - verification
: 시스템 기능을 상세히 설명한 구조화된 문서. 고객과 계약자간 계약을 위해 작성됨
3. 소프트웨어 명세서
: 설계 또는 구현의 기초로 사용되는 소프트웨어에 대한 상세한 기술, 개발자를 위해 작성
* 기능적 요구사항
: 시스템이 제공해야 하는 기능, 특정 입력에 대한 반응, 특정 상황에 동작하는 방법들에 대한 문장들
* 비기능적 요구사항
: 시스템이 제공하는 서비스 또는 기능들에 대한 제약 조건들(시간 제한, 개발 프로세스 및 표준 제한 사항, 성능 제한 등)
: 프로덕트(제품 실행 속도, 신뢰도 등), 조직(사용 프로세스 표준, 구현 요구사항), 외부 요구사항(상호 운영성, 법률적 요구사항) 등으로 분류됨
* 도메인 요구사항
: 시스템의 응용 분야로부터 나오는 요구사항(도메인 특성을 반영한 요구사항 ex-게임, 건설 등)
: 이해도(understandability) - 특정 영역에서 사용되는 언어로 표현되어 개발자들이 이해하지 못하는 경우
: 묵시성(Implicitness) - 특정 영역의 전문가들은 해당 영역에 대해 해박하기에 너무 기초적인 내용은 생략하는 경우
요구사항 부정확성
: 요구사항이 정확하게 언급 안될때 문제 발생
요구사항 완전성과 일관성
: 완전성 - 필요로 하는 모든 기능들에 대한 설명을 포함해야 함
: 일관성 - 시스템 기능들에 대한 설명에서 충돌 또는 모순이 없어야 함
시스템 요구사항
: 사용자 요구사항에서 좀 더 상세화된 명세서
: 시스템 설계의 기초
: 시스템 계약서 일부
'전공 > 소프트웨어공학' 카테고리의 다른 글
시스템 모델 (0) | 2021.11.09 |
---|---|
요구 공학 프로세스 (0) | 2021.10.16 |
요구 사항과 설계 (0) | 2021.10.16 |
소프트웨어 프로젝트 관리 (0) | 2021.10.05 |
소프트웨어 프로세스 (0) | 2021.10.04 |