Requirements elicitation is concerned with learning and understanding the needs of users w.r.t. a new software development. Frequently the methods employed for requirements elicitation are adapted from areas like social sciences that do not include executable (prototype based on) feedback. As a consequence, it is relatively common to discover that the first release does not fit the requirements defined at the beginning of the project. Using domain-specific languages (DSLs) as an auxiliary tool for requirements elicitation is a commonly well accepted idea. Unfortunately, there are few works in the literature devoted to the definition of design principles for DSLs to be experienced in the frameworks for DSL developing such as ANTLR, Ruby, and Curry. We propose design principles for the DSL development (regardless of paradigm) which are sufficient to model the domain in a requirements phase. Further more we enunciate a new profile for the requirements analyst and a set of elicitation steps. The use of DSLs not only giveus an immediate feedback with the stake holders; it also allows us to produce part of the real code.