Michael Jackson has interesting and insightful things to say about many areas of software development, and here he says them in bite-sized chunks. The book is structured into about 80 short pieces, each a few pages long, arranged alphabetically. Don't let the brevity of the pieces fool you into thinking they are trivial, or shallow. Each is full of insight and depth into some particular area of software requirements. Some are straight essays, some are cast as amusing discussions between practitioners, and all are beautifully written. Some describe what requirements analysis is and isn't, some discuss the importance of the real world, some illustrate the virtues of a particular approach (such as PROBLEM FRAMES), some explain why no one approach is best in all cases, and some demonstrate why certain well-advertised approaches just don't work (such as HIERARCHICAL STRUCTURE).
Read this to get a great overview of the problems of software requirements, then go and read something like his Problem Frames to get (even more) depth into some possible approaches.