Towards an Ontology of Computer Software: a Requirements Engineering Perspective