Foreword

When I came up with the use case concept in 1986, it was based on many years of work in component-based system development. We had had many other different techniques to do the job, techniques that were overlapping and had gaps. With use cases we got a tool with many facets. Some of them are:

• Use cases are the requirements capture vehicle.

• Use cases are the base for defining functional requirements.

• Use cases facilitate envisioning applications.

• Use cases assist in system delimitation.

• Use cases are the means to communicate with end users and customers.

• Use cases provide the dynamic, black-box view of the system.

• Use cases are the base for object derivation; objects naturally fall out of use cases.

• Use cases provide a tool for requirements traceability.

• Use cases are the base for user interface and experience design.

• Use cases facilitate moving from functional requirements to object and component structures.

• Use cases are the base for allocating functionality to components and objects.

Use cases are the mechanism to define object interaction and object interfaces.

• Use cases define access patterns to a database.

• Use cases help us with dimensioning of processor capacity.

• Use cases are the base for integration testing.

• Use cases define test cases.

• Use cases are the base for incremental development.

• Use cases help us with estimation of project size and required resources.

• Use cases provide a base for user documentation and manuals.

• Use cases are a tool for controlling a project.

• Use cases drive the development activities.

• Use cases have become the standard way of representing business processes.

• Use cases are used to describe what a legacy system is doing in a reengineering activity.

• Use cases are used when reengineering a business to become an e-business company.

And the list goes on. Of course, I certainly recognize that use cases are not the snake oil or the silver bullet of software development. However, the development of the use case idea has just started.

Advanced Use Case Modeling provides a set of guidelines for developing a use case model for software systems. It provides a toolkit of techniques to be utilized by experienced use case modelers. As with any toolkit, each tool has an intended purpose and the right tool should be selected for each job. Frank and Randy have done an excellent job of providing techniques that reflect their vast experience in the industry.

The use case continues to drive business processes, software systems, and component engineering projects. Some of the original concepts behind this modeling technique have evolved through the work of researchers, practitioners, and the standards bodies, but the fundamental ideas remain the same. The use case is an elegant way of communicating the needs of a business or software system. I am sure that, over time, new communication needs will lead to other ways of employing use cases; the possibilities are endless.

Ivar Jacobson

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.146.176.68