Buy new:
$72.96
FREE delivery Monday, July 22
Ships from: Amazon
Sold by: USbookStore
$72.96
FREE Returns
FREE delivery Monday, July 22
Or fastest delivery Thursday, July 18. Order within 1 hr 23 mins
Only 1 left in stock - order soon.
$$72.96 () Includes selected options. Includes initial monthly payment and selected options. Details
Price
Subtotal
$$72.96
Subtotal
Initial payment breakdown
Shipping cost, delivery date, and order total (including tax) shown at checkout.
Ships from
Amazon
Ships from
Amazon
Sold by
Sold by
Returns
Eligible for Return, Refund or Replacement within 30 days of receipt
Eligible for Return, Refund or Replacement within 30 days of receipt
This item can be returned in its original condition for a full refund or replacement within 30 days of receipt.
Returns
Eligible for Return, Refund or Replacement within 30 days of receipt
This item can be returned in its original condition for a full refund or replacement within 30 days of receipt.
Payment
Secure transaction
Your transaction is secure
We work hard to protect your security and privacy. Our payment security system encrypts your information during transmission. We don’t share your credit card details with third-party sellers, and we don’t sell your information to others. Learn more
Payment
Secure transaction
We work hard to protect your security and privacy. Our payment security system encrypts your information during transmission. We don’t share your credit card details with third-party sellers, and we don’t sell your information to others. Learn more
$12.91
Readable copy. Pages may have considerable notes/highlighting. ~ ThriftBooks: Read More, Spend Less Readable copy. Pages may have considerable notes/highlighting. ~ ThriftBooks: Read More, Spend Less See less
FREE delivery July 23 - 26. Details
Or fastest delivery July 22 - 24. Details
In stock
$$72.96 () Includes selected options. Includes initial monthly payment and selected options. Details
Price
Subtotal
$$72.96
Subtotal
Initial payment breakdown
Shipping cost, delivery date, and order total (including tax) shown at checkout.
Access codes and supplements are not guaranteed with used items.
Ships from and sold by ThriftBooks-Baltimore.
Kindle app logo image

Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet, or computer - no Kindle device required.

Read instantly on your browser with Kindle for Web.

Using your mobile phone camera - scan the code below and download the Kindle app.

QR code to download the Kindle App

Follow the authors

Something went wrong. Please try your request again later.

Software Requirements and Specifications: A Lexicon of Practice, Principles and Prejudices (ACM Press) 1st Edition

4.3 4.3 out of 5 stars 24 ratings

{"desktop_buybox_group_1":[{"displayPrice":"$72.96","priceAmount":72.96,"currencySymbol":"$","integerValue":"72","decimalSeparator":".","fractionalValue":"96","symbolPosition":"left","hasSpace":false,"showFractionalPartIfEmpty":true,"offerListingId":"PbIt%2Fnn1TumXbNioihrAR7fZv6li9IRJpqcvsUFFpNkJ54bvT1EXRUR54v1%2BabuLac%2FQL5SwsG19vYZzIzIcPNf%2B4Q%2FTSeUTyrsmVBmqPNjAMeEZzt6xdJgV9nKQeAf4%2FagzRob353%2BXwYTmkYkkhiaupnlxg9ZbQW8WtjA%2BKaH6l63gUFPV2ynB9l2fJSgA","locale":"en-US","buyingOptionType":"NEW","aapiBuyingOptionIndex":0}, {"displayPrice":"$12.91","priceAmount":12.91,"currencySymbol":"$","integerValue":"12","decimalSeparator":".","fractionalValue":"91","symbolPosition":"left","hasSpace":false,"showFractionalPartIfEmpty":true,"offerListingId":"PbIt%2Fnn1TumXbNioihrAR7fZv6li9IRJiukfRzMHn6jppTmpoXpq6Zh49sfmdj0mSK9dk2OHuNhjwFUL943QeAqADWkoTnhclXvrt8mtV%2FmPK%2FQReuQe%2B%2B9Wy%2BuvN%2B1hDToQ6EHjfXh5zSiQ55SI2OwCiFRuNOpgw3ASrZeXNsAWGzbRZjyc2lBpTSYqNacD","locale":"en-US","buyingOptionType":"USED","aapiBuyingOptionIndex":1}]}

Purchase options and add-ons

Software Reqiuirements and Specifications is the latest book from Michael Jackson, one of the foremost contributors to software development method and practice. The book brings together some 75 short pieces about principles and techniques for requirements analysis, specification and design.

The ideas discussed are deep, but at the same time lightly and wittily expressed. The book is fun to read, rewarding the reader with many valuble and novel insights. Some sacred cows, including top-down development, dataflow diagrams and the distinction between What and How, are led to the slaughter. Readers will be provoked--perhaps to fury, perhaps to enthusiasm, but surely to think more deeply about topics and issues of central importance in the field of software development.

There are new ideas about problem structuring, based on the concept of a problem frame, leading to a clearer notion of complexity and how to deal with it. And other important topics include:



  • Principles for evaluating development methods
  • New approaches to capturing and describing requirements and specifications, based on the relationship between the software system and the problem context
  • The technology of desciption in software, including new ideas such as designations, the separation of descriptive moods and the scope and span of description
  • Incisive information about the proper role of mathematics and formalism.


Amazon First Reads | Editors' picks at exclusive prices

Frequently bought together

$72.96
Get it as soon as Monday, Jul 22
Only 1 left in stock - order soon.
Sold by USbookStore and ships from Amazon Fulfillment.
+
$49.99
Get it as soon as Sunday, Jul 21
In Stock
Ships from and sold by Amazon.com.
Total price:
To see our price, add these items to your cart.
Details
Added to Cart
spCSRF_Control
One of these items ships sooner than the other.
Choose items to buy together.

Editorial Reviews

From the Inside Flap

The practice of the book's title is the practice of software development, especially of the requirement and specification activities that often precede programming. The principles are those that I believe should govern software development and the methods by which we try to make it easier and more effective. And the prejudices are the settled personal opinions that I have formed over some years of thinking about these things.

The central theme of the book is the relationship of method to problem structure on one side and to description on the other. To deal with a significant problem you have to analyse and structure it. That means analysing and structuring the problem itself, not the system that will solve it. Too often we push the problem into the background because we are in a hurry to proceed to a solution. If you read most software development texts thoughtfully, you will see that almost everything in them is about the solution; almost nothing is about the problem.

On the other side, description is important because it is the clay in which software developers fashion their works. Methods are, above all, about what to describe; about tools and materials and techniques for descriptions; and about imposing a coherent structure on a large description task.

This book does not explain or advocate one particular development method. Nor is it a survey of methods, or an encyclopaedia of techniques and notations. It explains what I hope and believe are useful ideas and insights--both my own and other people's. It is arranged as an alphabetically ordered set of short pieces forming a lexicon, or a kind of specialized dictionary. Because many of the ideas are neglected or simply unfamiliar, the selection of topics, the content and some of the terminology are unconventional. This is not in any way meant to be a standard reference work.

I chose the dictionary form for two reasons. First, because a more structured arrangement would have seemed to promise a unity and a completeness that I cannot attain. This is a collection of ideas and insights, not a new method. Second, putting the same point more positively, because I believe that many of the ideas in the book can be applied piecemeal in many different development contexts. They can be used to make local improvements in established methods, and to shed light on some of the local difficulties and problems that are met in any development.

Software development should be a thoughtful activity. You should think not only about the problem and its solution, but also about the way you're tackling it. Some software developers and method users behave as if they were bicycle riders. When you are riding a bike you shouldn't think about what you're doing. If you do think about it you'll probably fall off. But software development isn't like bike riding. You'll be a much better developer if you think consciously about what you're doing, and why. This book is intended to help you.

When you encounter a difficulty in software development, what you need above all is a set of appropriate conceptual tools. Perhaps you're trying to describe something that stubbornly refuses to fit cleanly into your description; or to disentangle the simple problems that you feel sure must lie beneath the intractable complex problem that is holding you up. The right conceptual tools help you to think consciously about what you're doing, often just by providing names for concepts that you already had but never articulated. So when you're struggling to get a description right it's helpful to be able to ask yourself: Have we got the right description span here? Are we sure we understand the designations well enough? Have we made a spurious classification? And when you're dealing with a problem complexity it's helpful to be able to ask yourself: Is this a multi-frame problem? Is there a problem frame misfit here? Are we trying to look at shared phenomena from the point of view of only one domain?

I hope that the lexicon form of the book will work to underline its nature. It is offered as a resource from which you can take what you want, not as another orthodoxy that demands acceptance or rejection as a whole. The arrangement of the book, I hope, will encourage you to browse and skip from piece to piece, and I don't expect it to be read straight through. Inevitably, this has led to some repetition, but not enough, I hope, to seem tedious. I have tried to make each piece self-contained but, of course, that is not always possible, especially for some of the pieces about less familiar ideas--such as problem frames. So there is a full index, and cross-references, capitalized in the text, from each piece to other relevant pieces. If you're feeling puzzled by a piece it may be a good idea to follow some of the cross-references in its earlier paragraphs before reading on.

If you prefer to read more systematically, you could start with the Introduction, which comes, out of alphabetical order, at the beginning. The Introduction lays out some of the main ideas, and puts them in context. Then you can follow the cross-references from the Introduction to anything that catches your interest, and so onwards from one piece to another. There is a bibliography that expands the short and informal references--both to books and to their authors--appearing in the text and adds a few bibliographical notes.

Another way of using the book is by taking a tour around one theme or topic at a time. I've prepared some itineraries of tours you might take. Most of them are quite short and don't try to include everything about their themes. You can take them in any order. As with most tours, the time needed will depend on how long you spend on the places of interest. Some places of interest appear in more than one tour. If you visited a place on a previous tour, you could stay on the bus. On the other hand, you might see something you hadn't noticed on your first visit.

Whatever your approach to this book I hope it will be useful to you: that you will find something in it to help you in your work, to illuminate a difficulty you have struggled with, to offer amusement or insight, to provoke you to thought, or in any other way to repay you for having opened it.

Michael Jackson
May 1995

Acknowledgements

Much of my working life so far has been occupied with devising, teaching, and using software development methods. In the 1970s and early 1980s I was deeply involved in the JSP method of program design and the JSD method of system development. Some of the themes and ideas of this book emerge indirectly from the successes of that work; some from its failures. I learned a lot from the many people I worked with during those years--especially from John Cameron.

I also learned a lot, although I did not always realize it at the time, from some people whose ideas about method were diametrically opposed to my own. As Mark Twain said: "When I was a boy of fourteen, my father was so ignorant I could hardly stand to have the old man around. But when I got to twenty-one I was astonished at how much the old man had learned in seven years".

Many of the ideas in this book have been formed and sharpened during several years of cooperation with Pamela Zave. Particularly, they have been influenced by her approach to multiparadigm specification, and have benefited from the insightful work that she has done in cooperation with Peter Mataga on specifying telephone switching systems.

Daniel Jackson has helped me in more ways than I can count. He read the whole book in at least two of its versions and commented in detail on every part of it. He explained many things I had not known or had misunderstood. He discussed many of the topics with me at length. And he has always been ready to offer advice, encouragement, and constructive criticism at just the right moments. As a small recompense I have stolen a quotation by Niels Bohr from his PhD thesis.

Some of the ideas in the book have been aired at meetings of the Software Development Research Group of the University of the West of England, Bristol. I am grateful to the other members of the group--Barry Cawthorne, Ian Beeson, Richard McClatchey, Steve Probert, Tony Solomonides, and Chris Wallace--for their interest and help. Chris Wallace introduced me to the work on patterns in object-oriented design.

Tom DeMarco helped me generously with many acute and sensitive comments. His suggestions have removed many stumbling blocks from the reader's path.

Much of the treatment of Dekker's algorithm follows the presentation in Dick Whiddett's book Concurrent Programming for Software Engineers.

Andy Ware of Addison-Wesley has been unfailingly tolerant and courteous to an unreasonable and curmudgeonly author. And Susan Keany has been an agreeable and efficient production editor. It has been a pleasure to work with them both.

To all these people, and to everyone else who has helped me, I am very grateful. 0201877120P04062001

From the Back Cover

Software Reqiuirements and Specifications is the latest book from Michael Jackson, one of the foremost contributors to software development method and practice. The book brings together some 75 short pieces about principles and techniques for requirements analysis, specification and design.

The ideas discussed are deep, but at the same time lightly and wittily expressed. The book is fun to read, rewarding the reader with many valuble and novel insights. Some sacred cows, including top-down development, dataflow diagrams and the distinction between What and How, are led to the slaughter. Readers will be provoked--perhaps to fury, perhaps to enthusiasm, but surely to think more deeply about topics and issues of central importance in the field of software development.

There are new ideas about problem structuring, based on the concept of a problem frame, leading to a clearer notion of complexity and how to deal with it. And other important topics include:

  • Principles for evaluating development methods
  • New approaches to capturing and describing requirements and specifications, based on the relationship between the software system and the problem context
  • The technology of desciption in software, including new ideas such as designations, the separation of descriptive moods and the scope and span of description
  • Incisive information about the proper role of mathematics and formalism.


0201877120B04062001

Product details

  • Publisher ‏ : ‎ Addison-Wesley Professional; 1st edition (January 1, 1995)
  • Language ‏ : ‎ English
  • Paperback ‏ : ‎ 228 pages
  • ISBN-10 ‏ : ‎ 0201877120
  • ISBN-13 ‏ : ‎ 978-0201877120
  • Item Weight ‏ : ‎ 13.5 ounces
  • Dimensions ‏ : ‎ 6.15 x 0.6 x 9.25 inches
  • Customer Reviews:
    4.3 4.3 out of 5 stars 24 ratings

About the authors

Follow authors to get new release updates, plus improved recommendations.

Customer reviews

4.3 out of 5 stars
4.3 out of 5
24 global ratings

Top reviews from the United States

Reviewed in the United States on February 3, 2015
I have read IEEE papers written by Michael Jackson relating to software requirements. In each of his publications, Jackson does a fabulous job of separating the requirements related to the environment from those related to the machine that is to be built. This was a concept that was not well explained throughout my undergraduate studies nor was it treated throughout my graduate studies. I am, without any doubt, a fan of Mr. Jackson's publications. Well done!
2 people found this helpful
Report
Reviewed in the United States on May 29, 2002
In Software Engineering, a book that is a good read is a rare find.
Most books bore you to tears, so you are asleep before you learn anything.
Jackson's book is well written, interesting, and EXTREMELY informative. I strongly suggest ALL Software Developer's read this book.
3 people found this helpful
Report
Reviewed in the United States on December 1, 2001
Let's face it, writing a book about software requirements is tough. Michael Jackson does a great job here exposing the core disciplines, the historical growth of the process and introduces some great approaches to the probem space (notably his Problem Frames). The book is succinct, to the point and written in language that just about anyone can follow. The Predicate Logic sections are the only areas where he assumes any prior knowedge with regards to following the notation.
The only reason I gave this book four out of five stars is becuase the author got too cute with the structure of the book. The chapters are listed in alphabetical order based on chapter title. The book is presented as a "Lexicon" so I'm sure this was why the book was ordered in this way. Still there where many chapters that, in my opinion would have been more powerful if they had been grouped together.
This is not a good enough reason not to buy read and enjoy this book. I strongly urge anyone interested in the topic to do so. I just wish an editor had taken the time to encourage Jackson to create sub sections .
5 people found this helpful
Report
Reviewed in the United States on October 3, 2009
This is not a typical book. It is written as a lexicon; a serious of short, stand alone writings in alphabetical order. The author provides fourteen alternative paths through the book, although it can be read in whatever order strikes your fancy.

This book is an ongoing source of joy. You can simply open it up to a random page and read the piece on that page. Or, you can select one of your favorites to re-read. Everyone has their personal favorites, mine Is Brilliance.

This book is recommended for any serious and thoughtful practitioner of software engineering.
2 people found this helpful
Report
Reviewed in the United States on April 22, 2016
Math notation heavy.
3 people found this helpful
Report
Reviewed in the United States on October 1, 1998
Each of Jackson's books has expanded on the previous one. PRINCIPLES OF PROGRAM DESIGN was about program design. SOFTWARE DEVELOPMENT was about systems development (specifically, for information systems). Now, SRS takes it further, and considers techniques for specifying different kinds of systems, and systems that require multiple viewpoints to specify them.
One of the main points of the book is to promote the idea that many systems must operate in multiple "problem domains" and so require multiple techniques in their specification. (Does your information system also have security/access requirements in addition to its functional requirements? Then you have a "multi-frame" problem, and you should read this book.)
The second major emphasis of the book is on describing the "application domain" -- the real world where the system's users conduct business -- before embarking on designing the system. That is, on understanding the problem befor you jump into trying to solve it. If you've ever worked on a huge system development project that turned out to be a catastrophy because half way through the project you discovered that there was a whole area of user requirements that you didn't even know about, then you should read this book. Find out what went wrong and get some ideas about how to avoid it in the future.
This is an excellent book about specifying computer systems, and I can recommend it to anyone. It is especially highly recommended if you enjoy thinking about software development at a fairly high, abstract level (a level above the one where you are designing code and database structures).
15 people found this helpful
Report
Reviewed in the United States on May 8, 1999
A great deal of software uses the "where the arrow lands, draw the target" approach. Jackson presents formal terms and techniques to pursue an alternative. Anyone collecting requirements and writing specifications will find benefit from this book. His discussion of various problem frames is wonderful.
The book is written in tool box style, and Jackson makes clear that he believes in fitting the right method to the task at hand.
Thought provoking and well written, the book borders on philosophy (epistemology) and predicate logic in places, something I enjoyed. Jackson's analogy between predicate logic and assembly language is most apt.
Highly recommended.
17 people found this helpful
Report
Reviewed in the United States on March 22, 1998
I loved this book. It is one of the rare books that can be read for education or for entertainment. The book is written for software engineers and architects. Jackson's thesis is that most of the battle in software engineering is in describing the problem to be solved, not in solving it. When the problem is clearly represented, then the solution often falls out. He presents universal techniques that are independent of analysis and design method. He provides systematic, disciplined methods for thinking about and communicating about problems of any sort. Thoughtful readers will enjoy it greatly.
11 people found this helpful
Report

Top reviews from other countries

Translate all reviews to English
Ogbu Chinedu
5.0 out of 5 stars Very Good Book
Reviewed in the United Kingdom on November 8, 2018
Very Helpful.
Sadie
5.0 out of 5 stars for specification it is good
Reviewed in Germany on January 8, 2018
my professor recomend this book, some small example inside, easy to understand, even it is a used book, the quality is not bad except for one page is a little dirty, but not influence read, anyway, i am satisfied with this product, no matter content or book quality, thanks