Home > Store

Software Requirements And Specifications

Register your product to gain access to bonus material or receive a coupon.

Software Requirements And Specifications

Book

  • Sorry, this book is no longer in print.
Not for Sale

Description

  • Copyright 1995
  • Dimensions: 234X156
  • Pages: 248
  • Edition: 1st
  • Book
  • ISBN-10: 0-201-87712-0
  • ISBN-13: 978-0-201-87712-0

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.

 

Sample Content

Table of Contents

Foreword by Jon Bentley.
Preface.
Acknowledgements.
Introduction.
A.
Ambiguity.
The Application Domain.
Arboricide.
Aspects of Software Development.
B.
The Bridges of Königsberg.
Brilliance.
C.
The Calendar.
Classification.
Composition.
Connection Domains.
Connection Frames.
Context Diagrams.
Critical Reading.
D.
Dataflow Diagrams--1.
Dataflow Diagrams--2.
Definitions.
Dekker.
Descriptions.
Designations.
Deskilling.
Domain Characteristics.
Domain Interactions.
Domains.
E.
Entity­Relation Span.
Events and Intervals.
Existence.
F.
Frame Diagrams.
The Fudge Factor.
G.
Graphic Notations.
H.
Hierarchical Structure.
I.
Identity.
Implementation Bias.
Individuals.
Informal Domains.
Is.
J.
JSP Frame.
L.
Logical Positivism.
M.
Machines.
Mathematics.
Method.
Misfits.
Models.
Mood.
A Multi-Frame Problem--1.
A Multi-Frame Problem--2.
N.
The Narrow Bridge.
O.
Object-Oriented Analysis.
P.
The Package Router Problem.
Partial Descriptions.
Phenomena.
Poetry.
Polya.
Predicate Logic.
Problem Complexity.
The Problem Context.
Problem Frames.
Problem Sensitivity.
Procrustes.
R.
Raw Materials.
Refutable Descriptions.
Reification.
Requirements.
Restaurants.
Rough Sketches.
S.
Scope of Description.
Shared Phenomena.
Simple Control Frame.
Simple IS Frame.
Software.
Software Engineering.
Span of Description.
Specifications.
T.
Top-Down.
Tree Diagrams.
Trip-lets.
W.
What and How.
Bibliography.
Index.

Preface

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

Updates

Submit Errata

More Information

InformIT Promotional Mailings & Special Offers

I would like to receive exclusive offers and hear about products from InformIT and its family of brands. I can unsubscribe at any time.

Overview


Pearson Education, Inc., 221 River Street, Hoboken, New Jersey 07030, (Pearson) presents this site to provide information about products and services that can be purchased through this site.

This privacy notice provides an overview of our commitment to privacy and describes how we collect, protect, use and share personal information collected through this site. Please note that other Pearson websites and online products and services have their own separate privacy policies.

Collection and Use of Information


To conduct business and deliver products and services, Pearson collects and uses personal information in several ways in connection with this site, including:

Questions and Inquiries

For inquiries and questions, we collect the inquiry or question, together with name, contact details (email address, phone number and mailing address) and any other additional information voluntarily submitted to us through a Contact Us form or an email. We use this information to address the inquiry and respond to the question.

Online Store

For orders and purchases placed through our online store on this site, we collect order details, name, institution name and address (if applicable), email address, phone number, shipping and billing addresses, credit/debit card information, shipping options and any instructions. We use this information to complete transactions, fulfill orders, communicate with individuals placing orders or visiting the online store, and for related purposes.

Surveys

Pearson may offer opportunities to provide feedback or participate in surveys, including surveys evaluating Pearson products, services or sites. Participation is voluntary. Pearson collects information requested in the survey questions and uses the information to evaluate, support, maintain and improve products, services or sites, develop new products and services, conduct educational research and for other purposes specified in the survey.

Contests and Drawings

Occasionally, we may sponsor a contest or drawing. Participation is optional. Pearson collects name, contact information and other information specified on the entry form for the contest or drawing to conduct the contest or drawing. Pearson may collect additional personal information from the winners of a contest or drawing in order to award the prize and for tax reporting purposes, as required by law.

Newsletters

If you have elected to receive email newsletters or promotional mailings and special offers but want to unsubscribe, simply email information@informit.com.

Service Announcements

On rare occasions it is necessary to send out a strictly service related announcement. For instance, if our service is temporarily suspended for maintenance we might send users an email. Generally, users may not opt-out of these communications, though they can deactivate their account information. However, these communications are not promotional in nature.

Customer Service

We communicate with users on a regular basis to provide requested services and in regard to issues relating to their account we reply via email or phone in accordance with the users' wishes when a user submits their information through our Contact Us form.

Other Collection and Use of Information


Application and System Logs

Pearson automatically collects log data to help ensure the delivery, availability and security of this site. Log data may include technical information about how a user or visitor connected to this site, such as browser type, type of computer/device, operating system, internet service provider and IP address. We use this information for support purposes and to monitor the health of the site, identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents and appropriately scale computing resources.

Web Analytics

Pearson may use third party web trend analytical services, including Google Analytics, to collect visitor information, such as IP addresses, browser types, referring pages, pages visited and time spent on a particular site. While these analytical services collect and report information on an anonymous basis, they may use cookies to gather web trend information. The information gathered may enable Pearson (but not the third party web trend services) to link information with application and system log data. Pearson uses this information for system administration and to identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents, appropriately scale computing resources and otherwise support and deliver this site and its services.

Cookies and Related Technologies

This site uses cookies and similar technologies to personalize content, measure traffic patterns, control security, track use and access of information on this site, and provide interest-based messages and advertising. Users can manage and block the use of cookies through their browser. Disabling or blocking certain cookies may limit the functionality of this site.

Do Not Track

This site currently does not respond to Do Not Track signals.

Security


Pearson uses appropriate physical, administrative and technical security measures to protect personal information from unauthorized access, use and disclosure.

Children


This site is not directed to children under the age of 13.

Marketing


Pearson may send or direct marketing communications to users, provided that

  • Pearson will not use personal information collected or processed as a K-12 school service provider for the purpose of directed or targeted advertising.
  • Such marketing is consistent with applicable law and Pearson's legal obligations.
  • Pearson will not knowingly direct or send marketing communications to an individual who has expressed a preference not to receive marketing.
  • Where required by applicable law, express or implied consent to marketing exists and has not been withdrawn.

Pearson may provide personal information to a third party service provider on a restricted basis to provide marketing solely on behalf of Pearson or an affiliate or customer for whom Pearson is a service provider. Marketing preferences may be changed at any time.

Correcting/Updating Personal Information


If a user's personally identifiable information changes (such as your postal address or email address), we provide a way to correct or update that user's personal data provided to us. This can be done on the Account page. If a user no longer desires our service and desires to delete his or her account, please contact us at customer-service@informit.com and we will process the deletion of a user's account.

Choice/Opt-out


Users can always make an informed choice as to whether they should proceed with certain services offered by InformIT. If you choose to remove yourself from our mailing list(s) simply visit the following page and uncheck any communication you no longer want to receive: www.informit.com/u.aspx.

Sale of Personal Information


Pearson does not rent or sell personal information in exchange for any payment of money.

While Pearson does not sell personal information, as defined in Nevada law, Nevada residents may email a request for no sale of their personal information to NevadaDesignatedRequest@pearson.com.

Supplemental Privacy Statement for California Residents


California residents should read our Supplemental privacy statement for California residents in conjunction with this Privacy Notice. The Supplemental privacy statement for California residents explains Pearson's commitment to comply with California law and applies to personal information of California residents collected in connection with this site and the Services.

Sharing and Disclosure


Pearson may disclose personal information, as follows:

  • As required by law.
  • With the consent of the individual (or their parent, if the individual is a minor)
  • In response to a subpoena, court order or legal process, to the extent permitted or required by law
  • To protect the security and safety of individuals, data, assets and systems, consistent with applicable law
  • In connection the sale, joint venture or other transfer of some or all of its company or assets, subject to the provisions of this Privacy Notice
  • To investigate or address actual or suspected fraud or other illegal activities
  • To exercise its legal rights, including enforcement of the Terms of Use for this site or another contract
  • To affiliated Pearson companies and other companies and organizations who perform work for Pearson and are obligated to protect the privacy of personal information consistent with this Privacy Notice
  • To a school, organization, company or government agency, where Pearson collects or processes the personal information in a school setting or on behalf of such organization, company or government agency.

Links


This web site contains links to other sites. Please be aware that we are not responsible for the privacy practices of such other sites. We encourage our users to be aware when they leave our site and to read the privacy statements of each and every web site that collects Personal Information. This privacy statement applies solely to information collected by this web site.

Requests and Contact


Please contact us about this Privacy Notice or if you have any requests or questions relating to the privacy of your personal information.

Changes to this Privacy Notice


We may revise this Privacy Notice through an updated posting. We will identify the effective date of the revision in the posting. Often, updates are made to provide greater clarity or to comply with changes in regulatory requirements. If the updates involve material changes to the collection, protection, use or disclosure of Personal Information, Pearson will provide notice of the change through a conspicuous notice on this site or other appropriate way. Continued use of the site after the effective date of a posted revision evidences acceptance. Please contact us if you have questions or concerns about the Privacy Notice or any objection to any revisions.

Last Update: November 17, 2020