One of the main goals of the Software Engineering (SE) discipline is to find higher abstraction levels, ways to reuse software in order to increase its productivity, quality. Ontologies, which are typically considered as a technique or an artifact used in one or more software lifecycle phases, may be used to help achieve that goal. This paper provides a literature review, discussion, analysis of the existing solutions for implementing ontologies in SE. We selected several software development paradigms (including Software Product Lines, Component-Based Development, Generative Programming, Model-Driven Engineering) for our classification, discussion of different approaches proposed in the literature. It was established that ontologies are suitable for providing a common vocabulary to avoid misunderstanding between different parties in SE, requirements specification, features specification, variability management, components specification, components matching, model transformations, code generation. Based on the conducted review, guidelines for further research are given.