We use parent-child relationships: - When the concept 'if the parent will down, the child will down too' is valid. - For software because we can use Max.Installation field to control the number of relations to HW CIs, where instances of software are installed.
Note that the client help turned up some good guidance that I think we will adopt. Here is an extract:
"The relation expressed in a hierarchical structure is often the physical relation, in real-life established with cables and connectors. The free-form relation can express functional relations."
Where hierachical means parent-child.
As for one CI down results in another CI down such, we have created a "depends on / is dependant on" relationship type pair that we often use between software apps. But we also have "Uses / is used by" also.
But using the Max installations feature is attractive when licensing is to be tracked.
One thing to keep in mind if you plan to use Parent-Child relations and max. installations is that you are likely to need your CMDB to be a description of what your infrastructure OUGHT to look like, but not necessarily what it is really like (which is exactly what ITIL says the CMDB ought to be).
Why? Because if you license software for 100 PCs, and you really do install it on 101 PCs, and if the PC is the parent of the software, then OVSD will not allow you to describe the 101th installation - you will not be able to use OVSD to document it.