System Composer

Design and analyze system and software architectures


System Composer™ enables the definition, analysis, and specification of architectures and compositions for model-based systems engineering and software design. With System Composer, you allocate requirements while refining an architecture model that can then be designed and simulated in Simulink®.

System Composer lets you create or import architecture models that describe a system in terms of components and interfaces. You can also populate an architecture model from the architectural elements of Simulink designs or C/C++ code. You can create custom live views of the model to study specific design or analysis concerns. With these architecture models you can analyze requirements, capture properties via stereotyping, perform trade studies, and produce specifications and ICDs.

Get Started:

Architecture Authoring

Create and elaborate specifications of architectures, compositions, and interfaces for model-based systems engineering and software design.

Composition Hierarchies

Sketch hierarchical system and software decompositions of components using a familiar component, port, and connector modeling approach. Iteratively add more details to your design until you are ready for implementation in Simulink.

Interface Management

Specify and refine interfaces on ports to define the information exchanged between components. Verify interface compatibility between ports by checking units, types, and other characteristics. Manage interfaces in dictionaries to facilitate reuse across multiple models of a project.

Apply an interface to a port by creating a new interface or selecting an existing interface. Specify the type, dimensions, units, and structure of the data.

Architecture Import

Reuse your existing design artifacts and Interface Control Document (ICD) information by connecting external repositories and files to MATLAB® and using an API to import the information into System Composer.

Connect external repositories and files to MATLAB and use an API to import the information.

Simulink Integration

Implement your architectural specification in Simulink using Model-Based Design.

Creating and Linking Simulink Components

Create, link, and manage Simulink behavioral components and interfaces as part of your top-down architecture design.

Reusing Simulink Models

Create architectural models bottom-up from existing Simulink models. Extract a composition from an existing Simulink system model or synthesize one from a set of Simulink component models.

Creating Behavioral Specifications

Capture and simulate desired system behavior in Simulink and Stateflow® to refine and validate your requirements and architecture in System Composer.

Use Stateflow with MATLAB App Designer to create executable prototypes that are used to refine and validate requirements.

Requirements Allocation and Traceability

Associate architecture model elements with requirements. Iteratively decompose architectures while deriving additional requirements to create specifications.

Requirements Allocation

Allocate requirements from external sources to architecture elements. Visualize and trace requirements from architectural elements, derive next-level requirements, and decompose architectures interactively.

Requirements Analysis

With Simulink Requirements™, you can perform requirements coverage analysis to assess the completeness of your architecture. Requirement changes resulting in suspect links are highlighted to support impact analysis.

Profiles and Analysis

Extend your architecture with domain-specific design data and apply MATLAB analytics to perform trade studies.


Add custom properties to architectural elements using stereotypes. Group and extend interrelated stereotypes in a profile that can be applied to an architecture.

Trade Studies Using MATLAB Analytics

Optimize architectures based on trade study results. Traverse architectures by hierarchy or connectivity, and perform roll-ups of parametric information. Create your own MATLAB analysis scripts to be applied on demand.

Directly access architecture data with MATLAB and use your own analysis scripts to perform trade studies, such as a roll-up to calculate the total mass of the system.

Model Reuse and Packaging

Reuse models, components, interfaces, and design data within a project or across projects. Use System Composer Projects to organize related model artifacts and facilitate reuse.

Architecture Reference

Reuse architecture component definitions by saving a component and its decomposition in a separate file and then referencing the component from other components in the architecture. Use the same mechanism to partition your overall design into separate model artifacts. You can define variants between multiple reference architectures for one component.

Create a reusable component that contains its interface and hierarchy that can be used to implement other components.

Architecture Projects

For large architectures, use projects to facilitate component reuse, modular team-based design, and the release of independent components. Projects support large-scale componentization by enabling you to reference other projects from a parent project.

Projects can be referenced by other projects supporting large scale componentization.

Live Model Views

Customize model views for specific design or analysis concerns. Make changes in a view that updates the other model views, and save views for later use.

Architecture Views

Create customized views for specific design or analysis concerns that enable communication between multiple stakeholders. For example, you can create views that contain only the software, mechanical, or electrical elements. Through views, contextually edit design properties and link requirements that will be reflected throughout the model.

Spotlight Views

Generate a pre-configured view that shows the context of a component and its connectivity. Use it to examine which components and interfaces will be impacted by a change.

Latest Features

Model to Model Allocations

Establish directed relationships between elements of two architectural models representing different aspects of the system

Stereotype-Based Styling

Style components and connectors in the model based on stereotypes with custom colors and icons

Architecture Views

Create multiple persistent views for an architecture model, including with automation using visual filters, for different concerns

Hierarchy Diagrams

Represent any architecture view as a tree diagram showing the component hierarchy and properties

Requirements Linking

Link requirements to components and ports of an architecture model from any view (requires Simulink Requirements)

Interface Stereotypes

Apply stereotypes for custom metadata on interface objects

Linked Data Dictionaries

Define interface objects across multiple linked data dictionaries for separation of concerns

Interface Adaptor

Visually specify interface mapping between components with different but compatible interfaces

See release notes for details on any of these features and corresponding functions.