A Fractal Design Pattern for Collaborative Objects Trees
This paper presents a novel UML design pattern named Fractal. This object behavioral design pattern enables the nodes of a tree that is constructed of fractal objects to collaborate to produce a collective behavior and/or construct a desired output. The Fractal design pattern has been successfully used to implement a fractal regression test framework for testing the AM-MOS CFDP ground software for the Europa Clipper mission. This framework organizes the regression test suite in the form of a test tree, in which each node of the tree is a test script that implements the Fractal design pattern such that each test script has the ability to act as a test runner for all of its child nodes, and each test script had the ability to report its cumulative results to its parent node. As a result, the test runner behavior is distributed throughout the entire test tree, and the nodes of the tree collaborate to produce a single regression test summary report in addition to each test script producing its own detail test report file where necessary. In order to make this scheme work correctly when executing either the entire regression test tree or any subtree, it is necessary for each node in the tree to dynamically determine whether it is the root node, a leaf node, or a middle node during any given regression test run. The Fractal design pattern was also used to implement a fractal subtest framework for independent acceptance testing of the Interstellar Mapping and Acceleration Probe (IMAP) mission flight software. This framework enables subdividing long-running test scripts into smaller subtest scripts that can be dry-run and debugged independently with shorter run times, and allowing the parent test script to execute any number/combination of these subtests in sequence without modification. The ability to independently dry-run and debug shorter-running subtest scripts facilitates more efficient use of very limited and expensive testbed resources that are in high-demand by the FSW development team, the acceptance test team, and the autonomy system team. Although this design pattern was originally developed for the purpose of automating software regression testing, it may be applied to solving other types of problems as well.
Authors
- Jeremiah Vincent Finnigan
Institutions
- Johns Hopkins University Applied Physics Laboratory (US)
Publication Details
- Published
- 2025-03-01
- DOI
- https://doi.org/10.1109/aero63441.2025.11068701
- Primary Topic
- Semantic Web and Ontologies
- Type
- article
- Field-Weighted Citation Impact
- 0.00