Architecture Views: Edit models in component diagram views
In R2024b, you can edit your System Composer™ model from the component diagram canvas in the Architecture Views Gallery. Add, edit, and delete components, ports, and connectors in the model through your view. You can also edit multiple hierarchies at the same time using component diagram views.

To change between views editing and model editing, right-click a component in a view and use the context menu to pivot from the component in your view to the corresponding component in your architecture model by selecting Pivot > Composition.

For more information, see Author Architecture Models Through Component Diagram Views.
Architecture Views: Filter ports for each component in view
To filter ports on a component in a view in the Architecture Views Gallery, click and highlight your component. A blue box appears above the component. Pause on the ellipsis (…) that appears to select Filter Ports.

Use the check boxes to choose which ports to show and hide on your component in the view.

You can also add components to the view interactively without ports.

Add FMU behavior to components
Starting in R2024b, you can link components to functional mock-up unit (FMU) files in System Composer to create an FMU behavior. System Composer preserves the architectural data on an FMU in the architecture model so that an FMU component is compatible with the rest of the architecture model. Multiple FMU components that link to the same FMU file share information such as applied profiles and stereotypes. The FMU file contains information about ports and interfaces. On the FMU architecture, this information is read-only because FMU file editing is not supported.
For more information about linking to an FMU file, see Link to Existing FMU Files and linkToFMU.
Activity Diagrams: Represent complex objects using tokens with MATLAB classes
Starting in R2024b, you can model tokens that carry MATLAB® class objects. You can use a predefined MATLAB class or you can define your own MATLAB class. For more information on MATLAB classes, see User-Defined Classes.
In activity diagrams, to associate a MATLAB class with a pin that inputs or outputs tokens:
In the property Inspector for Name of the
Object Type select
<owned>.
Specify the Type as the MATLAB class name.
For the Action Node with MATLAB function behavior, these input and output tokens appear as input and output arguments of the MATLAB function.

For more information, see Model Complex Objects in Activity Diagrams Using MATLAB Class Tokens.
Activity Diagrams: Visualize your flow of tokens using border animations
New animations that color the borders of action nodes and pins enable you to visually distinguish their state at the time of simulation. For more information, see Validate Activity Diagram Behavior Using Animations.

Activity Diagrams: Debug activity diagram behavior using Token Inspector
Starting in R2024b, you can inspect the contents of a pin or parameter node during simulation using the Token Inspector. When you pause the simulation and click a pin, the Token Inspector displays information on the tokens inside the pin, such as the token ID, the number of tokens in the pin, and the token payload.
For more information, see Inspect Tokens Using Token Inspector.

Activity Diagrams: Model continuous flow of object tokens using streaming pins on action nodes
Starting in R2024b, you can designate input or output pins of an Action Node in an activity diagram as streaming pins by selecting the Is Streaming check box in the Property Inspector. Streaming pins allow object tokens to enter an action node while it is executing. This capability allows you to model situations where there is a constant flow of entities to or from an activity even as it executes.
Previously, all pins of an action node were non-streaming pins that accepted input object tokens only until the action started its execution, after which the pins blocked any further entry of tokens.
Activity Diagrams: Automatically match action node pins to MATLAB function arguments
In an activity diagram, you can now automatically match pins on an Action Node to function arguments on the linked MATLAB function. Matching pins with arguments controls the expected behavior of the action node using the linked MATLAB function.
For example, start with the MATLAB function sound and link it to an action node in your
activity
diagram.
function [data,wave] = sound(vol,info) %sound Transmit sound through a speaker wave = vol*info; data = info*5; end
To match the names and numbers of input and output pins on the action node with the numbers of input and output arguments in the linked MATLAB function, right-click the action node, and from the context menu, select the menu option Match action pins to MATLAB function arguments.

For more information, see Match Action Node Pins to MATLAB Function Arguments.
Sequence Diagrams: Describe interactions between client and server components using call and response messages
Starting in R2024b, you can author call and response messages between lifelines with client and server ports.
A client sends a call message to a server to invoke a service.
Call messages are represented by a solid line with a solid arrowhead.
A server provides a response message to a client.
Response messages are represented by a dashed line with a line arrowhead.
![A sequence diagram with two lifelines, Controller and Sensor1. There is a call message from Controller to Sensor1 with message label reset[resetData==true] and a response message from Sensor1 to Controller with message label fetchData[data>1].](sequence-diagram-client-server-messages.png)
For more information, see Describe Client-Server Interactions Using Sequence Diagrams.
Sequence Diagrams: New syntax for message labels
Starting in R2024b, a message label can contain a trigger, an optional guard, and an
optional constraint in the form of trigger[guard]{constraint}.
A trigger determines whether the message occurs.
In signal events, the trigger follows this format: direction(signal [+|-]
value)
In message events, the trigger follows this format: port
A guard is an additional condition to determine whether the message
occurs. Evaluation of the guard only occurs once a valid trigger has been detected.
A constraint determines whether the message is valid.
Prior to R2024b, sequence diagram messages follow this format:
trigger[constraint].
Sequence Diagrams: Build interactions programmatically
Starting in R2024b, you can use programmatic interfaces to build sequence diagrams. To create
a sequence diagram, use the addInteraction function in the systemcomposer.arch.Model object.
You can create and edit the corresponding sequence diagram elements represented as objects
in the systemcomposer.interaction.* namespace shown in this image.
For more information, see addLifeline and Create Sequence Diagrams Programmatically.
Machine Cooling Application Example: Validate design requirements using test cases and simulation
In R2024b, you can access the new Validate Requirements for Machine Cooling System Architecture example.
Open the scMachineCoolingExample project to learn about different
methods to validate requirements against stakeholder needs. The project demonstrates
how to evidence requirements verification to increase confidence in valid system
behavior.

Use parameters in analysis functions
You can now use parameters in analysis functions and analyze your instance model to view
calculated metrics by using the Analysis
Viewer tool or programmatic interfaces. To incorporate parameters in analyses,
you must first create an instance model by instantiating the architecture model using the
Instantiate
Architecture Model tool or the instantiate function.
For more information, see the Analysis for Average Wear of Tires in Automobile example.
Improved readability of architecture diagrams at low zoom levels
Starting in R2024b, when you zoom out of an architecture model or architecture view, the diagram changes to a low-fidelity view to improve readability.

Drag to add reference components to architecture models
Starting in R2024b, you can drag to add a Reference Component block linked to a model or subsystem into a System Composer model. Drag a model or subsystem file from the file explorer to add a reference component to the architecture model canvas.
For example, dragging a Simulink® model SLX file into the architecture model canvas adds a Reference Component block that references the model in the SLX file.

Files that you drag to add must be on the MATLAB path. Creating reference components by dragging files from the MATLAB Editor into the model canvas is not supported.
Change default font in architecture models
You can now change the default font in your component headers, linked model or subsystem
names, port names, and subsystem component line labels. To modify your font choices, open
the Font Styles dialog box. From the System Composer toolstrip, select Format > Fonts for Model from the down arrow next to the Font button
.

Schedule component initialization in software architectures
Starting in R2024b, you can schedule the order of component initialization for reference components in software architectures from the Initialize tab of the Functions Editor.

For more information, see Schedule Component Initialization in Software Architectures.
Enhancements to test harnesses for components with service interfaces
As of R2024b, you can now:
Reuse test harness models by cloning or moving test harnesses.
Manage files associated with test harnesses by specifying a path to save your test harness, mock architecture, and mock component models.
For more information, see Manage Test Harnesses (Simulink Test),
sltest.harness.create (Simulink Test), sltest.harness.clone (Simulink Test), sltest.harness.move (Simulink Test), and sltest.harness.delete (Simulink Test).