Product Details
Advanced Use Case Modeling: Software Systems (v. 1)

Advanced Use Case Modeling: Software Systems (v. 1)
By Frank Armour, Granville Miller

List Price: $54.99
Price: $35.47 & eligible for FREE Super Saver Shipping on orders over $25. Details

Availability: Usually ships in 24 hours
Ships from and sold by Amazon.com

37 new or used available from $12.23

Average customer review:

Product Description

(Pearson Education) Presents a process for creating and maintaining use case models in a customizable framework. Topics covered include how to keep a use case modeling effort on track, tips and pitfalls in use case modeling, effects of use cases on user interface design, and guidelines for quality in use case modeling. Softcover. DLC: Computer software--Development.


Product Details

  • Amazon Sales Rank: #700726 in Books
  • Published on: 2001-01-08
  • Original language: English
  • Number of items: 1
  • Binding: Paperback
  • 464 pages

Editorial Reviews

From the Inside Flap

In this rapidly changing business and technological environment, use case modeling has emerged as one of the premier techniques for defining business processes and software systems. Business engineers now employ use cases to define complex business processes across lines of business and even to define entire businesses. Use cases are also the standard for defining requirements for the software systems created using today's object-oriented development languages such as Java, Smalltalk, and C++. In the field of software components, a very young industry whose market is estimated to be more than $12 billion in 2001 Hanscome 1998, use cases are rapidly becoming a method of communication between suppliers and vendors.

The users of this technique for defining systems are as diverse as its uses. Use case modeling is already being employed by most Fortune 1000 companies and is being taught at many academic institutions all over the world, and the popularity of this modeling technique continues to grow.

Business process and software requirements engineering are rapidly evolving fields. Research in these areas continues to propose new methods of dealing with potential problems, even while actual practice is slow to adopt only a fraction of those proposed. This slow-moving partial adoption has been termed the "research–practice gap" Berry 1998. Creating yet another use case book without an extensive experience base would merely add to this gap. Our approach is significant because we present a practitioner's approach firmly grounded in the real world. Goals

Over the past six years, we have worked on some large, ambitious projects involving software development and business engineering. To create the best possible use case models, we found it necessary to extend the seminal work of Ivar Jacobson in certain areas. This book details our extensions, which complement Ivar's ongoing work. The flexibility of use case modeling and the Unified Modeling Language, which we use to describe these models, allows us to produce extensions to solve real-world problems successfully.

The goal of this book is to further the advancement of use case modeling in software and business engineering. To achieve this goal, the book provides a comprehensive yet readable guide to use case modeling for the practitioner. Specifically, it explains advanced use case modeling concepts, describes a process for implementing use case modeling, and discusses various use case modeling issues. Audience

The audience for this book is anyone involved in the conceptualization, development, testing, management, modeling, and use of software products and business processes. Although it contains a sizable amount of content related to business processes, this book is geared toward all of us in the software industry. Software professionals are the largest body of use case engineers because use case development was first introduced as a software requirements vehicle.

Business analysts will agree that use case engineering has undergone the greatest transformations on their front. Business analysts and their software process brethren are quickly learning that automation via software is not the only reason for employing use cases. In fact, more and more of business process modeling using use cases is not geared toward the generation and production of new software but is being done to understand, and in some cases, standardize and optimize key business processes across multiple lines of business.

Many of the techniques described in this book transcend the software or business arenas of the reader community. The well-established link between business use cases and software system use cases is described as we illustrate the ways in which software systems can be derived from a business process. The only thing we ask is that our business readers be patient as we start on the software side.

Academic institutions will also find this book useful. This book can be used as a text in an object-oriented analysis (OOA) course in which use cases play a key role. How to Use This Book

The theory of use case development often differs from the actual practice of use case development. One reason for this difference is that very few software development projects are "green fields"; most are started with a preconceived notion of a legacy process for successfully creating software. We are not advocating the removal of the legacy processes. In fact, many of the artifacts involved in these processes may be necessary due to the nature of the problem that is being solved through software development. Some of these artifacts may also be mandatory for getting the necessary approval to begin a software development project.

Use case modeling cannot be successful in isolation. The process of creating use case models must be put in the context of the specific organization. Every organization has unique cultural aspects. Luckily, we find some commonality as well as differences in nearly every facet of the business engineering and software development processes across organizations.

Experience in one organization can often be useful in another. When patterns of failure have emerged from our use case adventures, we have attempted to capture the factors that have been directly responsible. The pitfalls of use case modeling generally fall into two categories: those in the use case development process itself and those found when use cases are integrated with commonly used software development practices. Some of the pitfalls are so significant that they can stop the development of a system dead in its tracks.

This book provides a process framework for creating models of software systems. A process framework is a set of activities used to develop a process. Our frameworks should be customized specifically for your organization. This book describes the second of the three process frameworks (Figure P-1), the conceptualization and specification of software systems.


Figure P-1 Process frameworks of the advanced use case modeling process

Each process framework is independent and fully defined. They may all be performed in concert or separately. For example, software system and component engineering may be used together to provide requirements for software system development using components. The combination of business process and software system engineering creates an understanding of the elements necessary for business process automation. A business process is not usually completely automated via software systems. The requirements for the business process, therefore, become a superset of those of the software systems used by people carrying out the business process.

The three frameworks provide a means for specifying the requirements for engineering all of the systems required for business process automation, incorporating software building blocks. When process frameworks are combined, the outputs created during the previous framework may be utilized as inputs to the next.

To make the most of this book, we recommend following an established software development process. We respect the notion that not all companies are capable of following a software development process in exactly the same way. The ceremony, or amount of formality, involved usually differs dramatically from company to company and even from project to project Booch 1996.

Ceremony helps define how much of a process framework to use Miller 2000. High-ceremony projects tend to utilize more of the activities, perhaps adopting advanced use case modeling wholesale. Low-ceremony projects use only a portion of the material described. Regardless of the level of ceremony, you will certainly find use cases in some form useful for the definition of requirements for a project. Organization and Content

There are many books on use cases available on the market today. Ours is unique in its coverage of the role of use cases in software development. We also present some substantially new material not found in any other paper or book. We balance this new material with a comprehensive survey of the existing work in the field of use case modeling.

To allow this book to stand on its own, we present two chapters of fundamental material. These two chapters begin after an introduction to advanced use case modeling. Chapter 1 discusses the conceptual role of actors in the use case model. A detailed account of how to recognize actors is provided to prepare the use case modeler to discover use cases. Chapter 2 discusses the general format and protocol for creating use cases. The Unified Modeling Language, the Object Management Group (OMG) standard for use case modeling, is explained.

Part 2 starts with the first phase of software development, project initiation (Figure P-2). Chapter 3 focuses on this phase by looking at the things that define the system scopethe problem that is to be solved and the business opportunity created by the new or improved system, and the financial feasibility of building a software system to address this opportunity.


Figure P-2 Generic phases of a software development process

Chapter 4 describes use case modeling in the requirements analysis phase of the software development process (Figure P-3). Use cases help to describe the functions of the system and to balance the use case model; form is provided with a well-designed architecture that can enhance the use case model.


Figure P-3 Decomposition of the requirements analysis and partial analysis phases

In Part 3, we introduce a bank loan application example that is used throughout the book to illustrate the concepts of use case modeling. The example does not represent any actual loan system. The necessary functionality for an actual loan application has been streamlined for purposes of the example.

In Part 3 we also describe the advanced use case modeling process framework. Chapter 5 decomposes use case modeling into activity groups, or groups of logically related activities (Figure P-4). The chapter describes a framework for use case modeling that is used to describe system use case modeling through Chapter 15.


Figure P-4 The advanced use case modeling process framework

Chapter 6 describes the initial steps in setting up a use case modeling effort. The selection and customization of use case frameworks, the selection of standards and techniques, and the consideration of training and mentoring needs are outlined.

Chapter 7 discusses the initial steps of creating the use case model. The outcome of this activity group is a use case model that captures a "conceptual" picture of what the system will need to do.

Part 4 focuses on expanding the use case model. Chapter 8 begins the discussion of how initial use case descriptions are expanded to become base use cases with more detailed requirements and how this increased complexity is modeled. Chapter 9 discusses the practice of placing conditional and iterative logic within a use case's flow of events. Two techniques for modeling these concepts are presented.

Chapter 10 describes the use of extend, include, and generalization relationships to model the alternatives, variations, and commonality in the use case model. Chapter 11 discusses the capture of additional or supplemental information associated with an individual use case. Chapter 12 discusses the importance of mapping the use cases to the analysis object model. Techniques such as CRUD matrixes, object to use case tables, and sequence diagrams are outlined. Chapter 13 discusses the concept and utilization of scenarios to complement the use case model.

The final phase of any software engineering process is testing. Chapter 14 discusses testing and documenting the system and the role use cases play in driving these activities. Chapter 15 examines organizing use cases by business functional packages and by dependencies based on use case preconditions and postconditions. A discussion of various views of the use case model is presented. A wrap-up of key use case artifacts is also presented.

Part 5, Additional Topics, begins with Chapter 16. This chapter examines the effect of use cases on user interface design. Transactions are used to segment the use case model to provide elements for conceptual user interface development. Grouping techniques allow screens to be built from the transactions.

Chapter 17 examines the effect of change on the use case model. In successful software systems, changes that affect the functionality of the system are inevitable. Change may occur during the project or after it has shipped.

Chapter 18 discusses some of the necessary considerations for deploying advanced use case modeling. All or part of the process framework may be utilized depending on the needs of the project. This chapter outlines the elements that determine how much to use. It also describes how to document this process.

The final chapter, Chapter 19, discusses the quality attributes of a good use case model. It also describes the various roles that use case modeling can play within a system analysis effort. Finally, iterative and incremental development with advanced use case modeling is briefly outlined. Complementary Works

This book stands on its own and can be read without referring to other works. However, quite a bit of helpful material is available on requirements engineering, use case development, and process improvement. Software development process Ivar Jacobson, Grady Booch, and James Rumbaugh, The Unified Software Development Process, Addison-Wesley, Reading, MA, 1999. Dean Leffingwell and Don Widrig, Managing Software Requirements: A Unified Approach, Addison-Wesley, Reading, MA, 2000. Geri Schneider and Jason P. Winters, Applying Use Cases: A Practical Guide, Addison-Wesley, Reading, MA, 1998. Rational Software Corporation, Rational Unified Process, 2000. Business process engineering Ivar Jacobson, Maria Ericsson, and Agneta Jacobson, The Object Advantage: Business Process Reengineeering with Object Technology, Addison-Wesley, Reading, MA, 1995. Michael Hammer and James Champy, Reengineering the Corporation, Harper Business, New York, 1993. Rational Software Corporation, Rational Unified Process, 2000. Component development Ivar Jacobson, Martin Griss, and Patrik Jonsson, Software Reuse: Architecture, Process, and Organization for Business Success, Addison- Wesley, Reading, MA, 1997. Clemens Szyperski, Component Software: Beyond Object-Oriented Programming, Addison-Wesley, Reading, MA, 1998.

You may notice a number of references to other works in the body of this book. We did an extensive survey of the use case literature that predates the publication of this book and found many ideas worthy of inclusion. We also found many areas where we had developed solutions independently that were similar to those found in the literature. In these cases, we refer to the work in which the idea originally appeared. This gives the reader the flexibility to explore these references to get other viewpoints and gives credit to the other deserving authors.

For the latest information on use cases, supplemental and additional material, or how to contact the authors, visit us at our website, advancedusecases.

0201615924P04062001

From the Back Cover
"This book isn't just another introduction to use cases. The authors have used their wealth of experience to produce an excellent and insightful collection of detailed examples, explanations, and advice on how to work with use cases."

—Maria Ericsson

The toughest challenge in building a software system that meets the needs of your audience lies in clearly understanding the problems that the system must solve. Advanced Use Case Modeling presents a framework for discovering, identifying, and modeling the problem that the software system will ultimately solve.

Software developers often employ use cases to specify what should be performed by the system they're constructing. Although use case-driven analysis, design, and testing of software systems has become increasingly popular, little has been written on the role of use cases in the complete software cycle. This book fills that need by describing how to create use case models for complex software development projects, using practical examples to explain conceptual information.

The authors extend the work of software visionary Ivar Jacobson, using the Unified Modeling Language (UML) as the notation to describe the book's models. Aimed primarily at software professionals, Advanced Use Case Modeling also includes information that relates use case technique to business processes.

This book presents a process for creating and maintaining use case models in a framework that can be fully customized for your organization. The authors, pioneers in the application of use cases in software development, bring their extensive experience to cover topics such as:

  • A process model for applying a use case model
  • How to keep your use case modeling effort on track
  • Tips and pitfalls in use case modeling
  • How to organize your use case model for large-system development
  • Similarities between Advanced Use Case Modeling and the Rational Unified Process framework
  • Effect of use cases on user interface design
  • Guidelines for quality use case modeling

    0201615924B04062001

    About the Author

    Frank Armour is currently on the faculty of the Kogod School of Business at American University and is a senior consultant for American Management Systems (AMS). He has been the lead object methodologist at AMS, assisting AMS object projects in such areas as use case modeling, object concepts, project management, methods, and tools.

    Granville Miller is a pioneer in the application of use cases in developing advanced frameworks for software systems. He has spent 13 years working with object-oriented systems in the software industry, working to advance object-oriented technology at IBM, Nortel Networks, BroadBand Technologies, and Make Systems.

    0201615924AB04062001


  • Customer Reviews

    A very thorough and well-written book5
    This book has some powerful advice for those projects that use Use Cases to drive their analysis and design efforts. It lays out a good process to follow for developing the Use Cases so you don't jump right into the details without a plan. Much of the advice is good Software Engineering practices, but a lot of people seem to forget that it still applies even when making use of newer techniques such as Use Cases.

    The chapters pertaining to relating the Use Cases to other artifacts - such as test cases, the User Interface, and the Object Model - offer very practical and sound advice. You can tell that the authors have actually done it before and are speaking from experience and lessons learned.

    The chapter explaining Extend Relationships offered the clearest and most complete description of the Extend Relationship that I have encountered.

    All of the writing is very approachable and the examples sprinkled throughout the book and in the Appendixes are very helpful.

    Detailed UML Theory and Application Practices5
    Granville Miller and Frank Armour have created an essential text for understanding Use Case Modeling theory. This book explains the basics of UML in the initial chapters, but quickly moves on to detail advanced Use Case theories and the best ways to apply those theories. I approached the book as a beginner, but had little difficulty understanding the presented ideas and theories. I would recommend this book for anyone involved with Use Case Modeling - from beginner to advanced. For beginners, this book offers a solid introduction and quickly prepares you for the advanced topics. For intermediate to advanced users, this book offers a compilation of theories and practices and is certain to give you insight to pieces of the UML puzzle.

    Each step of the design process is explained thoroughly, and several alternative procedures are presented. Also, the appendices are valuable references of themselves. They contain a Use Case Development Review Checklist and a complete Development Case, which outlines each major step on the use case modeled development cycle.

    The authors have also done an excellent job in bringing together information from outside sources to compile their work. Rather than preaching a specific format or model, the reader is presented with many different customizable options for applying the theories in the book. The carefully cited sources also give excellent direction for further reading.

    I was disappointed to find a flaw with the printing of the book. In my copy the pages containing the table of contents were out of order. However, I found that I was more disappointed because a potential reader might skip this book on the shelf just because of a printing mishap. This information within is too valuable to miss.

    A real danger with theory books is the potential to either underestimate the reader or talk over the reader's head. This book walks that fine line with ease. I felt that the ideas and terms were presented in a logical and clear manner. It is a valued reference for my work.

    Tells you how to start and when to stop4
    I have found this book of tremendous help in my work.

    My first books on use cases focused more on UML rather than use cases. I did not give a hoot on use cases, because they look so simple on paper (and that's why I didn't buy a book specifically on use cases!) But as I grew as a developer, I began to believe that use case modelling if done well can significantly reduce development effort and bring about quality solutions. Use cases are the foundation to the understanding of the system that you are trying to develop. Use cases deserve serious attention.

    The main problem with use cases is that you either don't know how to start or when to stop. This book tells you both. It tells you how to develop your use case model systematically from scratch and how to make provisions so that your use case model can grow. IMO, that's the main draw for this book.

    The authors also give good insights on the possible approaches the reader can take to expand his/her use case model iteratively. It cautions the modeller to keep a balanced model so that stakeholders can understand, rather than one that specifies everything but gets bogged down by the details.

    Semantics, you can get it elsewhere, but this book discusses it pretty well too. The examples are clear and relevant.

    All in all, Frank and Granville did an excellent job covering the topic.