Maybe we could take a page from the SWEBOK here, which contains a lot of previous thinking on this topic.