안드로이드 체스 앱 프로젝트 1 -요구사항 분석-
03 Jan 2019 - breadkey
요구사항 분석
목표 찾기
이 앱을 사용하면서 성취하고자 하는 몇가지 목표를 찾아보았는데 다음과 같았다.
- 수준에 맞는 상대와 체스를 하고싶다.
- 내가 한 게임을 복기하고싶다.
- 다른 사람의 기보를 보고싶다.
이 세가지 목표는 “목표의 목표는 무엇인가?”라는 질문을 통해 하위 두 목표는 “실력을 높히고 싶다.”로 상위 목표를 찾았고 모든 목표들은 같은 질문을 통해 “더 재미있게 체스를 하고싶다.”라는 상위 레벨의 목표를 찾을 수 있었다.
Use Case
UC1: Play Chess
Primary Actor: 플레이어
Stakeholders and interests:
- 플레이어:
- 수준에 맞는 상대와 하고싶다.
- 실력을 높히고 싶다.
Preconditions:
- 플레이어의 신원이 확인되어있다.
Postconditions:
- 체스 결과가 저장된다.
Main Success Scenario:
- 플레이어는 같이 체스할 상대를 찾는다.
- 플레이어는 체스를 시작한다.
- 플레이어는 움직일 체스말을 선택한다.
- 시스템은 체스말이 이동할 수 있는 경로를 보여준다.
- 플레이어는 체스말을 움직인다.
플레이어는 승패가 결정될 때 까지 3~5를 반복한다.- 시스템은 게임 결과를 보여준다.
- 플레이어는 체스를 끝낸다.
Extensions:
3-4a. 플레이어가 쓸 수 있는 시간을 모두 다 쓴 경우
- 시스템은 게임을 플레이어가 패배했음으로 처리한다.
4a. 앙파상 등 특별한 룰이 존재하는 경우
- 시스템은 플레이어에게 해당 룰을 알려준다.
1a. 해당 룰이 선택사항인 경우
- 시스템은 플레이어에게 룰을 선택할지 말지 물어본다.
- 플레이어는 룰을 선택할지 결정한다.
5a. 항복하고 싶은 경우
- 플레이어는 시스템에게 항복을 알린다.
- 시스템은 플레이어에게 항복할지 다시 한 번 물어본다.
2a. 정말 항복하고 싶을 경우
- 시스템은 게임을 플레이어가 패배했음으로 처리한다.
5b. 수를 물리고 싶은 경우
- 시스템은 상대방에게 동의를 구한다.
- 동의하면 수를 되돌린다.
5c. 일시 정지 하고 싶은 경우
- 시스템은 상대방에게 동의를 구한다.
- 동의하면 일시정지한다.
7a. 게임 기보를 저장하고 싶은 경우
- 시스템은 기보를 저장한다.
7b. 상대방과 재경기 하고싶은 경우
- 시스템은 상대방에게 재경기를 요청한다.
1a. 재경기를 수락한 경우- 이 유스케이스를 다시 시작한다.
Special Requirements:
- 체스판은 평소 핸드폰을 보는 거리에서 모든 말의 위치와 형태를 인식할 수 있어야 한다.
- 체스말을 엄지로 터치할 때 안겹치게 원하는 말만 터치할 수 있어야 한다.
Technology and Data Variations List:
- 상대방은 컴퓨터, 실제 옆에 있는 사람, 온라인으로 찾은 사람으로 나뉜다.
- 컴퓨터의 난이도는 선택할 수 있다.
- 온라인으로 상대방을 찾을 떄 현재 플레이어의 점수에 맞는 사람을 찾는다.
- 기보는 실제 쓰이듯이 1.c3e6, 2.Na3h6, 3.Qa4Nc6, … 형태로 저장한다.
UC2: Identify Player
Primary Actor: 플레이어
Stakeholders and interests:
- 플레이어:
- 내 전적을 기록하고 싶다.
- 나의 기보를 조회하고 싶다.
- 빠르게 나를 인증하고 싶다.
- 다른 사용자의 전적, 기보를 조회하고 싶다.
Preconditions:
Postconditions:
- 인증 기록이 저장된다.
Main Success Scenario:
- 플레이어는 시스템을 이용하기 위해 시스템을 킨다.
- 시스템은 플레이어가 누군지 밝힐 것을 요구한다.
- 플레이어는 자신의 신원을 입력한다.
- 시스템은 신원을 확인한다.
Extensions:
3a. 등록된 신원이 없는 경우
- 플레이어는 신원을 등록하고 싶다고 요청한다.
- 시스템은 등록하기 위해 필요한 것들을 요구한다.
- 플레이어는 필요한 것들을 입력한다.
3a. 중복된 신원이 존재하는 경우
- 시스템은 중복된 신원이 없을 떄 까지 재입력을 요구한다.
- 시스템은 새로운 신원을 등록한다.
3b. 시스템에 사용자의 인증 기록이 저장되있는 경우
- 단계 3을 생략한다.
Special Reuqirements:
- 신원을 등록하는데 최대 3단계를 거쳐야 한다.
Technology and Data Variations List:
- 신원 등록 방법은 카카오톡, 네이버, 구글을 통해 등록한다.
- 인증 기록은 암호화되어 저장된다.
tag: | android |
---|