Thesis: What Makes a Requirement?: Towards Distinguishing Software Requirements from Generic Text
What Makes a Requirement?: Towards Distinguishing Software Requirements from Generic Text
Senior Honors Thesis by Sasha Yeutseyeva
Thesis Abstract: Requirements engineering is the practice of identifying and managing requirements during the software engineering process. These requirements are identified and stored in natural language documents called Software Requirements Specification (SRS) documents, which also contain other information about the software project. Requirements are written in a variety of requirements notations, for example natural language and EARS. As SRS documents grow to be very long or become unstructured, it becomes harder for humans to identify requirements within them. As a result, it would be ideal to have the ability to extract only the requirements out of SRS documents written in natural language. To distinguish requirements among natural language, Natural Language Processing (NLP) techniques must be used. This thesis explores the research question of identifying requirements among natural language and conducts a literature survey of existing relevant techniques. We build off existing state of the art and present our initial system, ReqSpotter, that identifies sentence long requirements among natural language.