Part III. Keeping Concerns Separate with Use-Case Modules

Now that you have correctly modeled stakeholder concerns with use cases, the next step is to preserve that separation during design and implementation. Separation is maintained through a new modularity unit called a use-case slice. A use-case slice contains classes and extensions to existing classes (organized within aspects) that are specific to each use-case realization in the design model. Thus, the design model comprises an element structure (a hierarchical organization of elements in terms of layers, packages, subsystems, etc.) and a set of use-case slices that overlay behaviors onto these elements. In the past, developers have implemented directly on the element structure. The result is that concerns were entangled in these elements. With use-case slices, developers can now implement each use case separately and let the development environment compose the use-case slices to form the complete set of elements in the design model.

In Part III, we demonstrate with examples how to preserve the separation of both peer and extension use cases through use-case slices. In essence, you start with the realization of a use case with a set of classes, and then you determine which parts of these classes are specific to the use case and which parts are common among use cases. You collate the specific parts as class extensions within use-case slices. Use-case slices employ aspects to compose class extensions into their respective classes in the element structure. Thus, you must determine the structural context of the extension (i.e., to which class or operation the extensions will be added) and the behavioral context (i.e., when during execution of the operation the operation extensions will be executed). Our modeling construct for use-case slices highlights such context information explicitly and thereby helps you visualize how their use-case slices will be composed. It also provides a systematic means to identify intertype declarations, pointcuts, and advices during implementation.

Software development is the process of building models—each describing the system from a particular perspective—from the use-case model to the analysis model, to the design model, and finally to the implementation model. Whereas use-case slices keep together the specifics of a use case in a model, use-case modules keep the specifics of a use case together over all models for the entire system. Thus, use-case modules comprise slices for the various models in the system.

Part III includes the following chapters:

Chapter 8, “Keeping Peer Use Cases Separate with Use-Case Slices

Chapter 9, “Keeping Extensions Separate with Pointcuts”

Chapter 10, “Building Systems with Use-Case Modules”

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

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