Due to the ongoing progress of technology, not only are technical aspects of software development, such as programming languages or paradigms, constantly changing but also the structure of software itself. The current trend is shifting towards component- or service-oriented architecture, which understand software as an interaction of individual components and/or services. Ideally, more complex services can be created through the composition of existing basic services. With regard to software reusability, the efficient and precise discovery of services is becoming increasingly important as the number of existing software components keeps growing. Traditional solutions such as the division of services into predefined categories or purely text-based search techniques are often imprecise, inexpressive, require extensive manual assessment of results on the part of the user and thus generally show a high discrepancy between the returned results and the actual needs of the user. In this work, the "Semantically Enhanced Software Repository" (SEnSoR) has been developed. SEnSoR is a repository capable of managing both traditional software components in various programming languages, as well as (Semantic) Web services. In contrast to existing solutions such as UDDI, SEnSoR allows for the discovery of existing services based also on their semantic description through a combination of text-based search methods with ontology-based techniques from the field of Semantic Web. The evaluation of SEnSoR and a comparison with a number of current Semantic Web service matchmakers show that SEnSoR achieves very good results in terms of precision (i.e., the quality of the returned services in relation to a given search query) and query performance. Even with large numbers of services search requests are answered within milliseconds. In combination with a user friendly search API similar to modern (Web) search engines, SEnSoR can thus be used as a useful development tool within existing software environments that aids its users in discovering and selecting suitable services, for instance in the context of business process modeling.