Traffic Management System
Traffic Management System
Inception:
Constraints:
■ Meet national standards, both government and industry
■ Maximize use of commercial-off-the-shelf (COTS) hardware and software
Now that we have our core requirements defined, at least at a very high level, we
must turn our attention to understanding the users of the Train Traffic Manage-
ment System. We find that we have three types of people who interact with the
system: Dispatcher, TrainEngineer, and Maintainer. In addition, the
Train Traffic Management System interfaces with one external system, Navstar
GPS. These actors play the following roles within the TTMS.
■ Dispatcher establishes train routes and tracks the progress of individual
trains.
■ TrainEngineer monitors the condition of and operates the train.
■ Maintainer monitors the condition of and maintains train systems.
■ Navstar GPS provides geolocation services used to track trains.
Elaboration:
Our attention now turns to developing the overall architecture framework for the
Train Traffic Management System. We begin by analyzing the required system
functionality that leads us into the definition of the TTMS architecture. From
there, we begin our transition from systems engineering to the disciplines of hard-
ware and software engineering. We conclude this section by describing the key abstractions
and mechanisms of the TTMS.
The energy management system advises the train engineer in real time as to the
most efficient throttle and brake settings.
The onboard display system provides the human/machine interface for the train
engineer.
The data management unit serves as the communications gateway between all
onboard systems and the rest of the network, to which all trains, dispatchers, and other users
are connected.
Train location tracking is achieved via two devices on the network: location transponders and
the Navstar GPS
The network control system is ultimately connected to one or more dispatch centers, which
comprise the rail operations control system and other users.
It should be apparent that track layouts and wayside equipment may change over
time; in addition, the numbers of trains and their routes may change daily. The
Train Traffic Management System must therefore be designed to permit incorpo-
ration of new sensor, network, and processor technology.
The key to maintaining sanity during the development of any complex project is
to engineer sound and explicit interfaces among the key elements of the system.
This is particularly important when defining hardware and software interfaces. At
the start, interfaces can be loosely defined, but they must quickly be formalized so
that different parts of the system can be developed, tested, and released in paral-
lel. Well-defined interfaces also make it far easier to make hardware/software
trade-offs as opportunities arise, without disrupting already completed parts of
the system. Furthermore, we cannot expect all of the developers in a large, possi-
bly globally distributed, development organization to have a complete view and
understanding of all parts of the system. We must therefore leave the specification
of these key abstractions and mechanisms to our best architects.
Each of these four subproblems involves largely independent issues. Our system
architects need to identify the key abstractions and mechanisms involved in each,
so that we can assign experts in each domain to tackle their particular subproblem
in parallel with the others. Note that this is not a problem of analysis or design:
Our analysis of each problem will impact our architecture, and our designs will
uncover new aspects of the problem that require further analysis. Development is
thus unavoidably iterative and incremental.
If we do a brief domain analysis across these four subproblem areas, we find that
there are three common high-level key abstractions:
1. Trains: including locomotives and cars
2. Tracks: encompassing profile, grade, and wayside devices
3. Plans: including schedules, orders, clearances, authority, and crew assignments.
Continuing, we may devise a key mechanism for each of the four nearly indepen-
dent subproblems:
1. Message passing
2. Train schedule planning
3. Displaying information
4. Sensor data acquisition
These four mechanisms form the soul of our system. They represent approaches
to what we have identified as the areas of highest development risk. It is therefore
essential that we deploy our best system architects here to experiment with alter-
native approaches and eventually settle on a framework from which more junior
developers may compose the rest of the system.
Construction:
In this section, we start by examining the semantics of each of this system’s four
key mechanisms: message passing, train schedule planning, displaying information and sensor
data acquisition. This leads into a discussion of release manage-
ment, which supports our iterative and incremental development process. We conclude this
section by analyzing how developing a system architecture supports
the specification of the TTMS subsystems.
Message Passing:
In the Train Traffic Management System include signals to activate
wayside devices, indications of trains passing specific locations, and orders from
dispatchers to train engineers. In general, these kinds of messages are passed at
two different levels within the TTMS:
1. Between computers and devices
2. Among computers
Our interest is in the second level of message passing. Because our problem
involves a geographically distributed communications network, we must consider
issues such as noise, equipment failure, and security.
Train Schedule Planning:
the concept of a train plan is central to the operation of the
Train Traffic Management System. Each train has exactly one active plan, and
each plan is assigned to exactly one train and may involve many different orders
and locations on the track.
Our first step is to decide exactly what parts constitute a train plan. To do so, we
need to consider all the potential clients of a plan and how we expect each of them
to use that plan.
In a more perfect world, with no communication noise or delays and infinite com-
puting resources, our solution would be to place all train plans in a single, central-
ized database. This approach would yield exactly one instance of each train plan.
However, the real world is much more perverse, so this solution is not practical.
We must expect communication delays, and we don’t have unlimited processor
cycles. Thus, having to access a plan located in the dispatch center from a train
would not at all satisfy our real-time and near real-time requirements.
However, we can create the illusion of a single, centralized database in our soft-
ware. Basically, our solution is to have a database of train plans located on the computers at the
dispatch center, with copies of individual plans distributed as
needed at sites around the network. For efficiency, then, each train computer could retain a
copy of its current plan. Thus, onboard software could query this plan with negligible delay. If
the plan changed, either as a result of dispatcher action or (less likely) by the decision of the
train engineer, our software would have to ensure that all copies of that plan were updated in a
timely fashion.
Displaying information:
Using off-the-shelf technology for our database needs helps us to focus on the
domain-specific parts of our problem. We can achieve similar leverage for our
display needs by using standard graphics facilities. Using off-the-shelf graphics
software effectively raises the level of abstraction in our system, so that develop-
ers never need to worry about manipulating the visual representation of display-
able objects at the pixel level.
There is a potential disadvantage to this approach, however. Ultimately, we might
have many different kinds of displayable objects, each implemented by different
groups of developers. If we let the implementation of each displayable object proceed
independently, we are likely to end up with redundant code, different implementation styles, and
a generally unmaintainable mess. A far better solution is to do a domain analysis of all the kinds
of displayable objects, determine what visual elements they have in common, and devise an
intermediate set of class utilities that provide display routines for these common picture
elements. These class
utilities in turn can build on lower-level, off-the-shelf graphics packages.
Release Management:
Since we are using an incremental development approach, we will investigate the
employment of release management techniques and further analyze the system’s
architecture and the specification of its subsystems.
System Architecture:
The software design for very large systems must often commence before the tar-
get hardware is completed. Software design frequently takes far longer than hard-
ware design, and in any case, trade-offs must be made against each along the way.
This implies that hardware dependencies in the software must be isolated to the
greatest extent possible, so that software design can proceed in the absence of a
stable target environment. It also implies that the software must be designed with
the idea of replaceable subsystems in mind.
Subsystem Specification:
If we focus on the outside view of any of these subsystems, we find that it has all
the characteristics of an object. It has a unique, albeit static, identity; it embodies
a significant amount of state; and it exhibits very complex behavior.
This approach to decomposing a large and complex problem affords us different
views of the system while it is being developed. A system release is thus com-
posed of compatible versions of each subsystem, and we may have many such
releases: one for each developer, one for our quality assurance team, and perhaps
one for early customer use. Individual developers can create their own stable
releases into which they integrate new versions of the software for which they are
responsible, before releasing it to the rest of the team.
Post-Transition:
A safe and useful control system is a work in progress. This is not to say that we
never get to the point where we have a stable system—in fact, we must with every
delivery. Rather, the reality is that for systems that are central to a business such
as rail transportation, the hardware and software must adapt as the rules of the
business change; otherwise, our system becomes a liability rather than a competi-
tive asset.