Software Requirement Analysis for PTS System Project Team Date 2014-09-25 Team Information 201111333 권태헌 201111375 윤지수 201111379 이한빈 201111384 정국빈 1
Table of Contents 1. Introduction 1.1 Purpose 1.2 Scope 1.3 Definition, acronyms, and abbreviations 1.4 Reference 2. Overall Description 2.1 Product Perspective 2.2 Product functions 2.3 User Characterisitics 2.4 Constraints 2.5 Assumptions and depencies 3. Structured Analysis 3.1 Bus/Subway Reader 3.1.1 System Context Digram 3.1.2 Event List 3.1.3 Data Flow Digram 3.1.3.1 DFD 3.1.3.2 Process Specifications 3.1.3.3 Data Dictionary 3.2 Calculator 3.2.1 System Context Digram 3.2.2 Event List 3.2.3 Data Flow Digram 3.2.3.1 DFD 3.2.3.2 Process Specifications 3.2.3.3 Data Dictionary 4. Overall 2
1 Introduction 1.1 Purpose Public Transportation System(PTS) 에서사용할수있는 SW 를구현하기위한요구사항을명세한문서이다 1.2 Scope 1.2.1 개발팀 1.2.2 제한사항밑의그림 1 중이번프로젝트는지하철, 버스및정산시스템으로규모를제한한다. 또한버스는 1 대지하철 2 호선중 5 개역 ( 건대입구, 왕십리, 합정, 신림, 강남 ) 만을대상으로한다. 모든시스템은 SW 만으로구현하고 HW 가필요한부분은 SW 모듈을만들어가상으로 HW 을구현한다 1.3 Definition, acronyms, and abbreviations PTS: Public Transportation System SW: Software HW: Hardware 태그 : 카드와단말기가통신할수있도록하는행위, 승하차시요금결제를위한행위 1.4 Reference ( 김형환 2010) 김형환, 신동석 교통카드무인판매 / 충전기통합운영시스템개발, 韓國컴퓨터情報學會論文誌 15(3), 99-109, 2010 ( 김경선, 2009) 김경선, 교통카드시스템사례연구-수도권교통카드중심, 수도권교통본부, 2009 2 Overall Description 2.1 Product Perspective SW 로개발된 PTS 는총 3 가지로구성된다. 버스용단말기와지하철용단말기, 정산시스템이다. 3
2.2 Product functions 버스용단말기는버스에부착돼, 탑승태그와하차태그가가능하다. 기본료를 지불하면 1 회탑승이가능하다. 지하철용단말기는역에부착돼탑승태그와하차태그가가능하다. 1 개역 이하를이동하면기본료가부가되며두개역이상을이동하면추가요금이 부가된다. 버스와지하철간에는정해진시간내에환승이가능하다. 지하철에서버스로환승한경우는단위시간당버스의환승요금이추가로부가된다. 버스에서지하철로환승한경우는한역당지하철의환승요금추가로부가된다. 하차시단말기에태그를하지않으면환승은적용되지않는다. 정산은하루에한번이뤄진다. 버스와지하철의기록을분석하고버스와지허철에각각수익을배분한다. 2.3 User characteristics 사용자는대중교통승차시카드를태그한다. 사용자는하차시카드를태그할수도있고아닐수도있다. 2.4 Constraints 모든시스템은 SW 만으로구현하고 HW 가필요한부분은 SW 모듈을만들어가상으로 HW 을구현한다. 2.5 Assumptions and dependencies 버스승차는지역에상관없이할수있다. 지하철은 2 호선역중 5 개만고려한다 : 건대입구, 동대문역사문화공원, 합정, 신림, 강남. 하루는 3 분으로가정한다. 다음날운행이시작하기전까지는정산이반드시이루어진다. 정산후모든프로그램의정보는초기화된다.( 사용자카드정보제외 ) 환승이가능한시간은 15 초이내이다. 4
버스환승시추가요금의기준은단위시간은 30 초이다. 버스와지하철의기본료 1050 원이다. 교통카드는저장된텍스트파일로가능하고, 교통카드태그행위를해당파일을입력하는것으로가정한다. 잔액이모자를경우태우지않는다. 버스환승최고부과금액인 700 원이남아있지않으면버스로환승시키지않는다. 지하철환승최고부과금액인 600 원이남아있지않으면지하철로환승시키지않는다. 하루 (3 분 ) 종료시탑승되어있는승객은미정산으로처리한다. 정산시소수점이하는반올림한다. 3 Structured Analysis 3.1 Bus/ Subway Reader 3.1.1 System Context Diagram 3.1.2 Event List / Event Description Tag Sensor 교통카드가태그되었는지감지한다. Display 사용금액, 잔액 / 시간을보여준다. Write 사용후교통카드정보를카드에기록한다. Send 버스사용기록을정산시스템으로전송한다. 3.1.3 Data Flow Digaram (DFD) 3.1.3.1 DFD level 0 5
3.1.3.1.1 DFD 3.1.3.1.2 Process Specification Reference No. 0 Card Reader Control Tag Sensor Display, Write, Send Process Description 단말기시스템의메인프로세스이다 3.1.3.1.3 Data Dictionary / Event Description Tag Sensor 교통카드가태그되었는지감지한다. Display 사용금액, 잔액 / 시간을보여준다. Write 사용후교통카드정보를카드에기록한다 Send 사용기록을정산시스템으로전송한다 3.1.3.2 DFD Level 1 Format TRUE/FALSE, Interrupt 사용금액, 잔액 / 시간태그시간, 수단, 승 / 하차, 잔액단말기정보 (Data Structure) 태그시간, 수단, 승 / 하차, 잔액단말기정보 (Data Structure) 6
3.1.3.2.1 DFD 3.1.3.2.2 Process Specification Reference No. 1 Card Data Tag Sensor Store Process Description 카드가태그되었을때정보를가져와 Card Data 에저장한다. Reference No. 2 Analyzing Card Data Read Display, Write, Send Process Description Card Data 에서카드의정보를불러와가장 최근기록 2 개를분석한다. 3.1.3.2.3 Data Dictionary Data Description Format Store 카드에서정보를가져온다. Data Structure Read Card Data 에서가져온정보 Data Structure Card Data 태그된카드의분석된정보 Data Structure 3.1.3.3 DFD Level 2 3.1.3.3.1 DFD 7
3.1.3.3.2 Process Specification Reference No. 1.1 Detecting Card Interface Tag Sensor Pass Process Description 카드가단말기에태그되는걸인식하는 프로세스 Reference No. 1.2 Receiving Card Data Interface Pass Store Process Description 카드안에기록되어있는거래정보를 읽어오는프로세스 Reference No. 2.1 Main Control Read Display Command, Writing Command, Sending Command 8
Process Description Card Data 를 Read 해서분석하고판단해서 다음실행할동작을명령하는프로세스 Reference No. 2.2 Monitor Interface Display Command Display Process Description Main Control 이보내주는정보를모니터에 출력을해주는프로세스 Reference No. 2.3 Writing Data Interface Writing Command Write Process Description Main Control 이갱신된거래정보를카드와 단말기에저장하는프로세스 Reference No. 2.4 Sending Data Interface Sending Command Send Process Description 하루 (3 분 ) 마다 Calculator( 정산시스템 ) 으로 단말기에저장된거래정보를보내주는 프로세스 3.1.3.3.3 Data Dictionary Data Description Format Pass 카드에서정보를가져온다. Data Structure Display Command 모니터에화면을출력하라고명령한다. Wrting 카드와단말기에갱신된 9
Command Sending Command 정보를입력한다 정산시스템에단말기의 기록을보낸다. 3.1.3.4 DFD Level 3.1.3.4.1 DFD 10
3.1.3.4.2 Process Specification Reference No. 2.1.1 Determine Controller Read Trigger Process Description 카드의정보를받은후사용자의기록을 분석한다. Reference No. 2.1.2 Riding Enable Trigger, Read Display Command, Writing Command Process Description 일반승차이고탑승이가능한경우 Reference No. 2.1.3 Riding Disable Trigger, Read Display Command Process Description 일반승차의경우지만, 잔액이부족하여 탑승이불가한경우 Reference No. 2.1.4 Uncalculated Riding Trigger, Read Display Command, Writing Command Process Description 미정산금액이남아있는상태에서승차한 경우 Reference No. 2.1.5 Transfer Enable Trigger, Read 11
Process Description Display Command, Writing Command 환승후승차하는경우 Reference No. 2.1.6 Transfer Disnable Trigger, Read Display Command Process Description 환승후승차시, 잔액이부족하여탑승하지 못하는경우 Reference No. 2.1.7 Normal Exit Trigger, Read Display Command, Writing Command Process Description 일반적인하차인경우 Reference No. 2.1.8 After Trans. Exit Trigger, Read Display Command, Writing Command Process Description 환승승차후하차하는경우 Reference No. 2.1.9 Calculating Tick Sending Command Process Description 3 분 ( 하루 ) 마다단말기의기록을정산 시스템으로전송한다 3.1.3.4.3 Data Dictionary 12
/ Event Description Format Save 단말기에카드의정보를 Data Strucuture 기록한다. Load 단말기에저장된기록을 Data Strucuture 불러온다. Reset 정산시스템으로기록을전송후에시스템을초기화한다. Reader 카드의정보가저장되는 Data Strucuture 단말기정보저장소 3.1.3.5 DFD Level 4 3.1.3.5.1 DFD (Bus/Subway) 13
3.1.3.5.2 DFD (Subway Only) 3.1.3.5.3 Process Specification Reference No. 2.1.4.1 Uncalculated Determine Case Read, Trigger Determine Process Description 남아있는미정산금액을판단한후, 승차가능여부를판단한다 Reference No. 2.1.4.2 After Sub-E Determine Display Command, Writing Command Process Description 지하철하차시태그를안하고버스에탑승 가능할때 Reference No. 2.1.4.3 14
Process Description After Sub-D Determine Display Command 지하철하차시태그를안하고버스에탑승이불가할때 Reference No. 2.1.4.4 After Subus-E Determine Display Command, Writing Command Process Description 지하철에서버스환승후하차태그를 안했지만탑승이가능할때 Reference No. 2.1.4.5 After Subus-D Determine Display Command Process Description 지하철에서버스환승후하차태그를 안했지만탑승이불가할때 Reference No. 2.1.4.6 After Busub-E Determine Display Command, Writing Command Process Description 버스에서지하철환승후하차태그를 안했지만탑승이가능할때 Reference No. 2.1.4.7 After Busub-D Determine 15
Process Description Display Command 버스에서지하철환승후하차태그를 안했지만탑승이불가할때 Reference No. 2.1.7.1 Normal Determine Case trigger, Read Determine Process Description 일반하차시추가요금을계산한다. Reference No. 2.1.7.2 Add Fee Determine Display Command, Writing Command Process Description 일반하차시추가요금이붙는경우 Reference No. 2.1.7.3 No Add Fee-N Determine Display Command, Writing Command Process Description 일반하차시추가요금이붙지않는경우 Reference No. 2.1.8.1 After Trans Determine Case trigger, Read Determine Process Description 버스에서환승후하차시추가요금을 계산한다. 16
Reference No. 2.1.8.2 Add Fee One Determine Display Command, Writing Command Process Description 한정거장지났을때추가요금을부과한다. Reference No. 2.1.8.3 Add Fee Two Determine Display Command, Writing Command Process Description 두정거장이상지났을때추가요금을 부과한다. Reference No. 2.1.8.4 No Add Fee-T Determine Display Command, Writing Command Process Description 버스에서환승승차후추가요금이없을때 3.1.3.5.4 State Transition Diagram (STD) 17
3.1.3.5.4.1 STD for Controller 2.1.1 3.1.3.5.4.2 STD for Controller 2.1.1.4 3.1.3.5.4.3 STD for 2.1.7 & 21.8 18
3.1.3.5.4.4 Data Dictionary Data Description Format UNCAL 미정산요금이있으면 Boolean TRUE TRANS 환승승차조건이만족하면 Boolean TRUE AFTER 가장최근승차가환승 Boolean 승차이면 TRUE IN 가장최근승차를했다면 Boolean TRUE BUS 가장최근이용교통수단이 Boolean 버스라면 TRUE UNCAL-S 지하철하차시미정산이 Boolean 생긴경우 TRUE UNCAL-SB 지하철-> 버스환승후 Boolean 미정산이생긴경우 TRUE UNCAL-BS 버스-> 지하철환승후 Boolean 미정산이생긴경우 TRUE LO 교통카드잔액 INT STA 지하철승차후이동한정거장수 INT 3.2 Calculator 3.2.1 System Context Diagram 3.2.2 Event List / Event Description Data 단말기로부터기록을받는다. 19
Display 모니터에정산결과를띄운다. Send 각회사에정산결과를전송한다. Signal 단말기에정산완료신호를보낸다. 3.2.3 Data Flow Digram (DFD) 3.2.3.1 DFD Level 0 3.2.3.1.1 DFD 3.2.3.1.2 Process Specification Reference No. 0 Calculating System Data Display, Send, Signal Process Description 정산시스템의메인프로세스 3.2.3.1.3 Data Dictionary / Event Description Format Data 단말기로부터기록을 Text 파일 받는다. Display 모니터에정산결과를띄운다. 시간, 교통수단, 돈 (int, string, int) Send 각회사에정산결과를전송한다. 시간, 교통수단, 돈 (int, string, int) Signal 단말기에정산완료신호를보낸다. tick 20
3.2.3.2 DFD Level 1 3.2.3.2.1 DFD 3.2.3.2.2 Process Specification Reference No. 1 Reader Data Bus Data, Sub Data Store Process Description 카드가태그되었을때정보를가져와 Card Data 에저장한다. Reference No. 2 Calculate Reader Data Read Display, Send, Signal Process Description 단말기의기록들을분석해정산을한다. 3.2.3.2.3 Data Dictonary (Calculator) / Event Description Format Bus Data 버스단말기로부터 Text 파일 기록을받는다. Sub Data 지하철단말기로부터 Text 파일 기록을받는다. Store 기록들을저장한다. Text 파일 21
Read 3.2.3.3 DFD Level 2 3.2.3.3.1 DFD 저장된기록들을 읽어온다. Text 파일 3.2.3.3.2 Process Specification Reference No. 1.1 Reader Data Interface Bus Data, Sub Data Pass Process Description 버스와지하철로부터기록을받아넘긴다. Reference No. 1.2 Combine Card Data Interface Pass Store 22
Process Description 버스와지하철로부터받은기록을합쳐서 저장한다. Reference No. 2.1 Main Control Read, Tick Display Command, Sending Command, Signal Command Process Description 단말기로부터받은기록을바탕으로정산을 실시한다. Reference No. 2.2 Display Interface Display Command Display Process Description 정산완료된기록을모니터에띄운다. Reference No. 2.3 Sending Data Interface Sending Command Send Process Description 정산완료된기록을각회사로전송한다. Reference No. 2.4 Signal Interface Signal Command Signal Process Description 정산이완료되면각단말기로완료신호를 보낸다. 3.2.3.3.3 Data Dictionary / Event Description Format 23
Pass Reader Data Display Command Sending Command Signal Command 3.2.3.4 DFD Level 3 3.2.3.4.1 DFD 단말기의기록이입력되면다음단계로넘겨준다. 단말기의기록들이종합되어저장되는곳모니터에화면을출력하라고명령한다. 각회사에완료된정산기록을전송하라고명령한다. 각단말기에정산완료신호를보내라고명령한다. Text 파일 Text 파일 3.2.3.4.2 Process Specification Reference No. 2.1.1 Classify Case Tick, Read Account, Divide Process Description 종합된기록을 4 가지경우로분류한다. 24
Reference No. 2.1.2 Calculator Controller Account Trigger Process Description 각계산기들을작동하도록시킨다. Reference No. 2.1.3 Busub Calculator Trigger, Read Sum Process Description 버스에서지하철로환승한경우를계산한다. Reference No. 2.1.4 Subus Calculator Trigger, Read Sum Process Description 지하철에서버스로환승한경우를계산한다. Reference No. 2.1.5 Bus Calculator Trigger, Read Sum Process Description 버스만이용한경우를계산한다. Reference No. 2.1.6 Subway Calculator Trigger, Read Sum Process Description 지하철만이용한경우를계산한다. 25
Reference No. 2.1.7 Final Calculator Sum Display Command, Sending Command, Signal Command Process Description 정산된금액들을합해화면에띄우고회사에 전송하고신호를보낸다. 3.2.3.4.3 Data Dictionary / Event Description Format Divide 단말기로부터받은기록을 4 가지경우로나눈다. Data Structure Sum 정산된결과를합친다. 시간, 교통수단, 돈 (int, string, int) Busub Data 버스에서지하철로 Data Structure 환승한경우의데이터 Subus Data 지하철에서버스로 Data Structure 환승한경우의데이터 Bus Data 버스만탄경우의 Data Structure 데이터 Subway Data 지하철만탄경우의 Data Structure 데이터 Account 정산을시작한다. 3.2.3.5 DFD Level 4 26
3.2.3.5.1 State Transition Diagram 4 Overall 4.1 Bus/Subway Reader 27
4.2 Calculator 28