50
1 Use Case Realizations Use Case Realizations

Use Case Realizations

Embed Size (px)

DESCRIPTION

Use Case Realizations. Topics. Design Patterns and the Use Case Controller Use Case Realization Designing with Sequence Diagrams Object Responsibility Developing a Multilayer Design Approaches to Data Access Layer Designing the View Layer Designing with Communication Diagrams - PowerPoint PPT Presentation

Citation preview

Page 1: Use Case Realizations

1

Use Case RealizationsUse Case Realizations

Page 2: Use Case Realizations

2

TopicsTopics

Design Patterns and the Use Case ControllerDesign Patterns and the Use Case Controller Use Case RealizationUse Case Realization Designing with Sequence DiagramsDesigning with Sequence Diagrams Object ResponsibilityObject Responsibility Developing a Multilayer DesignDeveloping a Multilayer Design Approaches to Data Access LayerApproaches to Data Access Layer Designing the View LayerDesigning the View Layer Designing with Communication DiagramsDesigning with Communication Diagrams Package DiagramPackage Diagram Three-Layer DesignThree-Layer Design Design PatternsDesign Patterns

Page 3: Use Case Realizations

3

Design Patterns and the Use Case Design Patterns and the Use Case ControllerController

Design patternA standard solution template to a design requirement that facilitates the use of good design principles

Use case controller patternDesign requirement is to identify which problem domain class should receive input messages from the user interface for a use case

Page 4: Use Case Realizations

4

Design Patterns and the Use Case Design Patterns and the Use Case Controller (continued)Controller (continued)

Solution is to choose a class to serve as a collection point for all incoming messages for the use case. Controller acts as intermediary between outside world and internal system

Artifact – a class invented by a system designer to handle a needed system function, such as a controller class

Page 5: Use Case Realizations

5

Use Case Controller Pattern

Page 6: Use Case Realizations

6

Use Case Realization with Use Case Realization with Sequence DiagramsSequence Diagrams

Realization of use case done through interaction diagram development

Determine what objects collaborate by sending messages to each other to carry out use case

Sequence diagrams and communication diagrams represent results of design decisions

Use well-established design principles such as coupling, cohesion, separation of responsibilities

Page 7: Use Case Realizations

7

Understanding Sequence Understanding Sequence Diagrams (SSDs)Diagrams (SSDs)

Page 8: Use Case Realizations

8

Detailed Sequence DiagramDetailed Sequence Diagram

Page 9: Use Case Realizations

9

Designing with Sequence DiagramsDesigning with Sequence Diagrams

Sequence diagrams used to explain object interactions and document design decisions

Document inputs to and outputs from system for single use case or scenario

Capture interactions between system and external world as represented by actors

Inputs are messages from actor to system Outputs are return messages showing data

Page 10: Use Case Realizations

10

Object ResponsibilityObject Responsibility

Objects are responsible for system processing Responsibilities include knowing and doing

Knowing about object’s own data and other classes of objects with which it collaborates to carry out use cases

Doing activities to assist in execution of use case

Receive and process messages

Instantiate, or create, new objects required to complete use case

Design means assigning responsibility to the appropriate classes based on design principles and using design patterns

Page 11: Use Case Realizations

11

First-Cut Sequence DiagramFirst-Cut Sequence Diagram

Start with elements from SSD Replace :System object with use case

controller Add other objects to be included in use

caseSelect input message from the use caseAdd all objects that must collaborate

Determine other messages to be sent Which object is source and destination of each message?

Page 12: Use Case Realizations

12

SSD for SSD for Cancel an OrderCancel an Order

Page 13: Use Case Realizations

13

First Cut Design Class Diagram for Cancel an Order

Page 14: Use Case Realizations

14

Potential Objects for Potential Objects for Cancel an Cancel an OrderOrder

Page 15: Use Case Realizations

15

First Cut Sequence Diagram First Cut Sequence Diagram for for Cancel an OrderCancel an Order

Page 16: Use Case Realizations

16

Guidelines for Sequence Diagram Guidelines for Sequence Diagram Development for Use CaseDevelopment for Use Case

Take each input message and determine internal messages that result from that input

For that message, determine its objectiveNeeded information, class destination, class source, and objects created as a resultDouble check for all required classes

Flesh out components for each messageIteration, guard-condition, passed parameters, return values

Page 17: Use Case Realizations

17

Assumptions About First-Cut Assumptions About First-Cut Sequence DiagramSequence Diagram

Perfect technology assumption

Don’t include system controls like login/logout (yet)

Perfect memory assumption

Don’t worry about object persistence (yet)

Assume objects are in memory ready to work Perfect solution assumption

Don’t worry about exception conditions (yet)

Assume happy path/no problems solution

Page 18: Use Case Realizations

18

SSD for SSD for Create new phone orderCreate new phone order

Page 19: Use Case Realizations

19

First cut DCD for Create new phone order

Page 20: Use Case Realizations

20

Sequence Diagram for First Input Sequence Diagram for First Input MessageMessage

Page 21: Use Case Realizations

21

Sequence Diagram for First and Sequence Diagram for First and Second Input MessagesSecond Input Messages

Page 22: Use Case Realizations

22

Complete Sequence Diagram

Page 23: Use Case Realizations

23

Developing a Multilayer DesignDeveloping a Multilayer Design

First-cut sequence diagram – use case controller plus classes in domain layer

Add data access layer – design for data access classes for separate database interaction

No more perfect memory assumptionSeparation of responsibilities

Add view layer – design for user-interface classes

Forms added as windows classes to sequence diagram between actor and controller

Page 24: Use Case Realizations

24

Approaches to Data Access LayerApproaches to Data Access Layer

Page 25: Use Case Realizations

25

Approaches to Data Access Layer Approaches to Data Access Layer (continued)(continued)

Create data access class for each domain class

CustomerDA added for Customer

Database connection statements and SQL statements separated into data access class. Domain classes do not have to know about the database design or implementation

Approach (a) – controller instantiates new customer aC; new instance asks DA class to populate its attributes reading from the database

Page 26: Use Case Realizations

26

Approaches to Data Access Layer Approaches to Data Access Layer (continued)(continued)

Approach (b) – controller asks DA class to instantiate new customer aC; DA class reads database and passes values to customer constructor

Two following examples use this approach

Page 27: Use Case Realizations

27

Adding Data Access Layer Adding Data Access Layer for for Cancel an orderCancel an order

Page 28: Use Case Realizations

28

Create new phoneCreate new phone order orderproblem domain and data accessproblem domain and data access

Page 29: Use Case Realizations

29

Create new phone orderCreate new phone orderSecond input messageSecond input message

Page 30: Use Case Realizations

30

Create new phone orderCreate new phone orderFinal Input MessagesFinal Input Messages

Page 31: Use Case Realizations

31

Designing the View LayerDesigning the View Layer

Add GUI forms or Web pages between actor and controller for each use case

Minimize business logic attached to a form Some use cases require only one form;

some require multiple forms and dialog boxes

View layer design is focused on high-level sequence of forms/pages – the dialog

Details of interface design and HCI in Chapters 13 and 14

Page 32: Use Case Realizations

32

Cancel an orderCancel an order with view layer with view layer

Page 33: Use Case Realizations

33

Create new phone orderCreate new phone order with view with view layerlayer

Page 34: Use Case Realizations

34

Designing with Communication Designing with Communication DiagramsDiagrams

Communication diagrams and sequence diagrams

Both are interaction diagrams

Both capture same information

Process of designing is same for both

Model used is designer’s personal preference

Sequence diagram – use case descriptions and dialogs follow sequence of steps

Communication diagram – emphasizes coupling

Page 35: Use Case Realizations

35

The Symbols of a Communication The Symbols of a Communication DiagramDiagram

Page 36: Use Case Realizations

36

A Communication Diagram for A Communication Diagram for Create new phone orderCreate new phone order

Page 37: Use Case Realizations

37

Updating the Design Class DiagramUpdating the Design Class Diagram

Design class diagrams developed for each layerNew classes for view layer and data access layerNew classes for domain layer use case controllers

Sequence diagram’s messages used to add methods

Constructor methods Data get and set method Use case specific methods

Page 38: Use Case Realizations

38

Design Class with Method Design Class with Method Signatures, for the InventoryItem Signatures, for the InventoryItem ClassClass

Page 39: Use Case Realizations

39

Updated Design Class Diagram for the Domain Layer

Page 40: Use Case Realizations

40

Package DiagramPackage Diagram——Structuring Structuring the Major Componentsthe Major Components

High-level diagram in UML to associate classes of related groups

Identifies major components of a system and dependencies

Determines final program partitions for each layer

View, domain, data access Can divide system into subsystem

and show nesting within packages

Page 41: Use Case Realizations

41

Partial Design of Three-Layer Package Diagram for RMO

Page 42: Use Case Realizations

42

RMO Subsystem PackagesRMO Subsystem Packages

Page 43: Use Case Realizations

43

Implementation Issues for Three-Implementation Issues for Three-Layer DesignLayer Design

Construct system with programming Java or VB .NET or C# .NETIDE tools (Visual Studio, Rational Application Developer, JBuilder)

Integration with user-interface design, database design, and network design

Use object responsibility to define program responsibilities for each layer

View layer, domain layer, data access layer

Page 44: Use Case Realizations

44

Design PatternsDesign Patterns

Page 45: Use Case Realizations

45

Adapter PatternAdapter Pattern

Page 46: Use Case Realizations

46

Factory or Factory Method PatternFactory or Factory Method Pattern

Page 47: Use Case Realizations

47

Singleton PatternSingleton Pattern

Page 48: Use Case Realizations

48

Create new order -- ObserversCreate new order -- Observers

Page 49: Use Case Realizations

49

Implementation of Observer Implementation of Observer PatternPattern

Page 50: Use Case Realizations

50

Observer PatternObserver Pattern