



( 8 reviews )
-




Posted: Oct 31 2008
This is a very good book on use cases. Concepts are well-explained. Use cases are placed properly into the UML framework. Typical forms and diagrams are presented and discussed. The process of developing and refining use cases gets full and detailed attention, as does testing. So - good instructional material, and the book is compact and well-organized enough to also serve as a reference. It is crystal clear and very readable. What follows below is not more book review. If my experiences and commentary regarding use cases interests you, read on, but be aware that it doesn't bear directly on the book itself. My background first: I started as a developer, moved into technical management, project management, business analysis management, IT senior management, and currently serve in an IT governance role in one of the largest companies in the US. I'm not an enthusiastic use case advocate. Having managed or had oversight for more development activities than I care to recall over the last 30 years, I've only run into a handful of people who were competent enough to produce a set of use cases usable and complete enough to feed into the next design stage. (Understanding, of course, that this methodology was in its infancy during part of that period.) Many claim to know use cases and modeling. Then again, most developers involved in any kind of distributed systems, web, n-tier, PC-based development, etc. claim to be OO competent, too (Uh-huh ...). I've written use cases and developed apps from them and still only consider myself marginally competent. I used a consultant to help then, and would do so again. Use cases are exceedingly difficult to write well for non-trivial applications and, because of their text content, deceptively simple-looking. Don't be fooled. The few I've encountered who could produce good use cases have invariably been OO-heavy technical leads who were competent across the entire span of activities from requirements through post-deployment support. They were also intimately familiar with the particular business space. The latter isn't always easy to find. That those who best understand use cases are typically highly technical is kind of perverse, as the intent of use cases is to keep them firmly in the end-user's conceptual space. In trying - and failing repeatedly - to get end users and business analysts trained in use cases - and, for that matter, trying to get the business to understand and accept them, I finally came up with something that worked. That is, develop conventional, text-based project charters and requirements documents, then have the dev teams and leads develop the use cases from the business docs. This results in an interative process between use case development and the requirements - adding work - but it also cuts the inexpert out of the parts of the process that they never quite fathom anyway, such as alternative flows, extensions and generalization, includes relationships, etc. Even pre and post-conditions, which business people intuitively understand, are problematic because they typically can't get enough rigor into a use case without assistance, so the iteration helps with that also. What you wind up with is use case documention in the technical space, not the users'. That turns the process on its head but results in usable use cases. You also have to adjust how you handle non-requirements, non-interface content in the use cases such as verification, when end users aren't directly participating in use case creation. Such workflow and documentation issues lead to the next point: Further complicating the adoption of use case modeling is the fact that use cases (and the UML) are easiest to adopt when supported by an end-to-end software suite, like Rational's. Anyone who has tried to implement such a suite knows that it is excruciating. Rational themselves will tell you that the setup of the software and underlying database is critically dependent on the specific forms approach you use, your methodology variation and workflow, even your org structure. The message is that you have to have a very full understanding of what you're doing to implement. Most bring Rational in on a consulting basis as a result. Adoption is also complicated in large firms by the simple fact that most activity is on legacy systems, and that modern modeling and design methodologies aren't well-suited to those systems. The final comment I'd make is on value. I haven't found that use cases - even good ones - yield better systems or even better or more appropriate documentation than other means of design, interface, and usability elicitation. Returning again to the book itself - by all means buy it if you are looking for a single volume focused on use case development. It really is a good use case text. Beware the pitfalls going down the use case adoption route, however. If ever there was something that deserved a pilot, this would be it.
-




Posted: Oct 31 2008
This is a very good book on use cases. Concepts are well-explained. Use cases are placed properly into the UML framework. Typical forms and diagrams are presented and discussed. The process of developing and refining use cases gets full and detailed attention, as does testing. So - good instructional material, and the book is compact and well-organized enough to also serve as a reference. It is crystal clear and very readable. What follows below is not more book review. If my experiences and commentary regarding use cases interests you, read on, but be aware that it doesn't bear directly on the book itself. My background first: I started as a developer, moved into technical management, project management, business analysis management, IT senior management, and currently serve in an IT governance role in one of the largest companies in the US. I'm not an enthusiastic use case advocate. Having managed or had oversight for more development activities than I care to recall over the last 30 years, I've only run into a handful of people who were competent enough to produce a set of use cases usable and complete enough to feed into the next design stage. (Understanding, of course, that this methodology was in its infancy during part of that period.) Many claim to know use cases and modeling. Then again, most developers involved in any kind of distributed systems, web, n-tier, PC-based development, etc. claim to be OO competent, too (Uh-huh ...). I've written use cases and developed apps from them and still only consider myself marginally competent. I used a consultant to help then, and would do so again. Use cases are exceedingly difficult to write well for non-trivial applications and, because of their text content, deceptively simple-looking. Don't be fooled. The few I've encountered who could produce good use cases have invariably been OO-heavy technical leads who were competent across the entire span of activities from requirements through post-deployment support. They were also intimately familiar with the particular business space. The latter isn't always easy to find. That those who best understand use cases are typically highly technical is kind of perverse, as the intent of use cases is to keep them firmly in the end-user's conceptual space. In trying - and failing repeatedly - to get end users and business analysts trained in use cases - and, for that matter, trying to get the business to understand and accept them, I finally came up with something that worked. That is, develop conventional, text-based project charters and requirements documents, then have the dev teams and leads develop the use cases from the business docs. This results in an interative process between use case development and the requirements - adding work - but it also cuts the inexpert out of the parts of the process that they never quite fathom anyway, such as alternative flows, extensions and generalization, includes relationships, etc. Even pre and post-conditions, which business people intuitively understand, are problematic because they typically can't get enough rigor into a use case without assistance, so the iteration helps with that also. What you wind up with is use case documention in the technical space, not the users'. That turns the process on its head but results in usable use cases. You also have to adjust how you handle non-interface content such as verification when end users aren't directly participating in use case creation. Such workflow and documentation issues lead to the next point: Further complicating the adoption of use case modeling is the fact that use cases (and the UML) are easiest to adopt when supported by an end-to-end software suite, like Rational's. Anyone who has tried to implement such a suite knows that it is excruciating. Rational themselves will tell you that the setup of the software and underlying database is critically dependent on the specific forms approach you use, your methodology variation and workflow, even your org structure. The message is that you have to have a very full understanding of what you're doing to implement. Most bring Rational in on a consulting basis as a result. Adoption is also complicated in large firms by the simple fact that most activity is on legacy systems, and that modern modeling and design methodologies aren't well-suited to those systems. The final comment I'd make is on value. I haven't found that the adoption of use cases - even good ones - yields better systems or even better documentation than other means of systems design and interface functional specification. Returning again to the book itself - by all means buy it if you are looking for a single volume focused on use case development. It really is a good use case text. Beware the pitfalls going down the use case adoption route, however. If ever there was something that deserved a pilot, this would be it.
-




( 1 of 1 found this review helpful ) Posted: Oct 31 2008
This is a very good book on use cases. Concepts are well-explained. Use cases are placed properly into the UML framework. Typical forms and diagrams are presented and discussed. The process of developing and refining use cases gets full and detailed attention, as does testing. So - good instructional material, and the book is compact and well-organized enough to also serve as a reference. It is crystal clear and very readable. What follows below is not more book review. If my experiences and commentary regarding use cases interests you, read on, but be aware that it doesn't bear directly on the book itself. My background first: I started as a developer, moved into technical management, project management, business analysis management, IT senior management, and currently serve in an IT governance role in one of the largest companies in the US. I'm not an enthusiastic use case advocate. Having managed or had oversight for more development activities than I care to recall over the last 30 years, I've only run into a handful of people who were competent enough to produce a set of use cases usable and complete enough to feed into the next design stage. (Understanding, of course, that this methodology was in its infancy during part of that period.) Many claim to know use cases and modeling. Then again, most developers involved in any kind of distributed systems, web, n-tier, PC-based development, etc. claim to be OO competent, too (Uh-huh ...). I've written use cases and developed apps from them and still only consider myself marginally competent. I used a consultant to help then, and would do so again. Use cases are exceedingly difficult to write well for non-trivial applications and, because of their text content, deceptively simple-looking. Don't be fooled. The few I've encountered who could produce good use cases have invariably been knowledgeable technical leads who were competent across the entire span of activities from requirements through post-deployment support. They were also intimately familiar with the particular business space. This is not an easy combination to find. That those who best understand use cases are typically highly technical is kind of perverse, as the intent of use cases is to keep them firmly in the end-user's conceptual space. In trying - and failing repeatedly - to get end users and business analysts trained in use cases - and, for that matter, trying to get the business to understand and accept them, I finally came up with something that worked. That is, develop conventional, text-based project charters and requirements documents, then have the dev teams and leads develop the use cases from the business docs. This results in an interative process between use case development and the requirements - adding work - but it also cuts the inexpert out of the parts of the process that they never quite fathom anyway, such as alternative flows, extensions and generalization, includes relationships, etc. Even pre and post-conditions, which business people intuitively understand, are problematic because they typically can't get enough rigor into a use case without assistance, so the iteration helps with that also. What you wind up with is use case documention in the technical space, not the users'. That turns the process on its head but results in usable use cases. You also have to adjust how you handle non-interface content such as verification when end users aren't directly participating in use case creation. Such workflow and documentation issues lead to the next point: Further complicating the adoption of use case modeling is the fact that use cases (and the UML) are easiest to adopt when supported by an end-to-end software suite, like Rational's. Anyone who has tried to implement such a suite knows that it is excruciating. Rational themselves will tell you that the setup of the software and underlying database is critically dependent on the specific forms approach you use, your methodology variation and workflow, even your org structure. The message is that you have to have a very full understanding of what you're doing in order to implement. Most bring Rational in on a consulting basis as a result. Adoption is also complicated in large firms by the simple fact that most activity is on legacy systems, and that modern modeling and design methodologies aren't well-suited to those systems. The final comment I'd make is on value. I haven't found that the adoption of use cases - even good ones - yields better systems or even better documentation than other means of systems design and interface functional specification. Returning again to the book itself - by all means buy it if you are looking for a single volume focused on use case development. It really is a good use case text. Beware the pitfalls going down the use case adoption route, however. If ever there was something that deserved a pilot, this would be it.

















