요구사항 검증
- 고객이 정말 원하는 시스템인가?를 점검
- 도출 및 분석과정과 겹침
- 요구사항에서 문제점을 찾는 것과 관련
- 요구사항 검증은 매우 중요한 과정
- 이후 단계에서 요구사항 문서상 오류가 발견될 경우 막대한 재작업 비용 필요
← 주로 개발 중이나 서비스 시작 후에 문제점이 발견되기 때문 - 시스템 변경을 통해 요구사항 문제를 수정할 경우 높은 비용 발생
← 시스템 설계와 구현 변경, 테스트 다시 수행 → 설계나 코드 오류보다 훨씬 높은 비용
- 이후 단계에서 요구사항 문서상 오류가 발견될 경우 막대한 재작업 비용 필요
요구사항 검증 시 점검해야 하는 사항들
유효성 점검
- 요구사항이 시스템 사용자의 실제 요구를 반영하는가?
- 요구사항이 시스템 사용자의 실제 요구를 반영하는가?
일관성 점검
- 문서상의 요구 사항이 서로 상충되지 않는지 확인
→ 모순되는 제약이나 같은 기능에 대한 다른 설명이 없는지 확인
- 문서상의 요구 사항이 서로 상충되지 않는지 확인
완전성 점검
- 의도한 모든 기능과 제약이 정의되었고, 요구사항이 문서에 모두 포함되어 있는지 확인
- 의도한 모든 기능과 제약이 정의되었고, 요구사항이 문서에 모두 포함되어 있는지 확인
실현성 점검
- 실제로 구현 가능한지 확인(기술, 예산 일정 측면)
- 실제로 구현 가능한지 확인(기술, 예산 일정 측면)
검증 가능성
- 시스템 요구사항은 문서로 작성해서 검증 가능해야 함
- 인도한 시스템이 요구사항을 만족한다는 것을 시연/테스트를 통해 확인 가능해야 함
- 인도한 시스템이 요구사항을 만족한다는 것을 시연/테스트를 통해 확인 가능해야 함
- 고객과 계약자 사이의 분쟁 가능성을 줄이기 위해 필요
- 시스템 요구사항은 문서로 작성해서 검증 가능해야 함
요구사항 검증 기법
요구사항 검토
- 검토팀이 요구사항의 오류와 불일치사항을 체계적으로 분석하는 기법
- 검토팀이 요구사항의 오류와 불일치사항을 체계적으로 분석하는 기법
프로토타이핑
- 실행가능한 시스템 모델을 개발해서 최종 사용자와 고객들과 함께 사용하는 기법
- 모델이 최종 사용자와 고객을 만족시킬 수 있는지 확인
- 모델이 최종 사용자와 고객을 만족시킬 수 있는지 확인
- 이해관계자는 실험을 통해 요구사항에 대한 피드백을 개발팀에게 전달
- 실행가능한 시스템 모델을 개발해서 최종 사용자와 고객들과 함께 사용하는 기법
테스트 케이스 생성
- 요구사항에 대한 테스트를 검증 프로세스의 일부로 만드는 기법
- 요구 사항은 테스트할 수 있어야 함
- 테스트가 설계하기 어렵거나 불가능하면 그 요구사항은 구현하기 어려움
- 요구사항에 대한 테스트를 검증 프로세스의 일부로 만드는 기법
요구사항 변경
요구사항의 불완전함
- 대규모 소프트웨어 시스템 요구사항은 항상 바뀜
- 정의하기 어려운 문제를 다루기 위해 시스템을 개발하는 경우
- 바뀐 문제에 대한 이해를 반영하기 위해 시스템 요구사항을 개선
- 비즈니스 환경 변화로 인해 시스템 요구사항에 대한 변경 발생
시스템 요구사항 변경 원인
- 비즈니스와 기술적 환경 변화
- 시스템 비용 지불자와 시스템 사용자가 다른 경우
- 시스템 고객은 조직 및 예산으로 인한 제약 때문에 요구사항 조정
- 이런 요구사항이 최종 사용자 요구사항과 상충되면 새로운 기능을 추가해야 함
- 대규모 시스템에 다양한 이해당사자가 있을 경우
요구사항 관리
- 요구사항 변경으로 인한 영향을 평가하기 위해 관리 필요
- 개별 요구사항 추적 및 연관된 요구사항들 관계 정리
- 개별 요구사항 추적 및 연관된 요구사항들 관계 정리
- 요구사항 관리 프로세스
- 변경 제안서를 작성하고 이를 시스템 요구사항과 연관을 맺는 공식적인 프로세스
- 변경 제안서를 작성하고 이를 시스템 요구사항과 연관을 맺는 공식적인 프로세스
- 애자일 개발 프로세스
- 개발 과정에서 변경되는 요구사항을 처리하도록 설계
- 공식적인 변경 관리 프로세스를 거치지 않음
- 변경에 대한 우선순위 설정 후, 다음 반복 주기에서 구현하도록 결정
- 이 경우, 기존 구현 계획 기능 중 일부 포기해야 할 수도 있음
요구사항 관리 계획
요구사항 식별
- 각 요구사항을 유일하게 판별할 수 있어야 함
- 다른 요구사항과 상호참조, 추적가능성 평가 위해
- 다른 요구사항과 상호참조, 추적가능성 평가 위해
- 각 요구사항을 유일하게 판별할 수 있어야 함
변경 관리 프로세스
- 변경에 대한 영향과 비용을 평가하는 활동들
- 변경에 대한 영향과 비용을 평가하는 활동들
추적가능성 정책
- 기록해야 하는 관계를 정의하고, 기록들을 유지보수하는 방법
- 관계 : 요구사항 사이 또는 요구사항과 시스템 설계 사이의 관계
도구지원
- 요구사항에 대한 엄청난 양의 정보를 처리해야 하기 때문에 다양한 도구들을 사용할 수 있음
- 도구지원이 필요한 이유?
- 요구사항 보관
- 요구사항을 프로세스에 참여하는 전원이 접근 가능한, 안전한 데이터 저장소에서 관리해야 함
- 요구사항을 프로세스에 참여하는 전원이 접근 가능한, 안전한 데이터 저장소에서 관리해야 함
- 변경 관리
- 적극적인 도구 지원이 가능하면 변경 관리 프로세스를 단순화 가능
- 적극적인 도구 지원이 가능하면 변경 관리 프로세스를 단순화 가능
- 추적가능성 관리
- 도구의 지원으로 관련 요구사항을 찾을 수 있음
- 어떤 도구는 자연어 처리 기법으로 요구사항들 간의 가능한 관계를 찾도록 도움
- 요구사항 보관
- 요구사항에 대한 엄청난 양의 정보를 처리해야 하기 때문에 다양한 도구들을 사용할 수 있음
요구사항 변경 관리
- 요구사항 문서가 승인된 후에 시스템 요구사항에 발생한 변경에 대해 적용해야 함
- 변경 관리는 필수적
- 신규 요구사항을 구현해서 얻는 이익이 그 구현 비용보다 높은지 판단
- 신규 요구사항을 구현해서 얻는 이익이 그 구현 비용보다 높은지 판단
- 정형적 변경 관리 프로세스 사용 시의 장점
- 변경에 대한 모든 제안들을 일관하여 다룰 수 있음
- 요구사항 문서에 대한 변경을 통제하면서 작성
변경 관리 프로세스의 세 가지 주요 단계
문제 분석 및 변경 명세
- 식별한 요구사항 문제 또는 특정 변경 제안으로 프로세스 시작
- 문제 또는 변경 제안이 유효한지 확인하기 위해 분석
변경 분석 및 비용 산출
- 제안한 변경의 효과를 평가하고, 변경 생성 비용 추정
- 분석 후, 요구사항을 변경할지 말지 결정
- 분석 후, 요구사항을 변경할지 말지 결정
- 제안한 변경의 효과를 평가하고, 변경 생성 비용 추정
변경 구현
- 요구사항 문서(필수)와 시스템 설계 및 구현(선택)을 수정
← 과도한 재작성이나 재구조화를 거치지 않기 위해 요구사항 문서 작성 필수
- 요구사항 문서(필수)와 시스템 설계 및 구현(선택)을 수정