무선통신을이용한모바일기기와 컴퓨터간의파일전송 200614164 김효석 200511316 김형석 200511362 최우진
- 1 - 차례 (1/2) 개발배경 개발목표 시스템설계 USE CASE & DIAGRAM CLASS DIAGRAM SEQUENCE DIAGRAM
- 2 - 차례 (2/2) 시스템구현 기대효과및활용방안 보완점 & 애로사항 인원편성표 진행일정
- 3 - 개발배경 쉽고빠른컴퓨터와모바일기기간의파일전송시스템개발
- 4 - 개발목표 (1/2) 개발목표 컴퓨터와모바일기기와의파일전송을위해서는 USB 케이블이꼭있어야하는번거로움발생 이런불편함을개선하고자컴퓨터와모바일기기간의무선으로가능한파일전송프로젝트를구상함 Wi-Fi 를통한무선환경에서의빠른파일전송시스템을구현 K U T R A N S F E R 개발!
- 5 - 개발목표 (2/2) 세부개발목표 간편한 UI 제공 안정된통신연결과올바른파일전송 비정상적인통신해제를대비한파일이어받기기능 동일한이름의파일전송시덮어쓰기 다중파일전송지원 하나의 PC에다중모바일기기접속제어
- 6 - 시스템설계 (1/6) 서비스흐름도 컴퓨터 모바일기기
- 7- 시스템설계 (2/6) 서비스흐름도 SOCKET CONNECT! 컴퓨터 모바일기기
- 8 - 시스템설계 (3/6) 서비스흐름도 컴퓨터 모바일기기 컴퓨터에서모바일로파일전송!!
- 9 - 시스템설계 (4/6) 서비스흐름도 모바일에서컴퓨터로파일전송!! 컴퓨터 모바일기기
- 10 - 시스템설계 (5/6) 시스템구조도 안드로이드 P C Upload 모듈 IP Address, Port Number 접속요청 Upload 모듈 Download 모듈 접속요청 Download 모듈
- 11 - 시스템설계 (6/6) Define Message - 메시지를정의하여두통신매체간의통신에대한신뢰성유지를목적으로사용 #define Connect 5 #define Disconnect 2 #define Close_Sock 3 #define Close_ServerSock 4 #define SendToPCReq 1 #define SendToPCAck 6 #define SendToMoblieReq 7 #define SendToMoblieAck 8
- 12 - USE CASE (1/9) Use Case Actor Type Pre-conditions PC와모바일기기연결사용자 Primary PC와모바일기기가동일네트워크상에연결되어있음 PC와모바일기기가각각어플리케이션실행중 Basic Flow Alternative Flow Actor 1. 모바일기기에 PC IP 주소를입력 Actor System 2. 해당 IP 주소를가진 PC 에접속 3. 최초접속이라면모바일기기는 PC 의정보를저장 4. 모바일기기가 PC 에자신의 IP 주소를전송 5. PC, 모바일기기의어플리케이션에각각파일리스트를출력 System E-1. 해당 IP 주소를가진 PC 가동 일네트워크상에존재하지않으면접 속실패메시지를출력
- 13 - USE CASE (2/9) Use Case PC 와모바일기기연결해제 Actor 사용자 Type Primary Pre-conditions PC - 모바일기기접속 Actor System Basic Flow 1. 어플리케이션에서연결해제 버튼을클릭 2. 세션을해제한다.
- 14 - USE CASE (3/9) Use Case Actor Type Pre-conditions 파일업로드사용자 Primary PC - 모바일기기접속 Basic Flow Alternative Flow Actor 1. 업로드를원하는파일을선택한후, 업로드버튼을클릭 Actor System 2. 모바일기기에동명파일이있는지체크후전송 3. 완료되면파일리스트새로고침 System E-1. 모바일기기에파일을저장할용량이부족할경우전송하지않고메시지출력 E-2. 동명파일이존재할경우덮어쓰기
- 15 - USE CASE (4/9) Use Case`` Actor Type Pre-conditions 파일다운로드사용자 Primary PC - 모바일기기접속 Actor System Basic Flow 1. 다운로드를원하는파일을선택 한후, 다운로드버튼을클릭 2. PC 에동명파일이있는지 체크후전송 3. 완료되면파일리스트새로고침 Alternative Flow ` Actor System E-1. PC에파일을저장할용량이부족할경우전송하지않고메시지출력 E-2. 동명파일이존재할경우덮어쓰기
- 16 - USE CASE (5/9) Use Case Actor Type Pre-conditions 파일이어받기사용자 Primary PC - 모바일기기접속이전세션에서파일전송중비정상종료 Actor System Basic Flow 1. 전송중중단됐던부분부터다시 파일전송재개
- 17 - USE CASE (6/9) Use Case Actor Type Pre-conditions 파일덮어쓰기사용자 Primary PC - 모바일기기접속전송하려는폴더에동명파일존재 Actor System Basic Flow 2. 예, 아니오 중선택 Actor 1. 동명파일이있고, 덮어쓸지여부를묻는메시지출력 3. 사용자가 예 를선택했을경우기존파일을삭제하고파일전송 System Alternative Flow E-1. 사용자가 아니오 를선택 했을경우전송을취소하고대기
- 18 - USE CASE (7/9) Use Case Actor Type Pre-conditions 파일리스트새로고침사용자 Primary PC - 모바일기기접속 Actor System Basic Flow 1. 어플리케이션에서파일리스트 새로고침버튼을클릭 2. PC 와모바일기기양쪽의 파일리스트를갱신하여출력
- 19 - USE CASE (8/9) Use Case Actor Type Pre-conditions 파일다중전송사용자 Primary PC - 모바일기기접속파일이이미전송중 Actor System Basic Flow 1. 파일전송중에, 다른파일을 선택하여업로드나다운로드 버튼을클릭 2. 기존전송중이던파일과동시에 새로운파일을전송 Actor System Alternative Flow E-1. 이미전송중인파일을다시 선택하였을경우에러메시지를출력
- 20 - USE CASE DIAGRAM (9/9) KU_Transfer Entire Function 접속 종료 폴더간의이동 User 파일전송 파일다운로드 이어받기 덮어쓰기 파일다중전송
CLASS DIAGRAM ( 컴퓨터 APPLICATION) ConnectionInfo +host: String +port: int ConnectionDialog ~textport: Text ~dialogsettings: DialogSettings ~address: InetAddress <<create>>~connectiondialog(window: Window) #createdialogarea(parent: Composite): Control +getconnectioninfo(): ConnectionInfo #okpressed() ~connectioninfo ~connectioninfo ~connectiondialog ~sock: Socket FileClient <<create>>~fileclient(sock: Socket) +run(file: File) ~fileclient handleserver ~socket_port: int ~serversocket: ServerSocket ~sock: Socket ~flag: boolean = false +setportnumber(port: int) +sockclose() +getsock(): Socket +getserversock(): ServerSocket +getmoblieinfo(): MoblieInfo +run() ~fileserver FileServer ~socket_port: int ~serversocket: ServerSocket ~sock: Socket ~f: File ~cmptemp: File ~cmpfile: File ~flag: int ~str: String ~size: int ~buf: byte[*] = new byte[512] <<create>>~fileserver(socket: Socket) +close() +run() +cmpfile() ~server FileIconUtil ~localdirbrowser: TableViewer ~labelpathlocal: Label ~textlog: StyledText ~actionuplocaldir: Action ~actionupremotedir: Action ~actionbrowselocaldir: Action ~actionconnect: Action ~actiondisconnect: Action ~actiondisplayabout: Action ~actionexit: Action Window <<create>>+window(parentshell: Shell) -createactions() -dragndropsupport() #createmenumanager(): MenuManager +addaction(manager: ToolBarManager, action: Action, displaytext: boolean) #createtoolbarmanager(style: int): ToolBarManager #createcontents(parent: Composite): Control +logmessage(message: String, showinstatusbar: boolean) -logerror(message: String) +main(args: String) - 21 - ~imageregistry: ImageRegistry ~iconfolder: Image ~iconfile: Image +geticon(file: File): Image -geticon(extension: String): Image -TOTAL_TIME: int = 10000 ~sendfile: File -INCREMENT: int = 1024 -indeterminate: boolean ProgressDialog <<create>>+progressdialog(indeterminate: boolean, f: File) +run(monitor: IProgressMonitor) LocalDirectoryBrowser <<create>>+localdirectorybrowser(table: Table) -init()
- 22 - CLASS DIAGRAM (ANDROID APPLICATION) FileServer server ~flag: boolean = false +run() ~socket_port: int ~Port: int ~IP: String ~NetWorkInfo: InetAddress ~server: ServerSocket ~sock: Socket ~sevsock: Socket ~f: File ~buf: byte[*] = new byte[512] ~out: PrintWriter <<create>>~fileserver(sevip: String, sevport: int) +getsock(): Socket +close() +getlocalipaddress(): String +run() ~IP: String ~Port: int ~s: Socket ~HeadType: String ~filename: String ~filepath: String FileClient <<create>>~fileclient(sevip: String, sevport: int) +run(filename: String) ~client ~fileclient ~server ~fileserver progress provider ~Icon: int ~Name: String MyItem <<create>>~myitem(aicon: int, aname: String) ~mi ~aritem: ArrayList ~filename: String ~ip: String ~port: int ~directorylist: ArrayList -currentfile: File = new File("/mnt/sdcard") +oncreate(savedinstancestate: Bundle) +fill(files: File) +browseto(adirectory: File) -uponelevel() ~remotedir: Object[*] ~s: Socket ~mani: AnimationDrawable ~serversocket: ServerSocket ~ip: String ~port: int ~filename: String +oncreate(savedinstancestate: Bundle) KuhumActivity ~maincon: Context ~Inflater: LayoutInflater ~arsrc: ArrayList ~layout: int MyListAdapter <<create>>+mylistadapter(context: Context, alayout: int, aarsrc: ArrayList) +getcount(): int +getitem(position: int): String +getitemid(position: int): long +getview(position: int, convertview: View, parent: ViewGroup): View ~et1: EditText ~et2: EditText ~btn: Button ~btn2: Button ~cont1: String ~cont2: String +oncreate(savedinstancestate: Bundle)
- 23 - SEQUENCE DIAGRAM (1/5) 접속과정 User Computer Mobile 1 : Show_Directory() 2 : Input_PortNum() 3 : Input_Ip/PortNum() 4 : Show_Directory() 5 : Log_Message()
- 24 - SEQUENCE DIAGRAM (2/5) 접속해제 User Computer Mobile 1 : DisConnect() 2 : Send_Msg() 3 : Send_Reply() 4 : Close_Sock() 5 : Close_Sock() 6 : Send_Log()
- 25 - SEQUENCE DIAGRAM (3/5) Transfer to PC ` User Computer Mobile 1 : Select_File() 2 : Send_Info() 3 : Send_File() 4 : Send_Msg() 5 : Send_Log()
- 26 - SEQUENCE DIAGRAM (4/5) Transfer to Mobile User Computer Mobile 1 : Select_File() 2 : Send_Info() 3 : Send_File() 4 : Send_Msg() 5 : Send_Log()
- 27 - SEQUENCE DIAGRAM (5/5) 이어받기 & 덮어쓰기 Sender Reciever 1 : Send_Info() 2 : Compare_Size/Name() 3 : Determine_Operation() 4 : Send_File()
- 28 - 시스템구현 (1/20) 개발환경 분류 내용 운영체제 Windows 7 S / W 개발툴 Eclipse 플랫폼 Android 2.2 개발언어 Java H / W CPU RAM Intel Celeron(R) CPU 1.73GHz 2 GB
- 29 - 시스템구현 (2/20) 컴퓨터용 Application 화면 - 메인화면
- 30 - 시스템구현 (3/20) 컴퓨터용 Application 화면 - Connect Click
- 31 - 시스템구현 (4/20) 컴퓨터용 Application 화면 - Connect Port 번호를입력하여 Android 와연결준비!! 7777 Click
- 32 - 시스템구현 (5/20) 컴퓨터용 Application 화면 - Connect 연결성공!!
- 33 - 시스템구현 (6/20) 컴퓨터용 Application 화면 버튼기능 (1) File 탐색을용이하게할수있도록탐색창을생성!! Click
- 34 - 시스템구현 (7/20) 컴퓨터용 Application 화면 버튼기능 (2) 상위폴더로이동!! Click
- 35 - 시스템구현 (8/20) 컴퓨터용 Application 화면 파일전송 Android 로선택파일전송!! Click
- 36 - 시스템구현 (9/20) 컴퓨터용 Application 화면 파일전송 Android 로파일전송완료!!
- 37 - 시스템구현 (10/20) Android Application 화면 파일전송 Android 로파일전송완료!!
- 38 - 시스템구현 (11/20) Android Application 화면 초기화면 IP ADDRESS 와 Port 번호를입력하여프로그램실행!!
- 39 - 시스템구현 (12/20) Android Application 화면 대기화면 접속대기화면!!
- 40 - 시스템구현 (13/20) Android Application 화면 폴더이동 Android 폴더이동!! Click
- 41 - 시스템구현 (14/20) Android Application 화면 파일전송 Android 의파일목록중전송할파일을선택!! Click
- 42 - 시스템구현 (15/20) Android Application 화면 파일전송 Android 의파일을컴퓨터로전송!! Click
- 43 - 시스템구현 (16/20) Android Application 화면 파일전송 Android 의파일을컴퓨터로전송!!
- 44 - 시스템구현 (17/20) Android Application 화면 파일전송 Android 의파일을컴퓨터로전송!!
- 45 - 시스템구현 (18/20) 컴퓨터용 Application 화면 파일전송 Android 의파일을컴퓨터로전송!!
- 46 - 시스템구현 (19/20) Android Application 화면 파일전송 파일전송시동일한파일이존재하면다른이름으로저장 or 취소!! Click
- 47 - 시스템구현 (20/20) Android Application 화면 파일전송 동일한파일을다른이름으로저장가능!! Test.mp3 Click
- 48 - 기대효과및활용방안 기대효과 별도의서버없이모든사용자가쉽게이용가능 컴퓨터와모바일기기간편리한양방향무선통신을제공 언제어디서나 WI-FI망을이용하여파일전송가능 활용방안 실시간스트리밍환경제공 컴퓨터와모바일기기의완벽한동기화 (ex 아이튠스 ) 발전시켜클라우드컴퓨팅분야에응용가능
- 49 - 보완점 & 애로사항 Socket 부분 Socket 연결의불안정함 3g망을통한접속불가 개발부분 안드로이드플랫폼에서 Server Socket 생성의번거로움 무거운안드로이드 Emulator 안드로이드프로그래밍의생소함 자바 GUI의생소함
- 50 - 인원편성표 팀원 김효석 팀원 김형석 팀원 최우진 참여인원편성표 전공학년학번성명담당업무 컴퓨터시스템 4 200614164 김효석 컴퓨터시스템 4 200511316 김형석 시스템설계및컴퓨터어플리케이션구현 안드로이드어플리케이션구현 컴퓨터시스템 4 200511362 최우진 컴퓨터어플리케이션구현
- 51 - 진행일정 6 월말 7 월초 7 월말 8 월초 8 월말 9 월초 9 월말 10 월 초 10 월 말 11 월 초 설계준비 컴퓨터어플리케이 션개발 모바일어플리케이 션개발 TCP/IP 통신모듈 구현 두플리케이션갂연 동확인 테스트 & 디버깅 중갂보고서제출 최종보고서제출