변경코드: ver. 1.0 페이지수 : 22
체감형 레이디버그 요구사항명세서
해양전자통신공학부 정보통신전공
작성자
학번 이름 서명
20044036 한태영
20064093 박상민
20084039 허강민
20084071 이열매
요 약
본 문서는 “레이디 버그 프로젝트”를 수행하기 위한 요구사항 명세서이다.
본 문서는 실제 레이디 버그 게임 구현에 앞서 이 프로젝트를 수행하기 위해 필요되는 요구사항과 그 기능들을 알려주기 위함에 그 목적이 있다. 이 문서에는 레이디 버그 프로젝트의 전체적인 구조를 알 수 있는 유스케이스 다이어그램이 기술되어 있으며, 레이디 버그 프로젝트에서 필요로 하는 요구사항, 그리고 그것에 대한 게임 흐름도와 배경도, 프로세스 명세서를 통해 이 프로젝트의 특성을 알 수 있다.
본 문서는 웹캠을 이용한 “레이디 버그 게임”을 제작하는 사람들에게 기준을 제시하기 위한 것이며, 수 정 권한은 이 프로젝트를 진행하고 문서를 작성한 프로젝트 팀원들에게만 있으며 어느 누구라도 작성 자들의 동의 없이 도용할 수 없다.
이 문서는 이 프로젝트를 감독하고 검사하는 정종면교수님과 프로젝트 팀원모두가 열람할 수 있고 문 서의 수정은 레이디 버그 프로젝트를 수행하는 팀원 모두가 수정할 수 있다.
본 문서의 직속 후속 문서는 구조 설계서 및 상세 설계서가 추가 후속 문서가 된다.
문서 이력
변경 코드 작성자 작성일 변경내용
Ver. 0.5 이열매
외 3인
2011. 04. 29 유스케이스다이어그램 및 명세서작성
Ver. 0.9 이열매
외 3인
2011. 05. 02 Page 2의 요약에 문서 전체에
대한 요약과 자세한 설명을 추가
Page 5의 프로젝트 계획서의 목표에
프로젝트의 목적으로 체감형 게임의 하나 로써 레이디 버그게임을 개발할 계획이며, 이 프로젝트 계획서는 앞으로 프로젝트를 진행,구현시에 도움이 될 수 있도록 문서화 작업을 하는 것이 목표임을 밝힌다.
page6의 프로젝트 개요에
레이디 버그 프로젝트를 위한 프로젝트 요 구명세서의 역할과 그 기능을 설명
Page5,page6의 서론에 체감형 게임으로
써의 “레이디버그 프로젝트”가 의미하는 바 가 무엇인지를 설명
Page6의 제약조건에 성능제약조건으로
웹캠을 이용하여 레이디 버그의 사용자 버 그를 움직일 경우 게임진행속도가 미치는 영향을 설명
Page6의 제약 조건에 하드웨어제약조건
으로 웹캠의 성능과 컴퓨터의 하드웨어적 인 제약을 설명
Page6의 제약 조건에 자원과 인력제약조
건으로 시간자원과 인력자원의 제약을 알 림
Page12의 기능 검증에 본 프로젝트의 기
능을 검증하기 위한 방안으로 각 기능들에 대한 test방법을 제시
Page12의 성능 검증에 본 프로젝트의 성
을을 검증하기 위한 방안으로 각 성능들에 대한 test방법을 제시
Page13의 프로세스 명세서에 프로세스
명세서를 자세히 기술함, 각 기능별로 프로 세스를 나누고 각 프로세스에 관한 명세서 를 기술
Page13에 조작제어 프로세스를 기술 조
작제어기술과 알고리즘 설명
Page14에 상황비교 프로세스 기술
상황비교 알고리즘과 프로세스과정 설명
Page15에 폭발 프로세스 기술 아이템에
의해서 버그가 없어질 때 폭발과정과 그에 관한 알고리즘을 설명
Page16에 목숨감소 프로세스 기술
사용자의 버그가 공격버그에게 닿았을 경 우 패널티를 주기 위한 프로세스로 그에관 한 알고리즘 설명
Page17에 게임결과 프로세스 기술
게임결과를 등록하고 랭킹을 내주는 프로 세스로써 그에관한 알고리즘과 결과 설명
Page18의 자료사전에 dfd에 기술되는
자료들을 정의
Page18의 시스템 특성에 클라이언트와
서버를 정의
Ver. 0.95 이열매
외 3인
2011. 05. 10 Page7의 프로젝트 개요에 레이디 버그 프
로젝트가 체감형 게임의로써 어떤 의미를 가지는지 그리고 레이디 버그 프로젝트에 대한 개요를 수정
Page6의 서론에 스마트폰에서 구현되는
레이디 버그 게임에 대한 언급 내용을 삭제
Page8의 제약조건의 성능 제약조건에
타겟버그의 움직임 시간 제약조건을 추가
Page8의 성능 제약조건에 해충의 사망시
간 제약조건을 추가
Page8의 성능제약조건에 움직임 인식을
위한 거리 제약을 추가
Page9의 하드웨어 제약조건에 웹캠의 하 드웨어,소프트웨어 화소 제약조건 추가
Page9의 하드웨어 제약조건에 프로젝트
를 구동하기위한 컴퓨터 운영체제의 제약 조건을 추가
Page9의 하드웨어 제약조건에 프로젝트
를 구동하기위한 컴퓨터 성능의 제약 조건 을 추가
Page9의 자원제약 조건에 프로젝트를 수
행해야할 한정된 시간자원을 추가
Page9의 자원제약 조건에 인적 자원의 제
약으로 프로젝트를 수행하는 인적 제약을 추가
Page13에 게임실행 기능 배경도를 추가
Page14에 게임진행 기능 배경도 추가
Page14에 프로젝트 배경도 부분에 경로
비교 기능 배경도를 추가
Page10의 유스케이스 다이어그램을 수정
Page11의 유스케이스 명세서부분의 유게
임을 한다 유스케이스와 랭킹확인 유스케 이스로 수정
Page13 DFD LEVEL 0 DFD인 게임실
행 DFD를 추가
Page15~18에서 프로세스 명세서에서
아이템처리,게임종료,아이템설정,해충설 정,목숨감소,게임시작,화면출력등의 프로 세스 명세서 추가
Page21에서 기능검증으로 각 프로세스들
을 어떻게 기능적으로 검증할지 추가
Page22의 성능 검증기준으로 성능제약조
건을 만족할 수 있도록 test 하도록 내용 추가
Ver. 0.99 이열매
외3인
2011.05.20 Page1의 프로젝트 제목을 체감형 레이디
버그로 변경
Ver. 1.0 이열매 2011.06.26 최종보고서 비교, 누락사항 점검
외3인 Page14에 프로젝트 입력 부분 수정
목 차
1. 개요... 8
2. 프로젝트 계획서의 목표...8
3. 약어 정리...8
4. 서론... 8
4.1. 프로젝트 개요...9
4.2 제약 조건...9
5. 유스케이스 분석...11
5.1. 유스케이스 다이어그램...11
5.2 유스케이스 명세서...12
6. 기능 요구 사항... 13
6.1. 자료흐름도...13
6.2 프로세스 명세서...16
6.3 자료사전...20
6.4 시스템 특성...21
7. 검증 기준... 21
7.1. 기능 시험...21
7.2. 성능 시험...21
8. 무기능 요구사항...22
9. 참고문헌... 22
1. 개요
본 문서는 “레이디 버그 프로젝트”를 수행하기 위한 요구사항 명세서이다. 레이디버그 프로젝트는 현 재 스마트폰에서 자이로 센서를 이용하여 하는 게임인 레이디버그를 컴퓨터의 웹캠을 이용하여 구현 하려는 프로젝트이며 ,현재의 게임시장에서 활발한 움직임을 보이고 있는 체감형 게임 시장을 고려 했 을 때, 키보드를 이용한 게임이 아니라 실제 웹캠을 이용, 자신의 손 움직임으로 버그를 움직이는 것은 사용자들의 흥미를 더욱 유발 할 수 있는 게임이 될 것이다. 본 문서는 이전 작성된 프로젝트 계획서를 기본으로 하는 문서이다.
이 문서의 열람과 수정 권한은 정종면 교수님과 프로젝트 진행 팀인 팀원들에게 있다.
2. 프로젝트 계획서의 목표
이 프로젝트의 목적은 웹캠을 이용하여 체감형 게임을 구현해보는 것이 목적이며, 컴퓨터를 통해서 이 게임을 할 경우, 게임을 수동적인 키보드 또는 마우스를 통해 움직이는 것이아닌 내 손을 카메라로 인 식하여 게임을 진행하기 때문에, 현재 게임 시장계에 이슈를 불러일으키고 있는 체감형 게임을 구현한 다는 것에 의의가 있을 것이라고 생각되며
이 프로젝트 계획서의 목표는 레이디 버그 프로젝트의 요구사항과 그 기능들을 정리하고, 게임 구현에 도움이 될 수 있도록 하는 것이 계획서의 목표이다.
3. 약어 정리
해충 – 게임에서 사용자의 버그를 공격하는 공격버그 타겟 버그 – 사용자가 움직이는 사용자버그
4. 서론
현재 스마트폰 시장이 점점 더 활성화 되어 가고 있음에 따라 스마트폰을 가지고 하는 많은 엔터테이 먼트 기능들, 예를 들면 게임 또는 취미생활에 대한 도구로써 점점 상용화 되어 가고 있으며, 이미 많은 사람들이 스마트폰을 이용한 생활이 매우 자연스러워 지고 있다. 그리고 이러한 추세와 더불어 현재 게임시장의 대부분이 체감형 게임이 장악해 가고 있음에 따라 웹캠을 이용해 내손을 통해 움직이는 버 그인 컴퓨터용 레이디버그를 만드는 것은 많은 게임사용자들의 흥미를 유발 할 수 있을 것이다. 이러 한 시점에서 스마트폰의 자이로센서를 이용한 레이디 버그게임을 컴퓨터의 웹캠을 통해서 구현해본다 는 것은 현재 게임시장에서 활성화 되가고있는 체감형 게임의 일환으로써 컴퓨터를 통해서 구현해보 는 것은 의미가 있는 일일 것이다.
4.1. 프로젝트 개요
본 문서는 스마트 폰에서 사용되고 있는 게임 중 하나인 “레이디 버그”프로젝트 구현을 위한 요구분석 서 이다. 본 문서는 프로젝트를 구현하기에 앞서, 프로젝트에 필요한 요구사항들을 분석하고 요구사항 들을 프로젝트의 기능들로 나타내고, 그것들을 레이디 버그 게임을 구현시에 어떻게 연관이 되는지를
알려주기 위한 목적으로 작성되었다. 프로젝트의 기능과 기능, 개체와 개체 사이의 연관관계들은 유스 케이스 다이어그램을 통해 나타내었으며, 문서에 나타내어진 기능들과 요구사항을 바탕으로 프로젝트 는 구현 될 것이다. 이 문서의 수정 권한은 프로젝트를 진행하는 팀원에게 있으며, 이 문서의 열람 권한 은 프로젝트를 감독하는 정종면 교수님과 프로젝트를 진행하는 팀원 모두에게 있다.
4.2 제약 조건
“레이디 버그 프로젝트”의 제약 조건으로는 다음과 같은 제약조건들이 있다.
성능 제약 조건
이 프로젝트는 사용자의 움직임을 웹캠을 통해 인식하며,( 이때의 움직임은 빨간 원통을 이 용하여 웹캠에서 움직임을 인식하도록 함) 이때의 인식률과 사용자의 움직임을 인식했을 경 우 이 움직임을 게임의 버그가 움직이는데 ‘얼마나 빠른 빠르기로 움직이는가’ 라는 웹캠의 성 능에 대한 제약이 따른다. 일반 웹캠의 경우 스피드한 게임을 즐기기 위한 정도의 속도가 나 오지 못한다는 제약이 있으며, 이러한 성능에 대한 제약 조건은 다음과 같다
- 타겟버그가 움직임은 시간은 2초 이내여야만 한다.
(사용자가 움직이고 캠을 통해 그 움직임을 받아들이고 타겟버그를 움직이는데 걸린시간)
- 아이템을 점화하여 해충들을 죽이는 시간은 해충과 아이템이 닿고 0.5초 이내로 해충은 사라져야 한다
- 타겟버그의 움직임은 상하좌우대각선으로 자유로워야 한다.
- 사용자의 동작 인식을 위해 캠과 사용자의 거리는 3cm이상 1m이내여야한다.
-
하드웨어 제약 조건
웹캠의 화소능력과 성능은 사용자의 흥미와 연관되기 때문에 웹캠의 하드웨어적인제약과 컴 퓨터성능이 우수해야 하며 또한 프로젝트를 구현할 컴퓨터의 성능에 대한 제약이 따를 수 있 으며 그에 따른 제약조건은 다음과 같다
- 웹캠의 화소는 소프트웨어 130만화소 이상, 하드웨어로 130만 화소 이상이여야 한다 - 게임을 구동할 컴퓨터의 운영체제는 window2000이상, xp, bista 등의 운영체제를
사용해야 한다
자원과 인력 제약 조건
- 이 프로젝트는 팀장 이열매와 팀원 한태영, 박상민, 허강민의 인력으로 수행되어야 한다.
- 이 프로젝트는 소프트웨어 공학과 멀티미디어 강의계획서에 계획된 대로 프로젝트 시작 16주차까지 완성되어야 한다.
5. 유스케이스 분석
5.1. 유스케이스 다이어그램
5.2 유스케이스 명세서
유스케이스명 : 게임을 한다.
액터명 : 사용자
유스케이스 개요 및 설명
- 사용자가 게임을 할 수 있는 화면을 출력하는 유스케이스
사전 조건 : 사용자에게 초기화면을 보여주는 상태여야 한다
작업 흐름 -정상흐름
게임시작버튼 누른다.(액터) 게임화면 출력한다.(시스템) 물체를 움직인다.(액터)
버그가 물체가 움직인 방향으로 이동한다.(시스템) 아이템쪽으로 움직인다.(액터)
해충이 죽고 점수를 획득한다.(시스템) 해충쪽으로 움직인다.(액터)
목숨이 감소한다.(시스템)
목숨이 0이면 이름 입력창을 출력한다.(시스템)
이름을 입력한다.(액터) 기록을 저장한다.(시스템)
-대안흐름
없음 -예외흐름
1) 게임화면 범위이상의 움직임에는 버그가 이동하지 않는다.
2) 이름을 빈칸으로 입력하면 에러메시지를 출력한다.
유스케이스명 : 랭킹을 확인한다.
액터명 : 사용자
유스케이스 개요 및 설명
- 게임을 마친 ID들의 점수를 비교하여 상위 3명의 이름과 점수를 기록하여 보여주는 유 스케이스
사전조건 : 점수를 획득 후 게임종료 된 기록이 있어야 한다.
작업흐름
랭킹버튼을 누른다.(액터)
1위부터 3위까지의 이름과 점수를 보여준다.(시스템) 아무키나 입력한다.(액터)
메인 메뉴로 돌아간다.(시스템) -대안흐름
없음 -예외흐름
1) 게임을 한 사용자가 없는 상황에서 랭킹버튼을 누르면 “플레이한 사용자가 없습니다”
라는 메시지를 출력한다.
2) 2,3위의 기록이 없을 경우 ID는 “---“ 점수는 “0”을 표시한다.
6. 기능 요구 사항
6.1. 자료흐름도
6.1.1 배경도
6.1.2 DFD LEVEL 0 DFD
6.1.3 DFD LEVEL 1 DFD - 1.0 게임실행
6.2 프로세스 명세서
프로세스 번호 1.1.
프로세스 이름 게임을 시작
입력 게임시작 요구
출력 게임화면 요구
설명 사용자가 게임시작을 요구하면 게임화면 출력을 요구한다.
IF(사용자가 게임시작 요구 한다.) {
1.2화면출력에 게임화면 요구 }
ELSE
게임시작 요구 들어올 때 까지 대기
프로세스 번호 1.2 프로세스 이름 화면출력
입력 게임화면요구
출력 게임화면
설명 1.1게임을 시작에서 게임화면 요구가 들어오면 게임화면을 출력한다.
IF(1.1에서 게임화면 요구.) {
게임화면을 사용자에게 출력 }
ELSE
1.1에서 게임화면 요구가 들어올 때 까지 대기
프로세스 번호 1.3 프로세스 이름 영상처리
입력 동작
출력 버그경로, 해충용경로, 아이템용경로
설명 사용자가 동작하면 1.3은 그 움짐임에 맞는 경로를 1.4, 1.5, 1.6에 전송한다.
IF(동작이 들어오면) {
동작을 경로로 변경
경로를 1.4 ,1.5,1.6.에 전송 }
ELSE
동작이 있을 때 까지 대기
프로세스 번호 1.4
프로세스 이름 버그경로 수정
입력 버그경로
출력 수정경로
설명 1.3에서 들어온 버그경로를 수정하여 1.2에 수정경로를 보낸다
IF(1.3에서 경로가 들어옴)
{
수정경로 = 버그경로
수정경로 1.2로 전송 }
ELSE
수정경로 변동없음
프로세스 번호 1.5 프로세스 이름 목숨 감소
입력 해충용 경로
출력 목숨
설명 1.3에서 들어온 해충용 경로를 해충경로 저장소에 저장된 값과 비교하여 그 결과 를 목숨 저장소에 저장
IF(해충용 경로 = 해충경로에 저장된 경로값) {
목숨 = 목숨 – 1 }
ELSE
목숨 변동없음
프로세스 번호 1.6 프로세스 이름 아이템처리
입력 아이템용 경로
출력 점수, 해충경로
설명 1.3에서 들어온 아이템용 경로를 아이템경로 저장소에 저장된 값과 비교하여 그 결과를 점수저장소와 해충경로저장소에 저장.
IF(아이템용 경로 = 아이템경로에 저장된 경로값) {
IF(아이템용 경로=해충경로에 저장된 경로값) {
해충경로에서 동일한 경로 삭제
점수에 삭제된 해충경로의 수만큼 플러스
} } ELSE
점수,해충경로에 어떠한 자료도 저장하지 않음.
프로세스 번호 1.7 프로세스 이름 해충 설정
입력 해충 수
출력 해충경로
설명 사용자에게 해충 수를 입력 받으면 그 수만큼의 임의의 경로를 생성하여 해충경로 저장소에 저장
프로세스 번호 1.8
프로세스 이름 아이템 설정
입력 아이템 수
출력 아이템경로
설명 사용자에게 아이템 수를 입력 받으면 그 수만큼의 임의의 경로를 생성하여 해충경 로 저장소에 저장
프로세스 번호 1.9 프로세스 이름 게임종료 입력 이름,목숨, 점수
출력 이름입력창, 랭킹
설명 목숨저장소의 값이 0이되면 이름 입력창을 출력. 사용자가 이름을 입력하면 점수 저장소의 점수와 함께 랭킹 저장소에 저장
IF(목숨저장소의 값=0) {
이름입력창 출력
입력된 이름을 점수저장소의 값과 함께 랭킹에 저장 }
ELSE
0이 들어올 때 까지 대기
프로세스 번호 2.0
프로세스 이름 랭킹을 본다.
입력 랭킹요구
출력 랭킹화면
설명 사용자가 랭킹버튼을 눌러 랭킹요구 시 랭킹저장소에서 저장된 랭킹중 상위 3개 의 이름과 점수를 출력한다.
IF(랭킹요구) {
사용자저장소의 점수가 상위3개인 이름과 점수를 출력 }
ELSE
랭킹요구 까지 대기
6.3 자료사전
게임시작 요구 = *게임시작을 요청함*
게임화면 = *게임 진행상황을 사용자가 알수 있는 화면*
게임화면 요구 = *사용자에게 게임화면을 출력할 것을 요구*
동작 = *웹캠이 인식하는 사용자의 동작*
랭킹요구 = *사용자가 랭킹화면을 요구*
랭킹화면 = *상위 3순위의 이름과 점수 정보를 포함한 화면*
목숨 = [0|1|2|3]
버그경로 = X+Y 수정경로 = X+Y
십진수 = [0|1|2|3|4|5|6|7|8|9]
아이템수 = [0|1|2|3|4]
아이템용경로 = X+Y 이름 = *사용자의 이름*
점수 = 2{십진수}2 해충경로 = X+Y 해충수 = 2{십진수}2
해충용경로 = X+Y X = 3{십진수}3 Y = 3{십진수}3
6.4 시스템 특성
6.4.1. 클라이언트 CPU 펜티엄 이상 OS Window XP이상
Programming Language : NetBeans IDE 7.0
7. 검증 기준
7.1. 기능 시험
프로젝트 계획서에서 목표했던 “레이디 버그” 게임의 성능제약조건에 맞는지에 대한 검사 하고, 프로젝트의 각 프로세스들에 대한 검증을 한다
기능 검증은 프로젝트를 구현한 뒤 test를 거듭하여 각 기능들과 프로세스들이 충실히 실행 이 되는지를 검사하며, 검증해야 할 프로세스 기능들은 다음과 같다.
-랭킹 확인 기능: 게임이 끝난 후 자신의 기록을 등록한 후 최종 순위를 확인, 순위 확인 과정에서 그동안에 했던 게임 점수들이 저장이 되었는지 아닌지도 확인
- 게임시작: 사용자가 게임을 시작할 때 게임화면이 올바르게 나오는지 확인 - 화면출력: 게임을 진행할 때 화면 게임화면이 출력되는지 확인
- 아이템 처리: 아이템을 터트렸을 때 공격 버그들을 죽일 수 있는지 확인하고, 그에따른 점수가 플러스 되는지 확인
-목숨감소: 해충과 버그가 닿게 하여 목숨이 감소하는지 확인
- 영상처리: 캠 앞에서 원통을 가지고 움직일 때 버그가 움직인 방향과 맞게 움직이는지를 확인
- 버그경로수정: 버그가 움직이고있을 때 움직임을 다른 방향으로 바꿀 때 버그의 방향이 제대로 바뀌 는지 확인
-게임종료: 목숨값이 0이 됐을 때 게임이 종료되고 랭킹에 등록되는지 확인
7.2. 성능 시험
프로젝트의 성능 시험은 프로젝트 계획서에서 목표했던 “레이디 버그”게임이 기존의 목표 성능에 도달 하는지를 확인하는 과정으로 사용자 관점에서 충분한 속도와 잡음 없는 게임구동으로 사용자를 만족 시킬만한 성능이 나올 수 있는지 검증하는 과정이며, 성능 시험 과정은 기본적인 게임의 기능들이 기
능 시험을 통해서 목표했던 기능들을 모두 만족함을 전제로 한다. 성능을 검증하기 위해서 상위에 기 술한 성능제약조건을 모두 만족해야한다.
- 캠 앞에서 버그를 움직이고 나서 출력화면으로 버그가 이동되는 시간까지 걸리는 시간이 2초 이 내로 걸리는지 시간을 파악
- .아이템을 점화하여 해충들을 죽이고, 그 해충들이 0.5초 이내로 사라지는 지 확인
- 타겟버그의 움직임이 대각선, 상하좌우, 자유롭게 움직이는지 확인 (직접 test)
- 사용자의 동작 인식이 가장 잘되는 거리를 찾기 위해 3cm~1m이내의 거리에서 계속해서 test 를 해본다
8. 무기능 요구사항 9. 참고문헌
[1] 목포해양대학교 해양전자통신공학부, “레이디 버그” 프로젝트 계획서, 2011년 4월.