in Table 2) is the only applicable test specification
for SNOE. STEREO uses the High Volume
Command Execution feature, thus adaptable test
specification HV Exe. Cmd. (column 3 in Table 2) is
the only applicable test specification for STEREO.
The next step in the validation process is to refine
the adaptable steps in the test specifications to the
application. This involves refining each adaptable
test specification into non-adaptable steps based on
the application’s feature selection and populating the
steps. Steps are made into non-adaptable steps by
using the application’s specific variants, such as
replacing the Antenna superclass with the Low Gain
Antenna variant and listing the application specific
actions, such as turn on Low Gain Antenna.
Next, the test specifications input data, steps, and
output data are populated with the state, transitions,
and actions from the design pattern component state
machines. Creating this level of test specifications
detail ensures that integration testing of individual
design patterns is performed at application testing,
as well as testing interconnected design patterns.
The final step in the functional validation is to
execute the tests against the software architecture,
which consists of concurrent executable state
machines. This testing is different from validation of
the individual design patterns because it not only
tests the design patterns, but also how the design
patterns are integrated together. A total of 22
feature-based test specifications were created and
passed for SNOE and 32 feature-based test
specifications were created and passed for STEREO.
7 CONCLUSIONS
This paper has described the application of a design
pattern based SPL approach for building FSW SPL.
This approach is useful in the FSW domain because
architectural variability is captured at a larger degree
of granularity using software architectural design
patterns, thus less modeling is required during the
SPL engineering phase. The trade-off with this
approach is that additional modeling is required
during the application engineering phases. This
trade-off is acceptable in domains such as FSW,
where modeling all possible variations during the
SPL engineering phase can be time consuming and
may not always be known in advance.
Using the design pattern based approach for the
FSW SPL required significantly less component
modeling during SPL Engineering than a
component/connector based SPLE approach. In the
FSW SPL, during the SPL Engineering phase, the
design pattern based approach required modeling
only 29 components containing representative SPL
behavior, while the component/connector based
SPLE approach required 53 components containing
parameterized or specialized behavior for all the
different SPL variants. As previously discussed, the
trade-off is that additional modeling is required
during the application engineering phases. During
the application engineering of SNOE, 10 FSW SPL
components were customized to the application and
in STEREO 22 FSW SPL components were
customized.
Furthermore, this paper has described a
systematic model driven approach to determine how
design patterns are interconnected to form software
architectures. Additionally, an approach to
validating the executable software architectures at
design time is also described.
Several avenues of future investigation could be
pursued. First, this work should be extended to
address model-driven software performance
validation since meeting performance requirements
is as important as meeting functional requirements in
DRE systems. Additionally, this approach can be
applied to other distributed real-time application
domains to illustrate its applicability across other
domains. Finally, future work should address
additional automation to increase the practicality of
this work.
REFERENCES
Bellebia, D., Douin, J., 2006. “Applying patterns to build a
lightweight middleware for embedded systems,” 2006
Conference on Pattern Languages of Programs,
Portland, Oregon, USA.
Buschmann, F., Henney, K., Schmidt, D., 2007. Pattern
Oriented Software Architecture Volume 5: On Patterns
and Pattern Languages. Hoboken, NJ: John Wiley &
Sons.
Clements, P., Northrop, L., 2002. Software Product Lines:
Practices and Patterns. Addison-Wesley.
Douglass, B., 2003. Real-Time Design Patterns. Addison-
Wesley.
Dupire, B., Fernandez, E., 2001. “The Command
Dispatcher Pattern,” 8th Conference on Pattern
Languages of Programs, Monticello, Illinois, USA.
Fant, J., 2011. “Building Domain Specific Software
Architectures from Software Architectural Design
Patterns,” presented at the 33rd International
Conference on Software Engineering (ICSE) ACM
Student Research Competition (SRC) 2011, Honolulu,
Hawaii USA.
Fant, J., Gomaa, H., Pettit, R., 2011. “Architectural Design
Patterns for Flight Software,” in 2nd IEEE Workshop
IntegratingandApplyingArchitecturalDesignPatternsinSpaceFlightSoftwareProductLines
217