Software Requirements: Styles and Techniques

Software Requirements: Styles and Techniques

Software Requirements: Styles and Techniques

Editorial Reviews
Amazon.com
Suitable for most any IT professional who wants to build better software, Software Requirements: Styles and Techniques offers a surprisingly readable textbook-style treatment of software engineering's numerous attempts to get it right with defining requirements. Surveying nearly every conceivable style of defining requirements, yet remaining thoroughly practical, this book can let your organization do more with its requirements documents, which is a good step to creating software that succeeds better with your users.

Though everyone in software design knows about requirements, actual examples have usually remained shrouded in secrecy whether out of concern over client or intellectual property confidentiality. One considerable strength of this title is that the author has seen many good and bad requirements documents and has included here several complete samples for a Danish shipyard and two hospital systems.

The book begins by describing several dozen types of requirements styles, along with the advantages (and disadvantages) of each. Each requirements style differs by notation (text-based, graphical, or using Unified Modeling Language), level of audience (for nontechnical or technical users), focus (data, functional, performance, and usability), and whether it's used early or late in the project development cycle. While the author highlights those conventions that have worked best based on his extensive industry experience and research, each type of notational style gets due coverage. Sample requirements for a hotel-booking application anchor these early sections.

Not surprisingly, requirements are often hard to ascertain. The author's very thorough chapter on nearly 20 techniques to elicit requirements from users (using interviews, focus groups, and the like) is a real standout. Throughout this title, he offers plenty of advice on tracing requirements so that you can prove your software meets all user expectations. This text concludes with an extensive requirements document for a system used to track shipping repairs for a Danish shipyard, two systems for hospitals, and a membership database for a European political organization.

Reading Software Requirements will likely convince you that you can do better with your requirements documents. Though there is no one best way, certain types of requirements work for certain situations better than others. This text can help you choose. Certain to be mandatory reading for serious software analysts, this title can also benefit virtually anyone who works with software design documents. Its clear presentation style, remarkably devoid of jargon, helps make this book a great resource for a wide range of readers, whether or not they have a background in traditional software engineering. --Richard Dragan

Topics covered: Introduction to requirements, domain and product-level requirements, requirements for different project types, traditional, fast, and two-step approaches to defining requirements, types of data requirements (data models, dictionaries, data expressions, and virtual windows), types of functional requirements (including context diagrams, event and function lists, feature requirements, screens and prototypes, task descriptions, scenarios and use cases), functional details (including tables and decision tables), Unified Modeling Language diagrams used with requirements (including state, activity, class, collaboration, and sequence diagrams), requirements for product integration (for nontechnical and technical audiences), defining quality requirements, specifying accuracy, performance, and usability; security and maintainability requirements, product life cycle and requirements for each step (including contracts, proposals, design and programming, acceptance testing and delivery, requirements management, release planning, tracing and tool support), elicitation issues and techniques, stakeholders, working with focus groups, business goals and cost/benefit, domain-requirements tracing, checking and validation, real-world examples of techniques in action, case studies (and sample requirements) for a Danish shipyard database, two medical systems, a noise source location application, and a system to manage members of a political association.

Book Description
Have you ever used a new piece of software that didn t meet your expectations? If so, it might be because nobody stated the expectations in a tangible manner. Software requirements are about writing the right expectations in the right way. These days, many people get involved in writing requirements. It is not only a job for specialists; users, customers, suppliers, and programmers also get involved. In small companies we sometimes even see employees without special training being asked to write requirements for a new software product. Furthermore, the roles of expert user, analyst, designer, and programmer seem to blend more and more. This book is important and relevant for many people involved in software requirements: The analyst, working as a requirements engineer or a consultant, can find tricks here and there, and he can look at requirements written by other specialists. The customer can find ways to ensure that the new product will meet his business goals, and suggestions for handling contracts and tenders. Software suppliers can find ideas for helping the customer and for writing competitive proposals. Users can prepare themselves for working with specialists or the developers. They can also find ways to describe their work tasks, and examples of what to write and what not to write in their requirements. Programmers and other developers can learn how to express requirements without specifying technical details, and how to reduce risks when developing a system. IT students can learn about theory and practice in requirements engineering, and get a foundation for case studies and projects. You don t have to read the whole book. How can we cover so many topics for so many audiences? The answer is simple: you don t have to read all of the book. If you read most of Chapter 1, you should then be able to read sections of the book in almost any order, according to your needs. Background When I began to work in the software industry in 1962, software requirements were relatively unimportant since at the time hardware was very expensive, and software was comparatively cheap. Renting a computer for an hour cost the same as paying someone to work for 30 hours and computers were 5000 times slower than they are today. Software development was carried out either on a time and materials basis, or as a small part of the really important job making better hardware. The customer paid until he had a program that printed results he could use with some effort. Nobody thought of usability. Everything to do with computers was a specialist s job. Today things have completely changed. Hardware is cheap, and software development is expensive and very hard to keep within budget particularly if the customer wants a result matching his expectations. For this reason software requirements are growing in importance as a means for the customer to know in advance what solution he will get and at what cost. Unfortunately, software requirements are still a fuzzy area. Little guidance is available for the practitioner, although several textbooks exist. One particularly critical issue is the lack of real-life examples of requirements specifications. This textbook is based on real-life examples, and it discusses the many ways of specifying software requirements in practice. We emphasize practical issues such as: what analysts write in real-life specifications; what works and what doesn t work the balance between giving the customer what he needs and over-specifying the requirements the balance between completeness and understandability the balance between describing what goes on in the application domain and what goes on in the computer reducing the risk to both customer and supplier writing requirements so that they can be verified and validated writing low-cost requirements specifications. During my time in industry, I have worked as a programmer, a project manager, and later as a department manager and quality manager. However, I always loved programming and had a key role in the critical parts of the programs. We programmed many things, from business applications, scientific applications, and process control, to compilers, operating systems, and distributed databases. When I worked as a developer from the mid-1970s, our team had to write software requirements, but we always felt uncertain about what we wrote. Was it # Preface requirements or design specifications? We realized that requirements were important, but felt stupid not knowing what to do about it. Furthermore, nobody else in our multinational company could show us a good example of software requirements, although there were corporate rules and guidelines for what to write. In the mid-1980s I became a full professor in software engineering at Copenhagen Business School. That let me see development from two other sides: the user side and the customer side. I didn t have the constant pressure of turning out code and products, so I had time to look at the industry from another perspective. For a long period I studied human computer interaction and came up with systematic ways of developing good user interfaces the missing links between studying the users and producing a good prototype. To my disappointment, industry didn t care at that time (the Web has now changed that attitude). In the early 1990s, I decided that it was time to change subject. I asked around in industry to find out what was the most difficult part of development. Everyone I asked said "requirements and all that stuff at the beginning of the project." That was how I became interested in requirements. I went to my research advisor, Jon Turner of New York University, and said, "Jon, I want to do research in requirements." He looked at me for some seconds and said, "Don t." "Why?" I asked. He replied that it was impossible to do anything significant in that area, and what researchers actually did had little to do with what industry needed. Alan M. Davis (1992) has observed the same thing. This was a real challenge to me. To begin with, I had great problems in getting to see other people s requirements. I talked to developers from many companies and asked them: "Do you write software requirements?" Usually they said yes. I then asked, "Could I see the one you are using or writing right now?" There was a pause then various replies, such as, "No, it s confidential, and it would be too much trouble to get permission for you to read it." Or, "Well, it isn t quite finished yet; maybe you could see it later." Or even this amazing variant, "Well, we re working on it, but right now we are too busy testing the system. When we have finished testing, we will write the requirements, and then you may see them." Every now and then I got permission to see some real-life software requirements. Usually they were inspired by the IEEE 830 guidelines, since they contained all the introductory sessions such as Scope and Audience. However, when it came to the specific requirements, they were bewildering, and IEEE 830 suggested no guidance. Part of what I saw was program design; there were also some dataflow diagrams, and the rest made little sense to me. Where were the requirements? Six months later, I saw some software requirements that were so good that I could learn from them. Jens-Peder Vium was the first to show me a good requirements specification, and it is included in this book as the Danish Shipyard case (see Chapter 11). Although vastly better than anything else I had seen at that time, it too had deficiencies, and together we worked on improving the various techniques involved. Soon my studies gained momentum, and I got to see many other good requirements, some of which are included in this book. A year later, so many people wanted me to look at their requirements that I had to say no to many of them. My conclusion from these initial studies was that people were ashamed of the requirements they had written, but they didn t know how to make them better. Furthermore, everybody had some good parts in their specification, and some serious weaknesses. If all the good things could be combined, we would be close to a general solution. However, there were some important problems that none of the practitioners seemed able to solve: How do you avoid writing anything about the product, yet be able to verify its requirements? How do you ensure that the requirements correctly reflect the customer s business goals? How do you specify quality factors such as usability or maintainability in a verifiable manner? Research, experiments, and luck helped me develop answers to these questions. These answers are included throughout the book, for instance in sections 3.8, 6.6, 6.11, and 8.7. Using the book for courses The book is a considerably extended version of an earlier book, which we used successfully at professional courses for analysts and developers, as well as for computer science students. Depending on the audience, we selected different parts of the book for discussion. We have even used the book with Information Systems (IS) students with no understanding of programming. In this case we combined it with a short course in data modeling, data flow, and basic understanding of development activities. The figures in the book are available in PowerPoint format, and the checklists as Word documents. Solutions to some of the exercises are available for teachers. E-mail the author at slauesen@itu.dk . Most of the figures are rich in detail, and as a result, you can easily spend 5 30 minutes discussing a single figure. In a typical course, only about one-third of the figures are discussed. The book suggests two kinds of course activities, discussions and exercises. Discussions are themes for course room discussions, and may also be used for homework. Exercises are for homework or for teamwork during course hours. Exercises and training projects You can run the exercises in many ways. At professional courses, we assign exercises to teams of three to five participants. Each team has to outline the answer in one to two overheads. That should be possible in about an hour, dependi...

Software Requirements: Styles and Techniques

Software Requirements: Styles and Techniques,Soren Lauesen,Addison-Wesley Professional,0201745704,Computer Bks - Languages / Programming,Computer Books: General,Computers,Programming - Software Development,Software Design,Computers / Programming / Software Development

Mathematics Book

Software Requirements: Styles and Techniques

Books:

  1. Space Mazes
  2. Stanley Newman's Ultimate Trivia Crosswords, Volume 1 (Stan Newman)
  3. Tales of Uncle Trapspringer (Adventures in Krynn)
  4. Test Your Chess
  5. The A-Z of Card Games (Oxford Paperback Reference)
  6. The Assassin's Handbook (d20 System) (Master Classes)
  7. The Chaos Curse (Forgotten Realms : Fantasy Adventure)
  8. The Craft of Pillow Making
  9. The Great Canadian Trivia Book
  10. The Greatest Gambling Stories Ever Told : Thirty-One Unforgettable Tales of Risk and Reward (Greatest)

Books

books

Books

  1. Early Netherlandish Paintings : Rediscovery, Reception, and Research
  2. The Faceless: A Terry Sharp Story
  3. American Science Fiction Tv: Star Trek, Stargate, And Beyond
  4. Andean Entrepreneurs : Otavalo Merchants and Musicians in the Global Arena (Joe R. and Teresa Lozano Long Series in Latin American and Latino Art and Culture)
  5. Strategic Interviewing : Skills and Tactics for Savvy Executives
  6. The Geometry of Time
  7. Semiconducting Polymers : Applications, Properties, and Synthesis (ACS Symposium Series)
  8. Statistical Models for Nuclear Decay: From Evaporation to Vaporization (Fundamental and Applied Nuclear Physics Series)
  9. The Road to En-dor
  10. The Sabbath
  11. The Public Art of Civil War Commemoration : A Brief History with Documents (The Bedford Series in History and Culture)
  12. The Essence of Home : Design Solutions for Assisted Living Housing
  13. Tobruk 1941 : Rommel's opening move (Campaign)
  14. The Minds of Birds (Louise Lindsey Merrick Natural Environment Series)
  15. The Pilgrim's Guide to Santiago De Compostela
  16. German Books: Deutsche Bücher ~ 61
  17. Die Kosmos Himmelskunde, m. CD-ROM
  18. Untersuchungen über die chemische Entrindung und ihre Anwendbarkeit in deutschen Wäldern
  19. Pro ASP.NET 2.0 in C# 2005, Special Edition