Pruning
The ArchStudio Pruner component can be used to remove all structures (architecture structures), types, and version graphs that are not part of a selected architecture found in a xADL document. The algorithm used in the Pruner component traverses through the architectural elements hierarchicaly and discovers which elements are not linked up to architecture and need to be "pruned." The algorithm achieves this by taking a starting element, either a type or structure, and then hierarchically visiting each of the structures' architectural elements (components, connectors, and interfaces) and inspecting those elements' corresponding types as well as visiting the substructure (if any) of all component types and connector types. Any elements not visited in this fashion are removed from the document. Ultimately, this results in an architecture that consists only of architectural elements that can be reached by traveling hierarchically down the architecture from the specified starting element.
Additionally, the pruner removes any version graph whose internal nodes are not referenced by any type included in the selected architecture. The entire document is cloned before pruning so that the pruning is performed on a copy of the document. For more information on xADL documents, visit the xADL website.
The diagram below gives a simple illustration on what the Pruner component does to an architecture. The architecture on the left hand side includes a structure containing components A, B, and C. The architecture also contains the components' respective types (links to these types are shown with dotted arrows) as well as two extraneous types, component types D, and E. The resulting architecture after the pruning operation was performed (seen on the right) looks just like the original architecture; however, the extraneous types are removed. Also, supposing component type E had internal substructure its substructure would be removed too (not shown in diagram). Please click on the image to enlarge in a separate window.
This component could be used, for example, after an architecture has been processed through the Selector. The larger architecture will only have a subset selected from it and the unselected types and structures will then be removed after being run through the Pruner. Please refer to the Selector documentation for instructions on how to use the Selector and Pruner components through a convenient GUI.
Contact Us
If you have questions not answered by this website, please feel free to
contact the software architectures group at UC Irvine through the
ArchStudio developer's (mailman protected) email list at:
archstudio-dev [@] uci
[.] edu. (Note: You must
subscribe to the mail list
before you can post to it.)