Dr Darren says:
The single biggest hurdle I've witnessed for those completely new to SysML is PREMATURE fussing over packaging and ownership structures, which can be stultifying and can prevent you getting into your fluid modelling zone (where you can instead enjoyably focus on the actual engineering itself).
You mostly don't need to do use package symbols for GRAPHICAL containment in diagrams, and even if you've seen it done copiously that way elsewhere.
Except for dedicated package overview diagrams (for which listing members in a compartment usually suffices) specific packaging is seldom important for views, and using GRAPHICAL containment with package symbols can break (if you change the ownership structure later elsewhere in code or in other diagram) AND it greatly restricts your options or organising your diagrams according to engineering idioms that leverage the model meaningfully.
If you must include packages in a diagram, consider using just using owning membership "containment" relationship symbols (or even omit those completely if you've already listed the members in a compartment. The owning membership symbols will simply vanish if the packaging changes but those changes won't render the View actually invalid!
Especially if you are using the tool's diagrams (GUI) for your SysMLv2 modelling try to split your modelling into two separate phases:
- Model freely inside the diagram without fussing over the final ownership of elements. Get in the zone, work with a loose "logical" mindset without any concern at all for "physical" packaging.
- Then, later, separately, do house-keeping sweeps to tidy up the packaging, possible recorded with package overview diagrams with compartment listings.
Best of all, SysMLv2 now makes it wickedly easy to change the ownership of elements, both in code, and in tools.
Even if you are working against a strict systems engineering methodology with a strict packaging structure, the above STILL applies, and does still work. Just make sure you do your housekeeping sweeps!
If you ALSO adopt the Webel approach of using cross-cutting Metadata to indicate SE layers (can use SysMLv2 Semantic Metadata and user defined «#keywords»), you can even do queries across the model to find what is living where and then move anything that is in the wrong packaging zone.
Instead of say having something indicated as being a "logical" component by showing its symbol inside a LogicalModel package symbol in the view, you can see immediately that it is «#logical» without any use of a packaging symbol at all. If it happens to be in the wrong package, then you can just move it during your house keeping sweep, and your view does not break.
