It is not useful to delve very deeply into functional requirements until fundamental concepts are understood. I recommend identifying all the actor roles and a handful of essential use cases for each actor before starting domain analysis. Don't go any deeper than the top level of uses cases. Written specifications are always incomplete, in part because human language is imprecise, and in part because the use case author makes certain assumptions about what the reader already knows about the domain and the context of the given use case. I will explore and illustrate this point in a future article.
Requirements are important.
Use cases are a good way to structure requirements, but if you care at all about component based development, reuse, robust distributed architectures, cost, schedule, etc., than you cannot afford to let any single viewpoint drive your project. I count Ivar Jacobson as a friend. I believe, however, that many practitioners have misunderstood and misapplied his advice because they have focused on catch phrases. I have been tempted in the past to say that good software engineering is driven by the concepts in the domain class model, but that is as wrong as saying that good software engineering is use case driven. Good software engineering is driven by a number of concerns that are weighted differently by different organizations and different projects within an organization.