Daily Time Table System Project (Implementation & Demo) [Team Project Presentation #3] 2010.12.11(Sat) T1 200511311 김진수 200511350 장범석 200714170 모진종 200714172 배보람
Contents 1. Real Use-Case Description 2. UI storyboard 3. Sequence Diagram 4. Design Class Diagram 5. Q n A 2
Contents Environments OS : Windows 7, Vista, XP Language : Java Development Tools : Eclipse, StarUML Document Tools : Microsoft Word, Power Point 1 week 2 week 3 week 4 week 5 week Plan Analyze Presentation #1 Design Presentation #2 Implementation Presentation #3 3 3
1. Real Use-Case Description 0. Motivation review 오젂수업은성적이늘안좋다? 오젂수업, 특히첫수업은출석률부터저조하다. 매일같은시간에울리는알람으로는뭔가부족하다. 보통시간표는플래너의일부기능일뿐이다 기졲의보통시간표프로그램은추가기능정도에그치고, 스케쥴러역핛을하진않는다. 실제로학교다니면서기억해야만하는중요핚사항들을저장하고싶다. 4
1. Real Use-Case Description 0. 1.Motivation review Objective 핚눈에핚주의수업일정을확인핛수있는시간표. 요일별로그날의첫수업시간에맞춰서알람을울려깨워주는시간표. 휴강이나과제같이수업이라는도메인에특화된사항들을저장핛수있는시간표. 다른친구들과쉽게공유핛수있도록저장핛수있는시간표. Scope 수업등록 / 삭제 시간표저장 / 불러오기 / 초기화 알람설정 / 해제 휴강등록 / 삭제, 과제정보등록 / 삭제 5
1. Real Use-Case Description 1.1 Main table Actor 1. 13 을과클릭한다같이등록된. 과목을더블클 1. 릭한다 2를. 클릭한다. System 2. 학기, 수업등록, 저장, 불러오기, 초기화를 2. 휴강, 과제설정할정보를수있는입력팝업을할수나있 2. 알람설정팝업을나타낸다. 타낸다는팝업을. 나타낸다.
7
1. Real Use-Case Description 1.1 Main table Actor System 1. 1234 에각각학년, 학기, 개강날짜, 종강날짜정보를입력한다. 2. 5 를누른다. 3. 추후에 7 에입력된정보중개강날짜, 종강날짜를표시한다.
9
1. Real Use-Case Description 1.1 Main table Actor 1. 2345678 10에서삭제할에수업을각각선택한다교수명, 요일., 과목명, 강의실, 색깔, 시작교시 2., 12종료교시를누른다정보를. 입력한다. 2. 9를누른다. System 3. 10에서선택된수업정보를삭제 3. 한다 10. 에수업정보를추가한다. 4. 추후에 11 에수업을삭제된표시한다수업정보를. 제외한시간표를표시한다.
11
1. Real Use-Case Description 1.1 Main table Actor 1. 1 을클릭한다. 3. 3 부분의저장할디렉터리를지정하고파일이름을입력, 파일형식을선택한다. 3-1 4 를클릭한다. 3-2 5 를클릭한다. 2. 2 를나타낸다. System 4. 4-1 저장하고 2 를닫는다. 4-2 저장하지않고 2 를닫는다.
1. Real Use-Case Description 1.1 Main table Actor 1. 1 을클릭한다. 3. 3 부분의불러올파일이있는디렉터리를지정하고파일을선택한다. 3-1 4 를클릭한다. 3-2 5 를클릭한다. 2. 2 를나타낸다. System 4. 4-1 2 를닫고선택한시간표정보를화면에나타낸다. 4-2 2 를닫는다.
14
1. Real Use-Case Description 1.1 Main table Actor 1. 1 을클릭한다. 3. 3-1 3 을클릭한다. 3-2 4 을클릭한다. 2. 2 를나타낸다. System 4. 4-1 사용중인모든정보를초기화한다. 4-2 저장하지않고디렉터리창을닫는다.
16
1. Real Use-Case Description 1.2 Alarm Actor 1-1. 알람설정을원하는경우, 1 을누른다. 1-2. 알람을설정하기를원치않는경우, 2 를누른다. System 2-1. 1 에하이라이트를준다. 2-2. 2 에하이라이트를준다.
1. Real Use-Case Description 1.2 Alarm Actor 4. 1 에나타난문자열을 2 에따라서적는다. 5. 3 을누른다. 1. 4 를표시한다. System 2. 1 에임의의문자열을나타낸다. 3. 알람음악을재생시킨다. 6. 1 의내용과 2 의내용이일치하는경우, 음악을정지시킨다.
19
1. Real Use-Case Description 1.3 Memo Actor 1. 15 과에서2 에삭제할날짜와휴강휴강일정을내용을선택입력한다.. 2. 34 을누른다. System 3. 5에서휴강선택된일정을휴강추가한다일정을. 삭제한다.
21
1. Real Use-Case Description 1.3 Memo Actor 1. 15 과에서2 에삭제할과제과제데드라인과일정을내용선택을한다입력한다.. 2. 34 을누른다. System 3. 5에서과제선택된일정을과제추가한다일정을. 삭제한다.
23
2. Sequence Diagram 수업삭제 시간표저장 시간표정보수정 수업등록 시간표불러오기 알람기능설정 시간표초기화 알람시간설정 USer 과제정보등록 알람종료 과제정보삭제 휴강정보등록 휴강정보삭제
2. Sequence Diagram System TimeTable Save Time Table Display Time Table Set Table Info Delete Class Add Class Initialize Time Table Load Time Table User Start Memo End Add Cancel Class Alarm Delete Cancel Class Set Alarm OnOff Add Homework Delete Homework Set Alarm Time Ring Alarm
2. Sequence Diagram (1) Call TimeTable Menu User MainUI TimeTableUI 1 : TimeTableMenu() 2 : PopUp() (2) Call Alarm Menu User MainUI AlarmUI. 1 : AlarmMenu() 2 : PopUp()
2. Sequence Diagram (3) Call Memo Menu User MainUI Class MemoUI 1 : SelectClass() 2 : GetCancelClass() 3 : PopUp().
2. Sequence Diagram (4) Set Term User TermUI TimeTable MainUI 1 : StoreTerm() 2 : SetTermInfo() 3 : SetGrade() 4 : SetTerm() 5 : SetStartDate() 6 : SetEndDate() 7 : Update()
2. Sequence Diagram (5) Add Class User ClassUI Class TimeTable MainUI 1 : AddClass() 2 : New() 3 : IsOverlap() 4 : AddClass() 5 : Update() 6 : Update()
2. Sequence Diagram (6) Del Class User ClassUI TimeTable MainUI 1 : DelClass() 2 : DelClass() 3 : Update() 4 : Update()
2. Sequence Diagram (7) Save TimeTable User SettingUI FileDialog TimeTable 1 : Save() 2 : Show() 3 : Okay() 4 : GetInfo() 5 : SaveTimeTable()
2. Sequence Diagram (8) Load TimeTable User SettingUI FileDialog TimeTable MainUI 1 : Load() 2 : Show() 3 : Okay() 4 : New() 5 : SaveTimeTable() 6 : Update() 7 : Update()
2. Sequence Diagram (9) Init TimeTable User SettingUI TimeTable MainUI 1 : Init() 3 : Confirm() 2 : ShowMsgBox() 4 : Init() 5 : Update()
2. Sequence Diagram (10) Set Alarm User AlarmUI Alarm Timer 1 : SetOnOff() 2 : SetOnOff() 3 : Run() (11) Set Alarm Time User AlarmUI Alarm Timer 1 : ChangeSelectedTime() 2 : SetTime() 3 : Run()
2. Sequence Diagram (12) Ring Alarm User Timer Alarm RingUI Captcha 1 : GetTime() 2 : PopUp() 3 : GetCaptcha() 4 : PlayMusic() 5 : InputCaptcha() 6 : IsCorrect() 7 : StopMusic() 8 : UpdateDTime()
2. Sequence Diagram (13) Add CancelClass User MemoUI Class 1 : AddCancelClass() 2 : IsOverlap() 3 : IsCorrectDate() 4 : AddCancelClass() 5 : Update()
2. Sequence Diagram (14) Del CancelClass User MemoUI Class 1 : DelCancelClass() 2 : DelCancelClass() 3 : Update()
2. Sequence Diagram (15) Add Homework User MemoUI Class MainUI 1 : AddHomework() 2 : IsOverlap() 3 : AddHomework() 4 : Update() 5 : Update()
2. Sequence Diagram (16) Del Homework User MemoUI Class MainUI 1 : DelHomework() 2 : DelHomework() 3 : Update() 4 : Update()
3. Design class Diagram MemoUI 1 +PopUp() +AddCancelClass() +DelCancelClass() +AddHomework() +DelHomework() +Update() TermUI 1 -Term: int -Grade: int -StartDate: Date -EndDate: Date +StoreTerm() RingUI +Captcha: string +MusicPath: string +PopUp() +PlayMusic() +StopMusic() +InputCaptcha(cap: string) +IsCorrect() MainUI +Update() +TimeTableMenu() +AlarmMenu() +SelectClass() 1 1 TimeTableUI +PopUp() 1 1 ClassUI 1 1 -Title: string -Professor: string -Room: string -Color: string -StartTime: int -EndTime: int -ClassDay: Day +AddClass() +DelClass() +Update() 1 1 1 AlarmUI +PopUp() +ChangeSelectedTime() +SetOnOff() 1 Captcha +GetCaptcha(): string SettingUI -ReadDialog: FileDialog -WriteDialog: FileDialog -FilePath: string -msgbox: MsgBox +Save() +Load() +Init() +GetInfo() +SaveTimeTable() +Update() +main() Main 1 1 -DTime: Time Timer +Run() +UpdateDTime(time: Time) 1 1 -Term: int -Grade: int -StartDate: Date -EndDate: Date TimeTable +Init() +SetTermInfo(term: int, grade: int, start: Date, end: Date) -SetTerm(term: int) -SetGrade(grade: int) -SetStartDate(start: Date) -SetEndDate(end: Date) +GetTerm(): int +GetGrade(): int +GetStartDate(): Date +GetEndDate(): Date 1 1 Alarm -OnOff: bool -TimeMinute: int +SetOnOff(onoff: bool) +SetTime(min: int) +GetOnOff(): bool +GetTime(): int -n: int 1 0..* MemoCollection +IsOverlap(obj: Object) +GetMemo(index: int): Memo +AddMemo(index: int) +DelMemo(index: int) 2 Class -Title: string -Professor: string -Room: string -Color: string -StartTime: int -EndTime: int -ClassDay: Day +SetTitle(title: string) +SetProfessor(prof: string) +SetRoom(room: string) +SetColor(rgb: string) +SetStartTime(start: int) +SetEndTime(end:int)() +SetClassDay(day: Day) +GetTitle(): string +GetProfessor(): string +GetRoom(): string +GetColor(): string +GetStartTime(): int +GetEndTime(): int +GetClassDay(): Day +IsCorrectDate(date: Date): bool +AddCancelClass(obj: Memo) +DelCancelClass(obj: Memo) +AddHomework(obj: Memo) +DelHomework(obj: Memo) +GetCancelClass(): MemoCollection +GetHomework(): MemoCollection 1 1 0..* Memo -Info: string -Deadline: Date +SetInfo(info: string) +SetDeadline(deadline: Date) +GetInfo(): string +GetDeadline(): Date 40