On Software Requirements and Specifications by Michael Jackson

A short book organized as a lexicon of terms Jackson has found to be focal
points for ideas developed during his years working in software
development. The book has no single theme; rather, it has several
interrelated themes that are discussed from the viewpoints of different
lexicon entries.

This is one of those fairly concise but multitopic books that is difficult to
summarize, because it has such a high idea density that it acts as its own
summary. Its biggest themes
are that developers must focus on problems rather than solutions,
and they must use a variety of description techniques. These are weary old
topics, but they are treated here in a more concise and less pseudoscientific
way than is usual, with cogent examples, with the result that the book is
enjoyable reading.

The ideas this book led me to are incorporated into a document
on specifications.