Walkthrough of the Architectural
Conformance Checking Tools

Marwan Abi-Antoun and Jonathan Aldrich
School of Computer Science
Carnegie Mellon University

 

Step 1. Build the as-designed architecture

Ideally, have the original developer build an informal as-designed architecture.

Figure 0: The as-designed architecture as drawn by the original developer.

Use the AcmeStudio perspective in Eclipse to build the as-designed architecture.

Figure 1: The as-designed architecture in the AcmeStudio perspective.

Step 2. Abstract an as-built view from the implementation

Step 2.1 Add annotations to the code, and typecheck the annotations

Add ownership domain annotations to the code using Java 1.5 annotations. Annotation warnings appear in the Eclipse problem window.

Figure 2: The Java development perspective showing the annotated program, and the Eclipse problem window with the annotation warnings.

Step 2.2 Extract a hierarchical representation of the runtime object graph

Figure 3: Running the Ownership Object Graph (OOG) Wizard.

Figure 3: Persisting the extracted OOG to a file.

Figure 4: The persisted OOG in an XML format. Notice, it contains traceability information to the code.

Step 2.3: Abstract the hierarchical runtime object graph representation into an as-built view

Use the ArchCog Architectural Abstraction Wizard to convert an OOG into an as-built C&C view.

Figure 5: Running the ArchCog Architectural Abstraction Wizard.

 

Figure 6: Select component generation, domain generation, etc. options, to generate the as-built C&C view.

Figure 7: Examine the as-built C&C view in the AcmeStudio perspective.

 

Figure 8: Using the traceability information in the as-built C&C view to trace to code.

Step 3: Structurally compare the as-built and the as-designed views to check their conformance

Use the ArchConf wizard.

Figure 9: Using ArchConf Wizard.

 

Figure 10: Examining the results of the structural comparison.

Figure 11a: ArchConf creates a conformance view of the as-designed architecture in AcmeStudio.

Figure 11b: Examining the sub-structure of the circuit component.

Figure 12: Using the CodeTraceJ feature to trace from the conformance view to the code.

Step 4: Compute a measure of conformance

Figure 13: Viewing the conformance metrics in the AcmeStudio properties window.