Software Requirement Analysis for Point of Sale(POS) System Project Team T3 Date 2017-10-07 Team Information 현인수전상우장혁준허윤아 T3 1
Table of Contents 1 Introduction 4 1.1 Purpose 4 1.2 Scope 4 1.3 Definition, acronyms, and abbreviations 4 1.4 Reference 4 1.5 Overview 4 2 Overall Description 5 2.1 Product Perspective 5 2.2 Product functions 5 2.3 User characteristics 5 2.4 Constraints 5 2.5 Assumptions and dependencies 5 3 Structured Analysis 7 3.1 System Context Diagram 7 3.1.1 Basic System Context Diagram 7 3.1.2 Event List 7 3.1.3 The System Context Diagram 8 3.2 Data Flow Diagram 8 3.2.1 DFD level 0 8 3.2.1.1 DFD 8 3.2.1.2 Process Specification 8 3.2.1.3 Data Dictionary 9 3.2.2 DFD Level 1 9 3.2.2.1 DFD 9 3.2.2.2 Process Specification 10 T3 2
3.2.2.2.1 Process 1.1 10 3.2.2.2.2 Process 1.2 11 3.2.2.3 Data Dictionary 11 3.2.3 DFD level 2 11 3.2.3.1 DFD 11 3.2.3.2 Process Specification 12 3.2.3.2.1 Process 2.1 오류! 책갈피가정의되어있지않습니다. 3.2.3.2.2 Process 2.2 오류! 책갈피가정의되어있지않습니다. 3.2.3.2.3 Process 2.3 오류! 책갈피가정의되어있지않습니다. 3.2.3.2.4 Process 2.4 오류! 책갈피가정의되어있지않습니다. 3.2.3.2.5 Process 2.5 오류! 책갈피가정의되어있지않습니다. 3.2.3.2.6 Process 2.6 오류! 책갈피가정의되어있지않습니다. 3.2.3.3 Data Dictionary 15 3.2.4 DFD level 3 15 3.2.4.1 DFD 15 3.2.4.2 Process Specification 15 3.2.4.2.1 Process 3.1 오류! 책갈피가정의되어있지않습니다. 3.2.4.2.2 Process 3.2 오류! 책갈피가정의되어있지않습니다. 3.2.4.2.3 Process 3.3 오류! 책갈피가정의되어있지않습니다. 3.2.4.2.4 Process 3.4 오류! 책갈피가정의되어있지않습니다. 3.2.4.2.5 Process 3.5 오류! 책갈피가정의되어있지않습니다. 3.2.4.2.6 Process 3.6 오류! 책갈피가정의되어있지않습니다. 3.2.4.2.7 Process 3.7 오류! 책갈피가정의되어있지않습니다. 3.2.4.3 Data Dictionary 17 3.2.4.4 State Transition Diagram (Sale Process) 18 3.2.5 Overall DFD 18 T3 3
1 Introduction 1.1 Purpose 본문서는 2017 년 2 학기건국대학교소프트웨어공학개론강의의실습과제를설명한 다. 해당실습과제는 Point of Sale(POS) System 을소프트웨어만을이용해가상의시스 템으로구현하는것이다. 1.2 Scope POS System이란판매와관련한데이터를일괄적으로관리하고, 고객정보를수집하여부가가치를부가가치를향상시키는시스템이다. 본프로젝트는전체 POS System 중 POS 단말기만을대상으로구현하는것으로규모를제한한다. 모든시스템은 SW 만으로구현하고 HW가필요한부분은SW 모듈을만들어가상의 HW를구현한다. 1.3 Definition, acronyms, and abbreviations HW : Hardware SW : Software POS : Point of Sale POST : Point of Sale Terminal 캐셔 : Cashier. POST 사용자 1.4 Reference 1.5 Overview 2 장 : 개발대상에대한설명 3 장 : 세부기능명세 T3 4
2 Overall Description 2.1 Product Perspective 소프트웨어로개발하는가상의 POS 시스템 2.2 Product functions POST는캐셔화면 ( 터치스크린 ) 을이용해판매, 환불, 재고확인을할수있다 POST는판매상황에서상품의바코드를바코드스캐너로스캔하여판매목록에상품을추가하고상품의수량을증가시킬수있다. POST는판매상황에서캐셔화면 ( 터치스크린 ) 의입력을통해판매할상품의수량을증가, 감소시키거나상품을목록에서제거할수있다. POST는판매상황에서고객화면을통해판매할상품의총액을보여준다. POST는판매를완료한후고객화면과캐셔화면에각각판매정보를출력한다. POST는판매를완료한후프린터기를이용해판매영수증을출력한다. POST는판매를완료한후재고서버의상품수량정보를업데이트한다. POST는환불상황에서영수증의바코드를바코드스캐너로스캔하여환불가능한영수증인지판단할수있다. POST는환불을완료한후고객화면과캐셔화면에각각환불정보를출력한다. POST는환불을완료한후프린터기를이용해환불영수증을출력한다. POST는환불을완료한후재고서버의상품수량정보를업데이트한다. POST는재고확인요청이들어오면현재매장의재고정보를화면에출력한다. POST는매일 24시 ( 자정 ) 에정산이이루어지며재고서버에있는하루동안있었던판매, 환불정보를프린터기를이용해정산보고서를출력한다. 2.3 User characteristics POST 사용자는캐셔이다. 사용자는언제든지전원을끌수있다. 사용자는바코드스캐너를이용해상품, 영수증을스캔할수있다. 2.4 Constraints and Assumptions POST의캐셔화면 ( 터치스크린 ) 입력및스캐너스캔행위는키보드입력으로대체한다. POST의모든모니터의출력은 Cygwin Console(Cygwin Bash Shell) 로대체한다. POST의프린터를사용한모든출력은텍스트파일생성으로대체한다. POST 프로그램의하루는현실시간 3분으로가정한다.( 현실시간 1초 가상시간 8분 ) POST 프로그램에서시각표현이필요한부분은 YYYYMMDDhhmm( 연월일시분 ) 으로표현한다. T3 5
-201709111843 POST 프로그램종료후재실행시기존에진행하던시각이이어지도록한다. 고객이환불요청시, 영수증내역의전체상품에대해환불을수행한다. 재고서버는 2개의텍스트파일로대체한다. ( 상품파일 : YYYYMMDD_product.txt, 판매목록파일 : YYYYMMDD_sale_management.txt) 하루가지나면재고서버의상품파일, 판매관리파일은다음날짜로새로생성이되며상품파일의모든상품은 100개로초기화한다. POST의전원이켜지면자동으로재고서버와상품을동기화한다. POST에서다루는상품은총 7종류 ( 과자, 아이스크림, 과일, 물, 라면, 음료수, 커피 ) 로한정한다. -상품의정보는하위표참고 상품 단가 바코드 과자 1,000 001 아이스크림 1,500 010 과일 3,000 011 물 500 100 라면 800 101 음료수 1,200 110 커피 2,000 111 T3 6
3 Structured Analysis 3.1 System Context Diagram 3.1.1 Basic System Context Diagram 3.1.2 Event List / Event Power Button Touch Screen Barcode Scanner Cashier Display Customer Display Print Receipt Power Control Description POS 기기의전원을켜고끈다캐셔가캐셔화면에입력하는명령을감지한다상품이나영수증의바코드를감지한다캐셔화면출력고객화면출력영수증출력 POS 기기의전원관리 T3 7
3.1.3 The System Context Diagram 3.2 Data Flow Diagram 3.2.1.1 DFD level 0 3.2.1.2 DFD T3 8
3.2.1.3 Process Specification Reference No. 0 3.2.1.4 Data Dictionary POS System Power Button, Touch Screen, Barcode Scanner, Tick Cashier Display, Customer Display, Print Receipt, Power Control 은크게전원버튼, 터치스크린, 바코드스캐너로나눠진다. 첫번째인전원버튼은 POS 기기자체의전원을끄고켜라는입력을캐셔로부터받는다. 두번째인터치스크린은캐셔화면에입력되는터치정보들을입력받는다. 세번째인바코드스캐너는제품혹은영수증의바코드를읽어들인다. 이에따른 은 POS기기의 Power Control, 고객이볼수있는 Customer Display, 캐셔가볼수있는 Cashier Display, 영수증으로출력된다. Customer Display는 Cashier Display에비해간략하게품명과개수, 가격만출력된다. / Event Description Format/Type Power Button POS 기기의전원을켜거나끈다 boolean Touch Screen 캐셔화면에서의입력을감지한다 String Barcode Scanner 상품 / 영수증의바코드를입력받는다 boolean Cashier Display Customer Display Print Receipt Power Control 캐셔화면을출력한다고객화면을출력한다영수증을출력한다 POS 기기의전원을관리한다 3.2.2 DFD Level 1 3.2.2.1 DFD T3 9
3.2.2.2 Process Specification 3.2.2.2.1 Process 1 Reference No. 1 Determine Power Button, Repayment Touch, Sale Touch, Stock-Check Touch, Quantity Up/Down Touch, Barcode Scanner, Tick Stock List, Receipt List, Data POS 기기에입력되는 중터치스크린으로입력받을수있는 은더세세하게환불, 판매, 재고확인, 수량증감으로분류할수있다. Repayment Touch 은캐셔화면에서환불을터치할경우입력되는 이다. 이후영수증의바코드를입력받는다. Sale Touch 은캐셔화면에서판매를터치할경우입력되는 이다. 이때판매할상품이입력되어있지않은경우판매과정은거칠수없다. Stock-Check Touch 은캐셔화면에서재고확인을터치할경우입력되는 이다. 재고정보는상품정보와재고개수이다. Quantity Up/Down Touch 은캐셔화면에서판매할상품을입력한후에상품의수량을증가혹은감소시키는 이다. 상품수량을 1보다적게할경우판매할상품목록에서사라진다. 이후해당정보들은 Data Store에저장될필요가있는정보는저장되고, 이외의정보는 Data로바로 Control에전달된다. T3 10
3.2.2.2.2 Process 2 Reference No. 2 Control Stock List, Receipt List, Data Cashier Display, Customer Display, Power Control, Print Receipt Determine 에서전달된 Data와 Data Store에저장된정보는 Control을거쳐출력된다. 영수증출력은상품영수증출력과환불영수증출력, 정산영수증출력으로나뉜다. 3.2.2.3 Data Dictionary / Event Description Format/Type Repayment Touch 캐셔화면에서환불버튼을입력받는다 String Sale Touch 캐셔화면에서판매버튼을입력받는다 String Stock-Check Touch 캐셔화면에서재고확인버튼을입력받는다 String Quantity Up/Down Touch 캐셔화면에서수량증감버튼을입력받는다 String 3.2.3 DFD level 2 3.2.3.1 DFD T3 11
3.2.3.2 Process Specification Reference No. 1.1 Touch Interface Sale Touch, Quantity Up/Down Touch, Stock-Check Touch, Repayment Touch Touch Information 캐셔화면에서입력되는 Touch 을입력받아서, 이를 Touch Information으로출력한다. Reference No. 1.2 Barcode Interface Barcode Scanner, Tick Barcode Information 바코드스캐너에서입력되는바코드를입력받아서, 바코드정보로출력한다. 입력가능한바코드는상품바코드와영수증바코드두종류로나뉜다. 이 interface에서는처리가능한바코드인지아닌지를확인하는과정을거친다. Reference No. 1.3 Determine On/Off Power Button Power On/Off 캐셔가 POS 기기의전원이꺼진상태에서전원버튼을누를경우전원을켠다. 반대의경우전원을끈다. Reference No. 1.4 Determine Touch Information Touch Information Stock List, Receipt List, Touch Information 캐셔화면에서입력된정보들을 Touch Information의형태로입 T3 12
력받아캐셔가어떤 을입력했는지확인한다. 이후 Data Store 에저장해야할정보들을업데이트하고, 나머지정보들을 Main Control 로전달한다. Reference No. 1.5 Determine Barcode Information Barcode Information Receipt List, Stock List, Barcode Information 판매할상품혹은이미판매한상품들의영수증을읽어들여바코드의정보를판별하고, 이를토대로 Data Store를업데이트한뒤바코드정보를 Main Control로보낸다. Reference No. 2.1 Main Control Barcode Information, Touch Information, Receipt List, Stock List, tick Power Command, Customer Display Command, Cashier Display Command, Receipt Print Command Main Control에서는 Touch Screen과 Barcode Scanner, Power Button으로부터입력된정보들을처리해각각의 Interface로 command를출력한다. Power Command는 POS 기기의전원을관리할것을명령하는것이다. Customer Display Command는고객화면에어떤정보를띄울지를명령하는것이다. Cashier Display Command는캐셔화면에어떤정보를띄울지, 어떤화면을띄울지를명령하는것이다. Receipt Print Command는출력할영수증의정보와어떤영수증을출력할지를명령하는것이다. Reference No. 2.2 Power Control Interface Power Command Power Control T3 13
Main Control로부터 Power Command를입력받아, Power Control을출력한다. 전원은 On과 Off 중하나만선택할수있다. Off의경우끄기전정산이완료되지않았을경우전원을끌수없다. Reference No. 2.3 Customer Display Interface Customer Display Command Customer Display 고객화면에띄울정보들을입력받아서이를정렬하고, 출력한다. 고객화면에뜨는정보는상품의정보로, 상품명과단가, 개수, 가격총합이표시된다. Reference No. 2.4 Cashier Display Interface Cashier Display Command Cashier Display 캐셔화면에띄울정보들을입력받아서이를정렬하고, 출력한다. 캐셔화면에는기본적으로판매, 환불, 재고확인, 수량증감버튼이표시되어있으며, 상품바코드를통해상품정보를띄우고판매할수있으며, 영수증바코드를통해환불과정을진행할수있다. 재고확인버튼을누를경우 stock list에저장한정보들을띄운다. 고객화면과마찬가지로상품정보와가격총합이표시된다. Reference No. 2.5 Receipt Print Interface Receipt Print Command Print Receipt 환불, 판매, 정산과정이후영수증에출력할정보들을통합해출력한다. 환불영수증은캐셔화면에서환불과정을거친후출력되는영수증이다. 판매영수증은판매과정을거친후출력 T3 14
되는영수증이다. 정산영수증은 POS 기기를끄기전판매영수증과환불영수증을조회해각각의상품정보들을출력하는영수증이다. 영수증상단에는출력시의시각정보가항상출력된다. 3.2.3.3 Data Dictionary / Event Description Format/Type Touch Information 캐셔화면에서입력된터치정보 String Barcode Information Power Command Customer Display Command Cashier Display Command Receipt Print Command 바코드스캐너로읽어들인상품혹은영수증의바코드정보 POS 기기의전원을켜거나끌것을명령한다고객화면에출력할정보들을명령한다캐셔화면에출력할정보들을명령한다출력할영수증정보들을명령한다 boolean 3.2.4 DFD level 3 3.2.4.1 DFD 3.2.4.2 Process Specification T3 15
Reference No. 2.1.1 Controller Power On/Off, Stock List, Receipt List, Touch Information, Barcode Information Enable, Disable, Trigger Main Control은 Data들을입력받아각각의 Control을출력해실질적인작동을하게끔한다. Reference No. 2.2.1 Power On Enable, Disable Power Control POS 기기의전원을켜거나끌수있다. Disable은 Power Off를의미한다. Reference No. 2.3.1 Show Customer Display Trigger Customer Display 고객화면을띄운다. Enable은고객결제화면을띄우라는명령이고, Disable은기본화면을띄우라는명령이다. Reference No. 2.4.1 Sales Process Trigger Cashier Display 캐셔화면에서판매과정을수행한다. 고객이결제를완료할때까지는 Enable 상태이고, 판매과정이끝나고기본화면으로돌아갈때는 Disable 된다. Reference No. 2.4.2 Repayment Process T3 16
Trigger Cashier Display 캐셔화면에서환불과정을수행한다. 고객이환불을완료할때까지는 Enable 상태이고, 환불과정이끝나고기본화면으로돌아갈때는 Disable 된다. Reference No. 2.4.3 Stock-Check Process Trigger Cashier Display 캐셔화면에서재고확인과정을수행한다. 기본화면으로돌아갈때는 Disable 된다. Reference No. 2.4.4 Quantity Up/Down Process Trigger Cashier Display 캐셔화면에서판매과정중에수량증감과정을수행한다. 수량증감이 되었을때 Enable 되고, 그이외의과정에서는 Disable 된다. Reference No. 2.5.1 Print Receipt Trigger Sales Receipt, Repayment Receipt, Settlement Receipt 캐셔화면에서판매, 환불과정을마쳤거나, POS 기기의전원을끄기이전에정산과정을마쳤을때영수증을출력하게된다. 영수증을출력할때만 Enable 된다. 3.2.4.3 Data Dictionary / Event Description Format/Type Sales Receipt 캐셔화면에서판매과정을완료한후출력되 T3 17
는제품판매영수증 Repayment Receipt Settlement Receipt 환불과정을완료한후출력되는환불영수증 POS 기기를끄기전출력되는정산영수증 3.2.4.4 State Transition Diagram (Sale & Repayment Process) 3.2.5 Overall DFD T3 18