1
Uml Process / Relationships between Design Abstraction Layers
« on: June 24, 2024, 07:26:46 pm »
I'm working up a SysML design ontology with the 'normal' abstraction layers for our industry: System > Functional > Logical > Physical.
By chance, I'll be broadly following an approach that was previously described in this paper [1] (though I only found the paper after I'd documented my own approach!).
I'll be using Blocks to represent structural entities at System level (i.e. 'The System'), as well as Blocks in each of the lower abstraction layers - e.g. maybe a "FunctionalBlock" classifier to represent a function called 'Routing Function' that routes data around the system. No shockers there.
I'm fairly sure of the SysML Relationships I want to use between the layers, but I wanted to canvas opinion on how to link structural Blocks in the System layer to those in the Function layer. There are many options with different implications. E.g:
- Aggregation (the system as an Aggregation of functions) - this implies that after destroying the system the functions remain, but I kind of like that in terms of building a catalogue of common definitions for functions that I can then use in multiple product designs...
- Composition (the system Composed of functions) - maybe makes more sense in that once the System is destroyed there is also no longer a group of Functions to do the things that it was previously doing...?!
- Allocation (Functions Allocated to a top-level 'System' definition) - seems a bit looser to me and possibly implies something a little bottom-up rather than top-down, which I'm not comfortable with. My Allocations will go down, not up (i.e. Allocating functionality onto lower-level components)
- Association - too weak for Structural definition
- Containment (the system Contains functions) - again, probably too weak for my liking... the means of decomposition wouldn't be implicit enough without further explanation of how the structural function layer is contained within the system layer
Would appreciate any thoughts!
[1] https://incose.onlinelibrary.wiley.com/doi/abs/10.1002/j.2334-5837.2017.00350.x
By chance, I'll be broadly following an approach that was previously described in this paper [1] (though I only found the paper after I'd documented my own approach!).
I'll be using Blocks to represent structural entities at System level (i.e. 'The System'), as well as Blocks in each of the lower abstraction layers - e.g. maybe a "FunctionalBlock" classifier to represent a function called 'Routing Function' that routes data around the system. No shockers there.
I'm fairly sure of the SysML Relationships I want to use between the layers, but I wanted to canvas opinion on how to link structural Blocks in the System layer to those in the Function layer. There are many options with different implications. E.g:
- Aggregation (the system as an Aggregation of functions) - this implies that after destroying the system the functions remain, but I kind of like that in terms of building a catalogue of common definitions for functions that I can then use in multiple product designs...
- Composition (the system Composed of functions) - maybe makes more sense in that once the System is destroyed there is also no longer a group of Functions to do the things that it was previously doing...?!
- Allocation (Functions Allocated to a top-level 'System' definition) - seems a bit looser to me and possibly implies something a little bottom-up rather than top-down, which I'm not comfortable with. My Allocations will go down, not up (i.e. Allocating functionality onto lower-level components)
- Association - too weak for Structural definition
- Containment (the system Contains functions) - again, probably too weak for my liking... the means of decomposition wouldn't be implicit enough without further explanation of how the structural function layer is contained within the system layer
Would appreciate any thoughts!
[1] https://incose.onlinelibrary.wiley.com/doi/abs/10.1002/j.2334-5837.2017.00350.x