반응형
프로젝트 설명
프로젝트 범위
프로젝트 과제는 대중교통시스템 (PTS : Public Transporation System)을 S/W만을 이용한 가상의 시스템으로 구현하는 것을 목표로 한다. 전체 PTS 중 지하철, 버스 단말기 및 정산 시스템만을 대상으로 구현하는 것으로 규모를 제한한다. 또한 버스 1대와 지하철 2호선 중 5개 역만을 대상으로 한다. 모든 시스템은 SW 만으로 구현한다. HW 가 필요한 부분은 SW 모듈을 만들어 가상의 HW를 구현한다.
개발 대상
PTS 시스템 중 지하철, 버스 및 정산 시스템만을 대상으로 구현하는 것으로 규모를 제한하며 버스용 단말기, 지하철용 단말기 그리고 정산 시스템으로 총 3개의 S/W 로 구성된다.
주요 기능
- 버스용 단말기는 버스에 부착돼, 탑승 태그와 하차 태그가 가능하다. 기본료를 지불하면 1회 탑승이 가능하다.
- 지하철용 단말기는 역에 부착돼 탑승 태그와 하차 태그가 가능하다. 1개역 이하를 이동하면 기본료가 부가되며 두 개역을 이동하면 추가 요금이 부가된다.
- 버스와 지하철 간에는 정해진 시간 내에 환승이 가능하다. 지하철에서 버스로 환승한 경우는 단위 시간 당 버스의 환승 요금이 추가로 부가된다. 버스에서 지하철로 환승한 경우는 한 역당 지하철의 환승 요금 추가로 부가된다. 하차 시 단말기에 태그를 하지 않으면 환승은 적용되지 않는다.
- 정산은 하루에 한 번 이뤄진다. 버스와 지하철의 기록을 분석하고 버스와 지하철에 각각 수익을 배분한다.
제약 및 가정 사항
- 지하철은 5개의 역만 고려한다.
- 버스는 지하철 역마다 존재한다.
- 하루는 3분으로 가정한다.
- 다음 날 운행이 시작하기 전까지는 정산이 반드시 이루어져야 한다.
- 정산 후 모든 프로그램의 정보는 초기화 된다. (사용자 카드 정보 제외)
- 환승이 가능한 시간은 15초 이내다.
- 버스 환승 시 추가요금의 기준 단위 시간은 30초이다.
- 버스와 지하철의 기본료는 1050원이다.
- 교통카드는 저장된 텍스트 파일로 가정하고 , 교통카드 태그 행위를 해당 파일을 입력
하는 것으로 가정한다 - 잔액이 모자를 경우 태우지 않는다
- 버스 환승 최고 부과금액인 700 원이 남아 있지 않으면 버스로 환승시키지 않는다
- 지하철 환승 최고 부과금액인 600 원이 남아 있지 않으면 지하철로 환승시키지 않는다
- 하루 (3 분 ) 종료 시 탑승되어 있는 승객은 미정산 으로 처리한다
- 정산시 소수점 이하는 반올림한다
- 모든 시스템은 SW 만으로 구현한다. HW 가 필요한 부분은 SW 모듈을 만들어 가상의 HW를 구현한다.
세부 기능
- 단말기
- 외부 인터페이스
- 사용자 인터페이스
- 입력 : 교통카드
- 출력 : 사용금액 화면 ), 잔액 시간 화면 ), 일별 요금 목록 데이터 )), 거래 후 교통
카드 정보
- HW 인터페이스
- 입력 : 교통카드 감지 센서
- 출력 : LED 화면 사용금액 , 잔액 시간 )), 교통카드 기록 장치 , digital clock
- SW 인터페이스
- 입력 : 카드 정보 , 시간
- 출력 : 카드 정보 , 일별 요금 목록
- 통신 인터페이스
- 사용자 인터페이스
- 기능 요구사항
- 버스 단말기
- 운행 규정
버스 단말기는 하루를 주기로 반복해서 동작한다
하루 동안 동작한 후 정산 과정과 초기화 과정을 진행한다
정산이 되지 않았을 경우 운행을 할 수 없다 - 사용자 카드 인식
카드 인식은 태그를 통해 통해 수행한다
태그 시 해당 사용자 카드의 정보를 입력 받는다 - 요금 계산
입력 받은 사용자 카드 정보와 현재 시간을 이용해 부과될 요금을 계산한다. 표 1 참조
기본 요금 1050 원 환승 요금 30초당 100원 추가 (최고 700원을 넘지 않는다.) 미정산 요금 지하철에서 버스 환승 후 하차 시 단말기를 태그하지 않았을 경우 환승 최고 요금인 700원을 다음 승차 시 부과한다.
- 승차 시 부과 금액
승차 시 부과되는 기본 요금은 1050 이다
지하철 환승 후 부과되는 요금은 0 원 이다
미정산 금액이 있을 경우 추가하여 부과한다. 지하철에서 버스 환승 후 미정산 금액은 버스 환승 최대 요금인 700 원 이다.
지하철 하차 후 미정산 금액은 200 원 이다.
버스에서 지하철 환승 후 미정산 금액은 지하철 환승 최대 요금인 600 원 이다 - 하차 시 부과 금액
하차시 부과되는 요금은 0 원 이다
지하철환승 후 하차 시 부과되는 요금은 시간에 비례한다. (승차 후 30 초 당 100 원 이다.)
지하철 환승 후 하차 시 부과되는 요금은 버스 환승 최대 금 액인 700 원을 넘지 않는다
- 승차 시 부과 금액
- 출력
계산된 부과 요금과 현재 시간을 단말기에 출력 한다.
계산된 부과 요금과 기타 정보를 사용자 카드에 기록한다.
계산된 부과 요금과 기타 정보를 버스 일별 요금 목록에 기록한다.
- 운행 규정
- 지하철 단말기
- 운행 규정
각 역마다 하나의 지하철 단말기가 독립적으로 작동한다
지하철 단말기는 하루를 주기로 반복해서 동작한 다
하루 동안 동작한 후 정산 과정과 초기화 과정을 진행한다
정산이 되지 않았을 경우 운행을 할 수 없다 - 사용자 카드 인식
카드 인식은 태그를 통해 수행한다
태그 시 해당 사용자 카드의 정보를 입력 받는다 - 금액 계산
입력 받은 사용자 카드 정보와 현재 시간을 이용해 부과될 요금을 계 산한다 . 표 2 참조
기본 요금 1050원 거리 비례 추가 요금 2 정거장 이상시 200원 추가 환승 요금 1 정거정당 300 원 추가
( 최고 600 원을 넘지 않음)미정산 요금 일반 하차 시 단말기를 태그하지 않았을 경우 200원을 다음 승차 시 부과 한다. 버스에서 지하철 환승 후 하차 시 단말기를 태그하지 않았을 경우 환승 최대 요금인 600원을 부과한다.
- 승차 시 부과 금액
승차 시 부과되는 기본 요금은 1050 이다
버스 환승 후 부과되는 요금은 0 원 이다
미정산 금액이 있을 경우 추가하여 부과한다. (지하철에서 버스 환승 후 미정산 금액은 버스 환승 최대 요금인 700 원 이다 . 지하철 하차 후 미정산 금액은 200 원 이다 . 버스에서 지하철 환승 후 미정산 금액은 지하철 환승 최대 요금인 600 원 이다.) - 하차 시 부과 금액
하차 시 부과 요금은 거리에 비례한다 . (2 정거장 이상 시 200원 이다)
버스 환승 후 부과될 요금은 승차 후 거리에 비례한다 . (1 정거장 300 원 , 2 정거장 600 원 )
지하철 환승 후 부과될 최대 금액은 600 원을 넘지 않는다
- 승차 시 부과 금액
- 출력
계산된 부과 요금과 현재 시간을 단말기에 출력 한다
계산된 부과 요금과 기타 정보를 사용자 카드에 기록한다
계산된 부과 요금과 기타 정보를 지하철 일별 요금 목록에 기록한다
- 운행 규정
- 버스 단말기
- 성능 요구사항
- 설계 제약사항
- 입력 교통카드로 가정한 *.txt 파일; <표 3> 참조
- (교통카드용 ) 출력 : 교통카드로 가정한 *.txt 를 갱신한 파일; <표 3> 참조
- (정산용) 출력: 하추리 결제 정보를 누적 기록한 파일; <표 4> 참조
- 소프트웨어 속성
- 교통카드 태그 행위는 동일한 폴더 내의 교통카드 파일을 읽어오는 것으로 간주한다.
- 기타 요구사항
- 각 단말기는 탑승 단말기 정보 (단말기 고유 ID + 하루 동안 태그 된 Count) 를 가지고 있다.
- 사용자가 단말기에 카드를 대그할 경우 단말기는 환승 여부를 확인 후
- 환승이 아닐 경우 해당 탑 승 단말기 정보를 교통카드와 단말기 누적 결제 기
록에 기록한다. - 환승일 경우 카드에 저장되어 있는 탑승 단말기 정보 를 읽어와 교통카드와 단
말기 누적 결제 기 록에 기록한다
- 환승이 아닐 경우 해당 탑 승 단말기 정보를 교통카드와 단말기 누적 결제 기
- 탑승 단말기 정보는 정산시 사용되어 진다.
- 외부 인터페이스
- 정산 시스템
- 외부 인터페이스
- 사용자 인터페이스
- 입력 : 버스와 지하철 단말기의 일별 요금 목록
- 출력 : 정산 결과 (데이터)
- HW 인터페이스
- 입력 : 파일 수신 장치
- 출력 : 정산 자료 저장 장치, 파일 송신 장치
- SW 인터페이스
- 입력 : 일별 요금 목록 (버스, 지하철 각 역)
- 출력 : 정산 결과 자료
- 사용자 인터페이스
- 기능 요구사항
- 운행 규정
하루를 주기로 반복적으로 작동한다. - 일별 요금 목록 획득
각각의 일별 요금 목록은 버스와 지하철 단말기로부터 입력 받는다. - 정산
입력 받은 일별 요금 목록을 이용해 각각의 정산 금액을 계산한다. <표 5> 참조
- 출력
정산한 금액을 모니터에 출력한다.
정산한 금액을 각 회사 (버스, 지하철)에 전송한다.
정산 완료 신호를 전송한다.
- 운행 규정
- 성능 요구사항
- 설계 제약사항
- 입력 : 버스와 지하철 단말기로부터 하루치 결제 정보를 전달 받는다; <표 6> 참조
- 출력 : 버스와 지하철로 정산된 금액을 각각 전송한다. <표 7 참조>
- 입력 : 버스와 지하철 단말기로부터 하루치 결제 정보를 전달 받는다; <표 6> 참조
- 소프트웨어 속성
- 기타 요구사항
- 외부 인터페이스
PTS 시스템의 소프트웨어 요구 사항서에 대한 상세 내용은 아래 PDF 파일 참조
반응형