SysML FAQ: What is the difference between a Block and a Package?

In both SysML and its parent language UML a Package is a generic grouping mechanism for organizing various model elements and related diagrams within a unique namespace. A SysML Package is capable of containing any arbitrary SysML model element, including (but not limited to) Blocks.

A SysML Block is the basic structural element used within a SysML model, and is used analogously to how UML Classes are used to structure a UML object model. See SysML FAQ: What is the difference between SysML Block and UML Class?

Consequently, while a SysML Package may contain (provide a unique namespace for) Blocks and other SysML model elements, a SysML Block cannot own (be composed of) or contain SysML Packages or SysML diagrams.

Usage Note: Can SysML Blocks and Packages be used together in a complementary manner?: Yes, when recursively decomposing systems into subsystems, sub-subsystems, etc. it’s considered a best practice to recursively organize the model view Package structures in a manner similar to the recursive structural decomposition. A variation of this technique will also work for large, complex data structures.

OMG SYSML, UML, and UNIFIED MODELING LANGUAGE are trademarks of the Object Management Group. All other product and service names mentioned are the trademarks of their respective companies.