요구사항 분석
유스케이스(Use Case) 다이어 그램
- 개발자와 고객 사이의 요구를 이해시키는 수단
- 예외 사항을 개발자에게 이해시켜 줌
- 대략적인 계획을 위하여 기능의 수준 파악
- 구성
- 시스템
- 액터
- 관계
- 유스케이스
특징
- 서비스를 제공하기 위한 상호작용의 단위
- 사용자나 외부 시스템과의 상호작용을 모델링
- 이를 바탕으로 설계를 진행하는 데 유용
- 개발자와 이해 당사자 간의 계약
주의사항
- 비기능적 요소를 찾기는 어려움 (비기능적 요소가 표시되지 않음)
- 시스템의 흐름도가 아님
- '어떻게'가 아니라 '무엇을'만 담으면 됨
시스템 (System)
- 만들고자 하는 시스템
- 유스케이스를 둘러싼 사각형 틀
- 시스템 명칭도 포함해야 함
액터 (Actor)
- 시스템을 사용하는 사람 (시스템의 외부에 위치)
- 주요 액터 (Primary actor)
- 행동을 하는 사람 (대부분의 액터가 여기에 포함)
- 시스템 액터 (System actor)
- 개발 범위가 아니지만 연동되는 외부 시스템
유스케이스 (Use Case)
- 사용자가 시스템에서 사용하고 싶은 기능
- 시스템이 액터에게 제공해야되는 기능
- 시스템의 요구사항
- 요구사항 도출에서 도출된 기능만 넣을 수 있음
-> 요구 사항 도출에서 필요한 모든 기능을 도출해야 함
관계 (Relationship)
- 액터와 유스케이스 사이의 관계
- 유스케이스와 유스케이스 사이의 관계
- 액터와 액터와의 관계
연관 관계 (Association)
- 실선으로 표현
- 액터와 유스케이스와의 관계
- 액터와 유스케이스의 상호작용
포함 관계 (Include)
- 점선으로 표현
- 유스케이스와 유스케이스 사이의 관계 (의존성)
- 하나의 기능을 실행할 때 포함된 유스케이스가 반드시 실행되는 것
- 공통적으로 발견되는 시스템 기능 표현 (중복을 방지)
- 포함되는 유스케이스 쪽으로 화살표
확장 관계 (Extend)
- 점선으로 표현
- 유스케이스와 유스케이스 사이의 관계
- 특정 조건에서 한 유스케이스만으로 확장되는 것 (부가적인 기능)
- 항상 일어나는 기능쪽으로 화살표
일반화 관계 (Generalization)
- 실선으로 표현
- 유스케이스와 유스케이스 사이의 관계
- 액터와 액터와의 관계 (상속)
- 상위 유스케이스의 기능을 하위 유스케이스도 상속 받아 공유
- 상위 유스케이스 쪽으로 화살표
점검 사항
- 유스케이스 사이에는 연관 관계가 있을 수 없음
- 잘못된 연관 관계가 있나 확인 (액터가 유스케이스를 사용하는 관계가 연관 관계임)
- 잘못된 유스케이스가 없나 확인 (시스템을 사용하는 사람의 입장에서 추출되어야 함)
요구사항의 문서화
요구분석명세서 (SRS)
- 분석한 요구사항이 빠짐없이 들어가야 함
- 기능적 요구사항과 비기능적 요구사항이 모두 포함
- 사용자가 읽고 쉽게 이해할 수 있도록 작성
- 개발자가 설계와 코딩에 잘 이용할 수 있도록 작성
- 테스트에 이용할 수 있도록 정량적으로 작성
요구사항 검증
- 사용자의 요구가 빠짐없이 반영되었는지 (완전성)
- 요구분석 명세서가 설계 단계에서 사용하기 적합한지
- 요구사항이 일관성을 유지하고 있는지
- 명세서의 내용이 명확한지
- "무엇을"에 관점을 두고 서술했는지 (기능성)