Software Requirement Analysis for Public Transport System Project Team Date 2014-11-20 박재원 201011332 김철진 201211032 장계인 201312412
Table of Contents 1 Introduction 1.1 Purpose Public Transport System 에서사용할소프트웨어개발 1.2 Scope 프로젝트는전체 PTS 중지하철, 버스및정산시스템만을대상으로구현하는것으로제한한다. 버스 1 대와지하철 2 호선중 5 개역 ( 건대입구, 왕십리, 합정, 신림, 강남 ) 만을대상으로한다. 모든시스템은 SW 만으로구현한다. HW 가필요한부분은 SW 모듈을만들어가상의 HW 를구현한다. 1.3 Definition, acronyms, and abbreviations HW: Hardware SW: Software PTS: Public Transportation System 1.4 Reference ( 김형환 2010) 김형환, 신동석 교통카드무인판매 / 충전기통합운영시스템개발, 韓國컴퓨터情報學會論文誌 15(3), 99-109, 2010 ( 김경선, 2009) 김경선, 교통카드시스템사례연구-수도권교통카드중심, 수도권교통본부, 2009 1.5 Overview 2 장개발대상에대한개괄적설명 ; 3,4 장 PTS 의 Structured Analysis
2 Overall Description 2.1 Product Perspective SW 로개발된 PTS 는크게 2 가지로구성된다. 단말기거래시스템과, 정산시스템이다. ( 거래시스템내부에서단말기의고유정보를통해버스와지하철시스템으로구분되어진다.) 2.2 Product functions 버스용단말기는버스에부착돼, 탑승태그와하차태그가가능하다. 기본료를지불하면 1 회탑승이가능하다. 지하철용단말기는역에부착돼탑승태그와하차태그가가능하다. 1 개역이하를이동하면기본료가부가되며두개역을이동하면추가요금이부가된다. 버스와지하철간에는정해진시간내에환승이가능하다. 하차시단말기에태그를하지않으면환승은적용되지않는다. 정산은하루에한번이뤄진다. 버스와지하철의기록을분석하고버스와지하철에각각수익을배분한다. 2.3 User characteristics 사용자는대중교통승차시카드를태그한다. 사용자는하차시카드를태그할수도있고아닐수도있다. 2.4 Constraints & assumptions 버스승차는지역에상관없이할수있다. 지하철은 2 호선역중다음 5 개만고려한다 : 건대입구, 동대문역사문화공원, 합정, 신림, 강남. 하루는 3 분으로가정하며, 하루가끝날때정산서버로하루치의거래내역기록을전송해야한다. 하루치정산이끝난후모든정보는초기화된다. ( 사용자카드정보제외 ) 환승이가능한시간은 15 초이내다. 버스환승시추가요금의기준인단위시간은 30 초이다. 버스와지하철의기본료는 1050 원이다.
교통카드는저장된텍스트파일로가정하고, 교통카드태그행위를해당파일을입력하는것으로가정한다. 잔액이모자를경우승차가거부된다. 하루 (3 분 ) 종료시탑승되어있는승객은미정산으로처리한다. 각단말기는단말기별누적결제기록을갖고있다. 지하철의단말기는 5 개의단말기가공유하여기록하는누적결제기록을갖고있다. 이는하차와미정산의경우를구분하기위해사용된다
3 Structured Analysis for Terminal Process 3.1 System Context Diagram 3.1.1 Basic System Context Diagram 3.1.2 Event List / Events Description Card-Info 거래를위해필요한카드정보를읽어온다. Card-Info 모든거래가끝난뒤의정보를카드로전달한다. Display 태그후의결과를화면에출력한다. Sound 태그후의결과를음성으로들려준다. Send History-Data 정산을위한거래후정보를정산서버로전송한다.
3.1.3 The System Context Diagram
3.2 Data Flow Diagram 3.2.1 DFD level 0 3.2.1.1 DFD 3.2.1.2 Process Specification 3.2.1.2.1 Process 0 Reference No. 0 Terminal Process Control Card-Info, Tick Card Info, Display, Sound, Send History Data Process Description 단말기내부시스템의컨트롤러이다.
3.2.1.3 Data Dictionary / Description Events Card-Info 거래를위해필요한카드정보를읽어온다. Card-Info 모든거래가끝난뒤의정보를카드로전달한다. Display 태그후의결과를화면에출력한다. Sound 태그후의결과를음성으로들려준다. Send History-Data 정산을위한거래후정보를정산서버로전송한다. Format / Type Data Structure(int, Boolean) Data Structure(int, Boolean) int int Data Structure(int, Boolean) 3.2.2 DFD Level 1 3.2.2.1 DFD
3.2.2.2 Process Specification 3.2.2.2.1 Process 1 Reference No. 1 Card Reader Card-Info T_Save Data Process Description 카드의정보를읽어와저장소에저장하는프로세스이다. 3.2.2.2.2 Process 2 Reference No. 2 Terminal Process Control T_Load Data Card-Info, Display, Sound, Send History-Data Process Description 저장소에서카드정보를가져와조건에따라처리한후 각각의 Terminator 로알맞은데이터를전송한다. 3.2.2.3 Data Dictionary Data Description Format / Type T_Save Data Card Info 을 5 가지 Type 으로분류한것과 5 가지를기준으로값이정해진 existinfo, Trans, SameID, exid 를포함하는데이터 LastTime : int Mot : Boolean InOut : Boolean Balance : double Terminal : int existinfo : Boolean sameid : Boolean Trans : Boolean exid : Boolean
T_Load Data Card Info Data 에저장된데이터 LastTime : int Mot : Boolean InOut : Boolean Balance : double Terminal : int existinfo : Boolean sameid : Boolean Trans : Boolean exid : Boolean Card Info Data Card Info 을 5 가지 Type 으로분류한것과 5 가지를기준으로값이정해진 existinfo, Trans, SameID, exid 를포함하는데이터를일시적으로저장하는장소 Data Store 3.2.3 DFD Level 2 3.2.3.1 DFD
3.2.3.2 Process Specification < Related Processes> 3.2.3.2.1 Process1.1 Reference No. 1.1 Card Reader Interface Card-Info T_Pass Data Process Description Card 로부터입력정보를받아와 txt 파일을반환한다. 반환된 txt 정보파일은 Card Reader Manager 로전달된다 3.2.3.2.2 Process 1.2 Reference No. 1.2 Card Reader Manager T_Pass Data, Total Payment history data, Tick T_Save Data(LastTime, Mot, InOut, Balance, TerminalInfo,
existinfo, Trans, SameID, exid) Process Description Card-Info txt 파일내의시간, 교통수단, 승차 / 하차, 잔액, 탑승단말기정보를각각 LastTime, Mot(T=Bus, F=Metro), InOut(In= 승차, Out= 하차 ), Balance, exid 에저장한다. existinfo 는승차시 Card-Info 와동일한정보가 Total Payment history 에있으면 T 그렇지않으면 F 가된다. SameID 는 exid 와현재태그하는단말기의 ID 의앞숫자가같으면 T 그렇지않으면 F 가된다. Trans 는현재시간과 LastTime 의차이가 15 초이내이고 SameID 가 T 이면 T 이고그렇지않으면 F 가된다. exid 는직전단말기정보가버스면 T, 지하철이면 F 이다. <Control + Related Processes> 3.2.3.2.3 Process 2.1 Reference No. 2.1 Terminal Process Control T_Load Data Card Write Command, Display Command, Sound Command, Send Command Process Description 저장소에서카드정보를받아승차, 하차, 환승, 미정산, 거부등의과정을거친후 Card Writer Interface, Display Interface, Sound Interface, Server Send Interface 로 Command 데이터를전송한다. 3.2.3.2.4 Process 2.2 Reference No. 2.2 Card Writer Card Write Command Write Data
Process Description 변경된카드정보를통해, 카드에입력한다. 3.2.3.2.5 Process 2.3 Reference No. 2.3 Display Display Command Display Data Process Description 현재시간, 차감금액, 잔액의정보를받아와화면에 출력한다. 3.2.3.2.6 Process 2.4 Reference No. 2.4 Sound Sound Command Sound Data Process Description 승차, 하차, 환승, 거부등의정보를받아와현재상태를 소리로출력한다. 3.2.3.2.7 Process 2.5 Reference No. 2.5 Server Send Send Command Send Data Process Description 거래내역을받아와정산서버로전송한다. 3.2.3.3 Data Dictionary Data Description Format / Type T_Pass Data Card Reader Interface 에서받아들인 Data Structure(int,
데이터를 txt 파일형태로정리한 중간단계의데이터 Boolean)
3.2.4 DFD Level 3 3.2.4.1 DFD
3.2.4.2 Process Specification 3.2.4.2.1 Process 2.1.1 Reference No. 2.1.1 Terminal Process Control T_Load Data,Tick
Process Description Enable / Disable Command, Trigger Command Card-Info Store 에서카드정보를받아와, 각각의시나리오를만족하는조건과카드정보를비교하여알맞은프로세스에트리거명령을보낸다. 3.2.4.2.2 Process 2.1.2 Reference No. 2.1.2 StandBy Enable / Disable Process Description Display Command 카드가태그되지않을때의상태로입력이들어올때까지 정지상태의화면을출력하며상태를유지한다. 3.2.4.2.3 Process 2.1.3 Reference No. 2.1.3 GetOn Pass T_Load Data, Trigger Card Write Command, Display Command, Sound Command, Send Command, Payment data Process Description (existinfo==f) && (inout==f) && (trans==f) && (balance>=normal_fee) 의 경우에 실행된다. 저장소에서 카드정보를받아와잔액에서기본요금차감, inout 을 T 로변경, Mot 를탑승수단으로변경한다. 변경된 payment data(balance, inout, mot, LastTime, TerminalInfo) 를 payment_history data, Total payment history data 에저장하고각각의 Interface 로커맨드를 전달한다. 3.2.4.2.4 Process 2.1.4
Reference No. 2.1.4 GetOn Deny T_Load Data, Trigger Display Command, Sound Command Process Description (existinfo==f) && (inout==f) && (trans==f) && (balance<normal_fee) 의경우에실행된다. 카드정보는변 경되지않고각각의 Interface 로커맨드를전달한다. 3.2.4.2.5 Process 2.1.5 Reference No. 2.1.5 Bus_GetOff T_Load Data, Trigger Card Write Command, Display Command, Sound Command, Send Command, Payment data Process Description (existinfo==t) && (SameID==T) && (Mot==T) 의경우에 실행된다. 저장소에서카드정보를받아와 InOut 을 F 로 변경한다. 변경된 payment data(balance, inout, motlasttime, TerminalInfo) 를를 payment_history data, Total payment history data 에저장하고각각의 Interface 로커맨드를전달한다. 3.2.4.2.6 Process 2.1.6 Reference No. 2.1.6 Metro_GetOff T_Load Data,, payment history data, Trigger Card Write Command, Display Command, Sound Command, Send Command, Payment data
Process Description (existinfo==t) && (SameID==T) && (Mot==F) 의경우에실행된다. 저장소에서 card info data 와 payment history data 를받아와이동정거장수를확인하고 2 정거장이상이동했을시엔추가요금 200 원을차감하고그렇지않으면차감하지않는다. 그리고 InOut 을 F 로변경한다. 변경된 payment data(balance, inout, mot, LastTime, TerminalInfo) 를를 payment_history data, Total payment history data 에저장하고각각의 Interface 로커맨드를전달한다. 3.2.4.2.7 Process 2.1.7 Reference No. 2.1.7 Transfer_Pass T_Load Data, Trigger Card Write Command, Display Command, Sound Command, Send Command, Payment data Process Description {(existinfo==f)&&(inout==f)&&(trans==t)&&(balance>= MAX_BUS_FEE)} {(existinfo==f)&&(inout==f)&&(trans==t)&&(balance>= MAX_METRO_FEE)} 의경우에실행된다. 저장소에서카드정보를받아와 inout 을 T 로변경, MoT 를탑승수단으로변경한다. 변경된 payment data(balance, inout, motlasttime, TerminalInfo) 를 payment_history data, Total payment history data 에저장하고각각의 Interface 로커맨드를전달한다. 3.2.4.2.8 Process 2.1.8 Reference No. 2.1.8 Transfer_Deny T_Load Data, Trigger
Process Description Display Command, Sound Command {(existinfo==f)&&(inout==f)&&(trans==t)&&(balance<m AX_BUS_FEE)} {(existinfo==f)&&(inout==f)&&(trans==t)&&(balance<m AX_METRO_FEE)} 의경우에실행된다. 카드정보는변경되지않고각각의 Interface 로커맨드를전달한다. 3.2.4.2.9 Process 2.1.9 Reference No. 2.1.9 Bus_T_GetOff T_Load Data, Trigger Card Write Command, Display Command, Sound Command, Send Command, Payment data Process Description (existinfo==t)&&(sameid==f)&&(mot==t) 의경우에실행된다. 저장소에서카드정보를받아와 LastTime 과현재시간을비교해추가요금 (30 초당 100 원추가. 최고 700 원을넘지않는다.) 을차감하고, inout 을 F 로변경한다. 변경된 payment data(balance, inout, mot, LastTime, TerminalInfo) 를 payment_history data, Total payment history data 에저장하고각각의 Interface 로커맨드를전달한다. 3.2.4.2.10 Process 2.1.10 Reference No. 2.1.10 Metro_T_GetOff T_Load Data,, payment history data, Trigger Card Write Command, Display Command, Sound Command, Send Command, Payment data Process Description (existinfo==t)&&(sameid==f)&&(mot==f) 의경우에실행 된다. 저장소에서 card info data 와 payment history data 를받아와이동정거장수를확인하고추가요금 (1 정거장당
300 원추가. 최고 600 원을넘지않는다.) 을차감하고, inout 을 F 로변경한다. 변경된 payment data(balance, inout, mot, LastTime, TerminalInfo) 를 payment_history data, Total payment history data 에저장하고각각의 Interface 로커맨드를전달한다. 3.2.4.2.11 Process 2.1.11 Reference No. 2.1.11 M2B_Pass T_Load Data, Trigger Card Write Command, Display Command, Sound Command, Send Command, Payment data Process Description (existinfo==f)&&(inout==t)&&(mot==t)&&(balance>=n OMAL_FEE +MAX_BUS_FEE) 의경우에실행된다. 지하철에서버스로환승후하차태그를하지않고잔액이충분한경우로저장소에서카드정보를받아와잔액에서미정산요금 700 원과기본요금을차감, inout 을 T 로변경, Mot 을탑승수단으로변경한다. 변경된 payment data(balance, inout, Mot, LastTime, TerminalInfo) 를 payment_history data, Total payment history data 에저장하고각각의 Interface 로커맨드를전달한다. 3.2.4.2.12 Process 2.1.12 Reference No. 2.1.12 M2B_Deny T_Load Data, Trigger Display Command, Sound Command Process Description (existinfo==f)&&(inout==t)&&(mot==t)&&(balance<no MAL_FEE +MAX_BUS_FEE) 의경우에실행된다. 지하철에서 버스로환승후하차태그를하지않고잔액이부족한경
우로카드정보는변경되지않고각각의 Interface 로커맨 드를전달한다. 3.2.4.2.13 Process 2.1.13 Reference No. 2.1.13 M2M_Pass T_Load Data, Trigger Card Write Command, Display Command, Sound Command, Send Command, Payment data Process Description (existinfo==f)&&(inout==t)&&(mot==f)&&(exid==f)&&( Balance>=NOMAL_FEE +MAX_METRO_FEE) 의경우에실행된다. 지하철에서일반하차시태그를하지않고잔액이충분한경우로저장소에서카드정보를받아와잔액에서미정산요금 200 원과기본요금을차감, inout 을 T 로변경, Mot 를탑승수단으로변경한다. 변경된 payment data(balance, inout, motlasttime, TerminalInfo) 를 payment_history data, Total payment history data 에저장하고각각의 Interface 로커맨드를전달한다. 3.2.4.2.14 Process 2.1.14 Reference No. 2.1.14 M2M_Deny T_Load Data, Trigger Display Command, Sound Command Process Description (existinfo==f)&&(inout==t)&&(mot==f)&&(exid==f)&&( Balance<NOMAL_FEE +MAX_METRO_FEE) 의경우에실행된다. 지하철에서일반하차시태그를하지않고잔액이부족한경우로카드정보는변경되지않고각각의 Interface 로커맨드를전달한다.
3.2.4.2.15 Process 2.1.15 Reference No. 2.1.15 B2M_Pass T_Load Data, Trigger Card Write Command, Display Command, Sound Command, Send Command, Payment data Process Description (existinfo==f)&&(inout==t)&&(mot==f)&&(exid==t)&& (Balance>=NOMAL_FEE+MAX_METRO_FEE) 의경우에실행된다. 버스에서지하철로환승후하차태그를하지않고잔액이충분한경우로저장소에서카드정보를받아와잔액에서미정산요금 600 원과기본요금을차감, inout 을 T 로변경, Mot 을탑승수단으로변경한다. 변경된 payment data(balance, inout, mot, LastTime, TerminalInfo) 를 payment_history data, Total payment history data 에저장하고각각의 Interface 로커맨드를전달한다. 3.2.4.2.16 Process 2.1.16 Reference No. 2.1.16 B2M_Deny T_Load Data, Trigger Display Command, Sound Command Process Description (existinfo==f)&&(inout==t)&&(mot==f)&&(exid==t)&& (Balance<NOMAL_FEE+MAX_METRO_FEE) 의경우에실행된다. 버스에서지하철로환승후하차태그를하지않고잔액이부족한경우로카드정보는변경되지않고각각의 Interface 로커맨드를전달한다. 3.2.4.2.17 Process 2.2.1 Reference No. 2.2.1
Process Description Card Writer Interface Write Command, T_Load Data Write Data, Save History Data 카드로수정된 data 를 Write 하기전에 Card-Info Store 에서수정되기전 data 를읽어와비교를한다. 그후, 비교결과에따라 History Data Store 으로금액 ( 수정전 data 잔액-수정후 data 잔액 ), 교통수단 (Bus/Metro), 환승여부, 미정산여부를저장한다. 3.2.4.2.18 Process 2.3.1 Reference No. 2.3.1 Display Interface Display Command Display Data Process Description 현재시간, 차감금액, 잔액의정보를받아와화면에 출력한다. 3.2.4.2.19 Process 2.4.1 Reference No. 2.4.1 Sound Interface Sound Command Sound Data Process Description 승차, 하차, 환승, 거부등의정보를받아와현재상태를 소리로출력한다. 3.2.4.2.20 Process 2.5.1 Reference No. 2.5.1
Process Description Server Send Interface Send Command, Load History Data Send Data Send Command 를받게되면, 거래내역을저장소로부터받아와정산서버로전송한다. 3.2.4.3 Data Dictionary Data Description Format / Type T_Loda Data Card Reader 를통해받아들인, Card-Info txt 파일내의시간, 교통수단, 승차 / 하차, 잔액, 탑승단말기정보를각각 LastTime, Mot(T=Bus, F=Metro), InOut(T= 승차, F= 하차 ), Balance, Terminal 에저장한데이터. 그리고이 5 가지데이터와 Payment_History LastTime : int Mot : Boolean InOut : Boolean Balance : double TerminalInfo : int existinfo : Boolean Trans : Boolean SameID : Boolean exid : Boolean data 를비교하여만들이진 existinfo, Trans, SameID, exid 데이터이다. 컨트롤부분에선프로세스들이 Card-Info Data 에서 Data 를 load 하여사용한다. Payment data 개별단말기의 Payment data( Balance : 차감된금액, Inout : 승 / 하차, Mot : 탑승수단, LastTime : 태그시간, Terminalinfo : 단말기정보 ) 가 LastTime : int Mot : Boolean InOut : Boolean Balance : double Terminal : int 누적저장되는저장소이다. Total Payment 모든단말기의 Payment data Data Store
History Data 가저장되는데이터저장소 Payment History Data 개별단말기의 Payment data 가저장되는데이터저장소 Display Command 화면을 띄워주기 위해 전달되는명령과표시할잔액 데이터 Card Write 프로세스후카드로전송될 Command 데이터 Sound Command 음성재생을위해전달되는 명령및데이터 Send Command 정산서버로의 전송 승인을 위한명령 Save History Data Card Writer Interface 에서 계산된거래내역데이터 Data Store Boolean, int LastTimeInfo (int), Bus/Metro (Boolean), In/Out (Boolean), Balance (double), TerminalInfoFromCard( int) int Boolean 잔액 : double 교통수단 : Boolean (T: 버스, F: 지하철 ) 환승여부 : Boolean (T: 환승 ) 미정산여부 : Boolean (T: 미정산 ) Write Data 카드로전송될데이터 LastTimeInfo (int), Bus/Metro (Boolean), In/Out (Boolean), Balance (double), TerminalInfoFromCard(int) Display Data 단말기 모니터에서 표현될 int 데이터 ( 잔액 ) Sound Data 단말기 스피커에서 재생될 int
Load History Data 데이터 (int 값에따른각각의음성 ) 서버로전송되기전 Server Send Interface 로전달되는데이터 잔액 : double 교통수단 : Boolean (T: 버스, F: 지하철 ) 환승여부 : Boolean (T: 환승 ) 미정산여부 : Boolean (T: 미정산 ) Send Data 서버로전송될데이터잔액 : double 교통수단 : Boolean (T: 버스, F: 지하철 ) 환승여부 : Boolean (T: 환승 ) 미정산여부 : Boolean (T: 미정산 ) History Data Store 성공적으로거래를마친후, 거래내역기록을정산서버로보내기위해 History Data Store 에일시적으로저장하게된다. Data Store
3.2.5 DFD Level 4 3.2.5.1 State Transition Diagrams
3.2.6 Overall DFD
4 Structured Analysis for Daily Calculation Process 4.1 System Context Diagram 4.1.1 Basic System Context Diagram 4.1.2 Event List / Events Description History-Data 단말기로부터전송받은거래내역을입력한다. Bus Payment-Data 버스회사에정산완료된금액내역을보내준다. Metro Payment-Data 지하철회사에정산완료된금액내역을보내준다. Complete 정산을성공적으로완료시성공신호를전송한다. Display 정산을성공적으로완료시화면에결과를출력한다.
4.1.3 The System Context Diagram
4.2 Data Flow Diagram 4.2.1 DFD level 0 4.2.1.1 DFD 4.2.1.2 Process Specification Reference No. 0 Calculating Process History-Data, Tick Bus Payment-Data, Metro Payment-Data, Complete, Display Process Description 정산시스템의메인컨트롤러로하루 (3 분 ) 마다입력받은 data 를적절한처리를통해출력해준다. 4.2.1.3 Data Dictionary / Description Format / Type
Events History-Data 단말기로부터 전송 받은 거래 내역을입력한다. Bus Payment- 버스회사에정산완료된금액 Data 내역을보내준다. Metro Payment- 지하철회사에정산완료된금액 Data 내역을보내준다. Complete 정산을 성공적으로 완료 시 성공신호를전송한다. Display 정산을 성공적으로 완료 시 화면에결과를출력한다. int, Boolean, double double double Boolean Boolean 4.2.2 DFD Level 1 4.2.2.1 DFD
4.2.2.2 Process Specification Reference No. 1 History Data Reader History Data S_Save Data Process Description 입력된 Data 를처리하여 -Data Store 에저장한다. Reference No. 2 Calculating Process Control S_Load Data, Tick Bus Payment-Data, Metro Payment-Data, Complete, Display Process Description 하루 (3 분 ) 마다동작하며, -Data Store 에서 History- Info Data 를읽어와처리후출력한다. 4.2.2.3 Data Dictionary Data Description Format / Type S_Save Data History Data 을 (B2M Trans Data / 버스- 6 가지 Type 으로분류한데이터 > 지하철환승, M2B Trans Data / 지하철- > 버스환승, Normal Bus Data / 일반 버스요금 Normal Metro Data / 일반지하철요금 B2M Not Data / 버스- > 지하철환승후미정산 M2B Not Data / 지하철-
S_Load Data Calculating Process Control 에서사용하기위해읽어들이는데이터 History-Info Data Server DB 로부터받아들인, 거래내역들을 History Data Reader 에의해 6 type 으로가능한타입별로분류하여 일시적으로저장하는장소 > 버스환승후미정산 ) (B2M Trans Data / 버스- > 지하철환승, M2B Trans Data / 지하철- > 버스환승, Normal Bus Data / 일반버스요금 Normal Metro Data / 일반지하철요금 B2M Not Data / 버스- > 지하철환승후미정산 M2B Not Data / 지하철- > 버스환승후미정산 ) Data Store
4.2.3 DFD Level 2 4.2.3.1 DFD 4.2.3.2 Process Specification
< Related Processes> Reference No. 1.1 History Data Reader Interface History-Data S_Pass Data Process Description 입력된 Data 를 History Data Reader Manager 로 Pass 한다. Reference No. 1.2 History Data Reader Manager S_Pass Data B2M Trans Save Data, M2B Trans Save Data, Normal Bus Save Data, Normal Metro Save Data, B2M Not Save Data, M2B Not Save Data Process Description 입력받은 Data 를 6 가지형태의 Data 로나눠준다. (B2M Trans Save Data / 버스-> 지하철환승, M2B Trans Save Data / 지하철-> 버스환승, Normal Bus Save Data / 일반버스요금 Normal Metro Save Data / 일반지하철요금 B2M Not Save Data / 버스-> 지하철환승후미정산 M2B Not Save Data / 지하철-> 버스환승후미정산 ) <Control + Processes> Reference No. 2.1 Calculating Process Control S_Load Data, Tick Bus Payment Command, Metro Payment Command, Complete Command, S_Display Command
Process Description 하루 (3 분 ) 마다동작하며입력받은 -Data Store 를 정산처리한뒤회사 ( 버스 / 지하철 ), 단말기, 화면으로 출력해준다. Reference No. 2.2 Bus Company Bus Payment Command S_Send Data Process Description 버스회사로정산내역을 Send 한다. Reference No. 2.3 Metro Company Metro Payment Command S_Send Data Process Description 지하철회사로정산내역을 Send 한다. Reference No. 2.4 Terminal Complete Command Signal Data Process Description 단말기로정산완료 Signal 을보낸다. Reference No. 2.5 Display Send S_Display Command
S_Display Data Process Description 모니터화면에정산결과를출력한다. 4.2.3.3 Data Dictionary Data Description Format / Type S_Pass Data History Data Reader 잔액 : double Interface 에서 History 교통수단 : Boolean (T: Data Reader Manager 로버스, F: 지하철 ) 전달되는데이터환승여부 : Boolean (T: 환승 ) 미정산여부 : Boolean (T: 미정산 ) B2M Trans Save Data 버스-> 지하철환승 double, Boolean M2B Trans Save Data 지하철-> 버스환승 double, Boolean Normal Bus Save Data 일반버스 double, Boolean Normal Metro Save Data 일반지하철 double, Boolean B2M Not Save Data 버스-> 지하철 환승 후 double, Boolean 미정산 M2B Not Save Data 지하철-> 버스 환승 후 double, Boolean 미정산 S_Send Data 각회사로보내는최종정산금액데이터 double S_Display Data 서버 모니터로 보내는 int 데이터 Signal Data 단말기로 보내는 Boolean(T: 완료, F: 실패 ) 정산완료데이터
4.2.4 DFD Level 3 4.2.4.1 DFD
4.2.4.2 Process Specification Reference No. 2.1.1 Initiation Control Tick Enable, Disable, Trigger Process Description 컨트롤은 StandBy Enable 상태를 유지하고 있다가 하루 (3 분 ) 마다 Tick 을받는다. 이때, StandBy 상태는 Disable 상태가되고 Start Process 를 Trigger 한다. Reference No. 2.1.2 StandBy Enable, Disable Process Description 없음 컨트롤러의대기상태프로세스
Reference No. 2.1.3 Start Process Trigger Execute Data Process Description Trigger 에 의해 실행되며 하위 프로세스를 execute( 실행 ) 시킨다. Reference No. 2.1.4 Normal Bus Process Normal Bus Load Data, Execute Data Total Bus Save Data, Execute Data Process Description 버스의일반승차시 Data 를읽어와처리후 Total Bus Store 에저장한다. 그리고 End Process 를 Execute 한다. Reference No. 2.1.5 B2M Trans Process B2M Trans Load Data, Execute Data Process Description Total Bus Save Data, Total Metro Data, Execute Data 버스-> 지하철환승시 Data 를읽어와처리후 Total Bus Store, Total Metro Data 에저장한다. 그리고 End Process 를 Execute 한다. Reference No. 2.1.6 M2B Trans Process M2B Trans Load Data, Execute Data Total Bus Save Data, Total Metro Save Data, Execute Data
Process Description 지하철 -> 버스환승시 Data 를읽어와처리후 Total Bus Data, Total Metro Data 에저장한다. 그리고 End Process 를 Execute 한다. Reference No. 2.1.7 Normal Metro Process Normal Metro Load Data, Execute Data Total Metro Save Data, Execute Data Process Description 지하철승 / 하차시 Data 를읽어와처리후 Total Bus Data, Total Metro Data 에저장한다. 그리고 End Process 를 Execute 한다. Reference No. 2.1.8 B2M Not Process B2M Not Load Data, Execute Data Process Description Total Bus Save Data, Total Metro Save Data, Execute Data 버스에서지하철로환승한후하차태그를찍지않은미정산경우의 Data 를읽어와처리후 Total Bus Data, Total Metro Data 에저장한다. 그리고 End Process 를 Execute 한다. Reference No. 2.1.9 M2B Not Process M2B Not Load Data, Execute Data Total Bus Save Data, Total Metro Save Data, Execute Data
Process Description 지하철에서버스로환승한후하차태그를찍지않은미정산경우의 Data 를읽어와처리후 Total Bus Data, Total Metro Data 에저장한다. 그리고 End Process 를 Execute 한다. Reference No. 2.1.10 End Process Execute Data, Tick Complete Command, S_Display Command, Bus Payment Command, Metro Payment Command Process Description 이전 프로세스들에게 Execute 를 받으면 실행되는 프로세스로최초로입력받은 Execute 의시간을 Digital Clock 으로부터가져온다. 그리고일정시간 (5 초 ) 이후에 출력을하도록한다. Reference No. 2.2.1 Bus Company Interface Bus Payment Command, Total Bus Load Data S_Send Data Process Description 버스 회사가 받아야 할 정산 결과 합산 금액을 저장소로부터읽어와, 버스회사로전송해준다. Reference No. 2.3.1 Metro Company Interface Metro Payment Command, Total Metro Load Data S_Send Data Process Description 지하철 회사가 받아야 할 정산 결과 합산 금액을 저장소로부터읽어와, 버스회사로전송해준다.
Reference No. 2.4.1 Terminal Interface Complete Command Signal Data Process Description 정산을성공적으로완료했을시결과를소리로출력한다. Reference No. 2.5.1 Display Interface S_Display Command S_Display Data Process Description 정산을성공적으로완료했다는결과를화면에출력한다. 4.2.4.3 Data Dictionary Data Description Format / Type B2M Trans Load 버스-> 지하철환승 double, Boolean Data M2B Trans Load 지하철-> 버스환승 double, Boolean Data Normal Bus Load 일반버스 double, Boolean Data Normal Metro 일반지하철 double, Boolean Load Data B2M Not Load 버스-> 지하철환승후미정산 double, Boolean Data M2B Not Load 지하철-> 버스환승후미정산 double, Boolean Data Execute Data 각 프로세스의 실행을 Boolean 시작하도록명령하는데이터 Execute EP Data End Process 의실행을명령하는 Boolean 데이터
Total Bus Save Total Bus Data 에누적될금액 Data 데이터 Total Metro Save Total Metro Data 에누적될금액 Data 데이터 Complete 단말기에게 보내줄 완료 신호 Command 명령 S_Display 서버모니터로보내줄명령 Command Bus Payment Bus Company 프로세스의 Command 실행여부를결정하는명령 Metro Payment Metro Company Command 프로세스의 실행 여부를 결정하는명령 Total Bus Load Bus Company Interface 로전달될 Data 데이터 ( 최종정산금액 ) Total Metro Load Metro Company Interface 로 Data 전달될데이터 ( 최종정산금액 ) Total Bus Store Server DB 로부터받은거래 내역을토대로정산을완료한, 버스회사가받아야할금액의 합산값을저장한다. Total Metro Store Server DB 로부터받은거래 내역을토대로정산을완료한, 지하철회사가받아야할금액의 합산값을저장한다. double double Boolean(T: 완료,F: 실패 ) int Boolean(T: 승인, F: 거부 ) Boolean(T: 승인, F: 거부 ) double double Data Store Data Store
4.2.5 DFD Level 4 4.2.5.1 State Transition Diagram 4.2.6 Overall DFD