I must say that this book could make even someone new like me, being new to Use Cases, look good. The Table of Contents makes it easy to find an overall view of Use Case topics and the Index breaks it down in great detail. The book is described by the author as a book that is, "predominately aimed at industry professionals who read and study alone, and is therefore organized as a self-study guide." I like that.
If you are looking for a book for a class, such as the one I took, or just want to look good at work to describe a process, behavioral requirements, or software development, surely this book could help you too.
Developing Use Cases is not a difficult concept to grasp - it is the part which heavily involves the client and is one of the most critical moments in the software development lifecycle. The difficulty lies in developing Use Cases correctly and efficiently within the software development process. Few development teams have mustered this to perfection.
Mr. Cockburn's book gives excellent guidelines in the practical nature of Use Case development which tend to be omitted in most other books. I purchased this book for my development team and we found this a good back-to-basics reference guide for software development.
It goes a little far with silly icons of waves and kites and so on, too. Sometimes you get the feeling that he is really in love with his invention and has lost perspective on its place in the grand scheme of things: just one (vital, of course) piece in the puzzle.
That said, by all means buy the book. You will read about use cases in many books, but this one will show you many different ways to write them -- many styles, many ways to make them effective for different needs. Other books place them as one step in "My E-Z-Omatic software process (tm)" and that's too specific to really help you leverage use cases for your unique needs.
This book is the book for requirements analysts, who deals with defining understable requirements both for technical side and also the business side. It also useful for anyone who's interested in project management. I use this book also for my undergraduate thesis.
This book is a must to be added to your library!!
Actually I lie, I started to draw them using the UML.
Sun failed to convey that Use Cases are NOT exclusive to OO and they are primarily TEXT. After a few Use Case diagrams and some supporting "flow of events" I got lost.
This book is great! It's clear, simple, precise, and a great guide to beginning to write Use Cases. Good examples (of almost every possibility *grin*) and a good step by step approach will help anyone sitting at their desk in the state of "where to from here".
Add it to your library.
* How do I apply use cases to non-business software?
"Writing Effective Use Cases" includes 40 completed use cases related to a range of activities from Register Arrival of a Box to Apply a (System) Lock. That gave me a better feel for how use cases work than the usual Bank Customer Withdraws Cash or Online Customer Makes Puchase. As far as system software is concerned, Cockburn says:
"Occasionally I hear someone complain that it is hard to describe the requirements for a tape merge operation or a compiler with use cases. I wholeheartedly agree. Those are best described using algebraic or tabular forms."
* Can I go straight from use cases to design?
One of the misconceptions I had was that you could design directly from use cases. Cockburn goes to some trouble to explain that there is no one-to-one mapping between use cases and code, although use cases do make an excellent basis for test cases.
"The design doesn't cluster by use case. Blindly following the use case structure leads to functional decomposition designs (this is really of concern to object-oriented and component design teams.)"
* How do use cases relate to requirements?
The most valuable concept I obtained from "Writing Effective Use Cases" was that the primary value of use cases is to tease out the complete requirements, including how failures should be handled, from the potential customers of the system.
"[The use case] becomes a communication device between the different stakeholders on the project".
Recommended by the author:
Mastering the Requirements Process by Suzanne and James Robertson
Requirements gathering it is no more but not least than a bidirectional communication channel between developers and the customer, the users, or other stakeholders. Successful communication of your understanding on what are the needs, requires to use techniques easy mastered by both communicating parties. Use cases are one of such techniques, centered around the concept that users interact with the system in order to fulfill some concrete objectives.
Alistair Cockburn's book teach you what a use case really is or has to be(beyond any graphical notation used), and how to write them so that developers and users share a common understanding of the functionality required. In my development experience I've tried some different techniques for gathering and specifying requirements and I've found that the graphical notation of use cases (like UML) is difficult to grasp on the user side without any training (specially if your users are folks used to structured analysis notations). I've found also that the approach provided by Mr. Cockburn eases the communication among the different stakeholders so the number of misunderstandings be reduced to a minimum.
If you are involved in specifying a system, a process or almost whatever thing with an inherent functionality you must try this methodology and, undoubtly buy this book.
That's what I did. Bought one copy for myself. Got through the 270 well-written pages quickly and quickly ordered a copy for the other three members of the team.
The use-case methodology outlined is text-based with only the simplest graphics. If you like the more graphical methodology for use cases found in UML standard, you won't adopt this book as your company standard but will still gain valuable insight in use case analysis. At least pass it on to the business guys on the team so they have some clue on how to think about requirements.
This is a good book, also suitable for beginners. Personally I'd like to see more examples (summary level) for web projects, e-commerce and anything new.
This book has made me understand Use Cases and their purpose, it has a number of useful suggestions on their application and implementation problems/politics. There should be more on how to use/link Use Cases with the 'complete' systems/business requirements documents.
I will use this book as my reference when judging other people's understanding of Use Case concepts.
Arde
MS, PhD
UK
This book probably works very well for a novice. For the more experienced professional, it provides a wealth of ideas to return to. While there are a few bits (the cloud-kite-box indicator scheme comes to mind) that are probably not bound to make an appearance in the average analyst's repertoire, it is hard to imagine anyone dealing in problem domain engineering that wouldn't find considerable value here. Good books have been written on the subject, including ones by Armour and Miller, Kulak, and Conallen. While they might provide valuable context, the Cockburn manual easily stands on its own.
A good place for beginners to start and I think that even professionals quite experienced in requirements definition will find new ways of thinking about system design.
Cockburn's approach to business use-cases is centred on an actor wanting to achieve a goal rather than a business event/response focus. Although business events are stated as triggers to a use-case, I am not happy with this, as a business event occurrence needs to cause the instantiation of an actor to handle the event. If BPR is part of the programme, the actor may not yet be known, as the determination of actors may be deferred until design, which is possible with the business event/response paradigm.
Cockburn partitions use case scenarios into those which `succeed', i.e. the actor achieves the goal, and those that `fail', i.e. the goal is not achieved due to violation of a rule. I do not agree with this view; a use case `fails' if it puts the business into an undefined state, which must never happen.
The content of the example use cases made no explicit mention of business objects, i.e. the static data-centric viewpoint was completely missing. As a result, I found the use cases to be too imprecise and largely untestable. In order to be precise and unambiguous, business use cases must be written in terms of a static business object model, supplemented with statecharts for business objects with complex lifecycles.
On page 164 Cockburn states that ` business rules do not fit well into the use case narrative'. I totally disagree : business use cases are the dynamic process view, and this is exactly where business rules must be, in their context of application. Business rules are often candidate variation points in a design, but for the designer to make intelligent decisions about them, their context of application to transactions must be clearly defined.
Cockburn's recommended format for use cases is numbered paragraphs detailing the main `success' scenario, with extensions for other scenarios. He does not recommend if..then..else statements, as he believes this leads to the document being difficult to read. If ... statements have basically been transmuted into extension paragraphs, but this will quickly degenerate into the `Fragmentary' type of process specification, which is hard work for designers and test analysts.
The section on stakeholders in use cases is focussed on business interests, whereas the focus should be on designers and test analysts as being the primary audience. As a result, the sections on QA and testing are woefully inadequate.
Much is made of `readability'; in my experience, the reason requirements documents do not get read is because they do not directly tell the the reader what he/she wants to know. Cockburn's method is more compact than the `Wuthering Heights' and `Fragmentary styles', but ultimately still falls into this trap.
Overall, I found this approach naïve, there being no evidence of any real analysis or modelling. This is reinforced by the reading list being very short for a technical book and not containing a single `serious' requirements engineering reference. I also believe Cockburn's approach is dangerous, in that it could lead to a totally false sense of security in the hands of inexperienced practitioners with a low level of knowledge of real requirements engineering.
Although the format is an improvement over the `Wuthering Heights' and `Fragmentary' styles of functional requirements specification, the example use cases are at `Concept of Operations' level, and are not sufficient for process requirements specification. If I were an acceptance test analyst given this content from which to identify test cases, I would know that I would have a lot of work to do; and yes, in my opinion there is a better way......
I used this book to teach object oriented analysis to novices and they produced outstanding results. The book helps a lot, when focusing the analysis and aligning the use cases on the right level of abstraction.
PROBLEM: A horde of analysts descend and produce reams of paper that are little more than stick figures and ellipses. They are, well, of little value because they are devoid of any real information and too often confusing. The other side of this problem is an unmanageable number of these "use cases" are produced with inconsistent detail, or an overwhelming amount of detail crammed into a single use case. RESULT: Developers have no clear idea about how to proceed and much rework is done to get the needed information (or developers do proceed and create something not envisioned).
PROBLEM: Use cases are considered to be the requirements specification. RESULT: Developers build something based solely on behavior, leaving out functions and features that customers want or need, and most likely not suited to requirements.
PROBLEM: [Related to the preceding] Test plans and test cases for systems built upon the shaky foundation of bad use cases cannot be properly developed. RESULT: A hit-or-miss test cycle that is almost certainly destined to miss a large number of defects (functional and operational).
Mr. Cockburn's approach to use cases will allow you to sidestep not only the more common problems associated with improper use cases, but hundreds more than will crop up unless the value and context of use cases in the development or project life cycle is understood. Here are some of the key points in this book that make it so valuable: use cases are but one element of requirements and the hub-and-spoke model given in the book places them into proper context, properly developed use cases are written documents, not diagrams (more about that later), use cases are NOT the requirements document, properly formed use cases DO have a set structure and different levels of precision in accordance with well-defined rules, and the use case creation process needs to be carefully managed because, like software source code, you need to ensure that you're working from the right revision.
Part 1 of this book provides clear guidance for writing, managing and using use cases. Part 2 of the book is especially valuable because it addresses frequently discussed topics. Part 3 is a comprehensive list of reminders and rules that will guide you, and Appendix A is a succinct discussion on use cases in UML. A few other things that set this book apart: there are numerous "short stories" throughout the book. Each of these stories reinforce information and concepts, and also epitomize Mr. Cockburn's recurring advice to keep things short - he shows by example how to cram clear information into brief chunks of writing. He also provides a summary of pass/fail tests for use case fields that will make inspections and walkthroughs easy. One piece of trivia answered a question that had been bothering be for years, "why the emphasis on stick figures and ellipses?" The answer: the CASE tool industry, which sold graphical tools, had a lot of influence on the emphasis placed on graphical depictions vs. text-based use cases. This book will set you on the right course and not one that has evolved from vendor agendas. I personally think this is the best book on use cases and is the only one I recommend to clients and associates.
I've been meaning to read this book again. I learned how to write use cases while reading this book. The value comes through right there.
This book was not as easy to read as I would have liked, but it takes a difficult topic and provides enough usable material to master it. I'm not certain an easy "for dummies" style book is possible, or appropriate. Minus half a star.
The problem with use cases, is that it's an extremely general term that means a lot of specific things to different people. Even with this book, I had to have my co-workers review my format, to establish what conventions to use.
What I found extremely useful, given the complexity of the topic, is that the author presented a number of flexable approaches to developing a use case, stating that the environment and subject matter would determine what details needs to be preserved.
The author uses a confusing visual notation in addition to section headers, which I think would strengthen the book by it's absence. I'm not familar with UML, and some degree of UML knowledge is tacitly expected. That was easy to look past.
I gave this book four stars, because I think a better book on Use Cases is possible. However, from what I have seen, this is the best one out there.
Use cases are a form of documenting systems requirements and behavioral design specifications. Written well, they offer benefits to all who participate in the development life cycle. This includes analysts, designers, project managers, developers, testers and even end users. Mr. Cockburn's book takes the reader through the writing process, highlighting both good and bad examples. He makes no claims that any of these examples are perfect. And that is perhaps the greatest element of his book. Commit yourself to read through all the examples. By the time you're finished studying them, you will find your own skills in identifying what makes a `good' or `bad' use case have been sharply honed.
Perhaps the one area this book does not explore in enough detail is the translation of documented use cases into user interface designs. Mr. Cockburn defers to `Software for Use' (another great book) for this. Even so, I would like to have seen some screen shots and comments about the user interfaces that were created from the examples provided. It would have helped tie the whole picture together. Translating use cases to highly usable interfaces is as much an art as it is a science. I believe this element of use-case driven development is best communicated in a live, face-to-face format. That's why organizations like Classic Systems offer workshops on this topic. As an instructor who teaches use case-driven development, I have found `Writing Effective Use Cases' to be invaluable reference tool. Having tried out a number of Mr. Cockburn's ideas in the classroom, student feedback and learning results have shown me just how potent a learning tool this book can be.
Many designers and developers will tell you they are writing use cases; upon closer inspection, we find very few are writing them well. A poorly written use case can actually cost, rather than save, a project time and money. If your looking for a book that will help you and your team harness the benefits of use cases, this one is a good as it gets.
Mr. Cockburn gives one of the most sensible, logical approaches to capturing, validating and modeling requirements I have ever come across. My initial concern that this book was focused on software requirements was assuaged by the numerous case studies that address processes and policies. This is the heart of what I do, and the book gave complete coverage of it. Of course software engineering-specific material is also addressed since this discipline has the biggest audience.
The sections from which I got the most knowledge are: setting scope for the use cases and the way to use a hierarchy of use cases to depict increasing levels of detail, business process modeling, and the tips for writing use cases. This material pointed me in the right direction for resolving some of the shortcomings inherent in information mapping, and also gave me some fresh ideas on how to effectively and clearly develop processes that are traceable to requirements.
One of the things I liked most about the book is its fast pace and reasonable page count. There is no fluff, and at approximately 300 pages it is an easy read for someone on a busy schedule.
My personal opinion is that this book should be promoted to a much wider audience than software engineering - the approach and techniques will certainly serve the software engineering community well, but are also practices that business analysts, process engineers and others in IT can effectively employ. This one goes in that special section of by library that is reserved for books to which I frequently refer.
I must state my personal preference for the first draft, which was more strongly worded in some areas and generated more emotional emphasis on some topics where engineers can be very wrongheaded. However, all my subsequent reading groups tended to prefer the third draft, so any reservations I may have I forego and gratefully give this book five stars. It's required reading.
There are grammatical mistakes throughout the book (Not a big deal).
I felt, that if you read this and stay within the realm of the authors suggestions, and disregard the alternative methods, you should be alright. I would suggest to the author improving the explanations of a White Box Use case, instead of supplementing content with examples. I know what White Box is in Design, but It would be wrong of me to presume the same behavior in a Use Case.
The icons are a very handy reminder, and even with all the the perceived problems with the book, I think it's the best one available that I've seen. ESPECIALLY when compared to the Unified Process books.
Don't be put off the entire book by his use of icons for different use case levels, or the early emphasis on levels and use case taxonomy. The icons are optional and minor. And although the discussion of levels and goals may at first seem a diversion, those who have consulted with use cases for some time are painfully aware that many projects get tied up in a knot during use case modeling by mixing up use cases from different levels, or by writing them at too low a level. The subject is more practical than may first appear.
It's an easy read and provides sections that summarize the key points so that you can use it as a quick reference for future work. I recommend it to anyone working on requirements or design for a project.
It's an easy read and provides sections that summarize the key points so that you can use it as a quick reference for future work. I recommend it to anyone working on requirements or design for a project.