///////
Search
Duplicate

2주차 과제

Analysis Phase(21411861 신수형).hwp
121.5KB

Introduction

Summary

본 문서는 Conceptualization Document에 이은 Analysis 단계의 문서이다. 이 단계에서는 Use Case를 분석하여 Diagram으로 시각화하고, 각 Case들의 기능, 역할, 범위에 대한 상세한 정보를 문서화 한다. 또한 각 Case들을 제공하기 위해 필요한 Domain들을 정의하고, 각 Domain의 목적에 대해 다룬다. 마지막으로 Actor에게 서비스를 제공하기 위한 Interface의 Prototype을 계획하고 설계한다.

The features of project

이 서비스를 활용해서 공유 캘린더에, 내가 가능한 일정과 불가능한 일정을 터치 한번으로 손쉽게 추가할 수 있다. 가능한 날짜는 O로, 불가능한 날짜는 X로 표시되며, 해당 날짜의 시간에 따라서 표시되는 모양도 달라질 수 있다. 각 그룹별 캘린더는 개별적으로 동작하며, 해당 모임별로 미팅을 원하는 시간을 설정할 수 있다.

Use Case Analysis

UseCase Diagram

UseCase Description

#1) createCalendar

요약 : 최초 필요한 공유 캘린더를 생성할 때 사용한다
스코프 : Calendar System / User level
상태 : Analysis
actor : User
precondition : 서비스에 접속하여야 한다. Calendar 이름이 입력되어야한다.
trigger : 화면위의 start 버튼
if success : Calendar View로 전환되고 db에 Calendar 정보가 저장된다.
if fail : Error View로 전환된다.
메인시나리오 :
User가 Calendar이름을 입력한다
start버튼을 누른다
CalendarView로 전환한다
서브시나리오 :
고객이 Calendar이름을 입력하지 않은 경우
이름 입력 필드에 highlighting을 활용해서 필드가 비어있다는 사실을 알려준다.
User가 Calendar이름을 입력한다.
start버튼을 누른다.
서버에서 달력 생성을 실패한 경우
ErrorView로 전환된다.
다시 EntranceView로 돌아와서 메인 시나리오를 반복한다.

#2) getCalendar

요약 : Calendar id를 활용해서 Calendar정보를 가져온다
스코프 : Calendar System / User level
상태
actor : user
precondition : #1을 통해 전환된 상태이거나 url/:id 를 통해 direct로 접근한 상태이다
trigger : x
if success : Calendar정보를 가져온다.
if fail : Calendar정보를 가져오지 못한다.
메인시나리오
1.
User혹은 System에 의해 url/:id로 접근한다.
2.
DB로부터 id에 해당하는 Calendar정보를 가져온다.
3.
Calendar정보에서 name과 users를 활용해 CalendarView에 시각적으로 표현해준다.
서브시나리오
2.
DB에 요청한 id에 해당하는 Calendar가 존재하지 않은 경우
404 Error를 응답받는다.
ErrorView로 전환한다.
2. Server가 동작하고 있지 않은 경우
500 Error를 응답받는다.
ErrorView로 전환한다.

#3) createUser

요약 : Calendar에 새 User를 만든다.
스코프 :
상태
actor
precondition : #1에 의해 Calenar가 생성되어 있어야 한다.
trigger : createUser 버튼을 클릭한다.
if success : Calendar의 Users배열에 새로 생성된 User를 추가한다.
if fail : User를 생성하지 않고 기존의 상태로 돌아간다.
메인시나리오
1.
createUser버튼을 누른다.
2.
AddUser_Modal을 띄운다.
3.
생성할 User의 정보를 입력한다.
4.
확인 버튼을 누른다.
5.
정상적으로 User가 생성되어 Calendar의 Users에 추가된다.
서브시나리오
3.
생성할 유저의 이름을 입력하지 않은 경우
alert message를 통해 이름이 비어있다는 메세지를 출력한다.
3. 생성할 유저의 색깔을 입력하지 않은 경우
alert message를 통해 색깔이 선택되지 않았다는 메세지를 출력한다.
3.
생성할 유저의 이름이 이미 Calendar의 Users에 존재하는 경우
alert message를 통해 중복된 name이라는 메세지를 출력한다.

#4) deleteUser

요약 : Calendar에 기존에 있던 User를 삭제한다.
스코프
상태
actor
precondition : #1에 의해 Calendar가 생성되어 있고, 해당 Calendar에서 #3에 의해 User가 생성되어 있어야 한다.
trigger : delUser버튼을 누른다.
if success : Calendar의 Users배열에서 선택한 User를 지운다
if fail : Calendar의 Users배열에서 선택한 User를 지우지 않는다.
메인시나리오
1.
userDelete버튼을 누른다.
2.
서브시나리오

#5) updateUser

요약
스코프
상태
actor
precondition
trigger
if success
if fail
메인시나리오
서브시나리오

#6) deleteCalendar

요약
스코프
상태
actor
precondition
trigger
if success
if fail
메인시나리오
서브시나리오

#7) updateCalendar

요약
스코프
상태
actor
precondition
trigger
if success
if fail
메인시나리오
서브시나리오

#8) changeThemeMode

요약
스코프
상태
actor
precondition
trigger
if success
if fail
메인시나리오
서브시나리오

#9) updateSelectedUserState

요약
스코프
상태
actor
precondition
trigger
if success
if fail
메인시나리오
서브시나리오

#10) updateSelectedDateState

요약
스코프
상태
actor
precondition
trigger
if success
if fail
메인시나리오
서브시나리오

#11) updateTimePickerState

요약
스코프
상태
actor
precondition
trigger
if success
if fail
메인시나리오
서브시나리오

Domain Analysis

DB Interface

User : 회원 정보를 가지는 interface
id
string
name
string
color
string
schedule
Schedule[]
Calendar : 목적에 맞게 생성된 캘린더의 정보를 가지는 interface
id
string
name
string
start
string
end
string
users
User[]
Schedule : 일정의 상태를 가지는 interface
id
string
start
string
end
string
users
User[]
posibleTime
number[]
imposibleTime
number[]

Client Interface

Year
month
Month[]
Month
week
Week[]
month.moment
month.Moment
Week
Day
Day[]
Day
moment
moment.Moment
State
users
User[]
selectedDate
moment.Moment
selectedUser
User
valid
ScheduleValidType
mode
ThemeType
Action

View

Enterance : 캘린더 이름과 생성 버튼이 있는 View
Calendar : 캘린더 정보를 가져와 사용자에게 보여주는 View
AddUser_Modal : 사용자를 추가할 때 나오는 Modal View
UserList_Drawer : 특정날짜의 사용자별 일정을 보여주는 Drawer View
TimePicker_Drawer : 일정을 선택할 때, 시간과 상태를 체크할 수 있는 Drawer View
Setting : 시스템 테마, 공유 등 설정을 할 수 있는 View
Error : 404, 500 등 서버 에러에 대처하기 위한 View

Type

ThemeType : ‘light’, ‘Dark’를 가지는 ThemeType
ScheduleValidType : ‘Possible’, ‘Imposible’을 가지는 ScheduleValidType

User Interface Prototype

1.
Entrance View
2.
Calendar View
a.
AddUser_Modal
b.
UserList_Drawer
c.
TimePicker_Drawer
3.
Setting View

Glossary

Modal
Drawer

References