This dissertation focuses on accurate trace link creation for software projects. Trace links represent established associations between software requirements, design, code, test cases and other such artifacts. Traceability describes the potential to create and maintain trace links during the software development life cycle. In most safety-critical domains, the need for traceability is prescribed by certifying bodies.Creating trace links manually is time consuming and error prone. Automated solutions use information retrieval and machine learning techniques to generate trace links; however, current techniques fail to understand semantics of the software artifacts or to integrate domain knowledge into the tracing process and therefore tend to deliver imprecise and inaccurate results. Therefore, this dissertation proposes a series of traceability solutions with different semantic enhancement strategies that aim at improving the quality of trace link generation between regulations, software requirements and design documents written in natural language. The first approach augments software artifacts with an ontology of domain terms and relations. To further increase the trace link accuracy, an intelligent tracing system DoCIT is proposed that is able to reason over artifact semantics through use of a domain ontology and a set of trace heuristics. Finally, a deep learning based tracing method is presented that represents and compares artifact semantics in an implicit but fully automated way. The main contribution of this dissertation is in addressing the lack of semantic knowledge in current traceability solutions by developing techniques which extract semantic knowledge, integrate it into the tracing process, and thereby deliver more accurate and trustworthy traceability solutions.