Requirements elicitation is a critical activity that forms part of the requirements engineering process because it has to discover what the software must do through a solid understanding of the wishes and needs of the various stakeholders and to transform them into software requirements. However, in spite of its relevance, there are only a few systematic literature reviews that provide scientific evidence about the effectiveness of the techniques used to elicit software requirements. This study presents a systematic review of relevant literature on requirements elicitation techniques, from 1993 to 2015, by addressing two research questions: Which mature techniques are currently used for eliciting software requirements? and Which mature techniques improve the elicitation effectiveness? Prior literature assumes that such 'maturity' leads to a better-quality understanding of stakeholders' desires and needs, and thus an increased likelihood that a resulting software will satisfy those requirements. This research paper found 140 studies to answer these questions. The findings describe which elicitation techniques are effective and in which situations they work best, taking into account the product which must be developed, the stakeholders' characteristics, the type of information obtained, among other factors.