SlideShare a Scribd company logo
1 of 9
Download to read offline
5.1 ATM
5.1.1 Structure
5.1.1 class diagram
5.1.2 data dictionary
Message 구조체
5.1.3 attributes and operations
ATM
이 ATM 시스템의 메인 클래스이다.
m_Msg 거래 정보가 담긴 메시지
m_Seq 현재 어떤 과정을 수행하고 있는지에 대한 정보
m_ID User의 ID(계좌번호)
m_PWD User의 암호
m_Amount 돈(거래량)
Signal 거래 종류 혹은 오류코드 정보
Bankcode 은행 식별 코드
Account 계좌번호
Password 암호
Cash 돈(거래량)
HW
P2PDF
PRE
HW
P2PDF
PREVIEW
HW
P2PD
HW
P2PDF
PREVIEW
HW
P2PDF
PR
W
P2PDF
PREVIEW
H
m_Seq 맴버 변수는 현재의 작업 상태를 나타내어 준다. 이 변수의 번호에 따라 그 작
업에 해당하는 UI화면을 띄운다.
m_Msg 맴버 변수는 메시지이다. ATM을 통해서 각 UI들이 메시지를 공유하게 된다.
Process 메소드에서 m_Seq와 m_Msg에 따라 어떤 UI를 택하여 화면에 찍을 것인지
판단한다.
과정 중에서 은행과의 통신이 필요한 경우 MessageProc클래스를 호출하기도 한다.
이 ATM 클래스에 각 UI클래스가 속하게 된다.
Message 구조체
메시지는 하나의 규격으로 만들어서 각 과정끼리는 물론 은행서버와의 커뮤니케이션에
도 이용된다.
이는 Signal, Bankcode, Account, Password, Cash로 구성되어 있다.
MessageProc
이는 은행 서버와의 메시지 교환을 담당하는 클래스이다.
은행과는 실시간으로 정보를 교환할 필요가 있으므로 별도의 쓰레드를 사용한다.
m_Msg는 메시지 큐로 서버로부터 오는 메시지를 순차적으로 저장하는데 이용된다.
SendMessage 메소드는 매개변수로 받은 Msg를 서버로 전송한다.
MsgLoop메소드에서 루프를 돌면서 GetMessage() 메소드에서 서버로부터의 메시지를
확인하고 메시지가 있다면 메시지 큐에 메시지를 저장하게 된다.
우선 모든 UI클래스에서 공통으로 나오는 맴버 변수/함수부터 살펴보기로 한다.
m_Msg는 메시지 맴버 변수다. 이는 포인터 형으로 선언되며 ATM가 UI의
SetMessage()메소드를 호출함으로써 값이 주어진다.
한 싸이클을 돌아가면서 메시지의 속성들이 채워지게 되므로, 메시지는 ATM메인에서
하나를 만들어 두고 각 과정의 UI를 로드할 때 마다 SetMessage 메소드를 호출하여
각 UI의 m_Msg속성으로 하여금 이 하나의 메시지의 주소를 참조케 한다.
NextStep()은 대체로 확인 버튼을 눌렀을때 호출이 되는 메소드로, UI에서 입력받은
해당되는 값을 m_Msg 변수에 기록하고 다음 과정으로 넘어갈 수 있게끔 그 과정의 UI
를 종료한다.
Cancel()은 사용자가 '취소'하면 호출되는 메소드로, 메시지를 초기화 한뒤 UI를 첫 과
정인 ID_UI로 되돌린다.
ID_UI
ID와 패스워드 입력 화면의 UI이다.
사용자의 입력으로 받게 되는 ID와 패스워드는 m_ID, m_PWD 맴버 변수에 저장되며,
사용자에게 '확인'을 받으면 NextStep메소드에서 m_ID와 m_PWD값을 메시지의
Account와 PWD필드에 넣는다.
HW
P2PDF
PRE
HW
P2PDF
PREVIEW
HW
P2PD
HW
P2PDF
PREVIEW
HW
P2PDF
PR
W
P2PDF
PREVIEW
H
SelectTaskUI
조회/입금/출금 등의 업무를 선택하는 화면이다. 사용자가 어떤 업무를 선택하면 그 업
무에 따라 TaskDeposit(), TaskWithdrawal(), TaskInquiry()가 호출되어 해당되는 업
무 코드를 메시지의 Signal필드에 넣는다. 업무중 조회를 선택했을 경우
InputAmountUI와 ConfirmUI 과정이 생략된다.
InputAmountUI
사용자로부터 받은 입력인 거래 금액은 m_Amount 맴버 변수에 저장된다. 사용자에게 '
확인'을 받으면 NextStep() 메소드가 실행되어 m_Amount값이 메시지의 Cash필드에
저장된다.
ConfirmUI
메시지에서 Cash필드를 읽어내어 앞에서 입력받은 금액이 맞는지 확인한다. 사용자에게
'확인'을 받으면 NextStep() 메소드를 통해 다음 과정으로 진행되고, CancelButton이
눌러지면 Cash필드를 0으로 해놓아서 ATM Process에서 유저가 재입력을 요구한다는
것을 알려준다. 그러면 InputAmountUI가 다시 한번 실행 될 것이다.
ReadyUI
지금까지 메세지를 서버로 보내고 그 응답을 기다리는 동안 나오는 UI이다. 다른 UI와
는 달리 사용자의 입력을 받는 부분이 없고, NextStep이 public으로 설정되어 ATM에
서 다음과정으로 넘어갈지 판단하게 된다.
ResultUI
결과를 보여주는 UI이다. 성공적으로 처리되었다면 메시지에 있는 값들에 따라 거래내
역을 보여주며, 오류가 났을 경우에는 메시지의 Signal 필드에 들어있는 오류 코드에
따른 문장을 표시한다. 사용자로부터 '확인'을 받으면 NextStep()을 통해 첫 과정인
ID_UI로 돌아간다.
HW
P2PDF
PRE
HW
P2PDF
PREVIEW
HW
P2PD
HW
P2PDF
PREVIEW
HW
P2PDF
PR
W
P2PDF
PREVIEW
H
5.2 behavior
5.2.1 subsystem sequence diagram
HW
P2PDF
PRE
HW
P2PDF
PREVIEW
HW
P2PD
HW
P2PDF
PREVIEW
HW
P2PDF
PR
W
P2PDF
PREVIEW
H
5.2.2 activity diagram
5.3 interfaces
ID_UI 인터페이스
키보드나 우측의 키패드 버튼을 통해 Account와 PIN을 입력받는다.
확인 버튼을 누르면 다음 단계(NextStep)로 넘어간다.
HW
P2PDF
PRE
HW
P2PDF
PREVIEW
HW
P2PD
HW
P2PDF
PREVIEW
HW
P2PDF
PR
W
P2PDF
PREVIEW
H
SelectTaskUI
각 업무에 해당되는 버튼을 누르면 다음단계로 넘어간다.
취소를 누르면 처음으로 돌아간다.
InputAmountUI
키보드나 우측의 키패드를 통해 거래금액을 입력받는다.
확인을 누르면 다음단계에, 취소를 누르면 첫 단계로 돌아간다.
HW
P2PDF
PRE
HW
P2PDF
PREVIEW
HW
P2PD
HW
P2PDF
PREVIEW
HW
P2PDF
PR
W
P2PDF
PREVIEW
H
ConfirmUI
사용자가 선택한 거래의 종류와 거래 금액을 확인받는다.
확인을 누르면 다음단계에, 취소를 누르면 첫 단계로 돌아간다.
ReadyUI
특별히 사용자로부터의 입력을 받지는 않고, 메인모듈에서 처리가 완료되었을 때 다음 단계
로 넘어갈 수 있게 NextStep 메소드가 호출된다.
HW
P2PDF
PRE
HW
P2PDF
PREVIEW
HW
P2PD
HW
P2PDF
PREVIEW
HW
P2PDF
PR
W
P2PDF
PREVIEW
H
ResultUI
처리된 거래의 종류와 거래 금액의 결과를 보여준다.
확인을 누르면 첫 단계(ID_UI)로 넘어간다.
6. other considerations
6.2 test plan
당초 예정대로라면 현 9주차에 구현이 완료되어 있어야 하지만 아직 그렇게 되지 못하였
다. 구현일정을 1주일 더 늘려 이번 주까지 구현을 완료하고 모듈 통합 역시 구현 진척도에
따라 가능하면 이번 주 내로 들어가도록 한다. 각자 맡기로 한 서브시스템별 테스트도 이
시점에서 시행된다. 그리고 적어도 10주차 초까지는 통합한 모듈이 잘 돌아가는지 테스트를
HW
P2PDF
PRE
HW
P2PDF
PREVIEW
HW
P2PD
HW
P2PDF
PREVIEW
HW
P2PDF
PR
W
P2PDF
PREVIEW
H
진행할 것이다. 테스트는 모듈별 통신을 통한 메시지 교환과정을 중점으로 하여 진행 될 것
이다. 10주차 까지 테스트를 완료한다.
6.2 plan for changes
당초에는 요구사항 변경이 되었을 때 유연하게 시스템을 수정할 수 있도록 마지막 주를
예비로 남겨두었다. 하지만 예상보다 일정이 늦어져 버렸기 때문에 10주차에 그에 따른 시
스템 수정이 있을 것이며, 11주차 까지 모든 테스트를 종료하며 프로젝트를 완성하도록 한
다.
HW
P2PDF
PRE
HW
P2PDF
PREVIEW
HW
P2PD
HW
P2PDF
PREVIEW
HW
P2PDF
PR
W
P2PDF
PREVIEW
H

More Related Content

More from Daniel Shin

인터넷 오락실게임 사업계획서_20230320v2.doc
인터넷 오락실게임 사업계획서_20230320v2.doc인터넷 오락실게임 사업계획서_20230320v2.doc
인터넷 오락실게임 사업계획서_20230320v2.docDaniel Shin
 
덴티스 면접 포트폴리오_신동인v1.docx
덴티스 면접 포트폴리오_신동인v1.docx덴티스 면접 포트폴리오_신동인v1.docx
덴티스 면접 포트폴리오_신동인v1.docxDaniel Shin
 
C언어강의 발표자료 1강.pptx
C언어강의 발표자료 1강.pptxC언어강의 발표자료 1강.pptx
C언어강의 발표자료 1강.pptxDaniel Shin
 
포인터와 참조_20220908v2_신동인.pptx
포인터와 참조_20220908v2_신동인.pptx포인터와 참조_20220908v2_신동인.pptx
포인터와 참조_20220908v2_신동인.pptxDaniel Shin
 
resume20220510v3.pptx
resume20220510v3.pptxresume20220510v3.pptx
resume20220510v3.pptxDaniel Shin
 
미니메타버스v5.pptx
미니메타버스v5.pptx미니메타버스v5.pptx
미니메타버스v5.pptxDaniel Shin
 
카툰월드기획서.pptx
카툰월드기획서.pptx카툰월드기획서.pptx
카툰월드기획서.pptxDaniel Shin
 
프로젝트_성공하는_법.pptx
프로젝트_성공하는_법.pptx프로젝트_성공하는_법.pptx
프로젝트_성공하는_법.pptxDaniel Shin
 
3D카툰메이커 완료세미나(복구됨)
3D카툰메이커 완료세미나(복구됨)3D카툰메이커 완료세미나(복구됨)
3D카툰메이커 완료세미나(복구됨)Daniel Shin
 
3D 기술 세미나2주차
3D 기술 세미나2주차3D 기술 세미나2주차
3D 기술 세미나2주차Daniel Shin
 
백업을 위한 USB운영체제 완료세미나
백업을 위한 USB운영체제 완료세미나백업을 위한 USB운영체제 완료세미나
백업을 위한 USB운영체제 완료세미나Daniel Shin
 
통한의원 안드로이드앱 기획서
통한의원 안드로이드앱 기획서통한의원 안드로이드앱 기획서
통한의원 안드로이드앱 기획서Daniel Shin
 
ASP.NET의 이해
ASP.NET의 이해ASP.NET의 이해
ASP.NET의 이해Daniel Shin
 
한국사RPG 사업기획서 신동인
한국사RPG 사업기획서 신동인한국사RPG 사업기획서 신동인
한국사RPG 사업기획서 신동인Daniel Shin
 
메트릭스 사업계획서 신동인
메트릭스 사업계획서 신동인메트릭스 사업계획서 신동인
메트릭스 사업계획서 신동인Daniel Shin
 
Rain Rendering 2/2
Rain Rendering 2/2Rain Rendering 2/2
Rain Rendering 2/2Daniel Shin
 
기술 명세서
기술 명세서기술 명세서
기술 명세서Daniel Shin
 
인공지능수업 발표자료
인공지능수업 발표자료인공지능수업 발표자료
인공지능수업 발표자료Daniel Shin
 

More from Daniel Shin (20)

인터넷 오락실게임 사업계획서_20230320v2.doc
인터넷 오락실게임 사업계획서_20230320v2.doc인터넷 오락실게임 사업계획서_20230320v2.doc
인터넷 오락실게임 사업계획서_20230320v2.doc
 
덴티스 면접 포트폴리오_신동인v1.docx
덴티스 면접 포트폴리오_신동인v1.docx덴티스 면접 포트폴리오_신동인v1.docx
덴티스 면접 포트폴리오_신동인v1.docx
 
C언어강의 발표자료 1강.pptx
C언어강의 발표자료 1강.pptxC언어강의 발표자료 1강.pptx
C언어강의 발표자료 1강.pptx
 
포인터와 참조_20220908v2_신동인.pptx
포인터와 참조_20220908v2_신동인.pptx포인터와 참조_20220908v2_신동인.pptx
포인터와 참조_20220908v2_신동인.pptx
 
resume20220510v3.pptx
resume20220510v3.pptxresume20220510v3.pptx
resume20220510v3.pptx
 
미니메타버스v5.pptx
미니메타버스v5.pptx미니메타버스v5.pptx
미니메타버스v5.pptx
 
카툰월드기획서.pptx
카툰월드기획서.pptx카툰월드기획서.pptx
카툰월드기획서.pptx
 
STL.doc
STL.docSTL.doc
STL.doc
 
프로젝트_성공하는_법.pptx
프로젝트_성공하는_법.pptx프로젝트_성공하는_법.pptx
프로젝트_성공하는_법.pptx
 
3D카툰메이커 완료세미나(복구됨)
3D카툰메이커 완료세미나(복구됨)3D카툰메이커 완료세미나(복구됨)
3D카툰메이커 완료세미나(복구됨)
 
3D 기술 세미나2주차
3D 기술 세미나2주차3D 기술 세미나2주차
3D 기술 세미나2주차
 
백업을 위한 USB운영체제 완료세미나
백업을 위한 USB운영체제 완료세미나백업을 위한 USB운영체제 완료세미나
백업을 위한 USB운영체제 완료세미나
 
통한의원 안드로이드앱 기획서
통한의원 안드로이드앱 기획서통한의원 안드로이드앱 기획서
통한의원 안드로이드앱 기획서
 
ASP.NET의 이해
ASP.NET의 이해ASP.NET의 이해
ASP.NET의 이해
 
한국사RPG 사업기획서 신동인
한국사RPG 사업기획서 신동인한국사RPG 사업기획서 신동인
한국사RPG 사업기획서 신동인
 
메트릭스 사업계획서 신동인
메트릭스 사업계획서 신동인메트릭스 사업계획서 신동인
메트릭스 사업계획서 신동인
 
PC게임마켓
PC게임마켓PC게임마켓
PC게임마켓
 
Rain Rendering 2/2
Rain Rendering 2/2Rain Rendering 2/2
Rain Rendering 2/2
 
기술 명세서
기술 명세서기술 명세서
기술 명세서
 
인공지능수업 발표자료
인공지능수업 발표자료인공지능수업 발표자료
인공지능수업 발표자료
 

0_소공 디자인.pdf ATM디자인 설계 문서 경북대학교 2024년 2월 20일 게시

  • 1. 5.1 ATM 5.1.1 Structure 5.1.1 class diagram 5.1.2 data dictionary Message 구조체 5.1.3 attributes and operations ATM 이 ATM 시스템의 메인 클래스이다. m_Msg 거래 정보가 담긴 메시지 m_Seq 현재 어떤 과정을 수행하고 있는지에 대한 정보 m_ID User의 ID(계좌번호) m_PWD User의 암호 m_Amount 돈(거래량) Signal 거래 종류 혹은 오류코드 정보 Bankcode 은행 식별 코드 Account 계좌번호 Password 암호 Cash 돈(거래량) HW P2PDF PRE HW P2PDF PREVIEW HW P2PD HW P2PDF PREVIEW HW P2PDF PR W P2PDF PREVIEW H
  • 2. m_Seq 맴버 변수는 현재의 작업 상태를 나타내어 준다. 이 변수의 번호에 따라 그 작 업에 해당하는 UI화면을 띄운다. m_Msg 맴버 변수는 메시지이다. ATM을 통해서 각 UI들이 메시지를 공유하게 된다. Process 메소드에서 m_Seq와 m_Msg에 따라 어떤 UI를 택하여 화면에 찍을 것인지 판단한다. 과정 중에서 은행과의 통신이 필요한 경우 MessageProc클래스를 호출하기도 한다. 이 ATM 클래스에 각 UI클래스가 속하게 된다. Message 구조체 메시지는 하나의 규격으로 만들어서 각 과정끼리는 물론 은행서버와의 커뮤니케이션에 도 이용된다. 이는 Signal, Bankcode, Account, Password, Cash로 구성되어 있다. MessageProc 이는 은행 서버와의 메시지 교환을 담당하는 클래스이다. 은행과는 실시간으로 정보를 교환할 필요가 있으므로 별도의 쓰레드를 사용한다. m_Msg는 메시지 큐로 서버로부터 오는 메시지를 순차적으로 저장하는데 이용된다. SendMessage 메소드는 매개변수로 받은 Msg를 서버로 전송한다. MsgLoop메소드에서 루프를 돌면서 GetMessage() 메소드에서 서버로부터의 메시지를 확인하고 메시지가 있다면 메시지 큐에 메시지를 저장하게 된다. 우선 모든 UI클래스에서 공통으로 나오는 맴버 변수/함수부터 살펴보기로 한다. m_Msg는 메시지 맴버 변수다. 이는 포인터 형으로 선언되며 ATM가 UI의 SetMessage()메소드를 호출함으로써 값이 주어진다. 한 싸이클을 돌아가면서 메시지의 속성들이 채워지게 되므로, 메시지는 ATM메인에서 하나를 만들어 두고 각 과정의 UI를 로드할 때 마다 SetMessage 메소드를 호출하여 각 UI의 m_Msg속성으로 하여금 이 하나의 메시지의 주소를 참조케 한다. NextStep()은 대체로 확인 버튼을 눌렀을때 호출이 되는 메소드로, UI에서 입력받은 해당되는 값을 m_Msg 변수에 기록하고 다음 과정으로 넘어갈 수 있게끔 그 과정의 UI 를 종료한다. Cancel()은 사용자가 '취소'하면 호출되는 메소드로, 메시지를 초기화 한뒤 UI를 첫 과 정인 ID_UI로 되돌린다. ID_UI ID와 패스워드 입력 화면의 UI이다. 사용자의 입력으로 받게 되는 ID와 패스워드는 m_ID, m_PWD 맴버 변수에 저장되며, 사용자에게 '확인'을 받으면 NextStep메소드에서 m_ID와 m_PWD값을 메시지의 Account와 PWD필드에 넣는다. HW P2PDF PRE HW P2PDF PREVIEW HW P2PD HW P2PDF PREVIEW HW P2PDF PR W P2PDF PREVIEW H
  • 3. SelectTaskUI 조회/입금/출금 등의 업무를 선택하는 화면이다. 사용자가 어떤 업무를 선택하면 그 업 무에 따라 TaskDeposit(), TaskWithdrawal(), TaskInquiry()가 호출되어 해당되는 업 무 코드를 메시지의 Signal필드에 넣는다. 업무중 조회를 선택했을 경우 InputAmountUI와 ConfirmUI 과정이 생략된다. InputAmountUI 사용자로부터 받은 입력인 거래 금액은 m_Amount 맴버 변수에 저장된다. 사용자에게 ' 확인'을 받으면 NextStep() 메소드가 실행되어 m_Amount값이 메시지의 Cash필드에 저장된다. ConfirmUI 메시지에서 Cash필드를 읽어내어 앞에서 입력받은 금액이 맞는지 확인한다. 사용자에게 '확인'을 받으면 NextStep() 메소드를 통해 다음 과정으로 진행되고, CancelButton이 눌러지면 Cash필드를 0으로 해놓아서 ATM Process에서 유저가 재입력을 요구한다는 것을 알려준다. 그러면 InputAmountUI가 다시 한번 실행 될 것이다. ReadyUI 지금까지 메세지를 서버로 보내고 그 응답을 기다리는 동안 나오는 UI이다. 다른 UI와 는 달리 사용자의 입력을 받는 부분이 없고, NextStep이 public으로 설정되어 ATM에 서 다음과정으로 넘어갈지 판단하게 된다. ResultUI 결과를 보여주는 UI이다. 성공적으로 처리되었다면 메시지에 있는 값들에 따라 거래내 역을 보여주며, 오류가 났을 경우에는 메시지의 Signal 필드에 들어있는 오류 코드에 따른 문장을 표시한다. 사용자로부터 '확인'을 받으면 NextStep()을 통해 첫 과정인 ID_UI로 돌아간다. HW P2PDF PRE HW P2PDF PREVIEW HW P2PD HW P2PDF PREVIEW HW P2PDF PR W P2PDF PREVIEW H
  • 4. 5.2 behavior 5.2.1 subsystem sequence diagram HW P2PDF PRE HW P2PDF PREVIEW HW P2PD HW P2PDF PREVIEW HW P2PDF PR W P2PDF PREVIEW H
  • 5. 5.2.2 activity diagram 5.3 interfaces ID_UI 인터페이스 키보드나 우측의 키패드 버튼을 통해 Account와 PIN을 입력받는다. 확인 버튼을 누르면 다음 단계(NextStep)로 넘어간다. HW P2PDF PRE HW P2PDF PREVIEW HW P2PD HW P2PDF PREVIEW HW P2PDF PR W P2PDF PREVIEW H
  • 6. SelectTaskUI 각 업무에 해당되는 버튼을 누르면 다음단계로 넘어간다. 취소를 누르면 처음으로 돌아간다. InputAmountUI 키보드나 우측의 키패드를 통해 거래금액을 입력받는다. 확인을 누르면 다음단계에, 취소를 누르면 첫 단계로 돌아간다. HW P2PDF PRE HW P2PDF PREVIEW HW P2PD HW P2PDF PREVIEW HW P2PDF PR W P2PDF PREVIEW H
  • 7. ConfirmUI 사용자가 선택한 거래의 종류와 거래 금액을 확인받는다. 확인을 누르면 다음단계에, 취소를 누르면 첫 단계로 돌아간다. ReadyUI 특별히 사용자로부터의 입력을 받지는 않고, 메인모듈에서 처리가 완료되었을 때 다음 단계 로 넘어갈 수 있게 NextStep 메소드가 호출된다. HW P2PDF PRE HW P2PDF PREVIEW HW P2PD HW P2PDF PREVIEW HW P2PDF PR W P2PDF PREVIEW H
  • 8. ResultUI 처리된 거래의 종류와 거래 금액의 결과를 보여준다. 확인을 누르면 첫 단계(ID_UI)로 넘어간다. 6. other considerations 6.2 test plan 당초 예정대로라면 현 9주차에 구현이 완료되어 있어야 하지만 아직 그렇게 되지 못하였 다. 구현일정을 1주일 더 늘려 이번 주까지 구현을 완료하고 모듈 통합 역시 구현 진척도에 따라 가능하면 이번 주 내로 들어가도록 한다. 각자 맡기로 한 서브시스템별 테스트도 이 시점에서 시행된다. 그리고 적어도 10주차 초까지는 통합한 모듈이 잘 돌아가는지 테스트를 HW P2PDF PRE HW P2PDF PREVIEW HW P2PD HW P2PDF PREVIEW HW P2PDF PR W P2PDF PREVIEW H
  • 9. 진행할 것이다. 테스트는 모듈별 통신을 통한 메시지 교환과정을 중점으로 하여 진행 될 것 이다. 10주차 까지 테스트를 완료한다. 6.2 plan for changes 당초에는 요구사항 변경이 되었을 때 유연하게 시스템을 수정할 수 있도록 마지막 주를 예비로 남겨두었다. 하지만 예상보다 일정이 늦어져 버렸기 때문에 10주차에 그에 따른 시 스템 수정이 있을 것이며, 11주차 까지 모든 테스트를 종료하며 프로젝트를 완성하도록 한 다. HW P2PDF PRE HW P2PDF PREVIEW HW P2PD HW P2PDF PREVIEW HW P2PDF PR W P2PDF PREVIEW H