먼저 요구란..
시스템이 가져야 할 기능이나 시스템이 만족하여야 할 조건을 요구라고 합니다.
요구사항의 개발 프로세스는 아래와 같습니다.
(1) 요구사항 도출(Requirement Elicitation)
문제의 해결 또는 목적 달성을 위하여 사용자에 의해 요구되거나, 표준이나 명세 등을 만족하기 위하여 시스템이 가져야 하는 서비스 또는 제약사항(명시적, 묵시적)을 파악하기 위한 활동
※ 다양한 요구사항 소스: 고객, 마케팅, 개발자, 이해관계자, 기존시스템
※ 요구사항 도출기법: 업무절차 및 양식 조사, 문헌 조사, 설문, 인터뷰 등
(2) 요구사항 분석(Requirement Analysis)
(가) 요구사항들 간 상충되는 것을 해결하고, 소프트웨어의 범위를 파악하며, 소프트웨어가 환경과 어떻게 상호 작용하는지 이해한다.
(나) 시스템 요구사항을 정제하여 소프트웨어 요구사항을 도출한다.
※ 요구사항 도출과 분석작업이 어려운 이유
- 사용자가 원하는 것을 정확히 표현하기 어렵다.
- 작업 중에도 요구사항이 바뀌거나 추가될 수 있다.
- 모순되는 요구사항이 나오거나 동일한 내용이 다르게 표현될 수 있다.
(3) 요구사항 명세(Requirement Specification)
(가) 요구사항 명세란 체계적으로 검토, 평가, 승인될 수 있는 문서를 작성하는 것을 의미
(나) 시스템 정의, 시스템 요구사항, 소프트웨어 요구사항을 작성한다.
(4) 요구사항 확인(Requirement Validation)
분석가가 요구사항을 이해했는지 확인(Validation)이 필요하고, 요구사항 문서가 회사의 표준에 적합하고 이해 가능하며, 일관성이 있고, 완전한지 검증(Verification)하는 것이 중요하다.
요구사항 분석 기법은 크게 5가지가 있다.
가) 요구사항 분류
나) 개념 모델링
다) 요구사항 할당
라) 요구사항 협상
마) 정형 분석(Formal Analysis)
가. 요구사항 분류(Requirement Classification)
(1) 요구사항 분류 기준
요구사항을 다음과 같은 기준으로 분류한다.
- 요구사항이 기능인지 비기능인지
- 요구사항이 하나 이상의 고수준 요구사항으로부터 유도된 것인지 또는 이해관계자나 다른 원천(Source)으로부터 직접 발생한 것인지
- 요구사항이 제품에 관한 것인지 프로세스에 관한 것인지
- 우선순위가 더 높은 것인지 여부
- 요구사항의 범위(요구사항이 소프트웨어에 미치는 영향의 범위)
- 요구사항이 소프트웨어 생명 주기 동안에 변경이 발생하는지 여부
나. 개념 모델링
개념 모델은 문제 도메인의 엔터티(entity)들과 그들의 관계 및 종속성을 반영한다.
- 사용 시나리오를 나타내기 위해 유스케이스 다이어그램이 많이 사용
다. 요구사항 할당(Requirement Allocation)
(1) 요구사항을 만족시키기 위한 아키텍처 구성 요소를 식별하는 것을 요구사항 할당이라 한다.
(2) 다른 구성 요소와 어떻게 상호 작용하는지 분석을 통하여 추가적인 요구사항을 발견할 수 있다.
라. 요구사항 협상(Requirement Negotiation)
(1) 두 명의 이해관계자가 서로 상충되는 내용을 요구하거나, 요구사항과 리소스, 기능과 비기능 요구사항들이 서로 상충되는 경우, 어느 한 쪽을 지지하기보다는 적절한 트레이드 오프 지점에서 합의가 중요하다.
(2) 요구사항에 우선순위를 부여하는 것은 중요한 요구사항을 필터링할 수 있으며, 요구사항들 간 상충되는 문제를 해결하는 데 사용될 수 있다.
마. 정형 분석(Formal Analysis)
(1) 형식적으로 정의된 시맨틱(Semantics)을 지닌 언어로 요구사항을 표현한다.
(2) 정확하고 명확하게 표현하여 오해를 최소화시킬 수 있다.
(3) 정형 분석(Formal Analysis)은 요구사항 분석의 마지막 단계에서 이루어진다.
요구사항 확인
분석가가 요구사항을 이해했는지, 요구사항 문서가 회사 표준에 적합한지, 일관성이 있는지, 타당한지 등 검증하는 절차가 요구사항을 확인하는 단계이다
요구사항 확인 기법
(1) 요구사항 검토
여러 이해 관계자들이 검토하는 데 참여하여 잘못된 가정, 불명확성, 표준과의 차이 등을 찾아내는 작업을 수행한다.
(2) 프로토타이핑(Prototyping)
프로토타이핑이란 시스템의 일부 혹은 모형를 만드는 과정이다. 시뮬레이션을 수행하거나, 데모 시스템을 만드는 방법 등이 있다. 프로토타이핑은 새로운 요구사항의 도출 수단으로, 또는 요구사항을 확인하는 수단으로 많이 사용된다.
(3) 모델 검증
분석단계에서 개발된 모델을 검증한다.
(4) 인수테스트
요구사항의 중요한 속성은 최종 제품이 요구사항을 만족시키는지 확인이 가능해 야 한다는 것이다
요구사항의 기술적 타당성 검토
기술적 타당성 검토 4단계
댓글 없음:
댓글 쓰기