Software Requirement Specification for Public Transportation System Project Team Dependable Software Laboratory Date 2014-09-02 Team Information 이동아 김의섭 2014 Dependable Software Laboratory 1
Table of Contents 1 개요...5 1.1 목적...5 1.2 범위...5 1.3 용어정리...5 1.4 참고문헌...6 1.5 Overview...6 2 개발대상설명...7 2.1 개발대상...7 2.2 기능...7 2.3 사용자특징...7 2.4 제약및가정사항...7 3 세부기능...9 3.1 단말기...9 3.1.1 외부인터페이스...9 3.1.1.1 사용자인터페이스...9 3.1.1.2 HW 인터페이스...9 3.1.1.3 SW 인터페이스...9 3.1.1.4 통신인터페이스...9 3.1.2 기능요구사항... 10 3.1.2.1 버스단말기... 10 3.1.2.1.1 운행규정... 10 2014 Dependable Software Laboratory 2
3.1.2.1.2 사용자카드인식... 10 3.1.2.1.3 요금계산... 10 3.1.2.1.3.1 승차시부과금액... 10 3.1.2.1.3.2 하차시부과금액... 11 3.1.2.1.4 출력... 11 3.1.2.2 지하철단말기... 11 3.1.2.2.1 운행규정... 11 3.1.2.2.2 사용자카드인식... 11 3.1.2.2.3 금액계산... 11 3.1.2.2.3.1 승차시부과금액... 12 3.1.2.2.3.2 하차시부과금액... 12 3.1.2.2.4 출력... 12 3.1.3 성능요구사항... 13 3.1.4 설계제약사항... 13 3.1.5 소프트웨어속성... 13 3.1.6 기타요구사항... 13 3.2 정산시스템... 14 3.2.1 외부인터페이스... 14 3.2.1.1 사용자인터페이스... 14 3.2.1.2 HW 인터페이스... 14 3.2.1.3 SW 인터페이스... 14 3.2.1.4 통신인터페이스... 14 3.2.2 기능요구사항... 14 2014 Dependable Software Laboratory 3
3.2.2.1 운행규정... 14 3.2.2.2 일별요금목록획득... 14 3.2.2.3 정산... 15 3.2.2.4 출력... 15 3.2.3 성능요구사항... 15 3.2.4 설계제약사항... 15 3.2.5 소프트웨어속성... 16 3.2.6 기타요구사항... 16 2014 Dependable Software Laboratory 4
1 개요 1.1 목적 본문서는 2014 년건국대학교의소프트웨어공학개론강의의실습과제를설명한다. 실 습과제는대중교통시스템 (PTS: Public Transportation System) 을소프트웨어만을이용한 가상의시스템으로구현하는것을의미한다. 1.2 범위 현재운영중인 PTS 는 < 그림 1>( 김형환 2010) 과같다. 본프로젝트는전체 PTS 중지 하철, 버스및정산시스템만을대상으로구현하는것으로규모를제한한다. 또한버스 1 대와지하철 2 호선중 5 개역 ( 건대입구, 왕십리, 합정, 신림, 강남 ) 만을대상으로한다. 모든시스템은 SW 만으로구현한다. HW 가필요한부분은 SW 모듈을만들어가상의 HW 를구현한다. 그림 1 서울의교통카드운영시스템 1.3 용어정리 HW: Hardware 2014 Dependable Software Laboratory 5
PTS: Public Transportation System SW: Software 태그 : 카드와단말기가통신할수있도록하는행위 ; 승 하차시요금결제를위한행위 1.4 참고문헌 ( 김형환 2010) 김형환, 신동석 교통카드무인판매 / 충전기통합운영시스템개발, 韓國 컴퓨터情報學會論文誌 15(3), 99-109, 2010 ( 김경선, 2009) 김경선, 교통카드시스템사례연구 - 수도권교통카드중심, 수도권교통 본부, 2009 1.5 Overview 2014 Dependable Software Laboratory 6
2 개발대상설명 2.1 개발대상 SW 로개발된 PTS 는총 3 가지로구성된다. 버스용단말기와지하철용단말기, 정산시 스템이다. 2.2 기능 버스용단말기는버스에부착돼, 탑승태그와하차태그가가능하다. 기본료를지불하 면 1 회탑승이가능하다. 지하철용단말기는역에부착돼탑승태그와하차태그가가능하다. 1 개역이하를이동 하면기본료가부가되며두개역을이동하면추가요금이부가된다. 버스와지하철간에는정해진시간내에환승이가능하다. 지하철에서버스로환승한경우는단위시간당버스의환승요금이추가로부가된다. 버스에서지하철로환승한경우는한역당지하철의환승요금추가로부가된다. 하차시단말기에태그를하지않으면환승은적용되지않는다. 정산은하루에한번이뤄진다. 버스와지하철의기록을분석하고버스와지하철에각 각수익을배분한다. 2.3 사용자특징 사용자는하차시카드를태그할수도있고아닐수도있다. 2.4 제약및가정사항 버스승차는지역에상관없이할수있다. 지하철은 2 호선역중 5 개만고려한다. 2014 Dependable Software Laboratory 7
하루는 3 분으로가정한다. 다음날운행이시작하기전까지는정산이반드시이루어져야한다. 환승이가능한시간은 15 초이내다. 버스환승시추가요금의기준인단위시간은 30 초이다. 버스와지하철의기본료는 1050 원이다. 교통카드는저장된텍스트파일로가정하고, 교통카드태그행위를해당파일을입력 하는것으로가정한다. 2014 Dependable Software Laboratory 8
3 세부기능 3.1 단말기 3.1.1 외부인터페이스 3.1.1.1 사용자인터페이스 입력 : 교통카드 출력 : 사용금액 ( 화면 ), 잔액 / 시간 ( 화면 ), 일별요금목록 ( 데이터 ), 거래후교통 카드정보 3.1.1.2 HW 인터페이스 입력 : 교통카드감지센서 출력 : LED 화면 ( 사용금액, 잔액 / 시간 ), 교통카드기록장치, digital clock 그림 2 대표적인교통카드단말기 3.1.1.3 SW 인터페이스 입력 : 카드정보, 시간 출력 : 카드정보, 일별요금목록 3.1.1.4 통신인터페이스 2014 Dependable Software Laboratory 9
3.1.2 기능요구사항 3.1.2.1 버스단말기 3.1.2.1.1 운행규정 버스단말기는하루를주기로반복해서동작한다. 하루동안동작한후정산과정과초기화과정을진행한다. 정산이되지않았을경우운행을할수없다. 3.1.2.1.2 사용자카드인식 카드인식은태그를통해통해수행한다. 태그시해당사용자카드의정보를입력받는다. 3.1.2.1.3 요금계산 입력받은사용자카드정보와현재시간을이용해부과될요금을계 산한다. < 표 1 참조 > 표 1 기본요금 환승요금 미정산요금 1050원 30초당 100원추가 ( 최고 700원을넘지않는다.) 지하철에서버스환승후하차시단말기를태그하지않았을경우환승최고요금인 700원을다음승차시부과한다. 3.1.2.1.3.1 승차시부과금액 승차시부과되는기본요금은 1050 이다. 지하철환승후부과되는요금은 0 원이다. 미정산금액이있을경우추가하여부과한다. ( 지하철에서버 스환승후미정산금액은버스환승최대요금인 700 원이다. 지하철하차후미정산금액은 200 원이다. 버스에서지하철 2014 Dependable Software Laboratory 10
환승후미정산금액은지하철환승최대요금인 600 원이다.) 3.1.2.1.3.2 하차시부과금액 하차시부과되는요금은 0 원이다. 지하철환승후하차시부과되는요금은시간에비례한다. ( 승차후 30 초당 100 원이다.) 지하철환승후하차시부과되는요금은버스환승최대금 액인 700 원을넘지않는다. 3.1.2.1.4 출력 계산된부과요금과현재시간을단말기에출력한다. 계산된부과요금과기타정보를사용자카드에기록한다. 계산된부과요금과기타정보를버스일별요금목록에기록한다. 3.1.2.2 지하철단말기 3.1.2.2.1 운행규정 각역마다하나의지하철단말기가독립적으로작동한다. 지하철단말기는하루를주기로반복해서동작한다. 하루동안동작한후정산과정과초기화과정을진행한다. 정산이되지않았을경우운행을할수없다. 3.1.2.2.2 사용자카드인식 카드인식은태그를통해수행한다. 태그시해당사용자카드의정보를입력받는다. 3.1.2.2.3 금액계산 입력받은사용자카드정보와현재시간을이용해부과될요금을계 산한다. < 표 2 참조 > 2014 Dependable Software Laboratory 11
표 2 기본요금거리비례추가요금환승요금미정산요금 1050원 2 정거장이상시 200원추가 1 정거정당 300원추가 ( 최고 600원을넘지않음 ) 일반하차시단말기를태그하지않았을경우200원을다음승차시부과한다. 버스에서지하철환승후하차시단말기를태그하지않았을경우환승최대요금인 600원을부과한다. 3.1.2.2.3.1 승차시부과금액 승차시부과되는기본요금은 1050 이다. 버스환승후부과되는요금은 0 원이다. 미정산금액이있을경우추가하여부과한다. ( 지하철에서버스환승후미정산금액은버스환승최대요금인 700원이다. 지하철하차후미정산금액은 200원이다. 버스에서지하철환승후미정산금액은지하철환승최대요금인 600원이다.) 3.1.2.2.3.2 하차시부과금액 하차시부과요금은거리에비례한다. (2 정거장이상시 200 원이다.) 버스환승후부과될요금은승차후거리에비례한다. (1 정 거장 300 원, 2 정거장 600 원 ) 지하철환승후부과될최대금액은 600 원을넘지않는다. 3.1.2.2.4 출력 계산된부과요금과현재시간을단말기에출력한다. 계산된부과요금과기타정보를사용자카드에기록한다. 계산된부과요금과기타정보를지하철일별요금목록에기록한다. 2014 Dependable Software Laboratory 12
3.1.3 성능요구사항 3.1.4 설계제약사항 입력 : 교통카드로가정한 *.txt 파일 ; < 표 3> 참조 ( 교통카드용 ) 출력 : 교통카드로가정한 *.txt 를갱신한파일 ; < 표 3> 참조 표 3 교통카드를대체하는파일에저장된내용 Data 시간 교통수단 승차 / 하차 잔액 설명 마지막으로태그된시간 버스 / 지하철 승차태그인지하차태그인지 선불식교통카드의잔액 여부 Type YYYYMMDDHHmm BUS METRO IN OUT INT ( 정산용 ) 출력 : 하루치결제정보를누적기록한파일 ; < 표 4> 참조 표 4 교통카드단말기의누적결제기록 Data 시간 교통수단 승차 / 하차 결제금액 설명 마지막으로태그된시간 버스 / 지하철 승차태그인지하차태그인지여부 기본결제금액은승차시부과하고추가 결제 금액은 하차시결제 Type YYYYMMDDHHmm BUS METRO IN OUT INT Data 구분은쉼표 (,) 를사용한다. 3.1.5 소프트웨어속성 교통카드태그행위는동일한폴더내의교통카드파일을읽어오는것으로간주한 다. 3.1.6 기타요구사항 2014 Dependable Software Laboratory 13
3.2 정산시스템 3.2.1 외부인터페이스 3.2.1.1 사용자인터페이스 입력 : 버스와지하철단말기의일별요금목록 출력 : 정산결과 ( 데이터 ) 3.2.1.2 HW 인터페이스 입력 : 파일수신장치 출력 : 정산자료저장장치, 파일송신장치 3.2.1.3 SW 인터페이스 입력 : 일별요금목록 ( 버스, 지하철각역 ) 출력 : 정산결과자료 3.2.1.4 통신인터페이스 3.2.2 기능요구사항 3.2.2.1 운행규정 하루를주기로반복적으로작동한다. 3.2.2.2 일별요금목록획득 각각의일별요금목록은버스와지하철단말기로부터입력받는다. 2014 Dependable Software Laboratory 14
3.2.2.3 정산 입력받은일별요금목록을이용해각각의정산금액을계산한다. < 표 3 참조 > 표 5 정산방법 공식 : 버스 지하철환승버스 = 총금액 * 버스요금 / ( 버스요금 + 총금액 ) 지하철 = 총금액 * 총금액 / ( 버스요금 + 총금액 ) 공식 : 지하철 버스환승버스 = 총금액 * 총금액 / ( 지하철요금 + 총금액 ) 지하철 = 총금액 * 지하철요금 / ( 지하철요금 + 총금액 ) Ex) 버스금액 : 1050 지하철환승금액 : 600 정산금액버스 : 1650 * 1050 / (1050 + 1650) 지하철 : 1650 * 1650 / (1050 + 1650) 미정산금액의경우버스를타고지하철로환승후단말기를태그하지않고내렸을경우총금액을지하철환승최고가격인 600으로하여계산한다. 지하철을타고버스로환승후단말기를태그하지않고내렸을경우총금액을버스환승최고가격인 700으로하여계산한다. 추후사용자가버스나지하철을다시탑승할경우사용자카드에해당미정산금액을차감하고, 초기규정요금을부과한다. 3.2.2.4 출력 정산한금액을모니터에출력한다. 정산한금액을각회사에전송한다. 정산완료시그널??? 을전송한다. 3.2.3 성능요구사항 3.2.4 설계제약사항 입력 : 버스와지하철단말기로부터하루치결제정보를전달받는다 ; < 표 5> 참조 2014 Dependable Software Laboratory 15
표 6 교통카드단말기로부터입수한결제정보 ( 입력 ) Data 시간 교통수단 승차 / 하차 결제금액 설명 마지막으로태그된시간 버스 / 지하철 승차태그인지하차태그인지여부 기본결제금액은승차시부과하고추가 결제 금액은 하차시결제 Type YYYYMMDDHHmm BUS METRO IN OUT INT 출력 : 버스와지하철로정산된금액을각각전송한다 Data 시간교통수단정산금액 설명마지막으로태그된시간버스 / 지하철정산결과 Type YYYYMMDD BUS METRO INT Data 구분은쉼표 (,) 를사용한다. 3.2.5 소프트웨어속성 3.2.6 기타요구사항 2014 Dependable Software Laboratory 16