§SYSTEMS ENGINEERINGDESKBOOK
Field Notes
MBSE · SysML

SysML vs UML: what's actually different?

SysML is a UML profile — it reuses a subset of UML 2 and adds blocks, requirements, and parametrics for systems engineering. Here's the difference that matters.

FIG. 1 · BLOCK DIAGRAM
Short version: SysML is a profile of UML, not a replacement. It reuses a subset of UML 2 and extends it with constructs for systems engineering — blocks, requirements, parametrics, and allocations. The OMG describes SysML as “a subset of UML 2 with extensions.” So SysML isn't a rival to UML; it's UML adapted for engineering whole systems, not just software.
TL;DR
UML 2SysML v1
Standardized byOMGOMG
Diagram types149
Primary targetSoftware-intensive systemsMultidisciplinary systems (hardware + software + people + processes)
Built onIts own metamodelA profile of UML 2
New constructsRequirements, Parametric, Blocks, Allocations

The relationship: profile, not rival

A UML profile is a controlled extension mechanism — it lets you stereotype, tag, and constrain the base UML metamodel without forking it. SysML v1 uses exactly that mechanism. It takes a defined subset of UML 2 diagram types and adds stereotypes and new constructs on top, all within the UML profile extension rules.

The practical consequence: a SysML tool like Cameo Systems Modeler is built on a UML modeling engine. The SysML additions are loaded as a profile on top of that engine. A systems engineer working in SysML is, at the metamodel level, working in an extended version of UML — not in a wholly separate language.

Diagram types: 14 vs 9

UML 2.5 defines 14 diagram types. SysML v1 defines 9. The mapping is deliberate:

  • Reused largely unchanged from UML: Use Case, Sequence, State Machine, and Package diagrams carry over with minimal modification.
  • Modified from UML equivalents: The Block Definition Diagram (bdd) comes from the UML Class diagram; the Internal Block Diagram (ibd) comes from UML Composite Structure; the Activity diagram is extended with object flows and item flows.
  • New in SysML — no UML equivalent: The Requirement diagram (req) and the Parametric diagram (par) are original additions.

Blocks: the generalized class

The most visible difference for a modeler encountering SysML for the first time is the Block. A SysML Block is a stereotyped extension of the UML Class — but where a UML Class was designed to model software objects, a Block is generalized to represent anything in a system: hardware assemblies, software components, data structures, human roles, or operational processes.

A Block can have ports (typed connection points), flow properties (items or energy that cross its boundary), and value properties (quantities with units). None of these concepts has a clean equivalent in base UML because base UML wasn't designed to describe physical systems with physical interfaces.

What SysML adds

Beyond the Block, SysML introduces four categories of new content not in base UML:

  • First-class requirements. The Requirement diagram lets you represent requirements as model elements and link them to the design through typed relationships: satisfy (a design element fulfills a requirement), verify (a test confirms it), derive (one requirement is derived from another), and refine (a requirement elaborates another).
  • Parametrics. Constraint blocks let you capture mathematical and engineering constraints — equations, performance budgets, margins — and bind them to block properties. The Parametric diagram visualizes these constraint networks.
  • Item flows. Flows of matter, energy, or data across block interfaces are modeled explicitly on Internal Block Diagrams.
  • Allocations. SysML defines a typed allocate relationship for mapping logical functions to physical components, requirements to design elements, or behavior to structure.

What SysML does not define

SysML does not define equivalents of several UML diagram types that are specific to software modeling: Object, Communication, Component, Deployment, Interaction Overview, Profile, and Timing diagrams. These weren't carried into SysML because they address software-centric concerns — class instances at a moment in time, component wiring, deployment topology — that have limited relevance across the broader set of engineering disciplines SysML targets.

This does not mean SysML is less capable for systems engineering; it means the language is scoped differently. If you need to model a microservice deployment or a message-passing architecture between software components, UML is the more natural fit.

When to use which

UML is the natural starting point when the system you're modeling is primarily software — software architecture, service interactions, object behavior, state machines for a software component. The language was designed with software structure and behavior as its primary concern.

SysML is intended for systems that span multiple engineering disciplines — hardware, software, people, and processes interacting as one system. It brings requirements traceability, physical interfaces, and engineering constraints into the model in a way base UML doesn't.

In practice on a defense or aerospace program, the decision is rarely ambiguous: the program uses SysML for system-level architecture and hands off to software teams who may use UML (or simply code) for software design. The two languages aren't mutually exclusive — they coexist across different levels of the design.

NOTE The v1-as-UML-profile relationship described above applies to SysML v1. SysML v1 vs v2 covers the distinction in detail: SysML v2 is NOT a UML profile — it is built on its own KerML-based metamodel with formal semantics, making it a fundamentally different language from the one described here.

FAQ

Yes. SysML v1 is a profile of UML 2 — it reuses a subset of UML diagram types and extends the metamodel with constructs for systems engineering: blocks, requirements, parametrics, and allocations.

SysML v1 defines 9 diagram types; UML 2.5 defines 14. SysML reuses four largely unchanged (Use Case, Sequence, State Machine, Package), modifies three (Block Definition, Internal Block, Activity), and adds two new ones (Requirement, Parametric).

SysML does not define equivalents of several software-centric UML diagram types: Object, Communication, Component, Deployment, Interaction Overview, Profile, and Timing diagrams.

A Block is a stereotyped extension of a UML Class, generalized to represent hardware, software, data, people, and processes — not just software classes.

SysML is intended for multidisciplinary systems engineering — systems that span hardware, software, people, and processes. UML targets software-intensive systems. If your system is primarily software, UML is the natural fit; if it crosses engineering disciplines, SysML is.

No. SysML v2 is not a UML profile — it is built on its own KerML-based metamodel with formal semantics. The relationship to UML described above applies to v1.