<p>I think ports ought to be typed as software, simply because they are standalone pieces of software that do not need the 'parent' software to function. We probably ought to think about software genealogy in terms of inherited code, however I think that specifying inheritance has certain implications (especially when talking about commercial software) that may make the modelling effort a bit problematic. 

For e.g. how do you model SQL2005 and Sybase. Sure the former has had previous versions that were directly derived from the latter, but <a href="">this</a> suggests that as if SQL2005 there is almost no Sybase code in there anymore. One possible solution is to shift the problem upstream and say that SQL 2005 is a different product of the same 'family', which might solve these types of problems.

Regarding extensions, I think we need a new type for that. Mainly because there are lots of extensions that are developed by developers who are not part of the original group (e.g. Autocad/Photoshop plugins) however they need the original software to function in any meaningful way. I am working on those and we should have them shortly.</p>