It's really up to what you want to get out of a CMDB and if you are comfortable having software as an attribute, then that's fine by me. However, here are a few things you might want to think about:

- are there any attributes you want to store against software, for example the physical location of the installation CD? If so, it will make life easier have a software CI, so that you don't have to duplicate this information on every PC CI.
- when rolling out new software, will it be easier for you to updated each PC CI with the new software or just update the one software CI to link to all PCs? You may not know this yet if you've not selected a tool but if you have, you might be limited by what the tool can (and cannot) do.

Seems doable.
However, this would mean that you'd have one attribute for each software and software version that you've deployed.

If your CMDB can handle that many different object types (would make many otherwise simliar CIs different due to software), either that or you would break the first normal form (leads to issues when searching - among other things).

Edit: I.e. - no, that does not seem like a very good idea. But as UKViking says - it depends.