Software Modeling & Analysis Global ATM System -Stage 2040. Design- Project Team 1 Team Date 2018-05-09 Team Information 201311287 엄현식 201311318 최정헌 201611293 전다윤 목차 1 Activity 2141 Design Real Use Cases... 3 1.1 Check... 3 1.2 Deposit... 4 1.3 Withdraw... 5 1.4 Transfer... 5
1.5 Issue TrafficCard... 6 1.6 Management... 7 2 Activity 2142 Define Reports, UI, and Storyboards... 8 2.1. window-1... 8 2.2 Window-2... 8 2.3 Window-3... 9 2.4 Window-4... 9 2.5 Window-5... 10 2.6 Window-6... 11 2.7 window -7... 11 2.8 Window-8... 12 2.9 Window-9... 12 2.10 Window-10... 13 2.11 Window-11... 14 3 Activity 2043 Refine System Architecture... 14 4 Activity 2044 Define Interaction Diagrams... 15 4.1 Check... 15 4.2 Deposit... 15 4.3 Withdraw... 16 4.4 Transfer... 17 4.5 Issue TrafficCard... 18 4.6 Management... 19 5 Activity 2045 Define Design Class Diagrams... 20 6 Activity 2046 Design Traceability Analysis... 21
1 Activity 2141 Design Real Use Cases 1.1 Check Use Case 1. Check Actors User Purpose User 의계좌잔액이얼마인지확인한다. Overview Type Cross Reference Pre-Requisites UI Widgets User 가읽힌 Item 에맞는계좌에잔액이얼마인지은행으로부터가져와서 User 에게보여준다. Primary and Essential System Functions: R.2.2 Use Cases: Status Alarm User 의사용의사표현, 올바른 Item 삽입 Window-1, Window-2,window-3.,window-4 Typical Courses of Events (A) : Actor / (S) : System 1. (S) 본인인증절차를진행한다. 2. (S) 인증에성공한경우, 은행으로부터해당계좌의잔액을가져온다. 3. (S) Item 을반환한다. 4. (S) 사용자에게잔액을보여준다. 5. (A) 잔액을확인한다. 6. (S) 명세표를출력할지물어본다. 7. (A) 명세표를출력할지선택한다. 8. (S) 명세표출력용지가충분한지선택한다.
Alternative Courses of Events Exceptional Courses of Events E0. 한국계좌의경우한국어모드, 해외계좌일경우외국어모드 E1. 다른거래선택 E7. 명세표출력시, 계좌잔액출력 / 미출력시다음단계. E1. 인증에실패한경우, 종료한다 E8. 명세표출력용지가부족할경우알림을발생시킨다. 1.2 Deposit Use Case Actors 2. Deposit User Purpose User 가소지한지폐 ( 한화 / 달러 ) 를계좌에입금한다. Overview Type Cross Reference Pre-Requisites UI Widgets User 가읽힌 Item 에맞는계좌에 User 가삽입한지폐액수만큼의금액을입금시켜준다. Primary and Essential System Functions: R.2.0, R.2.2 Use Cases: Update, Status Alarm User 의사용의사표현, 올바른 Item 삽입 ATM 적정현금보유 Window-1, Window-2,window-3., window-5 Typical Courses of Events Alternative Courses of Events (A): Actor, (S): System 1.(S) 현금투입구를개방한다. 2.(A) 지폐를투입구에넣고투입구폐쇄를요청한다. 3.(S) 현금투입구를닫는다. 4.(S) 유효한현금인지검사한다. 5.(S) 계좌에해당금액을입금한다. 6.(S) Item 을반환한다. 7.(S) 거래내역을보여주고, 명세표를원하는지물어본다. 8.(A) 거래내역을확인하고, 명세표를출력할지선택한다. 9.(S) ATM 현금보유량이충분한지확인한다. 10. (S) 명세표출력용지가충분한지선택한다. E0. 한국계좌의경우한국어모드, 해외계좌일경우외국어모드 E0. 다른거래선택 E8. 명세표출력시거래내역출력 / 미출력시다음단계. Use Case E0. ATM 보유현금이초과되었을경우종료한다. E2. 사용자가폐쇄요청을하지않을경우, 일정시간후에안내후자동폐쇄한다. E4. 유효한현금이아닐경우, 반환후종료한다. E9. 현금보유량이많을경우알림을발생시킨다. E10. 명세표출력용지가부족할경우알림을발생시킨다.
1.3 Withdraw Use Case 3. Withdraw Actors User Purpose User 가필요한현금을인출한다. Overview User 의본인계좌임을확인후, 원하는금액만큼현금 ( 한화 / 달러 ) 을 인출한다. Type Cross Reference Pre-Requisites UI Widgets Typical Courses of Events Use Case Primary and Essential System Functions: R.2.0, R.2.1, R.2.2 Use Cases: Update, Verify Sufficient Fund, Status Alarm User 의사용의사표현, 올바른 Item 삽입, ATM 적정현금보유 Window-1, Window-2,window-3.,window-4,window-6, window-8 (A): Actor, (S): System 1.(S) 본인확인을한다. 2.(S) 출금하고자하는지폐의종류선택을요청한다. 3.(A) 한화 / 달러중 1 가지종류의지폐를선택한다. 4.(S) 원하는액수입력을요청한다. 5.(A) 원하는출금금액을입력한다. 6.(S) 올바른금액이입력되었는지확인한다. 7.(S) 현금을꺼낸뒤, Item 을반환한다. 8.(A) Item 을회수한다. 9.(S) 현금투입구를개방한다. 10.(A) 현금을인출한다. 11.(S) 인출후투입구를폐쇄한다. 12.(S) 거래내역을보여주고, 명세표를원하는지물어본다. 13.(A) 거래내역을확인하고, 명세표를출력할지선택한다. 14.(S) ATM 현금보유량이충분한지확인한다. 15.(S) 명세표출력용지가충분한지선택한다. E0. 한국계좌의경우한국어모드, 해외계좌일경우외국어모드 E0. 다른거래선택 E11. 명세표출력시, 거래내역출력 / 미출력시다음단계. Actors E1. 본인확인실패시, 종료한다. E5. 계좌잔액부족시, 종료한다. E11. 현금인출이일정시간동안이루어지지않는경우투입구를폐쇄하고다시입금한다. E14. 현금보유량이부족할경우알림을발생시킨다. E15. 명세표출력용지가부족할경우알림을발생시킨다. 1.4 Transfer Use Case 4. Transfer Actors User Purpose User 가자신의계좌로부터타계좌로송금한다. Overview User 본인확인후, 수신계좌정보를입력하고, 원하는금액을송금한다. Type Primary and Essential
Cross Reference Pre-Requisites System Functions: R.2.0, R.2.1 Use Cases: Update, Verify Sufficient Fund User 의사용의사표현, 올바른 Item 삽입 UI Widgets Window-1, Window-2,window-3.,window-4.,window-7.,window-8 Typical Courses of Events Alternative Courses of Events Exceptional Courses of Events (A): Actor, (S): System 1.(S) 본인확인을진행한다. 2.(S) 수신계좌정보입력을요청한다. 3.(A) 수신계좌정보를입력한다. 4.(S) 수신계좌를확인한다. 5.(A) 수신계좌를확인한다. 6.(S) 송금액입력을요청한다. 7.(A) 원하는송금금액을입력한다. 8.(S) 올바른금액이입력되었는지확인한다. 9.(S) 송금한다. 10.(S) Item 을반환한다. 11.(S) 거래내역을보여주고, 명세표를원하는지물어본다. 12.(A) 거래내역을확인하고, 명세표를출력할지선택한다. 13.(S) 명세표출력용지가충분한지선택한다. E0. 한국계좌의경우한국어모드, 해외계좌일경우외국어모드 E0. 다른거래선택 E12. 명세표출력시, 거래내역출력 / 미출력시다음단계. E1. 본인확인실패시, 종료한다. E4. 올바르지않은계좌정보일경우종료한다. E8. 계좌잔액부족시, 종료한다. E13. 명세표출력용지가부족할경우알림을발생시킨다. 1.5 Issue TrafficCard Use Case Actors 5. Issue TrafficCard User Purpose User 의계좌와연동된선불식교통카드를발급한다. Overview User 본인확인후, 해당계좌와연동된선불식교통카드를발급한다. Type Cross Reference Primary and Essential System Functions: R.2.0, R.2.1, R.2.2 Use Cases: Update, Verify Sufficient Fund, Status Alarm Pre-Requisites UI Widgets User 의사용의사표현, 올바른 Item 삽입, ATM 적정교통카드보유 Window-1, Window-2,window-3.,window-4,window-9
Typical Courses of Events Alternative Courses of Events Exceptional Courses of Events (A): Actor, (S): System 1.(S) 본인확인을진행한다. 2.(S) 교통카드사용기간입력을요청한다. 3.(A) 교통카드사용기간을입력한다. 4.(S) 교통카드발급비용및관련안내사항숙지를확인한다. 5.(A) 교통카드발급안내사항을숙지하고발급을요청한다. 6.(S) 계좌에서발급비용을차감한다. 7.(S) Item 을반환한다. 8.(S) 교통카드를발급한다. 9.(S) 거래내역을보여주고, 명세표를원하는지물어본다. 10.(A) 거래내역을확인하고, 명세표를출력할지선택한다. 11.(S) ATM 교통카드보유량이충분한지확인한다. 12.(S) 명세표출력용지가충분한지선택한다. E0. 한국계좌의경우한국어모드, 해외계좌일경우외국어모드 E0. 다른거래선택 E10. 명세표출력시, 거래내역출력 / 미출력시다음단계. E1. 본인확인실패시종료한다. E5. 안내사항숙지확인을거절할경우종료한다. E6. 계좌잔액부족시, 종료한다 E11. 교통카드가부족할경우알림을발생시킨다. E12. 명세표출력용지가부족할경우알림을발생시킨다. 1.6 Management Use Case 9. Management Actor Admin Purpose Admin 이 ATM 의현금 / 교통카드 / 명세표출력용지를관리한다. Overview 관리자임을확인한후, ATM 의현금 / 교통카드 / 명세표출력용지를관리할 수있도록한다. Type Optional Cross Reference Pre-Requisites UI Widgets
Typical Courses of Events (A): Actor (S):System 1. (A) 관리자임을인증한다. 2. (S) ATM 의현금 / 교통카드 / 명세표출력용지저장소를개방한다. Alternative Courses of Events Exceptional Courses of Events E1. 잘못된접근의경우, 담당은행지점및관리자에게알림을발생시킨다. 2 Activity 2142 Define Reports, UI, and Storyboards 2.1. window-1 카드 / 통장삽입 ( 초기화면 ) 2.2 Window-2 로딩화면
2.3 Window-3 서비스선택 2.4 Window-4 비밀번호입력
2.5 Window-5 현금입금
2.6 Window-6 출금지폐선택 2.7 송금대상정보입력
2.8 Window-8 금액입력 2.9 Window-9 교통카드사용기간입력
2.10 Window-10 교통카드결제및계좌연동동의
2.11 Window-11 명세표출력여부선택 3 Activity 2043 Refine System Architecture
4 Activity 2044 Define Interaction Diagrams 4.1 Check 4.2 Deposit
4.3 Withdraw
4.4 Transfer
4.5 Issue TrafficCard
4.6 Management
5 Activity 2045 Define Design Class Diagrams
6 Activity 2046 Design Traceability Analysis
Operation in Sequence diagram Operation in interaction diagram Method Class 1. readitem(account) readitem(itemtype, item ID, accountid) readitem(itemtype : int, itemid : int, bankid : int, accountid : int): i ATM 2. selectservice(service) validcheck(itemtype,itemid,accountid) selectservice(service : int ): void ATM 3. confirm(password) getitemid(type) selectnation(nation : int):int ATM 4. insertcash(type,amount) getcid(void) confirm(itemtype : int, pwd : int):int ATM 5. selectmoneytype(type) getbid(void) insertcash(bill : String[1 *]):int ATM 6. enteramounts(amounts) seleceservice(service) enteramount(money : int):int ATM 7. destaccount(bank,account) confirm(itemtype,pwd) printreceipt(wants : boolean) : int ATM 8. setdatarange(data_range) confirm(pwd) setdataranger(data_range : int):void ATM 9. agrrement(approval) getpwd(void) agreement() : boolean ATM 10. printreceipt(print) getcardpwd(void) destaccount(bankid : int, accountid : int) : int ATM 11. readmanagementitem(id) getbookpwd(void) getadminid():int ATM 12. end() insertcash(bill) checkresource() : int ATM deposit(money) getbalance() : int AYM setbalance(money) end(): void ATM selectnation(nation) enteramount(money) validcheck(itemtype : int,itemtype : intemid : int) : int Bank withdraw(money,accountid) confirm(pwd:int) : int Bank getbalance(void) getbalance(tcid :int) : int Bank setbalance(money) checkaccount(bankid : int, accountid : int) : String Bank destaccount(bankid,accountid) linkaccount(tcid : int):string Bank checkaccount(bankid,accountid) transfer(money :int, accountdest : int,accountsend : int) : int Bank getname(void) withdraw(money : int. accountid : int) : int Bank setdaterange(date_range) deposit (money : int, accountid : int) : int Bank setdaterange(date_range) gettcid() : int TrafficCard gettcid(void) setdatarange(end_date : int) : void TrafficCard linkaccount(tcid) setaccointid(accountid : int) :void TrafficCard addlink(tcid) getcid() :int Card chargetrafficcard(money) getcardpwd() :int Card getbalance(void) getbid () : int Book setbalance(money) getbookpwd() : int Book setaccountid(accountid) getitemid(itemtype : int) : int Account printreceipt(wants) getpwd(itemtype : int) :int Account getbalance(void) getbalance() : int Account getadminid(void) setbalance(money : int) : void Account end(void) addlink(tcid : int): int Account getbalance(void) getname() : String Account checkresource(void) agreement()