Professional Documents
Culture Documents
The Formal Design Model of A Telephone Switching System (TSS)
The Formal Design Model of A Telephone Switching System (TSS)
Special Section
Abstract
A typical real-time system, the Telephone Switching System (TSS), is a highly complicated system in design
and implementation. This paper presents the formal design, specification, and modeling of the TSS system
using a denotational mathematics known as Real-Time Process Algebra (RTPA). The conceptual model of
the TSS system is introduced as the initial requirements for the system. Then, the architectural model of the
TSS system is created using the RTPA architectural modeling methodologies and refined by a set of Unified
Data Models (UDMs). The static behaviors of the TSS system are specified and refined by a set of Unified
Process Models (UPMs) such as call processing and support processes. The dynamic behaviors of the TSS
system are specified and refined by process priority allocation, process deployment, and process dispatching
models. Based on the formal design models of the TSS system, code can be automatically generated using
the RTPA Code Generator (RTPA-CG), or be seamlessly transformed into programs by programmers. The
formal model of TSS may not only serve as a formal design paradigm of real-time software systems, but
also a test bench of the expressive power and modeling capability of exiting formal methods in software
engineering. [Article copies are available for purchase from InfoSci-on-Demand.com]
Keywords:
INTRODUCTION
Telephone Switching Systems (TSSs) are one
of the typical real-time and mission-critical systems, as those of air-traffic control and banking
systems, characterized by their high degree of
complexity, intricate interactions with hardware
devices and users, and necessary requirement
for domain knowledge (Labrosse, 1999; Liu,
2000; McDermid, 1991; Ngolah et al., 2004;
Copyright 2009, IGI Global. Copying or distributing in print or electronic forms without written permission of IGI Global
is prohibited.
Int. J. of Software Science and Computational Intelligence, 1(3), 92-116, July-September 2009 93
Copyright 2009, IGI Global. Copying or distributing in print or electronic forms without written permission of IGI Global
is prohibited.
94 Int. J. of Software Science and Computational Intelligence, 1(3), 92-116, July-September 2009
0
1
15
Signaling
Trunks
[5]
TSS
Call
Processor
Line
Scanners
Call
Records
[16]
[16]
Routes
System
Clock
[1]
[5]
Digits
Receivers
[16]
[1]
Copyright 2009, IGI Global. Copying or distributing in print or electronic forms without written permission of IGI Global
is prohibited.
Int. J. of Software Science and Computational Intelligence, 1(3), 92-116, July-September 2009 95
Copyright 2009, IGI Global. Copying or distributing in print or electronic forms without written permission of IGI Global
is prohibited.
96 Int. J. of Software Science and Computational Intelligence, 1(3), 92-116, July-September 2009
15
R LineScanner(iN)ST:
i= 0
call processor at a designated status port. During the dialing process, dial pulses are received
by the call processor from the given digit port.
After processing, the pulses are transferred into
decimal digits and stored in Digit1N and Digit2N
assuming that the given TSS using two numbers.
However, it may be flexibly re-specified when
it is needed for a larger system.
Copyright 2009, IGI Global. Copying or distributing in print or electronic forms without written permission of IGI Global
is prohibited.
Int. J. of Software Science and Computational Intelligence, 1(3), 92-116, July-September 2009 97
R LineScanner(iN) ST
i =0
Copyright 2009, IGI Global. Copying or distributing in print or electronic forms without written permission of IGI Global
is prohibited.
98 Int. J. of Software Science and Computational Intelligence, 1(3), 92-116, July-September 2009
R DigitsReceiver(iN)ST :
i =0
=
||
||
||
||
||
||
||
||
||
||
||
||
||
||
||
(< Status : N | StatusN = {(0, NoDia l), (1,DialStated), (2, Dialing) , (3, DialComplete d)}>,
PORTST(<DigitPort : H | FF10H DigitPortH FF1FH>,
<DigitInput : B | DigitInputB = <xxxx bbbbB>),
PORTST(<StatusPort : H | FF20H StatusPortH FF2FH>,
<StatusInput : B | StatusInputB = <xxxx xxxbB>),
<Digit1: N | 0 Digit1N 9>,
<Digit2: N | 0 Digit2N 9>,
<#DigitsReceived: N | 1 #DigitsReceivedN 2>,
)
DigitScanner(0) ST: (StatusN, PORTST(DigitP ortH, DigitInputB), PORTST(StatusPortH, StatusInputB), Digit1N, Digit2N,
#DigitsRe ceive dN) := (0, FF10H, xxxx bbbbB, FF20H, xxxx xxxbB, 0, 0, 0)
DigitScanner(1)ST: (StatusN, PORTST(DigitPortH, DigitInputB), PORTST(StatusPortH, StatusInputB), Digit1N, Digit2N,
#DigitsRe ceive dN) := (0, FF11H, xxxx bbbbB, FF21H, xxxx xxbxB, 0, 0, 0)
DigitScanner(2)ST: (StatusN, PORTST(DigitPortH, DigitInputB), PORTST(StatusPortH, StatusInputB), Digit1N, Digit2N,
#DigitsRe ceive dN) := (0, FF12H, xxxx bbbbB, FF22H, xxxx xbxxB, 0, 0, 0)
DigitScanner(3)ST: (StatusN, PORTST(DigitPortH, DigitInputB), PORTST(StatusPortH, StatusInputB), Digit1N, Digit2N,
#DigitsRe ceive dN) := (0, FF13H, xxxx bbbbB, FF23H, xxxx bxxxB, 0, 0, 0)
DigitScanner(4)ST: (StatusN, PORTST(DigitPortH, DigitInputB), PORTST(StatusPortH, StatusInputB), Digit1N, Digit2N,
#DigitsRe ceive dN) := (0, FF14H, xxxx bbbbB, FF24H, xxxb xxxxB, 0, 0, 0)
DigitScanner(5)ST: (StatusN, PORTST(DigitPortH, DigitInputB), PORTST(StatusPortH, StatusInputB), Digit1N, Digit2N,
#DigitsRe ceive dN) := (0, FF15H, xxxx bbbbB, FF25H, xxbx xxxxB, 0, 0, 0)
DigitScanner(6)ST: (StatusN, PORTST(DigitPortH, DigitInputB), PORTST(StatusPortH, StatusInputB), Digit1N, Digit2N,
#DigitsRe ceive dN) := (0, FF16H, xxxx bbbbB, FF26H, xbxx xxxxB, 0, 0, 0)
DigitScanner(7)ST: (StatusN, PORTST(DigitPortH, DigitInputB), PORTST(StatusPortH, StatusInputB), Digit1N, Digit2N,
#DigitsRe ceive dN) := (0, FF17H, xxxx bbbbB, FF27H, bxxx xxxxB, 0, 0, 0)
DigitScanner(8)ST: (StatusN, PORTST(DigitPortH, DigitInputB), PORTST(StatusPortH, StatusInputB), Digit1N, Digit2N,
#DigitsRe ceive dN) := (0, FF18H, xxxx bbbbB, FF28H, xxxx xxxbB, 0, 0, 0)
DigitScanner(9)ST: (StatusN, PORTST(DigitPortH, DigitInputB), PORTST(StatusPortH, StatusInputB), Digit1N, Digit2N,
#DigitsRe ceive dN) := (0, FF19H, xxxx bbbbB, FF29H, xxxx xxbxB, 0, 0, 00
DigitScanner(10)ST: (StatusN, PORTST(DigitPortH, DigitInputB), PORTST(StatusPortH, StatusInputB), Digit1N, Digit2N,
#DigitsRe ceive dN) := (0, FF1AH, xxxx bbbbB, FF2AH, xxxx xbxxB, 0, 0, 0)
DigitScanner(11)ST: (StatusN, PORTST(DigitPortH, DigitInputB), PORTST(StatusPortH, StatusInputB), Digit1N, Digit2N,
#DigitsRe ceive dN) := (0, FF1BH, xxxx bbbbB, FF2BH, xxxx bxxxB, 0, 0, 0)
DigitScanner(12)ST: (StatusN, PORTST(DigitPortH, DigitInputB), PORTST(StatusPortH, StatusInputB), Digit1N, Digit2N,
#DigitsRe ceive dN) := (0, FF1CH, xxxx bbbbB, FF2CH, xxxb xxxxB, 0, 0, 0)
DigitScanner(13)ST: (StatusN, PORTST(DigitPortH, DigitInputB), PORTST(StatusPortH, StatusInputB), Digit1N, Digit2N,
#DigitsRe ceive dN) := (0, FF1DH, xxxx bbbbB, FF 2DH, xxbx xxxxB, 0, 0, 0)
DigitScanner(14)ST: (StatusN, PORTST(DigitPortH, DigitInputB), PORTST(StatusPortH, StatusInputB), Digit1N, Digit2N,
#DigitsRe ceive dN) := 90, F F1EH, xxxx bbbbB, FF2EH, xbxx xxxxB, 0, 0, 0)
DigitScanner(15)ST: (StatusN, PORTST(DigitPortH, DigitInputB), PORTST(StatusPortH, StatusInputB), Digit1N, Digit2N,
#DigitsRe ceive dN) := (0, FF1FH , xxxx bbbbB, FF2FH, bxxx xxxxB, 0, 0, 0)
Dialing), (3, CheckCalledStatus), (4, Connecting), (5, Talking), (6, CallTermination), (7,
ExceptionalTermination)}. Each call record
is initialized as shown in UDM objects in
Figure 9.
The system architectural specification
developed in this subsection provides a set
of abstract object models and clear interfaces
between system hardware and software. By
reaching this point, the co-design of a real-time
system can be separately carried out by separated
Copyright 2009, IGI Global. Copying or distributing in print or electronic forms without written permission of IGI Global
is prohibited.
Int. J. of Software Science and Computational Intelligence, 1(3), 92-116, July-September 2009 99
R SignalTrunk(iN)ST:
i= 0
Figure 7. The schema and detailed UDM model of the system clock
SysClockST SysClockST:
( <t : N | 0 tN 1M>
<CurrentTime : hh:mm:ss:ms | 00:00:00:000
CurrentTimehh:mm:ss:ms 23:59:59:999>
<MainClockPort : H | MainClockPortB = F1H>,
<ClockInterval : N | ClockIntervalN = 1ms>,
<InterruptCounter : N | 0 InterruptCounterN 999>,
)
R Route(iN)ST:
i =0
( F, x,
( F, x,
( F, x,
( F, x,
( F, x,
x)
x)
x)
x)
x)
Copyright 2009, IGI Global. Copying or distributing in print or electronic forms without written permission of IGI Global
is prohibited.
100 Int. J. of Software Science and Computational Intelligence, 1(3), 92-116, July-September 2009
15
R CallRe cord(iN)ST:
i=0
Copyright 2009, IGI Global. Copying or distributing in print or electronic forms without written permission of IGI Global
is prohibited.
Int. J. of Software Science and Computational Intelligence, 1(3), 92-116, July-September 2009 101
TSS.StaticBehaviorsPC
SysSupportProcessesPC | [4]
|| CallProcessingProcessesPC | [7]
(3)
where the former consists of 4 system support
processes and the latter consists of 7 call processing processes.
The following subsections describe how
the TSS static behaviors as specified in Eq. 3
are modeled and refined using the denotational
mathematical notations and methodologies of
RTPA.
TSS.StaticBehaviorsPC.SysSupportProcessesPC
SysInitialPC
|| SysClockPC
|| LineScanningPC
|| DigitsReceivingPC
(4)
where each of the system support processes will
be formally modeled and described in RTPA in
the following subsections.
Copyright 2009, IGI Global. Copying or distributing in print or electronic forms without written permission of IGI Global
is prohibited.
102 Int. J. of Software Science and Computational Intelligence, 1(3), 92-116, July-September 2009
( SysClockST.InterruptCounterN = 0
(SysClockST.tN)
(SysClockST.CurrentTimehh:mm:ss)
15
CallRecord(iN)ST.CallStatusBL = T CallRecord(iN)ST.Timerss 0
i =0
(CallRecord(iN)ST.Timerss)
// Update timers in call records
)
SysClockST.CurrentTimehh:mm:ss:ms = 23:59:59:999
( SysClockST.CurrentTimehh:mm:ss:ms := 00:00:00:000
SysClockST.tN := 0
)
Copyright 2009, IGI Global. Copying or distributing in print or electronic forms without written permission of IGI Global
is prohibited.
Int. J. of Software Science and Computational Intelligence, 1(3), 92-116, July-September 2009 103
R ( LineScanner(iN)ST.LastScanBL := LineScanner(iN)ST.CurrentScanBL
i=1
PORT(LineScanner(iN)ST.PortAddressH)B | LineScanner(iN)ST.ScanInputB
( LineScanner(iN)ST.ScanInputB = 0000 0001B
LineScanner(iN)ST.CurrentScanBL := T
|~
LineScanner(iN)ST.CurrentScanBL := F
)
( LineScanner(iN)ST.CurrentScanBL = F LineScanner(iN)ST.LastScanBL = F
LineScanner(iN)ST.StatusN 4 LineScanner(iN)ST.StatusN 5
LineScanner(iN)ST.StatusN := 0
// Set idle
| LineScanner(iN)ST.CurrentScanBL = F LineScanner(iN)ST.LastScanBL = T
LineScanner(iN)ST.StatusN := 1
// Set hook-on
| LineScanner(iN)ST.CurrentScanBL = T LineScanner(iN)ST.LastScanBL = F
LineScanner(iN)ST.StatusN := 2
( LineScanner(iN)ST.StatusN 4
// Set hook-off
// Not a seized line
CallRecord(iN)ST.CallProcessN := 1
|~
// Call origination
CallRecord(iN)ST.CallProcessN := 0
// Called, no dispatch
)
| LineScanner(iN)ST.CurrentScanBL = T LineScanner(iN)ST.LastScanBL = T
)
LineScanner(iN)ST.StatusN := 3
// Set busy
No.
LineScanner(iN)ST.
LastScanBL
LineScanner(iN)ST.
StatusN
0 Idle
1 Hook-on
2 Hook-off
3 Busy
4 Seized
5 Invalid
Copyright 2009, IGI Global. Copying or distributing in print or electronic forms without written permission of IGI Global
is prohibited.
104 Int. J. of Software Science and Computational Intelligence, 1(3), 92-116, July-September 2009
R ( CallRecord(iN)ST.CallProcessN = 2
// Dialing
i =1
// A number valid
DigitsReceiver(iN)ST.StatusN :=1
// Dial started
PORT(DigitsReceiver(iN)ST.DigitPortH)B | DigitsReceiver(iN)ST.DigitInputB
( DigitsReceiver(iN)ST.#DigitsReceivedN = 0
DigitsReceiver(iN).Digit1N := DigitsReceiver(iN)ST.DigitInputB
DigitsReceiver(iN)ST.StatusN := 2
// First digit received
(DigitsReceiver(iN)ST.#DigitsReceivedN)
| ~
Modeling Call-Processing
Processes of the TSS Static
Behaviors
The static behaviors of the TSS call processing subsystem, as modeled in Eq. 3, can be
further refined in the following model with
seven processes:
TSS.StaticBehaviorsPC.CallProcessingProcessesPC
CallOriginationPC
|| DiallingPC
|| CheckCalledStatusPC
|| ConnectingPC
|| TalkingPC
|| CallTerminationPC
|| ExceptionalTerminationPC
(5)
where each of the call processing processes will
be formally modeled and described in RTPA in
the following subsections.
The configuration of processes of the TSS
system and a set of process schemas are designed
as shown in Table 2, which refine the high
level model of TSS static behaviors as given
in Eq. 5. The process schemas of TSS provide
further detailed information on each process
functionality, I/O, and its relationships with
Copyright 2009, IGI Global. Copying or distributing in print or electronic forms without written permission of IGI Global
is prohibited.
Int. J. of Software Science and Computational Intelligence, 1(3), 92-116, July-September 2009 105
Operated CLMST
Related Processes
Functional Descriptions
CallOriginationPC
( {I:: LineNumN};
{O:: CallProcessN}
)
LineScannersST
CallRecordsST
LineScanningPC
ConnectDrivePC
SysClockPC
DialingPC
( {I:: LineNumN};
{O:: CallProcessN}
)
DigitsReceiversST
CallRecordsST
DigitsReceivingPC
ConnectDrivePC
SysClockPC
CheckCalledStatusPC
( {I:: LineNumN};
{O:: CallProcessN}
)
LineScannersST
CallRecordsST
RoutesST
LineScanningPC
ConnectDrivePC
SysClockPC
ConnectingPC
( {I:: LineNumN};
{O:: CallProcessN}
)
CallRecordsST
ConnectDrivePC
SysClockPC
Send RingbBackTone to
calling
Send RingingTone to
called
TalkingPC
( {I:: LineNumN};
{O:: CallProcessN}
)
LineScanningPC
ConnectDrivePC
SysClockPC
LineScanningPC
ConnectDrivePC
SysClockPC
LineScanningPC
ConnectDrivePC
SysClockPC
CallTerminationPC
( {I:: LineNumN};
{O:: CallProcessN}
)
ExceptionalTerminationPC
( {I:: LineNumN};
{O:: CallProcessN}
)
LineScannersST
CallRecordsST
RoutesST
LineScannersST
CallRecordsST
RoutesST
LineScannersST
CallRecordsST
Copyright 2009, IGI Global. Copying or distributing in print or electronic forms without written permission of IGI Global
is prohibited.
106 Int. J. of Software Science and Computational Intelligence, 1(3), 92-116, July-September 2009
// No dial
// No dial time-out
)
| DigitsReceiver(iN)ST.StatusN = 1
( CallRecord(iN)ST.Timerss = 10
// To exceptional termination
// Dial started
// Set dial time-out timer
)
| DigitsReceiver(iN)ST.StatusN = 2
( CallRecord(iN)ST.Timerss = 0
// Dialing
// Dialing time-out
)
| DigitsReceiver(iN)ST.StatusN = 3
// Dial completed
CalledNumN := DigitalScanner(iN)ST.Digit1N * 10 +
DigitalScanner(iN)ST.Digit2N
CallRecord(iN)ST.CalledNumN := CalledNumN
CallRecord(iN)ST.CallProcessN := 3
// To check called status
|~
// Otherwise
Copyright 2009, IGI Global. Copying or distributing in print or electronic forms without written permission of IGI Global
is prohibited.
Int. J. of Software Science and Computational Intelligence, 1(3), 92-116, July-September 2009 107
108 Int. J. of Software Science and Computational Intelligence, 1(3), 92-116, July-September 2009
Figure 16. The behavioral model of the check called status process
CheckCalledStatusP C (<I :: LineNumN>; <O :: CallProcessN>;
< UDMs :: LineScannersST, CallRecordsST, RoutesST>)
{ // PNN = 3
iN := Lin eNumN
( CalledNumN := CallRecord(iN)ST.CalledNumN
( LineScann er(CalledNumN)ST.StatusN = 2
LineScanner(CalledNumN)ST.StatusN = 3
LineScanner(CalledNumN)ST.StatusN = 4
LineScanner(CalledNumN)ST.StatusN = 5
// Hook-off, busy, seized, or invalid
( CallRecord(iN)ST.TimerSS := 10
// Set busy ton e timer
ConnectDrivePC (Su bscriberLine(iN)N, BusyToneN, OnBL)
CallRecord(iN)ST.CallingTerminationBL := T
CallRecord(iN)ST.TimerN := 10
CallRecord(iN)ST.CallProcessN := 7
// To exception al termination
| LineScann er(CalledNumN)ST.StatusN = 0
Lin eScanner(Called NumN)ST.StatusN = 1
// Idle or hook-on
Lin eScann er(Called NumN)ST.StatusN := 4
// Seize the lin e
Lin eScann er(Called NumN)ST.CallProcessN := 0 // Mark as called without dispatchin g
RouteFoundBL := F
( Route(jN)ST.StatusBL = F
jN =0
)
(
RouteNumN := jN
RouteFoundBL := T
Route(jN)ST.StatusBL := T
RouteFoun dBL := T
CallRecord(iN)ST.RouteNumN := RouteNumN
CallRecord(iN)ST.CallProcessN := 4
// Connecting
| ~
Copyright 2009, IGI Global. Copying or distributing in print or electronic forms without written permission of IGI Global
is prohibited.
Int. J. of Software Science and Computational Intelligence, 1(3), 92-116, July-September 2009 109
// Connect circuit
Copyright 2009, IGI Global. Copying or distributing in print or electronic forms without written permission of IGI Global
is prohibited.
110 Int. J. of Software Science and Computational Intelligence, 1(3), 92-116, July-September 2009
Route(RouteNumN)ST.Status := F
// Free seized route
CallRecord(iN)ST.CallingTerminationBL := F
CallRecord(iN)ST.CallProcessN := 0
// Release calling
( CallRecord(iN)ST.CalledTerminationBL = T ^
LineScanner(CalledNumN)ST.StatusN = 1
// Called hook-on
CallRecord(iN)ST.CalledTerminationBL := F
CallRecord(iN)ST.CallProcessN := 0
// Set idle
CallRecord(iN)ST.CallStatusBL := F
// Call terminated
CallRecord(CalledNumN)ST.CallProcessN := 0
// Release called
|~
// Set hook-on monitor for called
CallRecord(iN)ST.CalledTerminationBL := F
CallRecord(CalledNumN)ST.CallStatusBL := T
CallRecord(CalledNumN)ST.TimerN := 10
CallRecord(CalledNumN)ST.CallProcessN := 7 // To exceptional termination
)
)
Copyright 2009, IGI Global. Copying or distributing in print or electronic forms without written permission of IGI Global
is prohibited.
Int. J. of Software Science and Computational Intelligence, 1(3), 92-116, July-September 2009 111
// Call terminated
// Release calling
CallRecord(iN)ST.TimerN = 0
// Waiting time out
ConnectDrivePC (SubscriberLine(iN)N, BusyTo neN, OffBL)
LineScanner(iN)ST.StatusN := 5
// Set to in valid
CallRecord(iN)ST.CallStatusBL := F
CallRecord(iN)ST.CallProcessN := 0
Copyright 2009, IGI Global. Copying or distributing in print or electronic forms without written permission of IGI Global
is prohibited.
112 Int. J. of Software Science and Computational Intelligence, 1(3), 92-116, July-September 2009
Dynamic behaviors of a system are run-time process deployment and dispatching mechanisms
based on the static behaviors. Because system
static behaviors are a set of component processes
of the system, to put the static processes into
a live and interacting system at run-time, the
dynamic behaviors of the system in terms of
process deployment and dispatches are yet to
be specified.
With the work products developed in the
preceding section as a set of static behavioral
processes of the TSS system, this section describes the dynamic behaviors of TSS at runtime using a three-step refinement strategy via
process priority allocation, process deployments, and process dispatches.
TSS.ProcessPriorityAllocationPC
{ // [L1: Base level processes]
( SystemInitialPC
|| // CallProcessingPC
( CallOriginationPC
| DialingPC
| CheckCalledStatusPC
| ConnectingPC
| TalkingPC
| CallTerminationPC
| ExceptionalTerminationPC
)
)
|| // [L2: High level processes]
...
|| // [L3: Low interrupt level processes]
LineScanningPC
|| // [L4: High interrupt level processes]
( SysClockPC
|| DigitsReceivingPC
}
Copyright 2009, IGI Global. Copying or distributing in print or electronic forms without written permission of IGI Global
is prohibited.
Int. J. of Software Science and Computational Intelligence, 1(3), 92-116, July-September 2009 113
SysShutdownBL = F
CallProcessingPC
)
// [L3: Low interrupt level processes]
@SysClock100msInt
LineScanningPC
Copyright 2009, IGI Global. Copying or distributing in print or electronic forms without written permission of IGI Global
is prohibited.
114 Int. J. of Software Science and Computational Intelligence, 1(3), 92-116, July-September 2009
iN = 1
( CallRecord(iN)ST.CallStatusBL = T
LineNumN := iN
( @CallRecord(iN)ST.CallProcessN = 0
// Idle
| @CallRecord(iN)ST.CallProcessN = 1
// Call origination
CallOrigination(<I:: LineNumN>; <O:: CallProcessN>)PC
| @CallRecord(iN)ST.CallProcessN = 2
// Dialing
Dialling (<I:: LineNumN>; <O:: CallProcessN>)PC
| @CallRecord(iN)ST.CallProcessN = 3
// Check called status
CheckCalledStatus(<I:: LineNumN>; <O:: CallProcessN>)PC
| @CallRecord(iN)ST.CallProcessN = 4
// Connecting
Connecting(<I:: LineNumN>; <O:: CallProcessN>)PC
| @CallRecord(iN)ST.CallProcessN = 5
// Talking
Talking(<I:: LineNumN>; <O:: CallProcessN>)PC
| @CallRecord(iN)ST.CallProcessN = 6
// Call termination
CallTermination(<I:: LineNumN>; <O:: CallProcessN>)PC
| @CallRecord(iN)ST.CallProcessN = 7
// Exceptional termination
ExceptionalTermination(<I:: LineNumN>; <O:: CallProcessN>)PC
)
CONCLUSION
This article has demonstrated that a complex
real-time Telephone Switching System (TSS),
including its architecture, static behaviors,
and dynamic behaviors, can be formally and
efficiently described by RTPA. On the basis
of the RTPA methodologies, this article has
systematically developed a formal design model
Copyright 2009, IGI Global. Copying or distributing in print or electronic forms without written permission of IGI Global
is prohibited.
Int. J. of Software Science and Computational Intelligence, 1(3), 92-116, July-September 2009 115
ACKNOWLEDGMENT
The author would like to acknowledge Natural
Science and Engineering Council of Canada
(NSERC) for its partial support to this work.
The author would like to thank the anonymous
reviewers for their invaluable comments that
have greatly improved the latest version of
this article.
REFERENCES
Baeten, J.C.M., & Bergstra, J.A. (1991). Real Time
Process Algebra. Formal Aspects of Computing, 3,
142-188.
Corsetti E., Montanari, A., & Ratto, E. (1991). Dealing with Different Time Granularities in Formal
Specifications of Real-Time Systems. The Journal
of Real-Time Systems, 3(2), 191-215. Kluwer.
Copyright 2009, IGI Global. Copying or distributing in print or electronic forms without written permission of IGI Global
is prohibited.
116 Int. J. of Software Science and Computational Intelligence, 1(3), 92-116, July-September 2009
Wang, Y. (2003). Using Process Algebra to Describe
Human and Software System Behaviors. Brain and
Mind, 4(2), 199213.
Wang, Y. (2007a). Software Engineering Foundations: A Software Science Perspective. CRC Series in
Software Engineering, Vol. II, CRC Press, USA.
Wang, Y. (2007b). Formal Description of the
Cognitive Process of Memorization. Proc. 6th
International Conference on Cognitive Informatics
(ICCI07), IEEE CS Press, Lake Tahoe, CA., Aug.,
(pp. 284-293).
Wang, Y. (2008a). RTPA: A Denotational Mathematics for Manipulating Intelligent and Computational
Behaviors. International Journal of Cognitive Informatics and Natural Intelligence, 2(2), 44-62.
Wang, Y. (2008b). Deductive Semantics of RTPA.
International Journal of Cognitive Informatics and
Natural Intelligence, 2(2), 95-121.
Wang, Y. (2008c). Mathematical Laws of Software,
Transactions of Computational Science, 2, 46-83.
Wang, Y. (2008d). On Contemporary Denotational
Mathematics for Computational Intelligence. Transactions of Computational Science, 2, 6-29.
Wang, Y., & Noglah, C.F. (2002). Formal Specification of a Real-Time Lift Dispatching System. Proc.
2002 IEEE Canadian Conference on Electrical and
Computer Engineering (CCECE02), Winnipeg,
Manitoba,Canada, May, (pp. 669-674).
Wang, Y., & Noglah, C.F. (2003). Formal Description of Real-Time Operating Systems using RTPA.
Proceedings of the 2003 Canadian Conference on
Electrical and Computer Engineering (CCECE03),
IEEE CS Press, Montreal, Canada, May, (pp. 12471250).
Wang, Y. and Y. Zhang (2003), Formal Description
of an ATM System by RTPA, Proc. 16th Canadian
Conference on Electrical and Computer Engineering
(CCECE03), IEEE CS Press, Montreal, Canada,
May, 1255-1258.
Wang, Y., & Ruhe, G. (2007). The Cognitive Process of Decision Making. International Journal of
Cognitive Informatics and Natural Intelligence,
1(2), 73-85.
Wang, Y., Tan, X., & Ngolah, F.C. (2010). Design and
Implementation of Automatic Code Generators Based
on RTPA. International Journal of Software Science
and Computational Intelligence, 2(3), to appear.
Yingxu Wang is professor of cognitive informatics and software engineering, Director of International Center for
Cognitive Informatics (ICfCI), and Director of Theoretical and Empirical Software Engineering Research Center
(TESERC) at the University of Calgary. He is a Fellow of WIF, a P.Eng of Canada, a Senior Member of IEEE and
ACM, and a member of ISO/IEC JTC1 and the Canadian Advisory Committee (CAC) for ISO. He received a PhD
in Software Engineering from The Nottingham Trent University, UK, in 1997, and a BSc in Electrical Engineering
from Shanghai Tiedao University in 1983. He has industrial experience since 1972 and has been a full professor since
1994. He was a visiting professor in the Computing Laboratory at Oxford University in 1995, Dept. of Computer
Science at Stanford University in 2008, and the Berkeley Initiative in Soft Computing (BISC) Lab at University
of California, Berkeley in 2008, respectively. He is the founder and steering committee chair of the annual IEEE
International Conference on Cognitive Informatics (ICCI). He is founding editor-in-chief of International Journal
of Cognitive Informatics and Natural Intelligence (IJCINI), founding editor-in-chief of International Journal of
Software Science and Computational Intelligence (IJSSCI), associate editor of IEEE Trans on System, Man, and
Cybernetics (A), and editor-in-chief of CRC Book Series in Software Engineering. He is the initiator of a number
of cutting-edge research fields and/or subject areas such as cognitive informatics, cognitive computing, abstract
intelligence, denotational mathematics, theoretical software engineering, coordinative work organization theory,
cognitive complexity of software, and built-in tests. He has published over 105 peer reviewed journal papers, 193
peer reviewed conference papers, and 12 books in cognitive informatics, software engineering, and computational
intelligence. He is the recipient of dozens international awards on academic leadership, outstanding contribution,
research achievement, best paper, and teaching in the last 30 years.
Copyright 2009, IGI Global. Copying or distributing in print or electronic forms without written permission of IGI Global
is prohibited.