|요구공학 Requirements Engineering
무엇을 개발해야 하는지 요구사항을 정의하고, 분석 및 관리하는 프로세스를 연구하는 학문
요구사항 변경의 원인과 처리 방법을 이해하고 요구사항 관리 프로세스의 품질을 개선하여 소프트웨어 프로젝트 실패를 최소화하는 것을 목표로 한다.
|요구사항의 개념 및 특징
요구사항 개념
소프트웨어가 어떤 문제를 해결하기 위해 제공하는 서비스에 대한 설명과 정상적으로 운영되는데 필요한 제약조건 등을 나타낸다.
특징
소프트웨어 개발이나 유지 보수 과정에서 필요한 기준과 근거를 제공
개발하려는 소프트웨어의 전반적인 내용을확인할 수 있게 하므로 개발에 참여하는 이해관계자들 간의 의사소통을 원할하게 하는 데 도움을 준다
요구사항이 제대로 정의되어야만 이를 토대로 이후 과정의 목표와 계획을 수립할 수 있음
|요구사항의 유형
구분
기능 요구사항 Functional Requirements
비기능 요구사항 Non-functional Requirements
기술 관점과 대상의 범위에 따른 구분
시스템 요구사항 System Requirements
사용자 요구사항 User Requirements
유형
내용
기능 요구사항
Functional
Requirements
- 시스템이 무엇을 하는지, 어떤 기능을 하는지에 대한 사항
시스템의 입출력 포함 사항, 저장 데이터 타입, 수행할 연산에 대한 사항 _ 시스템이 반드시 수행해야 하는 기능
사용자가 시스템을 통해 제공받기 원하는기능 | | 비기능 요구사항 Non-functional Requirements | - 시스템 장비 구성 요구사항
성능 요구사항 : 처리 속도 및 시간, 처리량, 동적, 정적 적용량, 가용성 등
인터페이스 요구사항 : 통신, 프로토콜, 시스템 사용자 인터페이스
데이터 요구사항
테스트 요구사항
보안 요구사항
품질 요구사항 : 가용성, 적합성, 상호 호환성, 대응성, 신뢰성, 사용성, 유지 관리성, 이식성, 확장성, 보안성 등
제약사항
프로젝트 관리 요구사항
프로젝트 지원 요구사항 | | 사용자 요구사항 User Requirements | - 사용자 관점에서 본시스템이 제공해야 할 요구사항
사용자를 위한 것으로 친숙한 표현으로 이해하기 쉽게 작성 | | 시스템 요구사항 System Requirements | - 개발자 관점에서 본 시스템 전체가 사용자와 다른 시스템에 제공해야 할 요구사항
사용자 요구사항에 비해 전문적이고 기술적인 용어로 표현
소프트웨어 요구사항이라고도 한다. |
|요구사항 개발 프로세스
요구사항 개발 프로세스가 진행되기 전에 개발 프로세스가 비즈니스 목적에 부합되는지. 예산은 적정한지 등에 대한 정보를 수집, 평가한 보고서를 토대로 타당성 조사(Feasibility Study)가 선행되어야 한다.
요구사항 개발은 요구공학의 한 요소
|요구사항 도출 Reauirement Elicitation, 요구사항 수집
시스템, 사용자, 시스템 개발에 관련된 사람들이 서로 의견을 교환하여 요구사항이 어디에 있는지, 어떻게 수집할 것인지를 식별하고 이해하는과정
특징
소프트웨어가 해결해야할 문제를 이해하는 첫 번째 단계
개발자와 고객 사이의 관계가 만들어지고 이해관계자가 식별됨
다양한 이해관계자 간의 효율적인 의사소통이 중요
소프트웨어 개발 생명 주기(SDLC) 동안 지속적으로 반복
주요 기법
청취와 인터뷰
설문
브레인스토밍
워크샵
프로토타이핑
유스케이스 등
|요구사항 분석 Requirement Analysis