I'm researching engineering approaches to software development based on the type of software, for example:

  • Custom one-off software (e.g. space shuttle software)
  • Whitebox application requiring customised (e.g. Apache Ofbiz ERP - source code is usually downloaded and customized for each implementation)
  • Blackbox application without extension points
  • Blackbox application with extension points for customisation (e.g. MS Word, SAP)
  • ...

Is there an established taxonomy of different types of software based on how the software is implemented?

  • End users don't "implement" software, developers do that. Do you mean "deployed" or "used"? Feb 3, 2013 at 15:34
  • I've removed the reference to end users
    – Chris Snow
    Feb 3, 2013 at 20:23
  • 5
    Close voters: Software engineering & development methodologies questions are on topic (don't take my word for it, check out the FAQ).
    – yannis
    Feb 3, 2013 at 23:28

4 Answers 4


It isn't really a taxonomy: it's a set of orthogonal properties. Some of the most important ones are:

  • Open source vs. proprietary
  • Publicly available vs. in-house only
  • Extensible API or not?
  • Plugin support?
  • Platform (i.e. what infrastructure does it depend upon)
  • Extent of specific customisation for user / company
  • Scriptability (i.e. embeds own programming language for users)
  • Client type (web vs. desktop GUI vs. console app vs. REST API etc.)
  • Monolithic structure vs. composable components?
  • Support for distribution (clustering, redundancy failover etc.)
  • Stable vs. experimental (in development)

You can have pretty much any combination of the above.... so trying to build it into a tree structure would be fairly pointless as all the branches would need to be duplicated.

  • is this list something you have constructed yourself, or is it based on research or any other body of knowledge?
    – Chris Snow
    Feb 4, 2013 at 11:35
  • It's my own list, based on many years of experience rather than any specific research :-) . These are the things I like to know when I'm getting my head around a new software product.
    – mikera
    Feb 4, 2013 at 11:58
  • I started prototyping a software taxonomy. You are welcome to to join and improve it unilexicon.com/vocabularies/software
    – fmalina
    May 18, 2015 at 22:07

This is ancient but still useful:


I think there are five worlds here, sometimes intersecting, often not. The five are:

  • Shrinkwrap
  • Internal
  • Embedded
  • Games
  • Throwaway

When you read the latest book about Extreme Programming, or one of Steve McConnell's excellent books, or Joel on Software, or Software Development magazine, you see a lot of claims about how to do software development, but you hardly ever see any mention of what kind of development they're talking about, which is unfortunate, because sometimes you need to do things differently in different worlds.


There isn't a widely accepted taxonomy used in industry, but there are some academic attempts to create one. One example is by Forward and Lethbridge (ACM subscription required). Some software repositories, such as Sourceforge, provide a categorization scheme for the projects stored within them. At the very least, these schemes may provide a starting point.


Most software taxonomies tend to focus on the end user rather than developer interested in implementation aspects.

I compiled a list of those I am aware of in descending order based on how developer v. end-user oriented is the taxonomy.

Free software taxonomies

Paid taxonomies

Not the answer you're looking for? Browse other questions tagged or ask your own question.