What's the best way to make small customizations (e.g. IP addresses) to lower level components of a common subassembly (block) in SysML? Key consideration is maximizing reuse of higher level assembly common structures (e.g. internal connectivity).
Case in-point:
Common Server Rack used in several places on-board a ship. Each application has unique IP addresses, each assigned down to a lower level component (several layers below the Common Server Rack level of definition.
Here's a simplified outline of the scenario:
- Server Rack <<block>>
-- Display Computer <<block>> (part of Server rack)
--- Display Computer IP Address (value property of Display Computer)
-- Server Computer <<block>> (part of Server rack)
--- Server Computer IP Address (value property of Server Computer)
-- Network Switch <<block>> (part of Server rack)
--- Network Switch IP Address (value property of Network Switch)
The actual definition of the Server Rack is much more complex (many more value / part properties and internal / external connections), but I'm simplifying it for this discussion.
There's one server rack on the port side, and one server rack on the starboard side. However, I don't want to make "copies" of the server rack in the model. I'd rather use inheritance (via generalization); so that both the port/starboard racks inherit the common features of the server rack architecture, but also allow for customization of the IP addresses at the lower levels.
This has sweeping implications across the entire system model, as I have many common items that have slight customizations across 4 or 8 different applications within the shipset.
Any help on this is greatly appreciated!