## Generate optimized architectures

**Description**

As with the previous section, this solution method is another way to deal with the dynamicity of the SoS. Within the SoS architecture, it is often true that there are possible architecture variants that can be created by varying the quantity and connection of the constituent systems. Among such sets of variants, the Architecture Optimization tool allows the SoS architect to determine the optimum configuration based on a defined measure.

In this solution method, also called “concise modelling,” the SoS model is varied by defining parameters that can be changed using an external Microsoft Excel spreadsheet.The model contains parameter tags that show the areas of variation; the Excel file contains possible quantity and connection variants for those tags.The Architecture Optimization tool combines the two to create the full set of possible architecture variants, compares the score of each variant against the measurement function, and selects the variant that best optimizes the score.Finally, that variant is placed back into Rhapsody as a set of views with the specific quantities and connections.

Example

In the Emergency Services SoS, the number of fire trucks at each station, the number of fire stations, and the connections to the local police stations are all parameters that can be selected differently as the population grows.These quantities and connections can be parameterized and varied such that the current version of the SoS best meets the desired response time to an emergency.

**Initial Situation**

This solution method is applicable when there already exists an initial SoS model, and there is the recognition that some features of the structural architecture can be parameterized to create variants.There is a question in the mind of the SoS architect as to what quantities and what connections are best.There is a definition of a specific measure against which to optimize.

**Expected Result**

The solution method results in a new SoS model that optimizes the specific measure through the variation of the parameterized quantities and connections.

**Required Tools**

The following tools are necessary to this solution method:

- Rhapsody

- Architecture Optimization Workbench

- Microsoft Excel (external to DANSE)

- CPLEX (external to DANSE)

- DANSE modelling extension profiles

Figure 48: Tool Flow: Generate Optimized Architectures

**Activities**

Figure 49 shows the flow of activities necessary to this solution method. Through these activities, the solution method converts an initial SoS UPDM model to a new model that is optimized within the constraints of the method.

Figure 49. Activity Diagram: Generate Optimized Architectures

Model SoS

This activity is the solution method *Model SoS* that is described in section 5.1.The activity results in an SoS UPDM model in the Rhapsody tool.For the purposes of this solution method, that model is considered to be an “initial” model, to be improved by the use of architecture optimization.

Parameterize UPDM elements

Given the initial SoS model, the SoS architect then decides which elements of the architecture can be parameterized.Elements that may be parameterized are typically the quantity of specific constituent systems or the number of connections of those constituent systems.

Within the model in Rhapsody, the architect identifies the parameterized elements using the DANSE UPDM extensions.This identification tells the Architecture Optimization Workbench which elements to vary in accordance with the Excel spreadsheet.

Identify optimization measure

The SoS architect creates a mathematical formula that represents the optimization measure.This formula is also placed into Rhapsody using the DANSE UPDM extensions.

Create spreadsheet of variant possibilities

In an Excel spreadsheet, the architect then links each parameterized element with the possible variations in that element – which forms of which model elements may be quantified how many times.The Excel spreadsheet defines both the forms of the varying elements (because each element may have multiple versions) and the quantities available.

Execute architecture optimization

Using the Architecture Optimization Workbench as a Rhapsody plug-in, the architect then executes the optimization.As a part of the optimization, the tool varies each parameterized element in accordance with the possibilities identified in Excel. For each possible architecture combination, the tool calculates the value of the optimization measure.The results are fed into the CPLEX tool to determine the overall optimum for all possible varying parameters.

When the result is determined, the tool generates a Rhapsody representation of the SoS model with the optimized set of parameters.That representation is placed back into Rhapsody.

**Limitations**

This solution method is based on SysML model elements, so it can only be applied to those UPDM elements that are strictly within the SysML modelling paradigm.

The solution method does not interact with joint simulation or statistical model checking.Optimization is performed only against those parameters that can be calculated without executing a simulation model, primarily static structural parameters.The method also does not optimize with respect to desired or undesired emergent behaviours, because knowledge of these behaviours requires simulation.

The optimization is only valid within the constraints given to it.There may be better architectures available through variants that are not explored, or through completely different architecture patterns, or through simulation.

**Follow-up Solution Methods**

Given the limitations, it is natural to use *Generate Optimized Architectures* in conjunction with *Apply Architecture Patterns* and *Generate Architecture Alternatives* as alternative methods to explore architecture variations.Each of the three methods offers a different approach with different benefits and limitations.

After generating an optimized architecture, the following solution methods may be useful:

· *Evaluate goals and contracts*, to ensure that the revised SoS model is still compliant.

· *Generate architecture alternatives*, to explore structural variants of the revised SoS model.

· *Apply Architecture Patterns*, to explore completely different variants of the revised SoS model.

· *Perform joint simulation*, to explore the behaviour of the revised SoS model.

· *Perform statistical model checking*, to determine whether the revised SoS model complies with goals, contracts, and other requirements.

· *Evaluate emergent behaviour*, to determine whether the revised SoS model meets desired emergent behaviours and to discover any new surprise emergent behaviours.

*Perform formal verification*, to verify desired properties of the revised SoS model.