많은 오류가 발생할 수 있는 단계 => 요구분석 단계
요구 분석 작업
1. 도메인 분석
2. 요구 추출
3. 요구 분석 및 정의(명세화)
4. 요구 확인
요구의 배경,
소프트웨어를 사용할 것으로
예상되는 고객이 말하는 분야의 비즈니스나 기술
도메인 분석 3단계 접근법
- 도메인 개념 찾기
- 해당 분야의 핵심 개념과 용어를 파악
- 도메인 사전 작성
- 개념과 용어를 체계적으로 정의
- 비지니스 규칙 정리
- 규칙과 제약사항을 정리, 업무 로직을 문서화
요구사항 수집 기법
- 대면 수집 방법
- 비대면 수집 방법
- 시나리오 기반 방법
JAD(Joint Application Development)- 브레인스토밍
- 참석자를 선정한다.
- JAD 세션에 대한 전반적인 사항을 설계한다.
- JAD 세션을 준비한다.
- 세션 종료 후, 후속 조치를 한다.
효과적인 설문지 설계 방법
- 무기명 설문의 가치
- 모든 질문에 고유번호 부여
- 사전 테스트 실시
- 편향된 질문 형식 금지
- 전문적인 약어 사용 자제
정의
소프트웨어 시스템이 수행해야 할 것과 있어야 할 특성을 기술한 문장
중요성
개발 수명주기에서 가장 중요한 요소, 소프트웨어 개발의 기준이 됨
이해관계자
다양한 이해관계자로부터 도출되며, 소프트웨어가 무엇을 해야하는가를 표현
위험성
요구사항의 문제점을 늦게 발견하면 수정에 많은 비용이 발생
변화가능성
고객과 개발자간 의사소통의 수단으로 분석 과정과 설계 과정을 가지며 지속적으로 변화
시스템 인터렉션
시스템과 외부 요소들 간의 상호 작용
시스템 반응
외부 데이터나 명령에 대한 시스템 반응
기능 예시
Feature, 자료, 입출력, 사용자 관련 기능
독립적 구현
구현 기술과 독립적인 문제 해결 명세
요구사항 정의 시 나타나는 치명적 과실들
- 노이즈 발생
-- 관련 없는 정보나 모호한 표현 존재- 침묵 발생
-- 중요 사항이 누락되는 경우- 과도한 스펙 명세
-- 결정되지 않은 많은 구현 사항 포함- 모순 발생
-- 전후 내용 간 일관성 부족- 모호성
-- 여러 의미로 해석 가능한 표현- 전방 참조
-- 아직 정의하지않은 사항을 앞서 참조- 사실이 아닌 기대사항
-- 막연한 추측과 기대에 근거하는 경우
정확성
이해관계자가 원하는 모든 요구가 정의되었는지 확인
명확성
모호성이 없어야 함
완전성
시스템이 제공하는 모든 것이 요구사항 정의서에 포함되어야 함
일관성을 갖춘 문서
현재 문서의 내용이 이전 문서의 내용과 충돌하지 않아야 함
추적성을 갖춘 문서
하나의 요구사항이 분석, 설계, 구현 과정을 거치면서 어떻게 변하는지 확인할 수 있어야 함
어떻게 처리할지 결정할 때 중요한 역할을 함
추적성 매트릭스
요구사항이 설계, 구현, 테스트 단계에서 어떻게 반영되는지 추적하는 도구
SRS : 소프트웨어 요구 사양서
RDD : 요구사항 정의서
FR : 기능 요구사항
NF : 비기능 요구사항
NR : 필요없음
UC : 유즈케이스
N/A : 해당 없음
고유 식별자 부여
모든 요구사항에 유일한 식별자를 부여하여 추적성을 확보
명확한 문장 구조
단문 작성
우선순위 부여
체계적 그룹화
원자적 속성
단일 목적가져야 함
완전성
요구사항이 정보의 모든 것을 포함
비모호성과 통일성
명확하지 않은 표현이나 중복된 내용이 없어야 함
추적성
쉽게 추적할 수 있도록 고유번호 부여해야 함
우선순위화
요구사항의 중요도에 따라 순위를 정해야 함
테스트 가능화
요구사항이 검증 가능하도록 기술되어야 함
요구 정의
이해용이성
요구명세서를 읽을 때 요구의 의미를 이해할 수 있는가?
중복
필요 없이 중복된 부분이 없는가?
완전성
요구를 기술하는데 빠진 정보가 없는가?
일관성
요구사항이 서로 모순되지 않는가?
모호성
모호함없이 모든 참여자들에게 명확하게 이해될 수 있는가?
검증 가능성
사용자의 요구를 만족하는가?
추적 가능성
시스템 요구사항과 시스템 설계문서 및 구현과 매핑되어 추적할 수 있는가?
사용자의 실제 업무 환경을 직접 분석하는 방법 => 관찰
요구사항 정의서가 중요한 이유
=> 고객과 개발자가 동일한 이해를 갖도록 하기 위해
도메인의 분석의 주요 목표
=> 문제의 배경과 성격을 이해하는 것
요구사항 검증 시 사용되는 대표적인 방법
=> 프로토타입 개발
요구사항 정의서 작성 시 고려해야 할 요소
요구사항의 변경 가능성, 완전성, 명확성
JAD 세션의 주요 특징
=> 고객과 개발팀이 협업하여 요구사항을 도출
요구사항 수집 시 문헌조사의 주요 목적은?
=> 기존 시스템을 참고하여 요구사항을 도출하기 위해
소프트웨어 개발 과정에서 요구사항 검토의 주요 목적
=> 요구사항의 오류를 초기에 발견하기 위해
요구사항 변경을 효과적으로 관리하기 위한 방법
=> 변경 요청을 분석하고 추적성을 유지하는 것
비기능적 요구사항이 중요한 이유
=> 시스템의 성능과 품질을 결정하기 때문
요구사항 검증을 통해 얻을 수 있는 주요 이점
=> 개발 후 수정 비용 절감
요구사항 분석에서 가장 중요한 요소는?
=> 고객의 요구를 명확히 이해하는 것