본문 바로가기
기타/Toy Project

SASD (구조적 분석 및 설계) 예제 - 대중교통시스템 (PTS) - 소프트웨어 요구사항 (SRS: Software Requirement Specification)

by 멘토_ 2021. 4. 6.
반응형

프로젝트 설명

 

[소프트웨어 공학 개론] 구조적 분석 및 설계(SASD) 기반의 C 개발 프로젝트 설명 - 각 단계 별 활동

해당 프로젝트는 건국대학교 컴퓨터공학과 학부 2학년 2학기 - '소프트웨어 공학 개론' 수업에서 진행하는 프로젝트이다. 프로젝트는 주어진 소프트웨어 요구사항 명세서 (SRS, Software Requirement Spe

ji-se.tistory.com

프로젝트 범위

프로젝트 과제는 대중교통시스템 (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
          그림 2 대표적인 교통카드 단말기
      • 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 참조>
    • 소프트웨어 속성
    • 기타 요구사항

PTS 시스템의 소프트웨어 요구 사항서에 대한 상세 내용은 아래 PDF 파일 참조

PTS SRS Ver 1.0.pdf
0.54MB

반응형