안드로이드 체스 앱 프로젝트 1 -요구사항 분석-

03 Jan 2019 - breadkey

요구사항 분석

목표 찾기

이 앱을 사용하면서 성취하고자 하는 몇가지 목표를 찾아보았는데 다음과 같았다.

  • 수준에 맞는 상대와 체스를 하고싶다.
  • 내가 한 게임을 복기하고싶다.
  • 다른 사람의 기보를 보고싶다.

이 세가지 목표는 “목표의 목표는 무엇인가?”라는 질문을 통해 하위 두 목표는 “실력을 높히고 싶다.”로 상위 목표를 찾았고 모든 목표들은 같은 질문을 통해 “더 재미있게 체스를 하고싶다.”라는 상위 레벨의 목표를 찾을 수 있었다.

Use Case

UC1: Play Chess

Primary Actor: 플레이어

Stakeholders and interests:

  • 플레이어:
    • 수준에 맞는 상대와 하고싶다.
    • 실력을 높히고 싶다.

Preconditions:

  • 플레이어의 신원이 확인되어있다.

Postconditions:

  • 체스 결과가 저장된다.

Main Success Scenario:

  1. 플레이어는 같이 체스할 상대를 찾는다.
  2. 플레이어는 체스를 시작한다.
  3. 플레이어는 움직일 체스말을 선택한다.
  4. 시스템은 체스말이 이동할 수 있는 경로를 보여준다.
  5. 플레이어는 체스말을 움직인다.
    플레이어는 승패가 결정될 때 까지 3~5를 반복한다.
  6. 시스템은 게임 결과를 보여준다.
  7. 플레이어는 체스를 끝낸다.

Extensions:

3-4a. 플레이어가 쓸 수 있는 시간을 모두 다 쓴 경우

  1. 시스템은 게임을 플레이어가 패배했음으로 처리한다.

4a. 앙파상 등 특별한 룰이 존재하는 경우

  1. 시스템은 플레이어에게 해당 룰을 알려준다.
    1a. 해당 룰이 선택사항인 경우
    1. 시스템은 플레이어에게 룰을 선택할지 말지 물어본다.
    2. 플레이어는 룰을 선택할지 결정한다.

5a. 항복하고 싶은 경우

  1. 플레이어는 시스템에게 항복을 알린다.
  2. 시스템은 플레이어에게 항복할지 다시 한 번 물어본다.
    2a. 정말 항복하고 싶을 경우
    1. 시스템은 게임을 플레이어가 패배했음으로 처리한다.

5b. 수를 물리고 싶은 경우

  1. 시스템은 상대방에게 동의를 구한다.
  2. 동의하면 수를 되돌린다.

5c. 일시 정지 하고 싶은 경우

  1. 시스템은 상대방에게 동의를 구한다.
  2. 동의하면 일시정지한다.

7a. 게임 기보를 저장하고 싶은 경우

  1. 시스템은 기보를 저장한다.

7b. 상대방과 재경기 하고싶은 경우

  1. 시스템은 상대방에게 재경기를 요청한다.
    1a. 재경기를 수락한 경우
  2. 이 유스케이스를 다시 시작한다.

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:

  1. 플레이어는 시스템을 이용하기 위해 시스템을 킨다.
  2. 시스템은 플레이어가 누군지 밝힐 것을 요구한다.
  3. 플레이어는 자신의 신원을 입력한다.
  4. 시스템은 신원을 확인한다.

Extensions:

3a. 등록된 신원이 없는 경우

  1. 플레이어는 신원을 등록하고 싶다고 요청한다.
  2. 시스템은 등록하기 위해 필요한 것들을 요구한다.
  3. 플레이어는 필요한 것들을 입력한다.
    3a. 중복된 신원이 존재하는 경우
    1. 시스템은 중복된 신원이 없을 떄 까지 재입력을 요구한다.
  4. 시스템은 새로운 신원을 등록한다.

3b. 시스템에 사용자의 인증 기록이 저장되있는 경우

  1. 단계 3을 생략한다.

Special Reuqirements:

  • 신원을 등록하는데 최대 3단계를 거쳐야 한다.

Technology and Data Variations List:

  • 신원 등록 방법은 카카오톡, 네이버, 구글을 통해 등록한다.
  • 인증 기록은 암호화되어 저장된다.
tag: android

Related Posts