Requirements elicitation is a complex and usually longstanding but crucial activity to the software development. UML use case models are one of the most popular techniques to describe the functional requirements of a system. Use cases can be written with a high-abstraction level or with a low- abstraction level. In fact, when one needs to see the system as a whole, the high-abstraction level use cases are useful. But when the system’s details need to be known, low-abstraction level use cases are a lot more useful. This paper describes an iterative and incremental approach to support the construction of UML use case diagrams as a first documentation effort of the requirements elicitation activities. The approach adopts a refinement mechanism...