Product Description

From Amazon

With the emergence of the Unified Modeling Language (UML) over the last few years, developers new to the advantages of thorough software-engineering practices now have a better notational system for designing more effective software. To use UML effectively, you will want to create use cases, which help describe the requirements of a system. In their concise and very readable book, the authors of Applying Use Cases show how use cases can benefit all aspects of the software-design process and let you create better software in less time.

This guide provides a case study for a mail-order business (with some e-commerce as well) as its central example. Use cases define how actors (i.e., users) are defined for all the various components of a mail-order business, including inventory, accounting, and order fulfillment. The authors suggest that while use cases are particularly useful at the beginning of a project cycle--for assessing risks and setting project timetables, for instance--they are also useful for testing and deployment of systems (specifically, for creating documentation and help manuals). The sample use cases--and supporting design documents--are what's best in this text. --Richard Dragan

Product Description

Use case analysis is a methodology for defining the outward features of a software system from the user's point of view. Applying Use Cases, Second Edition, offers a clear and practical introduction to this cutting-edge software development technique. Using numerous realistic examples and a detailed case study, you are guided through the application of use case analysis in the development of software systems.

This new edition has been updated and expanded to reflect the Unified Modeling Language (UML) version 1.3. It also includes more complex and precise examples, descriptions of the pros and cons of various use case documentation techniques, and discussions on how other modeling approaches relate to use cases.

Applying Use Cases, Second Edition, walks you through the software development process, demonstrating how use cases apply to project inception, requirements and risk analysis, system architecture, scheduling, review and testing, and documentation. Key topics include:

An entire section of the book is devoted to identifying common mistakes and describing their solutions. Also featured is a handy collection of documentation templates and an abbreviated guide to UML notation.

You will come away from this book with a solid understanding of use cases, along with the skills you need to put use case analysis to work.

Over the last year I have come to love Use Cases ... I write them before embarking on any software development project, large or small. The first taste I got of Use Cases was in the "UML Distilled" book (Fowler, Scott).My favorite aspect of "Applying Use Cases" is how it follows a hypothetical project from Inception to Transition phases. The authors provide the reader with a clear idea of how Use Cases fit into the software development process as a whole, rather than just providing some templates for producing Use Case documents without instructions on their use.The best, and worst, thing about books in the Object Technology Series (of which "Applying Use Cases" and "UML Distilled" both belong to) is their brevity. The concepts are conveyed very clearly and concisely, but it feels like I should be getting more substance ... .Overall, this is a wonderful book and belongs on the shelf of any Software Engineer or Project Manager. It goes well with "Extreme Programming Explained" and "A Practical Guide to Extreme Programming", two of my favorites in this genre.

As someone who has followed the development of UML and Use Cases for the past several years and who is now confronted with a project needing definition, I find the Scheider-Winters book very helpful -- not only in applying Use Cases, but also in defining the project itself.I chose this book because I know Geri Schneider-Winters as a professional (we worked together at UCSC Extension.) I was not disappointed.

Given the proper instruction, working with use cases is not as hard as it may appear. Demonstrating them requires a large, detailed example to illustrate how complex structures can be reduced to understandable chunks. Therefore, the most critical part of any book on how to apply use cases is the choice of the system to model. That feature is what makes this book stand out. The premise is that several people, with some experience in designing systems, but certainly not experts, decide to build an order processing system. Choosing a group of non-experts is a stroke of genius, since it allows the authors to use dialog based on the premise of learning as you go, which describes most of us. This approach makes it much easier to relate to their trials and tribulations as they plunge in over their head, only to be rescued by the proper applications of use cases. Requirements are iteratively added as needed or discovered, demonstrating how iterative development is superior to others such as the waterfall. The developers are learning the background while constructing their system. Elaborating on their initial model is a slow and steady process, however it is not without the frequent step back. These glitches are presented in a realistic format with sections devoted to common mistakes made when using use cases. A great deal of effort is also expended in describing how refined the use cases should be. One of the topics in the section on common mistakes is making the use cases too small. Like anything else, they can be split down to the point where they complicate rather than simplify. With no fixed rules to guide the process, you are forced to rely on more common sense notions. This is always hard, but some good, effective guidelines are given. I found this book to be a superb introduction to the power of use cases, being easy to follow. Everyone from beginners to veterans can relate to the principals as they struggle to turn their good idea into an implemented one. You find yourself rooting for them as they move ever closer to their brass ring of success. In that respect, it is less like a technical book and more like a novel.Read more ›

Summary: If you've got plenty of $$ go ahead and buy it to get a good, simplistic start but you will need more. I've been doing requirements for quite a few years now and am convinced that use cases are the way to go especially for interactive systems. The key reason being that it forces the analyst to focus on WHAT the system should do rather than the HOW it should do it(I fall in that trap quite often). This particular book uses a different writing method, more story telling in nature. Some people may like it ... I don't care for it personally because the time spent reading Jane and Billy's annoyingly pleasant and simplistic banter could be better spent playing with my kids. It does, however, get around to giving a good academic introduction to the topic but the lack of examples severely hinders it from living up to a level of "practicality" to warrant the inclusion of the word in its title in my opinion. If you are a "just give me some guidelines and show me some good examples and get out of my way" kind of person, this book will make good kindling for your next BBQ -- especially if your software will involve any remotely complex scenarios. Perhaps the problem is that I tend to conceptualize systems in too complex a manner ... but it would be nice if the book helped in that regard as well by educating me relative to pitfalls that may lead me to overcomplicate things. In the end (couldn't finish the book) I find myself still looking for a good book mostly one loaded with realistic, practical, applicable examples.

For every abstraction used in the development of software, there is a definition and a set of rules concerning how to use it. Unfortunately, being an abstraction, the definition is often open to interpretation and the rules are nebulous guidelines. The concept of use cases is one such abstraction. Therefore, the best way to explain them is to use them in an understandable context. That is the approach taken in this book. The scenario is that a group of designers want to build a "simple" online ordering system. They begin with the proverbial conversation over coffee which contained the usual, "that system stinks and we could do better" phrase. From there, a general, but fairly complete process is presented. Every step in the sequence of requirements definitions is given. Many potential use cases are put forward, which is excellent, as this allows the authors to demonstrate the culling process, whereby some use cases are eliminated and others are combined. The presentation is a combination of simulated dialog between the principals and more formal techniques of requirements capture such as actors and their diagrams. One thing that impressed me was the accuracy of the dialog. Anyone who has participated in the requirements capture process will experience a flashback. It is written with the beginner in mind, as very little programming background is needed to understand it. This is a thorough demonstration of how to create and apply use cases, without the depth that requires more formal notational techniques. Use cases are sometimes very hard to teach, as is the case with most abstractions. In this book, the abstract is made concrete and if you read it you will learn a lot about use cases. However, you still may not be able to offer a precise definition.