소프트웨어공학개론 [T3]Public Transportation System
1
Contents
2
■ Explanation Structured Charts Programing Code
■Unit Test Plan Test items Features to be tested / not to be tested Test Identification & Specification
■Unit Test ResultUnit Test ReportDemo
3
Explanation
Structured Charts
Programing Code
4
Structured Chart AdvancedBus
MainDetermine Controller
Riding Enable
ArrangingCard Data Interface
Uncalculated Controller
RidingDisable
TransferEnable
After Trans Exit
NormalExit
TransferDisable
AfterSub-E
AfterSub-D
AfterSubus-E
After Busub-D
AfterBusub-E
AfterSubus-D
ArrangedData
UnarrangedData
MonitorInterface
WritingInterface
SendingInterface
DisplayCommand
WritingCommand
SendingCommand
ReaderData
ReaderData
A·D
Trigger TriggerTrigger
D·C
A·D
A·DA·D
A·D
A·D
A·D
Trigger
Trigger
TriggerTrigger
D·C D·CD·C D·C
W·C
W·C
W·C W·C
D·C
W·C
Trigger TriggerTrigger
Trigger Trigger
Trigger
A·D A·D A·D A·DA·D A·D
D·C D·C D·CD·C D·C
D·CW·C
W·C
W·C
W·C
D·C
W·C
W·C
W·C
W·C
W·C : Writing Command
D·C : Display Command
A·D : Arranged Data
Receiving Card Interface
5
Determine Controller
Riding Enable
ArrangingCard Data Interface
Receiving Card Interface
Uncalculated Controller
RidingDisable
TransferEnable
TransferDisable
AfterSub-E
AfterSub-D
AfterSubus-E
AfterSubus-D
AfterBusub-E
After Busub-D
ArrangedData
UnarrangedData
After Trans Exit Controller
Normal Exit Controller
Add Fee
No Add
Fee-T
No add
Fee-N
Add FeeOne
Add FeeTwo
MonitorInterface
WritingInterface
SendingInterface
DisplayCommand
WritingCommand
SendingCommand
ReaderData
ReaderData
Trigger TriggerTrigger
Trigger
Trigger TriggerTrigger
Trigger
Trigger TriggerTrigger Trigger Trigger Trigger
Trigger
A·D A·D A·DA·D
Trigger
A·D
Trigger
A·D
D·C D·C D·CD·C
A·D A·D A·D A·D A·D A·DA·D A·D A·D
A·D A·D
D·C
D·CD·C
D·CD·C
D·C D·C D·C D·CD·CD·C
W·C
W·C
W·CW·C
W·C
W·C W·CW·C
W·C
W·C
W·C : Writing Command
D·C : Display Command
A·D : Arranged Data
W·C
W·C
D·C
W·C
D·C
W·C
W·C W·C
W·C
D·C
W·C
Structured Chart AdvancedSubway
Main
6
Structured Chart AdvancedCalculator
Main
Receiving Reader Data
Interface
TransCalculator
BusCalculator
SubwayCalculator
ClassifyCase
FinalCalculator
Sending DataInterface
DisplayInterface
SignalInterface
InputData
InputData
Un-Trans
Do-Trans
Un-Bus
Do-Bus
Un-Sub
Do-Sub
Do-Trans
Do-Sub
Do-Bus
DisplayCommand
SignalCommand
Sending DataCommand
7
Bus & Subway ReaderProgramingCode
Base.h
Structure Description
unrragneddata
arrangeddata
displaycommand
writing command
command
8
Bus & Subway ReaderProgramingCode
Input.h
DetermineController.h
Receiving Card Interface
Arranging Card Data Interface
Determine Controller
9
Bus & Subway ReaderProgramingCode
Controller.h
Output.h
Function Description
Riding Enable
Riding Disable
Transfer Enable
Transfer Disable
UncalculatedController
NormalExitController
AfterTransExitController
Moniter interface
Writing Interface
10
CalculatorProgramingCode
Base.h
Structure Description
Reader Data
command
11
CalculatorProgramingCode
Controller.h
Structure Description
Classify Case 경우를분류해알맞은계산기로보낸다
Trans Calculator 환승한경우의 요금을계산한다
Bus Calculator 버스만탑승한경우의 요금을계산한다
Subway Calculator 지하철만탑승한경우의 요금을계산한다
Final Calculator 3경우의 금액을합쳐 command를 내보낸다
12
CalculatorProgramingCode
Output.h
Structure Description
Display Interface 정산완료된 정보를 화면에출력한다
Sending Data 정산완료된 정보를각회사로 전송하고단말기의사용내역을초기화한다
13
Unit Test Plan
Test items
Features to be tested / not to be tested
Test Identification & Specification
14
Bus & Subway ReaderTest Items
ID Name
1.1
1.2
2.1.1
2.1.2
2.1.3
2.1.4.1
2.1.4.2
2.1.4.3
2.1.4.4
2.1.4.5
2.1.4.6
2.1.4.7
ID Name (Subway)
2.1.5
2.1.6
2.1.7
2.1.7.2 Normal Exit Controller
2.1.7.3 Add Fee
2.1.7.4 No Add Fee-N
2.1.8.2 After Trans Exit Controller
2.1.8.3 Add Fee One
2.1.8.4 Add Fee Two
2.1.8.5 No Add Fee-T
2.2
2.3
15
CalculatorTest Items
ID Name
1.1
2.1.1
2.1.2
2.1.3
2.1.4
2.1.5
ID Name
2.2
2.3
2.4
16
CalculatorTest Items
ID Name
1.1
2.1.1
2.1.2
2.1.3
2.1.4
2.1.5
ID Name
2.2
2.3
2.4
Features to be testedReader
Tag Data
1.1
ArrangedData
Card Data
1.2
UnarrangedData
ArrangedData
2.1.1
Tick
Trigger
2.1.4.1
Arranged Data
Card Data
Arranged Data
Card Data
Arranged Data
Card Data
Card Data
Trigger
Trigger
Trigger
Trigger
2.2Display
Tick
2.4Send
Tick
Reader ReaderData
2.3Write
Reader Data
Reader
Tick
Display Command
Writing Command
Card Data
Card Data
Arranged Data
Arranged Data
Card Data
Card Data
Arranged Data
Card Data Arranged Data
Card Data
Arranged Data
Arranged Data
2.1.3
2.1.2
2.1.4.2
2.1.4.5
2.1.4.3
2.1.4.4
2.1.4.6
2.1.4.7
2.1.6
2.1.7.1
2.1.8.1
Card Data
Arranged Data
Card Data
Arranged Data
Card DataArranged
Data
Card Data Arranged Data
Card DataArranged
Data
2.1.7.2
2.1.8.2
2.1.5
2.1.7.3
2.1.8.3
2.1.8.5
18
Reader Features to be tested
ID Name Description
1.1 Receiving Card Interface
카드가 태그 되었을 시 해당 카드의 텍스트파일을
읽어와서 가장 최근 거래내역 2개(Unarranged
Data)를내보낸다
1.2Arranging Card Data
Interface
Unarranged Data를받아서 UNAL, TRANS, STA 등
Arranged Data 로정리후내보낸다
2.1.1 Determine ControllerArranged Data 를 받아 어떠한 경우인지 판단하여
해당하는경우의프로세스를동작시킨다
2.1.2 Riding Enable일반승차이고탑승이가능할때실행되며요금을계
산하여 Command를내보낸다
19
Features to be testedCalculator
1.1InputData
Reader Data
Input SubData
Input BusData
InputData
2.1.1Un-Bus
2.1.5
2.1.2
2.1.3
2.1.4
Sending Command
Do-Bus
Tick
2.2
2.3
2.4Signal
Send
Display
20
Calculator Features to be tested
ID Name Description
1.1 Receiving Card Interface버스와 지하철로부터 단말기거래내역을받아종합
하여전송한다
2.1.1 Classify Case종합된 기록을 버스만 이용한 경우, 지하철만 이용
한경우, 버스와 지하철을환승하여 이용한경우의 3
가지경우로분류해서각각의프로세스를전송한다
Features not to be testedReader
Tag Data
1.1
ArrangedData
Card Data
1.2
UnarrangedData
ArrangedData
2.1.1
Tick
Trigger
2.1.4.1
Arranged Data
Card Data
Arranged Data
Card Data
Arranged Data
Card Data
Card Data
Trigger
Trigger
Trigger
Trigger
Display
Tick
2.4Send
Tick
Reader ReaderData
2.3Write
Reader Data
Reader
Tick
Display Command
Writing Command
Card Data
Card Data
Arranged Data
Arranged Data
Card Data
Card Data
Arranged Data
Card Data Arranged Data
Card Data
Arranged Data
Arranged Data
2.1.3
2.1.2
2.1.4.2
2.1.4.5
2.1.4.3
2.1.4.4
2.1.4.6
2.1.4.7
2.1.6
2.1.7.1
2.1.8.1
Card Data
Arranged Data
Card Data
Arranged Data
Card DataArranged
Data
Card Data Arranged Data
Card DataArranged
Data
2.1.7.2
2.1.8.2
2.1.5
2.1.7.3
2.1.8.3
2.1.8.5
2.2
22
Calculator Features not to be tested
1.1InputData
Reader Data
Input SubData
Input BusData
InputData
2.1.1Un-Bus
2.1.5
2.1.2
2.1.3
2.1.4
Sending Command
Do-Bus
Tick
2.2
2.3
2.4Signal
Send
Display
23
Reader Test Identification & Specification
MainDetermine Controller
Riding Enable
ArrangingCard Data Interface
Receiving Card Interface
Uncalculated Controller
RidingDisable
TransferEnable
After Trans Exit
NormalExit
TransferDisable
AfterSub-E
AfterSub-D
AfterSubus-E
After Busub-D
AfterBusub-E
AfterSubus-D
ArrangedData
UnarrangedData
MonitorInterface
WritingInterface
SendingInterface
DisplayCommand
WritingCommand
SendingCommand
ReaderData
ReaderData
A·D
Trigger TriggerTrigger
D·C
A·D
A·DA·D
A·D
A·D
A·D
Trigger
Trigger
TriggerTrigger
D·C D·CD·C D·C
W·C
W·C
W·C W·C
D·C
W·C
Trigger TriggerTrigger
Trigger Trigger
Trigger
A·D A·D A·D A·DA·D A·D
D·C D·C D·CD·C D·C
D·CW·C
W·C
W·C
W·C
D·C
W·C
W·C
W·C
W·C
W·C : Writing Command
D·C : Display Command
A·D : Arranged Data
24
Reader Test Identification & Specification
ArrangingCard Data Interface
Receiving Card Interface
ArrangedData
UnarrangedData
Identifier Input Specification Output Specification
PTS UTC 000 000Unarranged data[2] =
{20141117195032, “BUS”, “OUT”, 5950, “B_1”},
{20141117195035, “BUS”, “IN”, 5950, “B_2”}
Arranged data의
In == True
PTS UTC 000 001Unarranged data[2] =
{20141117195032, “BUS”, “OUT”, 5950, “B_1”},
{20141117195035, “BUS”, “IN”, 5950, “B_2”}
Arranged data의
Bus == True
PTS UTC 000 002
Unarranged data[2] =
{20141117195032, “SUBWAY”, “IN”, 5950, “S1_1”},
{20141117195035, “SUBWAY”, “OUT”, 5950, “S2_2”}
(and 마지막태그시간이현재시간과 15초이내)
Arranged data의
Trans == True
PTS UTC 000 003Unarranged data[2] =
{20141117195032, “SUBWAY”, “OUT”, 5950, “S1_1”},
{20141117195035, “BUS”, “IN”, 5950, “B_1”}
Arranged data의
After == True
PTS UTC 000 004
Unarranged data[2] =
{20141117195032, “SUBWAY”, “OUT”, 5950, “S1_1”},
{20141117195035, “BUS”, “IN”, 5950, “B_1”}
이고하루(3분)가지났을때
Arranged data의
Uncal day == True
PTS UTC 000 005Unarranged data[2] =
{20141117195032, “SUBWAY”, “OUT”, 5950, “S1_1”},
{20141117195035, “SUBWAY, “IN”, 5950, “S1_2”}
Arranged data의
Uncal s == True
PTS UTC 000 006Unarranged data[2] =
{20141117195032, “BUS”, “OUT”, 5950, “B_1”},
{20141117195035, “SUBWAY, “IN”, 5950, “S1_2”}
Arranged data의
Uncal bs == True
PTS UTC 000 007Unarranged data[2] =
{20141117195032, “SUBWAY”, “OUT”, 5950, “B_1”},
{20141117195035, “BUS, “IN”, 5950, “S1_2”
Arranged data의
Uncal sb == True
PTS UTC 000 008Unarranged data[2] =
{20141117195032, “BUS”, “OUT”, 5950, “B_1”},
{20141117195035, “SUBWAY, “IN”, 5950, “S1_2”}
Arranged data의
Uncal == True
PTS UTC 000 009Unarranged data[2] =
{20141117195032, “BUS”, “OUT”, 5950, “B_1”},
{20141117195035, “SUBWAY, “IN”, 5950, “S1_2”}
Arranged data의
Time ==
20141117195035
PTS UTC 000 010Unarranged data[2] =
{20141117195032, “BUS”, “OUT”, 5950, “B_1”},
{20141117195035, “SUBWAY”, “IN”, 5950, “S1_2”}
Arranged data의
Lo == 5950
PTS UTC 000 011Unarranged data[2] =
{20141117195032, “BUS”, “OUT”, 5950, “B_1”},
{20141117195035, “SUBWAY”, “IN”, 5950, “S1_2”}
Arranged data의
Info == S1 2
25
Reader Test Identification & Specification
Determine Controller
Main
Riding Enable
ArrangingCard Data Interface
Receiving Card Interface
Uncalculated Controller
RidingDisable
TransferEnable
After Trans Exit
NormalExit
TransferDisable
AfterSub-E
AfterSub-D
AfterSubus-E
After Busub-D
AfterBusub-E
AfterSubus-D
ArrangedData
UnarrangedData
MonitorInterface
WritingInterface
SendingInterface
DisplayCommand
WritingCommand
SendingCommand
ReaderData
ReaderData
A·D
Trigger TriggerTrigger
D·C
A·D
A·DA·D
A·D
A·D
A·D
Trigger
Trigger
TriggerTrigger
D·C D·CD·C D·C
W·C
W·C
W·C W·C
D·C
W·C
Trigger TriggerTrigger
Trigger Trigger
Trigger
A·D A·D A·D A·DA·D A·D
D·C D·C D·CD·C D·C
D·CW·C
W·C
W·C
W·C
D·C
W·C
W·C
W·C
W·C
W·C : Writing Command
D·C : Display Command
A·D : Arranged Data
26
Reader Test Identification & Specification
Determine Controller
Main
Identifier Input Specification Output Specification
PTS UTC 001 000Unarranged_data[2] =
{20141119133000, “,SUBWAY”, “IN”, 10000, “S1_1”},
{20141119133010, “SUBWAY, “OUT”, 10000, “S2_1”}
RidingEnable함수 호출
PTS UTC 001 001Unarranged_data[2] =
{20141119133000, “,SUBWAY”, “IN”, 10000, “S1_1”},
{20141119133010, “SUBWAY”, “OUT”, 200, “S2_1”}
ridingDisable함수 호출
PTS UTC 001 002
Unarranged_data[2] =
{20141119133000, “,SUBWAY”, “IN”, 10000, “S1_1”},
{20141119133010, “SUBWAY”, “OUT”, 10000, “S2_1”}
(and 마지막 태그시간과 현재시간이 15초 이내)
transferEnable함수 호출
PTS UTC 001 003Unarranged_data[2] =
{ 20141119133000, “,SUBWAY”, “IN”, 10000, “S1_1”},
{ 20141119133010, “SUBWAY”, “OUT”, 100, “S2_1”}
transferDisable함수 호출
PTS UTC 001 004Unarranged_data[2] =
{20141119133000, “BUS”, “OUT”, 10000, “B_1”},
{20141119133010, “BUS,” “IN”, 10000, “B_2”}
normalExit함수 호출
PTS UTC 001 005Unarranged_data[2] =
{20141119133000, “SUBWAY”, “OUT”, 10000, “S1_1”},
{20141119133010, “BUS,” “IN”, 10000, “B_2”}
afterTransExit함수 호출
PTS UTC 001 006Unarranged_data[2] =
{20141119133000, “BUS”, “OUT”, 10000, “B_1”},
{20141119133110, “SUBWAY” “IN”, 10000, “S1_2”}
afterSub_E함수 호출
PTS UTC 001 007Unarranged_data[2] =
{20141119133000, “BUS”, “OUT”, 10000, “B_1”},
{20141119133110, “SUBWAY” “IN”, 100, “S1_2”}
afterSub_D함수 호출
27
Reader Test Identification & Specification
Determine Controller
Main
Identifier Input Specification (Subway) Output Specification (Subway)
PTS UTC 001 008Unarranged_data[2] =
{20141119133000, “SUBWAY”, “OUT”, 10000, “S1_1”},
{20141119133010, “BUS” “IN”, 10000, “B_2”}
afterSubus_E함수 호출
PTS UTC 001 009Unarranged_data[2] =
{20141119133000, “SUBWAY”, “OUT”, 10000, “S1_1”},
{20141119133010, “BUS” “IN”, 100, “B_2”}
afterSubus_D함수 호출
PTS UTC 001 010Unarranged_data[2] =
{20141119133000, “BUS”, “OUT”, 10000, “B_1”},
{20141119133010, “SUBWAY” “IN”, 10000, “S1_2”}
afterBusub_E함수 호출
PTS UTC 001 011Unarranged_data[2] =
{20141119133000, “BUS”, “OUT”, 10000, “B_1”},
{20141119133010, “SUBWAY” “IN”, 100, “S1_2”}
afterBusub_D함수 호출
PTS UTC 001 012Unarranged_data[2] =
{20141119133000, “BUS”, “OUT”, 10000, “B_1”},
{20141119133110, “SUBWAY” “IN”, 10000, “S3_2”}
addFee함수 호출
PTS UTC 001 013Unarranged_data[2] =
{20141119133000, “BUS”, “OUT”, 10000, “B_1”},
{20141119133110, “SUBWAY” “IN”, 10000, “S4_2”}
noAddFee_N함수 호출
PTS UTC 001 014Unarranged_data[2] =
{20141119133000, “BUS”, “OUT”, 10000, “B_1”},
{20141119133010, “SUBWAY” “IN”, 10000, “S4_2”}
addFeeOne함수 호출
PTS UTC 001 015Unarranged_data[2] =
{20141119133000, “BUS”, “OUT”, 10000, “B_1”},
{20141119133010, “SUBWAY” “IN”, 10000, “S3_2”}
addFeeTwo함수 호출
PTS UTC 001 006Unarranged_data[2] =
{20141119133000, “BUS”, “OUT”, 10000, “B_1”},
{20141119133010, “SUBWAY” “IN”, 10000, “S5_2”}
noAddFee_T함수 호출
28
Reader Test Identification & Specification
Determine Controller
Main
Riding Enable
ArrangingCard Data Interface
Receiving Card Interface
Uncalculated Controller
RidingDisable
TransferEnable
After Trans Exit
NormalExit
TransferDisable
AfterSub-E
AfterSub-D
AfterSubus-E
After Busub-D
AfterBusub-E
AfterSubus-D
ArrangedData
UnarrangedData
MonitorInterface
WritingInterface
SendingInterface
DisplayCommand
WritingCommand
SendingCommand
ReaderData
ReaderData
A·D
Trigger TriggerTrigger
D·C
A·D
A·DA·D
A·D
A·D
A·D
Trigger
Trigger
TriggerTrigger
D·C D·CD·C D·C
W·C
W·C
W·C W·C
D·C
W·C
Trigger TriggerTrigger
Trigger Trigger
Trigger
A·D A·D A·D A·DA·D A·D
D·C D·C D·CD·C D·C
D·CW·C
W·C
W·C
W·C
D·C
W·C
W·C
W·C
W·C
W·C : Writing Command
D·C : Display Command
A·D : Arranged Data
29
Reader Test Identification & Specification
Riding Enable
A·D
Trigger
D·C
W·C
Identifier Input Specification Output Specification
PTS UTC 002 000
Arranged_data
{cname[20]=“input.txt”, time=2014111719
5035, info[10]=B_2, lo=5950, in=0, bus=1,
trans=0, after=0, uncal_day=0, uncal_s=0
uncal_bs=0 uncal_sb=0 uncal=0, sta=0}
Display_command
(fee=1050, lo=4900)
Writing command
{fee=1050, time=2014111
7195035, vechicle=”BUS”, i
nout=”IN”, lo=4900, reade
rInfo=”B_1”, cardInfo=”B_1
”, name=”input.txt”}
Receiving Card Interface
UnarrangedData
{20141117195032, “BUS”, “IN”, 5950, “B_1”},
{20141117195035, “BUS, “OUT”, 5950, “B_2”}
Identifier Input Specification Output Specification
PTS UTC 003 000
임의의카드정보가담긴텍스트파일Unarranged data
(텍스트파일의가장밑의두줄)
30
Calculator Test Identification & Specification
Main
Receiving Reader Data
Interface
TransCalculator
BusCalculator
SubwayCalculator
ClassifyCase
FinalCalculator
Sending DataInterface
DisplayInterface
SignalInterface
InputData
InputData
Un-Trans
Do-Trans
Un-Bus
Do-Bus
Un-Sub
Do-Sub
Do-Trans
Do-Sub
Do-Bus
DisplayCommand
SignalCommand
Sending DataCommand
31
Calculator Test Identification & Specification
Identifier Input Specification Output Specification
PTS UTC 004 000
Bus.txt, subway1.txt,
subway2.txt, subway3.txt,
subway4.txt, subway5.txt
Inputdata.txt
Identifier Input Specification Output Specification
PTS UTC 005 000
Inputdata.txt
un-trans.txt,
un-bus.txt,
un-sub.txt
ClassifyCase
InputData
Main
Receiving Reader Data
Interface
InputData
32
Unit Test Result
Unit Test Report
Demo
33
UTR Unit Test Report
Identifier Result
PTS UTC 000 000
PTS UTC 000 001
PTS UTC 000 002
PTS UTC 000 003
PTS UTC 000 004
PTS UTC 000 005
PTS UTC 000 006
PTS UTC 000 007
PTS UTC 000 008
PTS UTC 000 009
PTS UTC 000 010
PTS UTC 000 011
Identifier Result
PTS UTC 001 000
PTS UTC 001 001
PTS UTC 001 002
PTS UTC 001 003
PTS UTC 001 004
PTS UTC 001 005
PTS UTC 001 006
PTS UTC 001 007
PTS UTC 001 008
PTS UTC 001 009
PTS UTC 001 010
PTS UTC 001 011
Identifier (subway) Result
PTS UTC 001 010
PTS UTC 001 011
PTS UTC 001 012
PTS UTC 001 013
PTS UTC 001 014
PTS UTC 001 015
PTS UTC 001 016
PTS UTC 002 000
PTS UTC 003 000
PTS UTC 004 000
PTS UTC 005 000
34
UTR Bus Reader Demo
35
UTR Subway Reader Demo
36
UTR Calculator Demo
37
UTR PTS Demo
Q & A