Navigation: Analysing your architecture >

Architecture Diff and Sync

 

 

 

 

When one architecture targets another for its sync target (such as with evolutions), it is possible to view differences between these architectures via explorer and difference reports, or the comparison feature of catalogues and diagrams. This is especially useful for discovering/re-discovering the precise changes made from one architecture to another as you evolve architectures and develop roadmaps in ABACUS.

 Note

When referring to "current", we are referring to what is currently selected rather than the "current state" of the referred item concerning differences state.

Using Sync Target

Using the sync target tool, ABACUS allows you to show live comparisons between architectures of their elements and easily identify differences with colours using the colour legend seen below that can help determine the correct action to take. It also allows you to perform up to full-architecture syncing that will update your elements with their sync target based on given preferences and settings. You can enable this feature by selecting the purple * asterisk that appears at the top of the Explorer tree tool window.

Architecture Diff in explorer


To select the sync target for the 'diff' of architectures

Architectures and elements can have a sync target allocated which will allow them to have their attributes and values compared and provide the option to sync changes. Selecting a sync target for an architecture will also automatically assign sync targets for its elements from the sync target architecture based on a variety of factors, including any existing sync target information, type, name, hierarchy, and attachments (for connections). This behaviour can be modified using the options in the "Advanced" settings section of the dialog.

It is also possible to manually assign sync targets for individual elements, however the parent architecture must have a sync target architecture assigned already in order to do so. Otherwise, you will only be able to clear the current sync target.

1.Ensure you have an ABACUS project open.

2.Ensure you have at least 2 architectures in the project.

3.Right-Click the architecture you want to create a sync target for and select Change Sync Target.

4.Select the Sync Target Architecture from the treeview, optionally check the corresponding options in the Advanced section and click OK.

Selecting the Sync Target for the Historical (As-Was) architecture in the ABACUS Example project


To generate 'diff' reports of architectures/elements

Generating a diff report requires that the architectures involved have a sync target relationship. Reports can either be generated with the default settings in one click, or customised to show specific types, elements, attributes, or recommendations.

1.Ensure you have an ABACUS project open with an architecture that has a sync target.

2.Right-click either an architecture, or element or relevant collection, select Diff/Sync and select your desired diff operation. Continue to diff report where the default settings will be used unless selecting one of the advanced options.

3.Optionally check/uncheck the architectures, elements, attributes and elements you would like to include in the diff report.

4.Optionally check/uncheck the coloured sync* recommendations you would like presented in the diff report.

5.Click Generate.

Diff Advanced Dialog

Once you have finished generating your report, you will have a grid-like view of all the differences that were detected and valid according to your selected preferences. Note that this information is not dynamically updated and to reflect any changes you make after generating the report. You can right-click a cell-row and click Show in explorer to show the relevant element in the explorer or Sync to update the value which will then be shown with a strike-through in the report to indicate the diff has been sync'd.

Difference Report Columns/Settings

Using the gear icon, you can enable/disable setting and columns on your diff report:

Autosize Rows - Automatically increases row height to fit full contents in cells.

Source / Sink Details - Shows full connection information for connections in difference report.

Architecture - Which architecture the difference belongs to.

Type -  Whether difference is on a component or connection.

Element Type - Element type of component/connection affected for the difference.

Name - Name of component/connection in the difference.

Hierarchy - Hierarchical path of component/connection.

Attribute - Type of property that was changed.

State - Type of difference state including Matching for matched components/connections to sync, Missing for missing components/connections in sync target architecture, Extra for extra detected components/connections.

Recommendation - Indication of what to do with the difference, click here to see more information about recommendations and their colours.

Comparison Value - Sync target changed value.

Value - Source unchanged value.

Diff report of the architecture Historical (As-Was) in the ABACUS Example project


To sync architectures/elements

With a sync target in place for either architectures or components or their collections, you can either choose to sync by markup or sync all via the context menu Diff/Sync.

1.Ensure you have an ABACUS project open with an architecture that has a sync target.

2.Right-click either an architecture, or element or relevant collection, select Diff/Sync|Sync Markup Changes and select the relevant sync operation you would like to perform.

          - or -

2.Right-click either an architecture, or element or relevant collection, select Diff/Sync and select your desired sync operation. If you clicked one of the Advanced options, please continue with the next steps otherwise your sync will be applied with the default settings.

3.Optionally check/uncheck the architectures, elements, attributes and elements you would like to include in the sync.

4.Optionally check/uncheck the coloured sync* recommendations you would like to be affected in the sync.

5.Click Sync to apply the sync using your settings.

Sync Advanced Dialog

 Note

You can select the sync direction in the advanced dialogs which will allow you to update baseline architectures that may be the sync target of multiple architectures.


Other Diff/Sync Tools

To show the 'diff' with another architecture via a diagram

1.Ensure you have an ABACUS project open.

2.Ensure you have at least 2 architectures in the project.

3.Open the diagram you wish to compare to another architecture.

4.Click the 'Compare this Diagram to the contents of another architecture' button on the Diagram toolbar.

5.Choose the other architecture from the drop-down list to compare to and the method to match the sync by either using sync targets or element attributes.

6.You can filter what differences are shown by clicking the 'Differences' button on the Diagram toolbar and deselecting options, e.g. Changed / Added / Unknown and Indeterminate / Sync Recommended / Keep Recommended.

 Note

Components and connections on the diagram will be highlighted in red, green, purple or orange where there are differences between the content that is visible on the current diagram and the content in the other architecture according to the colour legend below. Only the visible content on the diagram is compared. If an annotation is showing an attribute value and that value differs, the parent component or connection will be outlined with a faint colour and an additional '*' symbol will be shown at the top-left for components. If an attribute value differs but is not being shown in an annotation or otherwise represented on the diagram, then no indication will be given.  Content that occurs on the current diagram but with no match found in the comparison architecture will be shown with a strong line colour and a '+' symbol shown at the top-left for components. As there is no way of reliably determining whether additional content from the other architecture would have been shown on the current diagram (e.g. an additional interface between 2 components as shown below in a diagram from the comparison architecture on the right), these differences are not shown for diagrams (they are shown for catalogues as per below).  Hovering over each changed item will show the difference in the tooltip.  Hovering over the '*' symbol in the top-left of the diagram provides a summary of the changes (or no changes) between the diagram's content and the contents of the other architecture.

A Diff between two Application Interface Diagrams from two architectures in the Example project


To synchronize ('sync') content from one architecture with another via a diagram

1.Ensure you have an ABACUS file open.

2.Ensure you have at least 2 architectures in the project.

3.Open the diagram you wish to compare to another architecture.

4.Click the 'Compare this Diagram to the contents of another architecture' button on the Diagram toolbar.

5.Choose the other architecture from the drop-down list to compare to and the method to match the sync by either using the sync target or match by the elements attributes.

6.Right-click the diagram element (or elements using Shift or the diagram canvas to Sync All) showing a 'diff' and select the Sync menu item.

 Note

Any synchronization changes will only be applied to the architecture that the currently in focus diagram belongs to.  To apply changes to the other architecture you must use a diagram in the other architectures.  Furthermore, users will only be able to apply synchronization changes if they have permission to do so.

 Note

Depending on where you right-click the menu item will display guidance on what precisely is going to be synchronized.  E.g. Right-clicking a single component in the diagram will only synchronize that component.  Whereas right-clicking the diagram canvas and selecting Sync All will synchronize all the currently shown differences.


To show the 'diff' with another architecture via a catalogue

1.Ensure you have an ABACUS file open.

2.Ensure you have at least 2 architectures in the project.

3.Open the catalogue you wish to compare to another architecture.

4.Click the 'Compare this Catalogue to the contents of another architecture' button on the Catalogue toolbar.

5.Choose the other architecture from the drop-down list to compare to and the method to match the sync by either using the sync target or the elements attributes.

6.You can filter what differences are shown by clicking the 'Differences' button on the Catalogue toolbar and unselecting options, e.g. Changed / Added / Unknown and Indeterminate / Sync Recommended / Keep Recommended.

 Note

Cells in the catalogue will be highlighted in red, green, purple or orange where there are differences between the content in the current catalogue and the matching content in the other architecture according to the colour legend below. Only the visible rows and columns in the catalogue are compared so if there is a difference in a row beyond the currently shown rows or a value in a column that isn't being shown has a difference then no difference will be indicated.  Where the value in an individual cell is different with the matching cell in the comparison architecture the cell border will be highlighted.  The column header and row selector will also be shaded in faint red, faint green, faint purple or faint orange and shown with a '*' symbol.  These '*' symbols may be clicked to jump to the next difference in the column or row respectively.  Rows in the current catalogue representing elements with no match in the comparison architecture will be shown with a '+' symbol in the row selector on the left and the border of the entire row will be highlighted.  Conversely, elements in the comparison architecture that would fit the current catalogue, but have no equivalent match in the current architecture, will be shown with a '-' symbol in the row selector on the left, the border of the entire row will be highlighted, and the entire row's cell contents will be shown in faint red, faint green or faint purple and struck-through, e.g. 8am to 6pm.  Hovering over each changed item will show the difference in the tooltip.  Hovering over the '*' symbol in the top-left of the diagram provides a summary of the changes (or no changes) between the diagram's content and the contents of the other architecture.

A Diff between two Applications catalogues from two architectures in the Example project


To synchronize ('sync') content from one architecture with another via a catalogue

1.Ensure you have an ABACUS project open.

2.Ensure you have at least 2 architectures in the project.

3.Open the catalogue you wish to compare to another architecture.

4.Click the 'Compare this Catalogue to the contents of another architecture' button on the Catalogue toolbar.

5.Choose the other architecture from the drop-down list to compare to and the method to match the sync by either using the sync target or match by the elements attributes.

 Note

See above for the way ABACUS shows the 'diff' between the 2 architectures in the catalogue. In particular, see how Red is used where it is recommended to Sync the differences, Green is used where it is not recommended to sync the differences and Purple is used where ABACUS can not make a recommendation about syncing the differences.

6.Right-click the cell, column or row heading (or multiple items using Shift or Ctrl+A for everything) showing a 'diff' and select the Sync menu item.

 Note

Any synchronization changes will only be applied to the architecture that the currently in focus catalogue belongs to.  To apply changes to the other architecture you must use a catalogue in the other architecture.  Furthermore, users will only be able to apply synchronization changes if they have permission to do so.

 Note

Depending on where you right-click (i.e. a cell, column or row heading) the menu item will display guidance on what precisely is going to be synchronized.  E.g. Right-clicking a single property or attached component cell in the catalogue will only synchronize that property or attached component.  Whereas right-clicking a row heading (or headings using Shift) will synchronize the entire row (or rows).  Right-clicking a column header will synchronize all the differences in that column.

 


Colour Legend

Green indicates differences that are recommended to be kept (i.e. not synced), as they are the result of values being changed in the current architecture.

Red indicates differences that are recommended to be synced, as they are the result of values being changed in the comparison architecture.

Purple indicates differences where no recommendation can be provided (indeterminate), as the value has been changed in both the current and comparison architectures.

Orange indicates the presence of two or more differences with different recommendations.


See Also

Analysing your architecture | Viewing a response time chart | Viewing a scatterplot matrix of your evolved architectures | Evolving your architecture

 


© 2001-2024 Avolution Pty Ltd, related entities and/or licensors. All rights reserved.