Blocks are modular units of system description, and provide a general-purpose capability to model systems as trees of modular components. You can model a block with specific kinds of components, connections between them, and the way these elements combine to define the total system.
Each block defines a collection of features to describe a system or other element of interest. These can include both structural and behavioral features, such as properties and operations, to represent the state of the system and behavior that the system might exhibit.
According to the SysML specification, “Blocks can be used throughout all phases of system specification and design, and can be applied to many different kinds of systems. These include modeling either the logical or physical decomposition of a system, and the specification of software, hardware, or human elements. Parts in these systems might interact by many different means, such as software operations, discrete state transitions, flows.”.
Block versus UML class
SysML blocks are based on UML classes as extended by UML composite structures. According to the SysML specification, “Some capabilities available for UML classes, such as more specialized forms of associations, have been excluded from SysML blocks to simplify the language. SysML blocks always include an ability to define internal connectors, regardless of whether this capability is needed for a particular block. SysML Blocks also extend the capabilities of UML classes and connectors with reusable forms of constraints, multi-level nesting of connector ends, participant properties for composite association classes, and connector properties. of inputs and outputs, or continuous interactions.”.