A New Reliable ATM OOPT Stage 1000 Plan and Elaboration Project Team T6 201411140 권성완 201511247 김선정 201510436 허윤아 201510285 조수빈 Date 2018-05-30 1
Activity 1001. Define Draft Plan 1. Motivation 기술의발전으로인하여현금보다카드를많이사용하게되어사람들이현금을많이갖고다니지않게되었다. 하지만급하게현금이필요한경우가여전히종종남아있어 ATM 기기의필요성은더욱증대되어이프로그램을개발하게되었다. 이시스템을통하여고객들은현금입출금서비스뿐만아니라대출, 공과금납부, 환전등다양한업무들을은행을가지않고도이용할수있게될것이다. 2. Project Objectives & Scope - 은행에가지않고간단한은행업무를볼수있다. - 현금서비스를이용할수있다. 3. Functional Requirements - Deposit - Deposit without Bankbook - Withdraw - Transfer - Exchange - Loan - Pay Utility Bill - Check Balance - Take charge - Insert - Check Validation - Check Password - Update Database - Print Error - Print Transaction Receipt 4. Non-functional Requirements 2
- 실제프로그램을 ATM에도입할경우, 24시간동안구동될시스템이므로안정적으로설계한다. - 돈과관련된정보를다루므로정보가정확해야한다. - 환전시환율은국가마다다르다. - 환전가능한외화는엔화, 위안화, 달러, 유로로총네종류이다. - 시스템에대한컴퓨터상에서의시뮬레이션이므로모든입력은키보드와마우스를통해이루어진다. - ATM에들어있는현금은무한대라고가정한다. 5. Resource Estimation - Human Efforts(Man-Month) : 4 3months - Project Duration : 12 weeks - Other Efforts : 좋은학점을향한집념, 조원들의협동심 6. Other Information N/A 3
Activity 1002. Preliminary Investigation Report 1. Alternative Solutions - 기존의잘짜여진시스템을구매한다 - 다른소프트웨어개발회사에의뢰한다. 2. Project Justification (Business Demands) - Cost : 시중의제품보다저렴하게개발할수있다 ( 인력비감소 ). - Duration : 회사에의뢰했을때보다짧은시간내에개발이가능하다. - Risk : 숙달되지않은개발자들의개발로인해에러가발생할수있고, 이로인해 requirement를충족시키지못할수있다. - Effect : requirement를직접짜구현할수있고, 노력으로비용을감소시킬수있다. 3. Risk Management Risk Probability Significance Weight Lack of JAVA Experience 3 4 12 Lack of UML Experience 3 4 12 Lack of domain knowledge 3 4 12 Lack of GUI Experience 3 4 12 Lack of Time 2 2 4 Lack of Sleep 2 2 4 4. Risk Reduction plan - Lack of Java Experience (12) : JAVA 언어에관한책을통해공부한다. - Lack of UML Experience (12) : 강의시간에배운내용을복습하고팀원끼리서로알려준다. - Lack of domain knowledge (12) : domain diagram을통해 domain에대한이해도를늘린다. 평소 ATM기를사용했던경험을떠올리며작업한다. - Lack of GUI Experience (12) : 책과우리의친구구글에게도움을요청한다. - Lack of Time (4) : 고학년들의고질적인문제로부족한시간은여가시간등을줄여서채운다. - Lack of sleep (4) : 어느정도감수할부분으로개인이체력관리에힘쓴다. 4
5. Market Analysis - 이미상용화되어있는 ATM들이많이있으므로이를참조할수있으나, 개발의필요성이줄어든다. - 상용화되어있는 ATM들의기능이다양하므로, 이를차용한다. 6. Other Managerial Issues - 홈페이지에기재된개발일정에맞추어작업한다. 5
Activity 1003. Define Requirements 1. Functional Requirements (Version 3.0) - Deposit 고객은체크카드또는통장을이용해자신의계좌에현금을입금한다. 신용카드를통해입금할경우이전에대출 (loan) 기록이있을때해당신용카드의대출금액에서입금한금액만큼자동으로갚아진다. ATM이처리할수있는금액의단위는만원, 5만원단위이다. - Deposit without bankbook 고객은입금하려는계좌번호를정확히알고있을경우무통장입금을할수있다. 만약계좌번호가정확하지않을경우, 거래는진행되지않는다. ATM이처리할수있는금액의단위는만원, 5만원단위이다. - Withdraw 고객은카드또는통장을이용해자신의계좌에서현금을인출한다. 출금시고객은계좌의비밀번호를알고있어야한다. 비밀번호가정확하지않을경우거래는진행되지않는다. ATM이처리할수있는금액의단위는만원, 5만원단위이다. - Transfer 고객은카드또는통장을이용해자신의계좌에서돈을송금할수있다. 송금시에는정확한상대방의계좌번호와, 자신의계좌의비밀번호를알고있어야한다. 계좌번호와비밀번호가정확하지않을경우거래는진행되지않는다. - Exchange 환율에따라고객이원하는원화에서국가의현금으로환전해준다. 환율은국가마다상이하다. 환전시현금이아닌, 고객본인의카드또는통장이있어야한다. ATM이처리할수있는금액의단위는만원, 5만원단위이다. - Loan 고객의신용카드한도내에서현금을인출할수있는기능으로, 고객은신용카드의비밀번호를알고있어야한다. ATM이처리할수있는금액의단위는만원단위이다. - Pay Utility Bill 고객은지로고지서를입력해, 체크카드혹은통장을통해공과금을납부한다. 고객은계좌의비밀번호를알고있어야한다. 6
- Check Balance 고객은카드또는통장을이용해해당계좌의최근거래내역과각각의거래내역에따른잔고를조회할수있다. 고객은계좌의비밀번호를알고있어야한다. 조회후고객이확인버튼을누르면초기화면으로돌아간다. - Take Charge 환전, 타행송금, 대출과정에서수수료를부과한다. 등급에따라면제될수있다. - Print Transaction Receipt 모든 process를종료한이후 DB를업데이트하기전에거래명세서를출력한다. - Insert 고객은카드또는통장을투입하고, 거래를시작한다. - Check Validation ATM은 offer에게고객의정보를요청하여투입된카드또는통장의정보가유효한지확인한다. - Check Password ATM은 Offer 서버에정보를요청해, 고객이입력한계좌또는신용카드의비밀번호가기존에등록된것과일치하는지확인한다. 비밀번호오류가 3회이상누적될경우고객은해당계좌혹은카드로 ATM을이용할수없다. - Update Database ATM은잔고확인을제외한모든 process를종료한이후, 추가혹은변경된정보를갱신할것을 Offer 서버에요청한다. - Print Error ATM은 Error가발생한상황에서 Error 메시지를고객에게알린다. Error가발생하는상황은고객의정보가 DB에저장된정보와일치하지않을때이다. - Do Forced Termination 오류가 3번발생할경우강제로 process를종료하고기본화면으로돌아간다. - Transaction Lock 비밀번호오류가 3회누적된고객의경우, 부정한거래시도로간주되어 ATM 이용이금지된다. 7
2. System Functions (Table) Ref. # Function Category R1.1 Deposit Evident R1.2 Deposit Without bankbook Evident R1.3 Withdraw Evident R1.4 Transfer Evident R1.5 Exchange Evident R1.6 Loan Evident R1.7 Pay Utility Bill Evident R1.8 Check Balance Evident R2.1 Insert Evident R2.2 Print Transaction Receipt Evident R2.3 Print Error Evident R2.4 Do Forced Termination Evident R3.1 Take Charge Hidden R4.1 Check Password Hidden R5.1 Transaction Lock Hidden R6.1 Check Validation Hidden R6.2 Update Database Hidden 3. Performance Requirements - 현금거래에관한정보를신속하고정확하게처리하여서비스를제공한다. 4. Operating Environments - OS : Microsoft Windows 10 (64bit) - CPU : i5-7200u - Memory : 8GB 5. Development Environments - OS : Microsoft Windows 10 pro (64bit) - CPU : i5-7200u - Memory : 8GB - Program Language : JAVA - Editor : eclipse 8
6. Interface Requirements - 사용자의메뉴선택에의해각기능들을수행할수있는화면으로전환된다. - 다음버전의업데이트를통해좀더정교한프로그램을설계한다. 7. Other Requirements (N/A) 9
Activity 1004. Record terms in Glossary Term Remarks ATM Automated Teller Machine 의준말로현금자동입출금기를의미한다 Offer ATM 서비스를제공하는회사로은행과카드사가이에해당한다. Bankbook 고객의계좌정보를담고있는통장 DB Database의약자로, account 정보를저장해둔다. KRW Korean Won, 원화단위를의미한다 Giro bill 지로고지서를의미한다 Credit rating 신용등급을의미한다 Activity 1005. Implement Prototype ( 생략 ) Activity 1006. Define Business Use-Cases 1. Define System Boundary 고객 ATM System Offer 2. Identify and Describe - Customer : ATM을이용하는고객 - ATM : Offer와고객의중간다리역할을해주는시스템. 고객이더편하게금융거래를할수있도록돕는다. - Offer(Secondary Actor) : 고객의금융거래정보를저장하고제공하는 secondary actor 3. Identify Use-Case s by Actor Customer Deposit Deposit without bankbook Withdraw Transfer Exchange Loan Pay Utility Bill Check Balance Insert s by Actor Offer 10
Update Database Check Validation s by Event Print Transaction Receipt Print Error Do Forced Termination Take Charge Check Password Transaction Lock 4. Allocate system functions into Related s Ref. # Function Number & Name Category R1.1 Deposit 1. Deposit R1.2 Deposit Without bankbook 2. Deposit Without Bankbook R1.3 Withdraw 3. Withdraw R1.4 Transfer 4. Transfer R1.5 Exchange 5. Exchange R1.6 Loan 6. Loan R1.7 Pay Utility Bill 7. Pay Utility Bill R1.8 Check Balance 8. Check Balance R2.1 Insert 9. Insert R2.2 Print Transaction Receipt 10. Print Transaction Receipt R2.3 Print Error 11. Print Error R2.4 Do Forced Termination 12. Do Forced Termination R3.1 Take Charge 13. Take Charge R4.1 Check Password 14. Check Password R5.1 Transaction Lock 15. Transaction Lock R6.1 Check Validation 16. Check Validation R6.2 Update Database 17. Update Database 5. Categorize s Ref. # Function Number & Name Category R1.1 Deposit 1. Deposit Primary R1.2 Deposit Without bankbook 2. Deposit Without Bankbook Primary R1.3 Withdraw 3. Withdraw Primary R1.4 Transfer 4. Transfer Primary R1.5 Exchange 5. Exchange Primary 11
R1.6 Loan 6. Loan Primary R1.7 Pay Utility Bill 7. Pay Utility Bill Primary R1.8 Check Balance 8. Check Balance Primary R2.1 Insert 9. Insert Primary R2.2 Print Transaction Receipt 10. Print Transaction Receipt Primary R2.3 Print Error 11. Print Error Primary R2.4 Do Forced Termination 12. Do Forced Termination Primary R3.1 Take Charge 13. Take Charge Primary R4.1 Check Password 14. Check Password Primary R5.1 Transaction Lock 15. Transaction Lock Primary R6.1 Check Validation 16. Check Validation Primary R6.2 Update Database 17. Update Database Primary 12
6. Identify the relationships between Use-Case 13
7. Draw a Use-Case diagram 8. Describe Use-Case 1. Deposit Customer -Customer can deposit cash into account by using check card or bankbook. -Customer can deposit money into credit card. -Customer can only deposit money in unit of 10000\, 50000\. -If customer successfully deposits, ATM requests Offer to update database.(hidden) -If customer deposits cash into credit card, ATM requests Offer to update server information. Amount of money customer inputted is automatically used to repay from the amount customer loaned. (Hidden) 2. Deposit Without bankbook Customer -Customer can deposit money to other customer s account by paying 14
cash. -Customer needs to input receiver s account number correctly. -If customer did it wrong, ATM prints out the error message. 3. Withdraw Customer -Customer can withdraw cash from account by using check card or bankbook. -Customer can only withdraw money in unit of 10000\ and 50000\ under balance. -Customer needs to choose the number of 50000\. -Customer needs to know password of an account. -If customer successfully withdraws, ATM requests Offer to update database.(hidden) 4. Transfer Customer -Customer can transfer money to other customer s account by using check card or bankbook. -If customer inserts check card or bankbook, ATM requests account information to Offer.(Hidden) -If customer enters wrong password, ATM prints out error message. -Customer needs to input receiver s account number correctly. -If customer did it wrong, ATM prints out error message. -If customer is transferring money to other bank s account, ATM takes charge of certain percentage. -If customer successfully transfers money from account, ATM requests Offer to update database.(hidden) 5. Exchange Customer -Customer can exchange KRW into foreign currency. -Customer can only use check card or bankbook to exchange money. -If customer enters wrong password, ATM prints out error message. -If customer successfully exchanges money, ATM requests Offer to update database.(hidden) 15
6. Loan Customer -Customer can withdraw cash in unit of 10000\ and 50000\ with credit card, and we call it Loan. -Each customer has loan limits. -If customer enters wrong password, ATM prints out error message. -Credit Card Company(included in Secondary Actor called Offer) lends money, and requests ATM to take charge. -If customer successfully loans money, ATM requests Offer to update database.(hidden) 7. Pay Utility Bill Customer -Customer can only use check card or bankbook to pay utility bill. -Customer needs to input giro bill before paying bill. -Customer can only deposit money into account of Korea bank. -If customer enters wrong password, ATM prints out error message. 8. Check balance Customer -Customer can check balance of own account. -If customer enters wrong password, ATM prints out error message. -ATM prints out customer s recent transaction history(called log). -If customer inputs OK button, ATM returns to basic screen.(gui level) 9. Insert Customer -Customer inserts check card, bankbook, credit card, or giro bill into ATM. -If inserted, ATM proceeds Check Validation use case.(hidden) 10. Print Transaction Receipt (None) -ATM prints out transaction receipt after end of every process. -Transaction Receipt has record of current transaction such as amount 16
of money used in transaction, account balance or etc. 11. Print Error (None) -This use case begins when error occurred(customer inputted wrong information such as account number, card, bankbook, giro bill, password, or when customer wants to withdraw or loan or deposit and something went wrong). 12. Do Forced Termination (None) -This use case begins when customer inputted wrong information 3 times. -Every process is immediately stopped and returns to basic screen.(gui level) 13. Take Charge (None) -ATM takes charge from customer in process of transfer, loan, and exchange. -If customer s credit rating is high, ATM doesn t take charge. 14. Check password (None) -This use case begins when customer inputs password of an account or credit card during transaction. -ATM compares inputted password and data from DB. If customer inputted wrong password, use case Print Error occurs. 15. Transaction Lock (None) -This use case begins when customer inputted wrong password for account or credit card 3 times. -Customer cannot use account or credit card immediately, and cannot unlock with ATM. 17
16. Check Validation Offer -This use case begins after use case Insert. -When customer inserts method for transaction, ATM gives information to Offer to compare with data in DB. 17. Update Database Offer -This use case begins when every transaction ends. -ATM requests Offer to update DB by sending updated data(recent transaction records). -Offer update DB with information provided by ATM. 9. Rank Use-Cases Ref. # Function Number & Name Category Rank R1.1 Deposit 1. Deposit Primary High R1.2 Deposit Without bankbook 2. Deposit Without Bankbook Primary High R1.3 Withdraw 3. Withdraw Primary High R1.4 Transfer 4. Transfer Primary High R1.5 Exchange 5. Exchange Primary High R1.6 Loan 6. Loan Primary High R1.7 Pay Utility Bill 7. Pay Utility Bill Primary High R1.8 Check Balance 8. Check Balance Primary High R2.1 Insert 9. Insert Primary High R2.2 Print Transaction Receipt 10. Print Transaction Receipt Primary High R2.3 Print Error 11. Print Error Primary High R2.4 Do Forced Termination 12. Do Forced Termination Primary High R3.1 Take Charge 13. Take Charge Primary High R4.1 Check Password 14. Check Password Primary High R5.1 Transaction Lock 15. Transaction Lock Primary High R6.1 Check Validation 16. Check Validation Primary High R6.2 Update Database 17. Update Database Primary High 18
Activity 1007. Define Business Concept Model Customer(User) ATM Credit Card Company Bank Credit Card Check Card Cash Name Password Utility Bill Exchange rate(usd) Exchange rate(jpy) Exchange rate(eur) Exchange rate(cny) Deposit Withdraw Transfer Check Exchange Loan Input Balance Commission Store Check Print Error Bank book Limit Dept Error Account Number Account Owner 10000\ 50000\ Grade Customer s Bank Data Customer s Grade Data Activity 1008. Define System Test Case Ref. # Function Number & Name Test R1.1 Deposit 1. Deposit 입금 R1.2 Deposit 2.Deposit 무통장입금 Without Without bankbook Bankbook R1.3 Withdraw 3. Withdraw 출금 Test description -고객이올바른계좌를입력했을때만입금이가능한지 - 고객이입력한계좌에입금한금액만큼입금이되는지 - 만원단위로입금되는지 - 신용카드를이용할시, 대출금이상환되는지 - 고객이올바른계좌번호를입력했을때만입금이가능한지 - ATM을관리하는은행과동일한은행의계좌에만입금이되는지 - 만원단위로입금되는지 - 해당계좌에돈이입금되었는지 - 고객이올바른계좌를입력했을때만인출이가능한지 - 비밀번호가맞아야인출되는지 - 만원단위로만인출되는지 - 고객이선택한오만원권과만원권의장수대로출금되는지 - 계좌에남아있는잔고보다더많은금액을출금하려고할경우출금을할수없는지 19
R1.4 Transfer 4. Transfer 송금 R1.5 Exchange 5. Exchange 한화에서외화로환전 R1.6 Loan 6. Loan 대출 R1.7 Pay Utility 공과금납부 7. Pay Utility Bill Bill R1.8 Check 계좌조회 8.Check Balance Balance - 고객이본인의계좌에있는돈을보낼수있는지 - 고객의계좌에서송금하려는금액 + ( 타행의경우 ) 수수료가인출되는지 - 수신자의계좌에돈이입금되었는지 - 계좌의비밀번호가맞는경우만돈을보내는지 - 수신인의정보가정확해야송금이되는지 - 고객이올바른계좌를입력했을때만환전이가능한지 - 비밀번호가맞아야환전이되는지 - 나라마다환율이알맞게적용되는지 - 고객의계좌에서환전하는금액 + 수수료만큼인출되는지 - 고객이올바른신용카드번호를입력했을때만대출이되는지 - 만원단위로만인출되는지 - 한도를넘지않았을경우에만대출이되는지 - 비밀번호가맞을경우에만대출이되는지 - 카드사에서대출금액 + 수수료만큼대출했다는정보가제대로처리되는지 - 고객이올바른계좌를입력했을때만공과금을납부할수있는지 - 지로고지서를입력했을때, 잔고가충분한경우지로고지서에입력되어있는금액만큼납부가되는지 - 국가계좌로납부할수있는지 - 비밀번호가맞아야납부할수있는지 - 고객이올바른계좌를입력했을때만계좌조회를할수있는지 - 비밀번호가맞을경우에만계좌조회가되는지 - 계좌의최근거래내역 ( 계좌의경우일시, 거래종류, 거래금액, 잔고, 신용카드의경우일시, 거래종류, 대출금액, 남 20
R2.1 Insert 9. Insert Print 10.Print R2.2 Transaction Transaction Receipt Receipt R2.3 Print Error 11. Print Error R2.4 Do Forced 12. Do Forced Termination Termination R3.1 Take Charge 13.Take Charge R4.1 Check 14.Check Password Password R5.1 Transaction 15. Transaction Lock Lock R6.1 Check 16.Check Validation Validation R6.2 Update 17.Update Database Database 매체삽입 거래명세서출력 에러출력 강제종료 수수료부과 비밀번호확인 거래잠금 삽입된매체의유효성 DB 업데이트 21 은한도 ) 을제대로출력하는지 - 매체 ( 계좌번호 / 신용카드 / 지로고지서 ) 가제대로삽입되는지 - 각각의프로세스가끝난후거래명세서가올바르게출력되는지 - 입금 : ( 계좌번호이용시 ) 거래일시 / 입금금액 / 잔고, 혹은 ( 신용카드이용시 ) 거래일시 / 입금금액 / 남은대출금액 - 무통장입금 : 거래일시 / 입금액 - 출금 : 거래일시 / 출금금액 / 남은잔고 - 송금 : 거래일시 / 송금금액 + ( 타행일경우 ) 수수료 / 송금계좌 / 잔고 - 환전 : 거래일시 / 환전금액 + 수수료 / 잔고 - 대출 : 거래일시 / 대출금액 / 남은한도 - 공과금납부 : 거래일시 / 납부금액 / 잔고 - 각종에러들이발생했을경우그에알맞은에러메세지를출력하는지 ( 존재하지않는계좌 / 카드번호를입력한경우, 비밀번호를잘못입력한경우, 한도 / 잔고이상의금액을거래한경우등 ) - 오류가 3번발생했을경우강제종료가되는지 ( 처음화면으로돌아가는지 ) - 송금 ( 타행의경우 )/ 대출 / 환전시수수료가붙는지 - ATM 내부에서등급에따라수수료를계산해부과하는지 - 각프로세스에서올바른비밀번호를입력했을때만프로세스가진행되는지 - 필요한프로세스 : 출금 / 송금 / 환전 / 대출 / 공과금납부 / 계좌조회 - 비밀번호를 3번틀렸을시해당계좌 / 카드로거래를할수없도록계좌 / 카드를잠그는지 - 삽입된매체 ( 계좌번호 / 신용카드 / 지로고지서 ) 가유효할때만프로세스가진행되는지 - 계좌조회를제외한각프로세스에서, 프로세스가끝난후 DB가제대로업데이트되는지 - 입금 : ( 계좌번호이용시 ) 거래일시 / 입
금금액 / 잔고, 혹은 ( 신용카드이용시 ) 거래일시 / 입금금액 / 남은대출금액 - 무통장입금 : 거래일시 / 입금금액 / 잔고 - 출금 : 거래일시 / 출금금액 / 남은잔고 - 송금 : ( 송금한계좌의경우 ) 거래일시 / 송금금액 + ( 타행일경우 ) 수수료 / 송금계좌 / 잔고, ( 송금받은계좌의경우 ) 거래일시 / 입금금액 / 송금한계좌 / 잔고 - 환전 : 거래일시 / 환전금액 + 수수료 / 잔고 - 대출 : 거래일시 / 대출금액 / 남은한도 - 공과금납부 : 거래일시 / 납부금액 / 잔고 Activity 1009. Refine Plan 1. Project Scope & Objectives - 은행에가지않고간단한은행업무를볼수있다. - 현금서비스를이용할수있다. 2. Functional Requirements Ref. # Function Category R1.1 Deposit Evident R1.2 Deposit Without bankbook Evident R1.3 Withdraw Evident R1.4 Transfer Evident R1.5 Exchange Evident R1.6 Loan Evident R1.7 Pay Utility Bill Evident R1.8 Check Balance Evident R2.1 Insert Evident R2.2 Print Transaction Receipt Evident R2.3 Print Error Evident R2.4 Do Forced Termination Evident R3.1 Take Charge Hidden R4.1 Check Password Hidden R5.1 Transaction Lock Hidden R6.1 Check Validation Hidden R6.2 Update Database Hidden 22
3. Performance Requirements - 현금거래에관한정보를신속하고정확하게처리하여서비스를제공한다. 4. Operating Environments - OS : Microsoft Windows 10 (64bit) - CPU : i5-7200u - Memory : 8GB 5. User Interface Requirements - 사용자의메뉴선택에의해각기능들을수행할수있는화면으로전환된다. - 다음버전의업데이트를통해좀더정교한프로그램을설계한다. 6. Other Requirements (N/A) 7. Resources - Human Efforts(Man-Month) : 4 3months - Project Duration : 12 weeks - Other Efforts : 좋은학점을향한집념, 조원들의협동심 8. Scheduling 23
(SMA Case Study : Plan 마지막도표참조 ) 24