Documente Academic
Documente Profesional
Documente Cultură
APPLICATIONS
5.1 Satellite Based Navigation
The development of the system architecture for the hypothetical Satellite Navigation
System (SNS) by logically partitioning the required functionality.
To keep this problem manageable, we develop a simplified perspective of the first and
second levels of the architecture, where we define the constituent segments and
subsystems, respectively.
In doing so, we show a representative subset of the process steps and artifacts
developed, but not all of them.
Showing a more complete perspective of the specification of any of these individual
segments and their subsystems could easily require a complete book.
However, the approach that we show could be applied more completely across an
architectural level (e.g., segment or subsystem) and through the multiple levels of the
Satellite Navigation Systems architecture.
We chose this domain because it is technically complex and very interesting, more so
than a simple system invented solely as an example problem.
Today there are two principal satellite-based navigation systems in existence, the U.S.
Global Positioning System (GPS) and the Russian Global Navigation Satellite System
(GLONASS).
In addition, a third system called Galileo is being developed by the European Union.
5. 1.1 Inception
The first steps in the development of the system architecture are really systems
engineering steps, rather than software engineering, even for purely or mostly
software systems.
Systems engineering is defined by the International Council on Systems Engineering
(INCOSE) as an interdisciplinary approach and means to enable the realization of
successful systems [1].
INCOSE further defines system architecture, which is our focus here, as the
arrangement of elements and subsystems and the allocation of functions to them to
meet system requirements.
Our focus here is to determine what we must build for our customer by defining the
boundary of the problem, determining the mission use cases, and then determining a
subset of the system use cases by analyzing one of the mission use cases.
In this process, we develop use cases from the functional requirements and document
the nonfunctional requirements and constraints.
But before we jump into our requirements analysis, read the sidebar to get an
introduction to the Global Positioning System.
5.1.2 Elaboration
Developing a Good Architecture
How do we know the difference between a good architecture and a bad one?Good
architectures tend to exhibit object-oriented characteristics. This doesnt mean, quite obviously, that as
long as we use object-oriented techniques, we are assured of developing a good architecture. Good
architectures, whether system or software, typically have several attributes in common.
They are constructed in well-defined layers of abstraction, each layer representing a coherent
abstraction, provided through a well-defined and controlled interface, and built on equally
well-defined and controlled facilities at lower levels of abstraction.
There is a clear separation of concerns between the interface and implementation of each
layer, making it possible to change the implementation of a layer without violating the
assumptions made by its clients.
The architecture is simple: Common behavior is achieved through common abstractions and
common mechanisms.
Simply (or not so simply) developing a good architecture for the Satellite Navigation System is
not enough; we must effectively communicate this architecture to all of its stakeholders. The Creating
Architectural Descriptions sidebar explains how we may go about this task.
The steps numbered above are to be applied horizontally across each architectural level of the
system to provide a complete, holistic view of the system that can be validated at any point along the
way. We continued our analysisnot shown hereby performing the following activities:
Performed black-box analysis for the Launch Satellite system use case to determine its actions
Performed white-box analysis of these system actions to allocate them across segments
Defined GroundSegment use cases from these allocated system actions
Performed black-box analysis for the GroundSegments Control Launch use case to determine
its actions
Performed white-box analysis of the GroundSegments Control Launch actions to allocate
them across its subsystems
5.1.4 Post-Transition
The Satellite Navigation Systems original nonfunctional requirements included two that
caused us to develop a flexible architecture: extensibility and long service life. This long service life
dictates, in addition to many other aspects, a design that is extensible to ensure the reliable provision
of desired functionality. As there are more users of the Satellite Navigation System, and as we adapt
this design to new implementations, they will discover new, unanticipated uses for existing
mechanisms, creating pressure to add new functionality to the system. We now investigate how well
our SNS design has met these requirements as we add new functionality and also change the systems
target hardware.
5.2