21
Software Engineering Project Requirement Document 1 Catch me if you can How fast can you ride? [늙었조]2014 년도 2 학기 소프트웨어공학 프로젝트 Requirements document Team members 김진우, 김현경, 소우정, 장병일, 천명준

Catch me if you can - embio.yonsei.ac.krembio.yonsei.ac.kr/files/course/83/[늙었조] 2014_2 소프트웨어공학 Project... · 대한 측정 및 전송 뿐 아니라 이상치(물리적으로

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Software Engineering Project Requirement Document

1

Catch me if you can

How fast can you ride?

[늙었조]의 2014년도 2학기 소프트웨어공학 프로젝트

Requirements document

Team members

김진우, 김현경, 소우정, 장병일, 천명준

Software Engineering Project Requirement Document

2

Contents

1. Preface .......................................................................................................................................................................... 3

1.1 Expected readership ......................................................................................................................................... 3

1.2 Version history .................................................................................................................................................... 3

2. Introduction ............................................................................................................................................................... 3

2.1 Motive ..................................................................................................................................................................... 3

2.2 Project overview ................................................................................................................................................. 3

2.2.1 Project summary ........................................................................................................................................ 3

2.2.2 Brief description about the project function ................................................................................ 4

2.3 Working with other system ........................................................................................................................... 5

2.3.1 Platforms used for the project ............................................................................................................ 5

3. Glossary ........................................................................................................................................................................ 6

4. User requirements definition ........................................................................................................................... 6

4.1 Functional requirements ................................................................................................................................. 6

4.2 Non-functional requirements ....................................................................................................................... 9

5. System architecture ............................................................................................................................................ 10

5.1 Components of the architecture ...............................................................................................................10

5.2 System architecture diagram ......................................................................................................................10

6. System requirements specification ............................................................................................................ 11

6.1 Functional requirements ...............................................................................................................................11

6.2 Non-functional requirements .....................................................................................................................15

7. System evolution ................................................................................................................................................. 17

8. Appendices .............................................................................................................................................................. 17

9. Index ........................................................................................................................................................................... 21

Software Engineering Project Requirement Document

3

1. Preface

1.1. Expected readership

이 문서는 자전거를 타는 사람들이 원격에서도 경주를 할 수 있게 해주는 Mobile

app 기반의 서비스를 개발하는 Catch me if you can 프로젝트에 대한 요구사항

명세서이며, 해당 프로젝트의 개발자 그룹과 사용자들을 위해 작성되었다.

1.2. Version history

- 2014년 10월 8일, 초안 작성, Version 1.0, 김진우

- 2014년 10월 9일, 협력 수정, Vresion 2.0 전원 참여

- 2014년 10월 10일, non-functional requirement 보강, Version 2.1, 김진우

- 2014년 10월 10일, page layout 보강, Version 2.2

2. Introduction

2.1. Motive

- Cycle, 즉 자전거 타기는 현재 대한민국에서 가장 Hot한 운동 중 하나로, 사이클

마니아를 위한 다양한 제품과 서비스들이 출시되고 있으며, 그들을 만족시키기

위해 노력하고 있다.

- 여기에 더해, 대한민국은 스마트폰 보급률 1위에 달할 정도로 거의 모든 사람들이

스마트폰을 포함한 각종 Smart device를 하나 이상 보유하고 있는 나라이다. 또,

갤럭시 기어나 애플 워치 등 Wearable smart device의 보급이 진행되면

지금보다도 더 많은 Smart device와의 접점이 개인에게 생기게 될 것이다.

- 이런 상황은 우리가 Cycle을 하는 사람들이 보유하고 있는 Smart device의 GPS

data를 통해 특정 구간 혹은 간격(50m, 100m, …)에서 어떤 사람이 가장 빠른지

비교할 수 있는 환경을 만들어 주었다.

2.2. Project overview

2.2.1. Project summary

Software Engineering Project Requirement Document

4

- Catch me if you can 의 Mobile app을 설치한 사용자가 서비스를 사용하여

자신의 Cycle 주행 기록을 측정할 수 있으며, 이 주행 기록을 바탕으로 다른

사용자들과 경쟁하면서 놀 수 있는 Fun한 서비스.

- 다른 사용자와의 경쟁 뿐 아니라 내 기록 분석 기능을 통해 Cycle 실력

개선을 할 수 있는 서비스.

- 자신의 주행 기록을 외부 SNS 에 공유하여 Cycle 실력을 자랑할 수 있는

기능을 갖춘 서비스.

2.2.2. Brief description about the project functions

- Sign up : Facebook 의 API를 사용한 Facebook login 구현

- GPS data와 시간 기록을 통한 각 사용자 별 주행 기록 측정 및 서버에 기록

저장

- 특정 장소에 대한 속도 랭킹 출력

- 특정 간격(50m, 100m, …)에 대한 속도 랭킹 출력

- 다른 사용자와 동시에 시작하여 같은 거리 주파(시작 장소는 다를 수 있음)

대결 기능

- ‘내 기록 모아보기' 및 ‘내 기록 분석'(속도 향상 여부, 칼로리 소모량, 주행

기록 순위) 기능

- 랭킹 출력 시 사용자 카테고리(성별, 나이 등) 분류 기능

- Facebook, Twitter, Tumblr, Google+ 등 외부 SNS로 주행 기록 및 랭킹을

공유할 수 있는 ‘내 기록 공유하기' 기능.

Software Engineering Project Requirement Document

5

<내 기록 분석 기능>

2.3. Working with other systems

2.3.1. Platforms used for the project

- Android

- iOS (evolution)

- Google maps

- Social Networking Services - Facebook, Twitter, Tumblr, Google+

Software Engineering Project Requirement Document

6

3. Glossary

Definition Description

App Catch me if you can application 을 지칭한다.

GPS data App이 작동하는 해당 기기의 GPS sensor로부터 받아 온 위치, 고도 등의

GPS정보를 지칭한다.

SNS Login API 외부의 application 등에서 자사 SNS ID를 통한 로그인 기능이 지원될 수

있도록 공개된 API

사용자 App 을 구동하며 회원가입을 통해 가입한 사람을 지칭한다.

주행 기록 App 구동을 통해 수집된 GPS data로 계산된 기록을 지칭한다.

Server Application

주어진 작업을 수행하여 android App과의 통신을 통해 사용자가 원하는

data를 제공하는 서버를 지칭한다.

SQLite 중소 규모의 데이터베이스 관리 시스템에 적합한 비교적 가벼운

데이터베이스이다. Google Android 운영체제에 기본 탑재된

데이터베이스이기도 하다.

Node.js 작성언어로 java script를 활용하는 소프트웨어 플랫폼으로, 확상성 있는

네트워크 애플리케이션의 서버 사이드로 주로 사용된다.

MySQL 오픈 소스 관계형 데이터베이스 관리 시스템(RDBMS)으로서, 다중 스레드

다중 사용자 구조 질의어 형식의 데이터베이스 관리 시스템이다. MySQL

AB가 관리 및 지원한다.

https protocol 하이퍼텍스트 전송 규약(HTTP) 계층 아래의 SSL 서브 계층에서 사용자

페이지 요청을 암호화, 복호화하는 브라우저에 설치된 넷스케이프 웹

프로토콜.

4. User requirements definition

4.1. Funtional requirements

4.1.1. Sign up 및 Sign in

- Catch me if you can 서비스를 이용하기 위해서는 Sign up 절차가

선행되어야 한다.

- Sign up은 Facebook 의 login API를 사용하여 Facebook 계정을 통해

서비스에 가입하는 것을 기본으로 한다.

- 추후 주행 기록 분류에 활용 될 다음의 정보를 추가로 제공함에

동의하여야 서비스 가입이 완료된다.

- 사용자는 가입할 때 사용한 Facebook 계정을 통해 Sign in 할 수 있다.

- 필요한 경우에 사용자는 Log out을 할 수 있다.

- 필요한 경우 사용자는 회원 탈퇴를 할 수 있으며, 탈퇴 시에는 이전

Data를 복구할 수 없다.

Software Engineering Project Requirement Document

7

<Facebook 계정으로 로그인>

4.1.2. 주행 기록 측정하기

- 사용자는 ‘주행 측정' 버튼을 클릭한 후 GPS data를 바탕으로 주행 기록을

측정할 수 있다.

- 주행 측정에는 다음의 두 가지 경우가 있다.

a) 특정 장소(App 안에 내재된 Google map에 서비스 제공자로부터 경주

가능한 공식 장소로 Pin 되어 있는 곳)에서의 주행에 대한 측정

b) 특정 간격의 주행에 대한 측정

- 각 주행 측정의 경우에 대해서 다음의 행동을 순서대로 하여야 주행

측정이 완료된다.

a) 특정 장소 주행 측정의 경우

행동 1 ) 주행 시작 버튼 누르기

행동 2) 정해진 주행 완료 장소(Google map에 Pin 되어있음)에 도착하기

b) 특정 간격 주행 측정의 경우

행동 1) 주행 간격을 설정한다. (선택 가능한 구간은 50m, 100m, 150m 3

가지이다.)

Software Engineering Project Requirement Document

8

행동 2) 주행 시작 버튼 누르기

행동 3) 간격 주행 후(간격 주파 후 진동 or 도착 음이 울림) 주행 완료

버튼 누르기

4.1.3. 특정 장소에 대한 속도 랭킹 출력하기

- 사용자는 특정 장소에 대한 나의 주행 랭킹을 볼 수 있다.

- 장소에 대한 나의 주행 랭킹을 보기 위해서는 지도 상에서 내가 달린 Pin을

터치한다.

4.1.4. 특정 간격(50m, 100m, …)에 대한 속도 랭킹 출력하기

- 사용자는 특정 간격에 대한 나의 주행 랭킹을 볼 수 있다.

- 간격에 대한 나의 주행 랭킹을 보기 위해서는 간격 랭킹 보기 Tab에서

Radio button을 통해 간격을 선택하여야 한다.

4.1.5. 원격으로 다른 사용자와 경주하기

- 사용자는 원격으로 다른 사람과 주행 경주를 할 수 있다.

- 원격 경주는 특정 장소에서만 가능하다.

- 원격으로 다른 사람과 주행 경주를 하기 위해서는 두 사람 이상이 주행 경주

방에 들어와야 한다.

- 방에 들어온 사람이 모두 ‘주행 시작' 버튼을 눌러야 주행 Count down이

시작된다.

- 주행 Count down이 시작되면 3초 후 경주가 시작된다.

- 경주 방의 사용자들이 모두 도착지에 도착하면 경주가 종료되며, 결과가

공개된다.

- 사용자는 원격 경주의 결과를 SNS로 공유할 수 있으며, 특정 사용자를 몇

번 이겼는지 기록된다.

4.1.6. 내 기록 모아보기

- 사용자는 내 개인 경주 기록을 모아볼 수 있다.

- 사용자는 Profile tab 에서 자기의 주행 기록을 모아볼 수 있으며, 주행

기록은 ‘내 기록 분석 보기'를 통해 더 상세히 볼 수 있다.

4.1.7. 내 기록 분석 보기

- 사용자는 ‘내 기록 분석 보기' 기능을 통해 내 주행에 대한 상세한 분석을 볼

수 있다.

Software Engineering Project Requirement Document

9

- ‘내 기록 분석보기'에는 속도 향상 여부, 칼로리 소모량, 주행 기록 순위가

포함되어 있다.

4.1.8. 외부 SNS로 기록 및 주행 랭킹 공유하기

- 사용자는 외부 SNS 로 기록 및 주행 랭킹을 공유할 수 있다.

- 주행 직후, 경주 직후 혹은 ‘내 기록 분석 보기’ 페이지에서 공유 버튼을

눌러서 주행 내용을 공유할 수 있다.

- 공유 가능한 외부 SNS는 다음과 같다.

a) Facebook

b) Twitter

c) Google+

d) Tumblr

4.2. Non-functional requirements

4.2.1. 제약사항

- App은 OS가 Android인 경우 Android 4.2 이상, iOS 인 경우 iOS 8 이상이

설치된 Smart phone에서 작동해야 한다.

- Smart phone은 GPS data의 추적이 가능하다고 가정한다.

- Smart phone은 3G/LTE/Wi-fi 등 Internet 에 접속 가능한 상태라고

가정한다.

4.2.2. 사용성

- 사용자는 터치 한 번으로 ‘주행 측정'을 시작할 수 있어야 한다.

- 사용자는 터치 한 번으로 ‘주행 측정'을 끝낼 수 있어야 한다.

- 사용자는 간격 주행 측정 시에 ‘진동' 또는 ‘소리'를 통해 주행 종료에 대한

안내를 받을 수 있어야 한다.

- 사용자는 터치 2번 안에 주행 기록을 외부 SNS로 공유할 수 있어야 한다.

4.2.3. 보안성

- 사용자에 대한 신상 정보 및 주행 정보는 사용자의 허가 없이 외부에

게시되면 안된다.

- System 외부에서의 권한 없는 부적절한 접근은 불가능하여야 한다.

4.2.4. 신뢰성

- 모든 시스템은 주행 중에 중단 없이 작동하여야 한다.

4.2.5. 주행 정보의 정확성

Software Engineering Project Requirement Document

10

- 주행 기록은 실제 주행 외의 행동으로는 기록할 수 없다.

- 사용자의 주행 정보는 사용자가 소유하고 있는 Smart phone의 GPS

정보와 서버 시간을 기준으로 기록되어야 한다.

- 주행 기록에 사용되는 GPS 정보에 분명한 이상치가 있을 경우(1초만에

서울의 북쪽에서 남쪽으로 이동 등) 주행 정보로 기록되지 않아야 한다.

5. System architecture

5.1. System architecture

5.1.1. Componetns of the architecture

- Application running on the smart phone

- GPS data, 주행 시간을 계산하여 주행 기록을 계산 및 저장하는 Server A

- 원격 주행 경주 시작 및 종료, 결과 통보 등을 담당하는 Server B

- 사용자 정보와 주행 기록을 저장하는 Database

5.1.2. System architecture diagram

Software Engineering Project Requirement Document

11

<System architecture diagram>

- Catch me if you can의 사용자는 Client application을 통해 서비스를

사용하게 된다. 사용자가 서비스를 사용하면서 주로 할 행동을 담당하는

Server application은 A, B 두 가지가 있다.

- 주행 기록 측정 및 전송의 경우 사용자는 Client application을 Interface로

하여 정보를 전송하고 받게 된다. Server A는 사용자의 주행 기록에 대한

측정 및 전송 뿐 아니라 이상치(물리적으로 불가능한 이동)에 대한 검출

역시 담당하고 있으며, 모든 누적되는 주행 기록 Data는 Database를 통해

저장 및 출력한다.

- 원격 경주 기록 측정 및 전송의 경우 사용자는 Client application을

Interface로 하여 정보를 전송하고 받게 된다. Server B는 원격 경주 기록에

대한 측정 및 전송 뿐 아니라 이상치(물리적으로 불가능한 이동)에 대한

검출 역시 담당하고 있으며, 모든 누적되는 원격 경주 Data는 Database를

통해 저장 및 출력한다.

- Database server는 Catch me if you can 과 관련되는 모든 정보를 저장하는

역할을 한다. Database server 는 SQLite 3.8.6을 사용하여 작업한다.

6. System requirements specification

6.1. Functional requirements

6.1.1 회원가입

Function 회원가입

Description sns ID를 통해 받은 개인정보를 저장, 계정을 활성화한다.

Input Facebook ID Facebook OAuth token

(필요에 따라)추가 개인 정보

Source Facebook Login API Output 회원 정보 저장

가입 확인 화면

Destination DB

APP 화면 출력

Action 1) 입력받은 사용자의 facebook 계정을 통해 기본적인 개인 정보를

받아온다.

2) 필요에 따라 추가 정보를 사용자의 입력으로부터 받는다.

3) facebook login API 와 사용자의 입력을 통해 받은 정보를 Database에

Software Engineering Project Requirement Document

12

저장한다.

4) 가입 완료 화면을 출력한다.

Requirements 신규 사용자의 등록 승인

Pre-condition 정보를 등록하지 않은 사용자가 가입을 요청

Post-condition 신규 사용자를 database에 등록

Side effect -

6.1.2 주행 기록 측정

Function 주행 기록 측정

Description 개별 사용자의 gps data를 바탕으로 주행 기록을 측정

Input (특정 장소 주행 시)주행 가능 장소로 미리 지정된 pin위치 정보

(특정 간격 주행 시)사용자가 주행하고자 하는 거리 정보

주행 시작 signal/ 주행 종료 signal

gps 위치 정보

Source gps API Output 주행 기록

도착 여부 알림

Destination APP UI Server application A

Action 1) .1 (특정 장소 주행 시) 서비스 사용자가 google map을 통해 등록한

경주 가능 장소 pin 위치로 이동

.2 (특정 간격 주행 시) app 내에서 주행하고자 하는 거리를 설정

2) 주행 시작 버튼 누르기

3) .1 (특정 장소 주행 시) 정해진 주행 완료 장소에 도착

.2 (특정 간격 주행 시) 정해진 거리를 주행한 후에 알림이 작동

4) 주행 완료 버튼 누르기

Requirements 경로 주행에 대한 정보를 gps data 기반으로 정리하여 저장

Pre-condition 등록된 사용자가 주행을 시작

Post-condition 사용자의 주행 정보를 정리하여 제공

Side effect -

6.1.3 측정 기록 업로드

Function 기록 제출

Description 사용자가 주행 완료 버튼을 누름과 동시에 APP Server로 해당 주행 기록을

제출

Input 주행 완료 signal

주행 기록 data

Source Server application A

Output 개별 사용자의 주행 정보 data

Software Engineering Project Requirement Document

13

Destination DB

Action 1) 사용자가 주행 완료 버튼을 누름

2) 해당 사용자의 해당 주행 정보를 DB로 전송

Requirements 개별 주행 정보를 DB에 저장

Pre-condition 사용자가 주행 정보를 기록

Post-condition 개별 주행 정보가 DB에 업로드 됨

Side effect -

6.1.4 특정 장소에 대한 기록 랭킹 출력하기

Function 특정 장소에 대한 랭킹 출력

Description 특정 장소 주행 기록에 대한 각 사용자 간 랭킹 출력

Input 개별 사용자의 Best 기록

랭킹 출력 요청 signal

기존에 업로드된 정보를 바탕으로 정렬된 랭킹

Source Server application A

Output 출력을 요청한 사용자의 기록이 추가된 랭킹

Destination Database, API Screen

Action 1) app에 연동된 google map 화면에서 pin을 누름

2) 조회 신청과 동시에 사용자의 best score를 DB로 전송

3) 기존 랭킹에 사용자가 전송한 score를 추가하여 신규 랭킹을 작성

4) DB의 랭킹을 새로운 버전으로 갱신

5) 새로운 버전의 랭킹을 사용자에게 전송

Requirements 사용자의 기록이 포함된 랭킹을 출력

Pre-condition 기존 기록들로 정렬된 랭킹이 존재

Post-condition 조회를 요청한 사용자의 기록이 추가된 랭킹을 출력

Side effect -

6.1.5 특정 간격(50m, 100m, ...)에 대한 속도 랭킹 출력하기

Function 특정 간격(50m, 100m, ...)에 대한 속도 랭킹 출력하기

Description 사용자가 특정 간격에 대한 자신의 속도 랭킹을 볼 수 있다.

Input 사용자의 속도 랭킹 조회 요청

Source 사용자 입력

Output 사용자의 속도 랭킹

Destination DB

Action 1) 사용자가 간격을 선택한 뒤 속도 랭킹 조회 버튼을 누른다.

2) DB에서 해당 간격이 대한 모든 사용자의 기록을 질의한다.

3) Server application A가 사용자들의 기록을 바탕으로 랭킹을

계산한다.

4) 해당 정보를 App의 화면에 표시한다.

Requirements 사용자가 주행을 통해 수집한 기록

Pre-condition 사용자가 로그인 된 상태

Software Engineering Project Requirement Document

14

Post-condition 서비스를 이용할 수 있는 상태

Side effect -

6.1.6 원격으로 다른 사용자와 경주하기

Function 원격으로 다른 사용자와 경주하기

Description 사용자가 원격으로 다른 사용자와 주행 경주를 할 수 있다.

Input 주행 경주 방 안의 모든 사용자의 주행 시작 요청

Source 사용자 입력

Output 주행 경주에 참여한 모든 사용자의 주행 기록

Destination Server application B

Action 1) 주행 경주 방의 모든 사용자가 주행 시작 버튼을 누른다.

2) 원격 경주를 담당하는 Server B로 각 사용자들의 GPS 정보가

전달된다.

3) 사용자들이 모두 도착지에 도착하여 경주가 끝나면 Server B는

Server A 와 사용자의 Device에 기록을 전송한다.

4) Server A 는 해당 사용자들의 주행 기록을 DB에 저장한다.

5) App의 화면에 모든 사용자들의 경주 기록을 표시한다.

Requirements - Pre-condition 두 명 이상의 로그인 된 사용자들이 주행 경주 방에 참여한 상태

Post-condition 서비스를 이용할 수 있는 상태

Side effect -

6.1.7 내 기록 모아보기

Function 내 기록 모아보기

Description 사용자가 자신의 경주 기록을 모아볼 수 있다.

Input 사용자의 기록 모아보기 요청

Source 사용자 입력

Output 사용자의 경주 기록

Destination DB

Action 1) 사용자가 내 기록 모아보기 버튼을 누른다.

2) DB에서 해당 사용자의 주행 기록을 질의한다.

3) 해당 정보를 App의 화면에 표시한다.

4) 기록이 없는 사용자의 경우 조회 실패를 알린다.

Requirements 사용자가 주행을 통해 수집한 기록

Pre-condition 사용자가 로그인 된 상태

Post-condition 서비스를 이용할 수 있는 상태

Side effect -

6.1.8 내 기록 분석 보기

Function 내 기록 분석 보기

Description 사용자가 자신의 상세한 기록(속도 향상, 칼로리 소모량, 주행 기록 포함)등을

Software Engineering Project Requirement Document

15

조회할 수 있다.

Input 사용자의 기록 분석 조회 요청

Source 사용자 입력

Output 사용자의 상세 기록

Destination DB

Action 1) 사용자가 내 기록 분석 보기 버튼을 누른다.

2) DB에서 해당 사용자의 주행 기록을 질의한다.

3) 이를 통해 상세 기록을 계산한다. (속도 항상 등)

4) 해당 정보를 App의 화면에 표시한다.

5) 기록이 없는 사용자의 경우 조회 실패를 알린다.

Requirements 사용자가 주행을 통해 수집한 기록

Pre-condition 사용자가 로그인 된 상태

Post-condition 서비스를 이용할 수 있는 상태

Side effect -

6.1.9 외부 SNS로 주행 기록 및 랭킹 공유하기

Function 외부 SNS 로 주행 기록 및 공유하기

Description 사용자가 SNS에 자신의 주행 기록과 랭킹을 공유할 수 있다.

Input 사용자의 공유 요청

Source 사용자 입력

Output 공유 성공 여부

Destination API Server Action 1) 사용자가 외부 SNS에 공유 버튼을 누른다.

2) DB에서 해당 사용자의 주행 기록과 랭킹을 질의한다.

3) 해당 SNS의 API를 통해 기록을 내보낸다.

4) 성공하였으면 공유 성공을 사용자에게 알린다.

Requirements - Pre-condition 사용자가 SNS 계정을 통해 로그인 된 상태

Post-condition 서비스를 이용할 수 있는 상태

Side effect -

6.2 Non-functional requirements

6.2.1 제약사항

- App은 Android 4.2 이상에서 작동해야 하며, App 개발 언어는 Java 를

사용한다.

- Server A 의 개발은 Node.js 로 한다.

Software Engineering Project Requirement Document

16

- Server B 의 개발은 Node.js 로 한다.

- Database server 의 개발은 SQLite 3.8.6 과 MySQL 5.6 을 활용한다.

6.2.2 사용성

- 사용자의 터치 1번으로 ‘주행 측정의 시작'과 ‘주행 측정 끝내기'가 가능해야

한다.

- 사용자의 주행 측정에는 Smart device의 ‘진동' 또는 ‘소리’를 통해 주행

안내를 해주어야 한다.

6.2.3 보안성

- 사용자의 개인 Data를 외부에 노출시키지 않기 위해 인증과 관련된 모든

작업은 https protocol을 통해 통신한다.

- System 외부에서의 권한 없는 부적절한 접근을 막기 위해 실제 서비스 운영

시에는 Server 접속 Auth key를 따로 발급하여 사용한다.

6.2.4 신뢰성

- System 은 ‘주행 측정' 중인 상황에서 중단 없이 작동해야 하며, 따라서

Server A 와 Server B는 200 TPS 이상의 성능을 항상 유지하여야 한다.

- 이러한 신뢰성은 Client application의 Networking 환경에는 문제가 없다는

것을 기본 가정으로 한다.

6.2.5 주행 정보의 정확성

- 주행 기록은 실제 주행 외의 행동으로는 기록 할 수 없어야 하며, 따라서

서비스 운영 시에 모든 Server 직접 접속 요청 시에는 반드시 Local

computer에 설치되어있는 Auth key 가 필요하도록 한다.

- 주행 기록 측정에는 Server 시간이 사용되며, 서비스 실제 운영 시 Server

시간은 항상 정기적으로(10분마다) 한국표준과학연구원에서 제공하는

시간에 동기화되어야 한다.

- 물리적으로 불가능한 이동에 대해서는 주행 정보로 기록되지 않아야 한다.

Software Engineering Project Requirement Document

17

7. System evolution

7.1. 지원 OS 확인

- 본 App의 기능들은 Android 환경을 가정하고 설계되었으나 추후 iOS, Tizen,

Windows 등 다른 OS에서도 작동 가능하게 개선한다.

7.2 지원 기기 확장

- 본 App의 초기 버전은 일반적인 Smartphone 환경에서만 동작할 것이나, App의

기능들이 GPS 장치를 주로 사용하며 복잡한 연산이 필요한 부분이 적기 때문에

추후 여러 Wearable Device로 지원 기기를 확대할 수 있을 것이다. 이를 통해

사용자 들의 App 조작 편의성을 크게 향상시킬 수 있을 것으로 기대한다.

7.3 기능 개선

- 현재 본 App의 특정 장소의 기록을 다른 사용자와 비교하는 기능을 사용자가

이용하고자 할 경우 미리 App안에 내재된 시작 지점으로 이동하여야 하는

번거로움이 존재한다. 이를 해결하기 위해 자신이 주행한 구간 중 다른 사용자의

주행 구간과 겹치는 구간의 기록을 자동으로 Filtering하여 사용자에게 제공하도록

개선한다.

8. Appendices

8.1. Existing products

- 시중의 Cycle rider 용 Application 중, 단순 속도측정 기능으로 구성된 서비스는

제외하며 부분적이더라도 커뮤니티 기능을 지닌 서비스 위주로 조사하였다.

- 이하 모든 Application은 GPS tracking (속도 측정, 지도와 연동하여 이동경로 저장)

기능을 기본적으로 구현하고 있다.

8.1.1. BikeMate

<BikeMate 소개 이미지>

Software Engineering Project Requirement Document

18

- 국내 개발 서비스.

- 주행 중 사진,메모 업로드 기능이 지원된다.

- 개인 운동일지를 작성할 수 있다.

8.1.2. Bike T

<Bike T app splash 이미지>

- 국내 개발 서비스

- 웹 사이트(biket.co.kr)와 연계된 커뮤니티가 형성되어 있다.

- 동호인 카페 자출사 등 기존 커뮤니티와 연동되어 자전거 정보, 소모임 등의

데이터를 간접 제공한다.

8.1.3. Endomondo

Software Engineering Project Requirement Document

19

<Endomondo 서비스 이미지>

- 한글화된 해외 서비스

- 웹 서비스 기반으로 구성되었다. 스마트폰을 통해 기록된 정보를 좀더

통계화, 체계화하여 관리하기 용이하다.

- 비공식적으로 국내에서 가장 많은 사용자를 보유한 것으로 알려져 있다.

- 가입을 페이스북 계정으로 할 수 있고, 본인의 기록과 챌린지 등을 게시할

수 있는 등

- sns와의 연동이 용이하다.

- 자전거 뿐 아니라 러닝, 수영 등 많은 운동을 지원한다.

- Challenge mode를 제공한다. 누적 소모 칼로리, 누적 주행거리 등의

특정한 목표를 설정하여 도전할 수 있다.

8.1.4. Runtastic

Software Engineering Project Requirement Document

20

<Runtastic 소개 이미지>

- 한글화된 해외 서비스

- 러닝용 트래킹 앱 기반으로 영역을 확대하였다.

- 심박수, 고도, 속도 등 다양한 데이터 처리를 지원하여 전문적인 운동

관리에 최적화되어 있다.

- 웹 앱을 통해 앱 이용 통계 정보를 제공한다. 개인 운동 기록을 정리하고

공유하는 데 용이하다.

Software Engineering Project Requirement Document

21

9. Index

GPS data .................................................................................................................................... 3, 4, 6, 7, 9, 10, 12

mobile app ............................................................................................................................................................. 3, 4

Android ............................................................................................................................................... 5, 6, 9, 15, 17

SNS Login API ................................................................................................................................................... 6, 11

Database ..................................................................................................................................... 10, 11, 12, 13, 16

Server Application .......................................................................................................................................... 11, 14

Server A ........................................................................................................................10, 11, 12, 13, 14, 15, 16

Server B ...................................................................................................................................................... 11, 14, 16

SQLite ............................................................................................................................................................. 6, 11, 16

Node.js ........................................................................................................................................................... 6, 15, 16

java ...............................................................................................................................................................................15

MySQL .........................................................................................................................................................................16

https protocol ..........................................................................................................................................................16

Auth key ....................................................................................................................................................................... 2

Local computer .......................................................................................................................................................16

Sign up ...................................................................................................................................................................... 4, 6

Cycle .................................................................................................................................................................. 3, 4, 17

Client application ........................................................................................................................................... 11, 16

OAuth token ..............................................................................................................................................................11

API server ....................................................................................................................................................................15

GPS API ........................................................................................................................................................................12

OS ........................................................................................................................................................................... 9, 17

Wearable device .....................................................................................................................................................17