Software requirements are typically written in textual forms using a natural language. This is a very common way for writing user requirements, since it allows non-technical stakeholders to read, comment and discuss the requirements in a format that they can comprehend. However, user requirements written in natural languages can often be ambiguous, incomplete, and inconsistent, which leads to problems when constructing the software system. Additionally, the interpretation of requirements in natural languages can be affected by geographical, psychological and sociological factors. Thus, it is very relevant to detect and fix potential ambiguities, inconsistencies, and incompleteness in the written requirements. This leads to better products (i.e., in accordance to the needs and expectations of the stakeholders) and reduces the development cost. these issues has been address in this book.