16-design - umass amherst design-rup ©rick adrion 2005 (except where noted) 3 u niv ers ty oof cm a...

30
CMPSCI520/620 Design-RUP ©Rick Adrion 2005 (except where noted) 1 UNIVERSITY NIVERSITY OF OF M MASSACHUSETTS ASSACHUSETTS AM HERST M HERST D DEPARTMENT EPARTMENT OF OF COMPUTER OMPUTER SCIENCE CIENCE CMP MP SCI 520/620 CI 520/620 FALL 2004 ALL 2004 16-Design Readings OOAD Using the UML Copyright 1994-1998 Rational Software, all rights reserved [Partly] posted UNIVERSITY NIVERSITY OF OF M MASSACHUSETTS ASSACHUSETTS AM HERST M HERST D DEPARTMENT EPARTMENT OF OF COMPUTER OMPUTER SCIENCE CIENCE CMP MP SCI 520/620 CI 520/620 FALL 2004 ALL 2004 The RUP presentation is adapted from OOAD Using the UML Copyright 1994-1998 Rational Software, all rights reserved Rational Unified Process The Unified Modeling Language (UML) is a language for specifying, visualizing, constructing, and documenting the artifacts of a software-intensive system A software development process defines Who is doing What, When and How in building a software product The Rational Unified Process has four phases: Inception, Elaboration, Construction and Transition Each phase ends at a major milestone and contains one or more iterations An iteration is a distinct sequence of activities with an established plan and evaluation criteria, resulting in an executable release

Upload: vonguyet

Post on 20-Apr-2018

215 views

Category:

Documents


3 download

TRANSCRIPT

CMPSCI520/620 Design-RUP

©Rick Adrion 2005 (except where noted) 1

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2004ALL 2004

16-Design•Readings•OOAD Using the UML•Copyright 1994-1998 Rational Software, all rights reserved

• [Partly] posted

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2004ALL 2004

The RUP presentation is adapted from OOAD Using the UMLCopyright 1994-1998 Rational Software, all rights reserved

Rational Unified Process•The Unified Modeling Language (UML) is a languagefor specifying, visualizing, constructing, anddocumenting the artifacts of a software-intensive system•A software development process defines Who is doingWhat, When and How in building a software product•The Rational Unified Process has four phases:Inception, Elaboration, Construction and Transition•Each phase ends at a major milestone and containsone or more iterations•An iteration is a distinct sequence of activities with anestablished plan and evaluation criteria, resulting in anexecutable release

CMPSCI520/620 Design-RUP

©Rick Adrion 2005 (except where noted) 2

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2004ALL 2004

In RUP: Major Workflows Produce Models

verified by

TestModel

Test

ImplementationModel

Implementation

implemented by

realized by

Analysis &Design

DesignModel

BusinessModeling

Business Model

Requirements

Use-CaseModel

supported by

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2004ALL 2004

The RUP Iterative Model

ManagementEnvironment

Business Modeling

ImplementationTest

Analysis & Design

Preliminary Iteration(s)

Iter.#1

PhasesProcess Workflows

Iterations

Supporting Workflows

Iter.#2

Iter.#n

Iter.#n+1

Iter.#n+2

Iter.#m

Iter.#m+1

Deployment

Configuration Mgmt

Requirements

Elaboration TransitionInception Construction

Workflowsgroupactivitieslogically

In aniteration, youwalk throughall workflows

CMPSCI520/620 Design-RUP

©Rick Adrion 2005 (except where noted) 3

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2004ALL 2004

Requirements Workflow

Use-Case Specifier

RequirementsReviewer

User-InterfaceDesigner

Capture a Common

Vocabulary

Find Actors and Use Cases

ReviewRequirements

Structure the Use-Case Model

User-InterfacePrototyping

Detail a Use Case

Elicit Stakeholder Needs

Manage Dependencies

Architect

Prioritize Use Cases

DevelopVision

User-InterfaceModeling

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2004ALL 2004

Analysis & Design Workflow

Architect

Designer

ArchitecturalAnalysis

ArchitectureReviewer

Review theDesign

Review theArchitecture

Use-CaseAnalysis

ArchitecturalDesign

DescribeConcurrency

DescribeDistribution

DatabaseDesigner

ClassDesign

SubsystemDesign

Use-Case Design

DatabaseDesign

DesignReviewer

CMPSCI520/620 Design-RUP

©Rick Adrion 2005 (except where noted) 4

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2004ALL 2004

Implementation Workflow

IntegrateSystem

Architect

System Integrator

Implementer

Code Reviewer

Implement Classes

Perform Unit Test

Structure theImplementation Model

IntegrateSubsystem

Review Code

Fix a Defect

Plan System Integration

Plan Subsystem Integration

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2004ALL 2004

Test Workflow

Design Test

ImplementTest

Test Designer

Integration Tester

System Tester

Evaluate Test

Execute IntegrationTest

Execute System Test

Designer

Design Test Classes and Packages

Implementer

Implement Test Components and Subsystems

PlanTest

PerformanceTester

Execute Performance Test

CMPSCI520/620 Design-RUP

©Rick Adrion 2005 (except where noted) 5

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2004ALL 2004

Project2

O-O System Development

adapted from Bruegge/Dutoit O-O SW Engr

problemstatement

Requirementselicitation

Requirementsanaly sis

Sy stem design

sy stem designobject modeldesign goals subsy stem

decomposition

f unctionalmodel

nonf unctionalrequirements

use casediagram

analy sisobject model

classdiagram

dy namicmodel

statechartdiagram

sequencediagram

Implementation

sourcecode Test

deliv erablesy stem

Object design

object designmodel

classdiagram

Project0

interviews Project1

Project3

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2004ALL 2004

Copyright 2002. Gary K. Evans. All Rights Reserved. www.evanetics.com

A Minimal Iterative ProcessGetting Started: (do this once)1. Capture the major functional and non-functional requirements for the

system.• Express the functional requirements as use cases, scenarios, or stories.• Capture non-functional requirements in a standard paragraph-style

document.2. Identify the classes which are part of the domain being modeled.3. Define the responsibilities and relationships for each class in the domain.4. Construct the domain class diagram.• This diagram and the responsibility definitions lay a foundation for a

common vocabulary in the project.5. Capture use case and class definitions in an OO CASE tool (e.g., Rose)

only when they have stablilized.

CMPSCI520/620 Design-RUP

©Rick Adrion 2005 (except where noted) 6

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2004ALL 2004

Copyright 2002. Gary K. Evans. All Rights Reserved. www.evanetics.com

A Minimal Iterative ProcessGetting Started: (do this once)6. Identify the major risk factors and prioritize the most

architecturally significant use cases and scenarios.• It is absolutely imperative that the highest risk items and the most

architecturally significant functionality be addressed in the earlyiterations. You must not pick the “low hanging fruit” and leave therisks for later.

7. Partition the use cases/scenarios across the planned iterations.8. Develop an Iteration plan describing each “mini-project” to be

completed in each iteration.• Describe the goals of each iteration, plus the staffing, the

schedule, the risks, inputs and deliverables.• Keep the iterations focused and limited (2-3 weeks per iteration).

In each iteration, conduct all of the software activities in theprocess: requirements, analysis, design, implementation and test.

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2004ALL 2004

A Minimal Iterative ProcessFor each iteration: (repeat until done)1. Merge the functional flow in the use cases/scenarios with the

classes in the domain class diagram• Produce sequence (and collaboration) diagrams at the analysis level.

2. Test and challenge the sequence diagrams on paper, or whiteboard• Discover additional operations and data to be assigned to classes• Validate the business process captured in the flow of the sequence

diagram3. Develop statechart diagrams for classes with “significant” state• Statechart events, actions, and most activities will become operations

on the corresponding class4. Enhance sequence diagrams and statechart diagrams with design

level content• Identify and add to the class diagram and sequence diagrams any

required support or design classes (e.g. collection classes, GUI andother technology classes, etc.)

5. Challenge the sequence diagrams on paper/whiteboard, discoveringadditional operations and data assigned to classes.

Copyright 2002. Gary K. Evans. All Rights Reserved. www.evanetics.com

CMPSCI520/620 Design-RUP

©Rick Adrion 2005 (except where noted) 7

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2004ALL 2004

designv iew

deploymentv iew

processv iew

implementationv iew

Use -CaseView

Use cases

Components

Classes, interfaces,collaborations

Active classes Nodes

OrganizationPackage, subsystem

DynamicsInteraction

State machine

Views & Workflows

ArchitectArchitectural

AnalysisArchitectural

DesignDescribe

ConcurrencyDescribe

DistributionReview theArchitecture

DatabaseDesign

Use-CaseAnalysis

SubsystemDesign

ClassDesign

Use-CaseDesign

Review theDesign

Designer

DatabaseDesigner

DesignReviewer

ArchitectureReviewer

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2004ALL 2004

Worker Responsibilities

Architect

Software ArchitectureDocument

Design Model

Designer

Use Case Realization

Package/Subsystem Class

Database DesignerData Model

ArchitectureReviewer

DesignReviewer

CMPSCI520/620 Design-RUP

©Rick Adrion 2005 (except where noted) 8

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2004ALL 2004

So where do we start?

Architect

ArchitecturalAnalysis

ArchitecturalDesign

DescribeConcurrency

DescribeDistribution

Review theArchitecture

DatabaseDesign

Use-CaseAnalysis

SubsystemDesign

ClassDesign

Use-CaseDesign

Review theDesign

Designer

DatabaseDesigner

DesignReviewer

ArchitectureReviewer

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2004ALL 2004

Use Case Analysis Overview

Use-Case Model

Use-Case Realization

Supporting Documents Architecture Document Glossary Supplemental Specs

Analysis Classes

Design ModelAnalysis Model

OR

CMPSCI520/620 Design-RUP

©Rick Adrion 2005 (except where noted) 9

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2004ALL 2004

Use Case Analysis Steps•Supplement the Descriptions of the Use Case•For each use case realization•Find Classes from Use-Case Behavior•Distribute Use-Case Behavior to Classes

•For each resulting analysis class•Describe Responsibilities•Describe Attributes and Associations•Qualify Analysis Mechanisms

•Unify Analysis Classes

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2004ALL 2004

What is an Analysis Class?

<<entity>>

<<boundary>>

<<control>>

<<control>>

<<boundary>>

<<entity>>

Systemboundary

Use-casebehaviorcoordination

Systeminformation

•Early conceptual model•Functional requirements•Model problem domain

• Likely to change•Boundary• Information used•Control logic

CMPSCI520/620 Design-RUP

©Rick Adrion 2005 (except where noted) 10

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2004ALL 2004

The Roles

Customer

Boundary Class -- Modelinteraction between thesystem and its environment

Entity Class -- Store andmanage information in thesystem

Control Class -- Coordinatethe use case behavior

Collaboration Diagram

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2004ALL 2004

Example: Entity & Control Classes

Course(from University Artifacts)

CourseOffering(from University Artifacts)

Grade(from University Artifacts)

Student(from University Artifacts)

Professor(from University Artifacts)

Schedule(from University Artifacts)

RegistrationController(from Registration)

SubmitGradesController(from Student Evaluation)

SelectCoursesToTeachController(from Registration)

MaintainProfessorController(from Registration)

MaintainStudentController(from Registration)

ReportCardController(from Student Evaluation)

CloseRegistrationController(from Registration)

CMPSCI520/620 Design-RUP

©Rick Adrion 2005 (except where noted) 11

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2004ALL 2004

Describe Responsibilities•What are responsibilities?•How do we find them?

Class Name

Responsibility 1

Responsibility 2

Responsibility N

•First cut at class operations•Actions that object can perform•Knowledge object maintains•Non-functional requirements

•Class should have multiple responsibilities

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2004ALL 2004

Class Responsibilities from aCollaboration Diagram

: Student

: MaintainScheduleForm

: RegistrationController

:Schedule

: CourseCatalogSy stem

: MainForm

5: // select 4 primary and 2 alternate of f erings( )1: // select maintain schedule( )

3: // get course of f erings( )6: // add courses to schedule( )

7: // create with of f erings( )

2: // open schedule f orm( )

4: // get courseof f erings( )

MaintainScheduleForm

// select 4 primary and 2 alternate offerings()// open ()

<<boundary>>

MainForm

// select maintain schedule()

<<boundary>>

CourseCatalogSystem

// get course offerings()

<<boundary>>RegistrationController

// add courses to schedule()

<<control>>

Schedule

// create with offerings()

<<entity>>

Register for Courses use case

CMPSCI520/620 Design-RUP

©Rick Adrion 2005 (except where noted) 12

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2004ALL 2004

Class Responsibilities from aSequence Diagram

: Student : MaintainScheduleForm

: RegistrationController

: Schedule : MainForm : CourseCatalogSy stem

5: // select 4 primary and 2 alternate of f erings( )

6: // add courses to schedule( )

7: // create with of f erings( )

1: // select maintain schedule( )

2: // open schedule f orm( )

3: // get course of f erings( )

4: // get course of f erings( )MaintainScheduleForm

// select 4 primary and 2 alternate offerings()// open ()

<<boundary>>

MainForm

// select maintain schedule()

<<boundary>>

CourseCatalogSystem

// get course offerings()

<<boundary>>RegistrationController

// add courses to schedule()

<<control>>

Schedule

// create with offerings()

<<entity>>

Register for Courses use case

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2004ALL 2004

What are Roles?•The “face” that a class plays in the association

Pre-requisites

Instructor

Course

CourseOffering Professor DepartmentDepartment head

CMPSCI520/620 Design-RUP

©Rick Adrion 2005 (except where noted) 13

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2004ALL 2004

Example: Finding Relationships

MainForm

// select maintain schedule()

<<boundary>> MaintainScheduleForm

+ // open()+ // select 4 primary and 2 alternate offerings()

<<boundary>>

1 0..11

CourseCatalogSystem

// get course offerings()

<<boundary>> 1 0..*RegistrationController

// add courses to schedule()// get course offerings ()

<<control>>

1

1

Schedule

// create with offerings()

<<entity>>

1

0..1

: Student

: MaintainScheduleForm

: RegistrationController

:Schedule

: CourseCatalogSy stem

: MainForm

5: // select 4 primary and 2 alternate of f erings( )1: // select maintain schedule( )

3: // get course of f erings( )6: // add courses to schedule( )

7: // create with of f erings( )

2: // open schedule f orm( )

4: // get courseof f erings( )

• MaintainScheduleForm doesnot make any sense outside ofthe context of a particular usesession.

• Only oneMaintainScheduleForm canbe active at any one time, ornone may be active

• one controller for eachSchedule being created (e.g.,each Student registrationsession).

• only oneCourseCatalogSystem instancefor possibly manyMaintainScheduleForms

• serializes access• Many MaintainScheduleForms

can be active at one time (fordifferent sessions/students).

legacy system.

View of Participating Classes (VOPC) diagram.

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2004ALL 2004

What is a Use-Case Realization?

Use Case Use Case Realization

<<realizes>>

Class Diagrams

Sequence Diagrams CollaborationDiagrams

Use Case RealizationDocumentation

Use Case Model Design Model

CMPSCI520/620 Design-RUP

©Rick Adrion 2005 (except where noted) 14

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2004ALL 2004

Alternatives•RUP begins with Analysis classes we foundby analyzing Collaboration & SequenceDiagrams (these derived from the Use Casesduring Use Case Analysis), then is refined bydefining Operations, States, Attributes,Associations and Generalizations (in ClassDesign)•Some other approaches:• Noun Phrase Approach• Common Class Patterns• CRC (Class-Responsibility-Collaboration)

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2004ALL 2004

Noun Phrase Approach• Examine the requirements and underline each noun• Each noun is a candidate class

• Divide list of candidate classes into• Relevant Classes• Part of the application domain; occur frequently in reqs

• Irrelevant Classes• Outside of application domain

• Fuzzy Classes• Unable to be declared relevant with confidence; requireadditional analysis

• Experience will eventually enable designers to avoidgenerating irrelevant classes

CMPSCI520/620 Design-RUP

©Rick Adrion 2005 (except where noted) 15

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2004ALL 2004

Fuzzy

Find Classes from requirements

•Consider the following UniversityEnrollment system specification•each university major has a number ofrequired courses and a number ofelective courses.

Course

Major

RequiredCourse

ElectiveCourse

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2004ALL 2004

Classes, Relationships & Attributes

•A course can be part of any number of majors

•Each major specifies minimum total credits required

•Students may combine course offerings intoprograms of study suited to their individual needs andleading to the degree/major in which enrolled

CourseOfferingSudyprogramStudentElectiveCourseMajorCompulsoryCourseCourseFuzzy classesRelevant classes

CMPSCI520/620 Design-RUP

©Rick Adrion 2005 (except where noted) 16

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2004ALL 2004

Noun Phrase Approach•may help in identifying domain objects• not good at identifying objects that live in theapplication domain•Thus, it can help at the beginning of analysis, but youwill not return to it as you move into design•Finding good objects during design means identifyingabstractions that are part of your application domain andits execution machinery•Objects that are part of your application domain will havea tenuous connection, at best, to real-world things• e.g. what’s the correspondence of a scrollbar to the realworld

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2004ALL 2004

Common Class Patterns• Derive classes from the generic classificationtheory of objects• Concept class• a notion shared by a large community

• Events class• captures an event that demarks intervals within a system

• Organization class• a collection or group within the domain

•People class• roles people can play

•Places class• a physical location relevant to thesystem

CMPSCI520/620 Design-RUP

©Rick Adrion 2005 (except where noted) 17

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2004ALL 2004

Common Class Patterns• Rumbaugh proposed a different scheme• Physical Class (Airplane)• Business Class (Reservation)• Logical Class (FlightTimeTable)• Application Class (ReservationTransaction)• Computer Class (Index)• Behavioral Class (ReservationCancellation)

• These taxonomies are meant to help a designer thinkof classes, however it is difficult to be systematic• Probably only useful during early analysis

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2004ALL 2004

CRC Cards• CRC = Candidates, Responsibilities, Collaborators• Meant primarily as a brainstorming tool for analysisand design• In place of use case diagrams ⇒ use index cards• In place of attributes and methods ⇒ recordresponsibilities

•See Object Design by Wirfs-Brock and McKean, ©2003

CMPSCI520/620 Design-RUP

©Rick Adrion 2005 (except where noted) 18

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2004ALL 2004

Index Cards• On the unlined side of theindex card•write an informaldescription of eachcandidate class’ purposeand role

•On the lined side of theindex card• identify responsibilities andcollaborators

DocumentPurpose: A Document acts as a container for graphicsand textRole: ContainerPattern: Composite text,graphics, other

elements

Inserts and removes

Knows storage location

TextFlowKnows contents

←candidateDocument

responsibilities collaborators

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2004ALL 2004

Model

Maintain problem related information

Broadcast change notification

MVC using CRC cards

View

Render the Model Controller ModelTransform coordinates Controller

Interpret user input View ModelDistribute control

class

responsibilities

collaborators

CMPSCI520/620 Design-RUP

©Rick Adrion 2005 (except where noted) 19

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2004ALL 2004

Not Just Index Cards• Post-It Notes can be used for even less “structure”;•might be easier when brainstorming

DocumentPurpose: A document Represents a containerthat holds text and/orgraphics that the user can enter and visually arrange on pages

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2004ALL 2004

Why index cards?• Forces you to be concise and clear and focus on major

responsibilities since you must fit everything onto one indexcard• Inherent Advantages•cheap, portable, readily available, and familiar•gives people a "feel" for the design•can propose and test changes to the design rapidly (all youhave to do is make new cards)• focus on responsibilities as opposed to ”n:m attribute" designas promoted by OMT, Booch, etc•affords Spatial Semantics…• close collaborators can be overlapped• vertical dimension can be assigned meanings• abstract classes and specializations can form piles

…which provides benefits• Beck and Cunningham report that they have seen designers talk

about a new card by pointing at where it will be placed

CMPSCI520/620 Design-RUP

©Rick Adrion 2005 (except where noted) 20

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2004ALL 2004

Architect

ArchitecturalAnalysis

ArchitecturalDesign

DescribeConcurrency

DescribeDistribution

Review theArchitecture

DatabaseDesign

Use-CaseAnalysis

SubsystemDesign

ClassDesign

Use-CaseDesign

Review theDesign

Designer

DatabaseDesigner

DesignReviewer

ArchitectureReviewer

So Where Are We?

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2004ALL 2004

Architectural Design Overview

SupplementarySpecifications

Architecture Document

Analysis Classes

Design Model

DesignGuidelines

Glossary

ArchitecturalDesign

Design Model

DesignGuidelines

•• Design and ImplementationDesign and ImplementationMechanismsMechanisms•• Design Classes and SubsystemsDesign Classes and Subsystems•• Reuse OpportunitiesReuse Opportunities•• Refined Architectural Layers andRefined Architectural Layers and

PartitionsPartitions

ArchitectArchitectural

DesignDescribe

ConcurrencyDescribe

Distribution

CMPSCI520/620 Design-RUP

©Rick Adrion 2005 (except where noted) 21

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2004ALL 2004

Design Classes

In analysis, we hadone application with

many different forms …

LogonForm<<boundary>>

CloseRegistrationForm(from Registrar Interface)

<<boundary>>MaintainScheduleForm(from Student Interface)

<<boundary>>

MaintainProfessorForm(from Registrar Interface)

<<boundary>>

MaintainStudentForm(from Registrar Interface)

<<boundary>>

ReportCardForm(from Student Interface)

<<boundary>>

SelectCoursesForm(from Professor Interface)

<<boundary>> SubmitGradesForm(from Professor Interface)

<<boundary>>

MainForm<<boundary>>

1

0..10..1

1

1 0..1

1

0..1

0..1

1

0..1

1

0..1

1

0..1

1

0..10..1

During design, someanalysis classes may

be split, joined,removed, etc.

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2004ALL 2004

Design Classes (cont.)In design, the one

application becomesthree applications,each with it’s own

forms ...

MaintainScheduleForm(from Student Interface)

<<boundary>>

ReportCardForm(from Student Interface)

<<boundary>>

MainStudentForm(from Student Interface)

<<boundary>>

1

0..1

1

0..1

MaintainStudentForm(from Registrar Interface)

<<boundary>>MaintainProfessorForm

(from Registrar Interface)

<<boundary>>CloseRegistrationForm

(from Registrar Interface)

<<boundary>>

MainRegistrarForm(from Registrar Interface)

<<boundary>>

1

0..*

1

0..*

1

0..1

(from Professor Interface)SubmitGradesForm

<<boundary>>SelectCoursesForm

(from Professor Interface)

<<boundary>>

MainProfessorForm(from Professor Interface)

<<boundary>>

11

0..1 0..1

LogonForm<<boundary>>

CloseRegis trationForm(from Regis trar Interface)

<<boundary>>MaintainScheduleForm(from Student Interface)

<<boundary>>

MaintainProfessorForm(from Regis trar Interface)

<<boundary>>

MaintainStudentForm(from Regis trar Interface)

<<boundary>>

ReportCardForm(from Student Interface)

<<boundary>>

Selec tCoursesForm(from Professor Interface)

<<boundary>> SubmitGradesForm(from Professor Interface)

<<boundary>>

MainForm<<boundary>>

1

0..10..1

1

1 0..1

1

0..1

0..1

1

0..1

1

0..1

1

0..1

1

0..10..1

CMPSCI520/620 Design-RUP

©Rick Adrion 2005 (except where noted) 22

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2004ALL 2004

Class Name

Package Name

Classes & packages•What is a class?•A description of a set of objects that share the sameresponsibilities, relationships, operations, attributes, andsemantics.

•What is a package?•A general purpose mechanism for organizing elementsinto groups•A model element which can contain other modelelements

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2004ALL 2004

A<<subsystem>>

PackageB

Class B1

Class B2

Client Class

Encapsulation is the key! But note for packages dependencies should be on public classes

Packages Vs. Subsystems• Packages provide no

behavior• Packages are simply

containers of thingswhich providebehavior• Packages help

organize and controlsets of classes thatare needed incommon, but whicharen’t reallysubsystems• Dependencies are on

specific elementswithin the Package

• Subsystems providebehavior, packagesdo not• Subsystems

completelyencapsulatetheir contents• Dependencies are

on the interface ofthe subsystem• Subsystems are

easily replaceable

CMPSCI520/620 Design-RUP

©Rick Adrion 2005 (except where noted) 23

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2004ALL 2004

DesignClass

Subsystem<<subsystem>>

DesignClass

DesignClass

DesignClass

Subsystem<<subsystem>>

Subsystem<<subsystem>>

Design Classes and Subsystems• Identifying Design Classes•analysis class is simple and already represents a singlelogical abstraction-> design class•entity classes survive relatively intact into design.

• Identifying Subsystems•analysis class is complex, such that it appears to embodybehaviors that cannot be the responsibility of a single classacting alone, or the responsibilities may need to be reused,the analysis class should be mapped to a subsystem•may take a few iterations to stabilize.

• Analysis classes which evolve intosubsystems might include:•complex services and/or utilities•user interfaces and externalsystem interfaces.

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2004ALL 2004

Layering•Concentrate on encapsulating change•Package dependencies are not transitive, thus onelayer can shield another from change•Upward dependencies should be resolved in design•e.g., call backs can be replaced with the “subscribes to”association whose source is a class (called thesubscriber) and whose target is a class (called thepublisher)• subscriber specifies a set of events and is notified whenone of those events occurs in the target

CMPSCI520/620 Design-RUP

©Rick Adrion 2005 (except where noted) 24

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2004ALL 2004

Goal is to reduce coupling and to ease maintenance effort

Layering Guidelines•Visibility•Dependencies only within currentlayer and below

•Volatility•Upper layers affected byrequirements changes•Lower layers affected byenvironment changes

•Generality•More abstract model elements inlower layers

•Number of layers•Small system: 3 layers•Complex system: 5-7 layers

User Interface<<layer>>

Business Services<<layer>>

Business Objects<<layer>>

System<<layer>>

Middleware<<layer>>

java

global

Base Reuse

global

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2004ALL 2004

Layers & Visibility

User Interface<<layer>>

Business Services<<layer>>

Business Objects<<layer>>

System<<layer>>

Middlew are<<layer>>

java

global

Base Reuse

global

PackageB

Class B1

Class B2

PackageA

Class A1

Class A3

Class A2A

B

Public visibility

Private visibility

Only publicclasses can be

referencedoutside of the

owning package

CMPSCI520/620 Design-RUP

©Rick Adrion 2005 (except where noted) 25

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2004ALL 2004

Describe Concurrency

• Concurrency Requirements driven by:•degree to which the system must be distributed•degree to which the system is event-driven•computational intensity of key algorithms•degree of parallel execution supported by the environment

•Modeling Processes map on independent threads of controlsupported by environment•Processes - stand-alone, heavyweight flow of control thatmay be divided into individual threads•Threads- lightweight flow of control which run in the context ofan enclosing process

•Mapping Processes onto the Implementation Environment• Distributing Model Elements Among Processes

Process Model

DescribeConcurrency

SupplementarySpecifications

ArchitectArchitectural

DesignDescribe

ConcurrencyDescribe

Distribution

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2004ALL 2004

Example

StudentApplication<<process>>

MainStudentForm(from Student Interface)

<<boundary>>

1 1

CourseRegistrationProcess<<process>>

RegistrationController(from Registration)

<<control>>

1 1

CourseCatalogSystemAccess<<process>>

CourseCatalog(from CourseCatalog)

<<subsystem>>1 1

CourseCache<<thread>>

1

1

Course(from University Artifacts)

<<entity>>0..*1

OfferingCache<<thread>>

1

1

CourseOffering(from University Artifacts)

<<entity>> 0..* 1

Mapping Design Elements to Processes

CMPSCI520/620 Design-RUP

©Rick Adrion 2005 (except where noted) 26

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2004ALL 2004

Example

composition<<process>>

CourseCatalogSystemAccess

<<thread>>CourseCache

<<process>>CourseRegistrationProcess

<<thread>>OfferingCache

dependency

1

1

1

1

<<process>>StudentApplication

Class Diagram

<<process>>CourseCatalogSystemAccess

<<thread>>OfferingCache

<<thread>>CourseCache

<<process>>CourseRegistrationProcess

dependency

<<process>>StudentApplication

Component Diagram

CourseCatalogSystemAccess

Remote

(f rom jav a.rmi)CourseRegistrationProcess

Runnable

(f rom jav a.lang) OfferingCache

Thread(f rom jav a.lang)

1

CourseCache

1

1

1

Mapping to Implementation

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2004ALL 2004

Describe Distribution Overview

DescribeDistribution

Process Model

Implementation Model

Deployment Model

ArchitectArchitectural

DesignDescribe

ConcurrencyDescribe

Distribution

CMPSCI520/620 Design-RUP

©Rick Adrion 2005 (except where noted) 27

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2004ALL 2004

Why Distribute?•Reduce processor load•Special processing requirements•Scaling concerns•Economic concerns•Distribution Patterns•Client/Server• 3-tier•Fat-Client•Web Application•Distributed Client/Server

•Peer-to-peer

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2004ALL 2004

Distribution patterns• Common services• Presentation Services• UI including, the visual appearance of output and how user input is handled

• Business Services• Business rules and logic

•Data Services• Data relationships, efficiency of storage, and data integrity

• Patterns•One-Tier• Two-Tier• Fat Client -- client has its presentation and business services; server has

the data services• Thin Client -- client has the presentation services; server has the

business and data services• Three-tier• client has presentation services; server has business services; separate

(logical) server has data services.•Web-tier• client accesses a web server that at least handles presentation services;

web server may have its own business and data services or it may utilizeone or more servers that handle business and data services

CMPSCI520/620 Design-RUP

©Rick Adrion 2005 (except where noted) 28

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2004ALL 2004

Node #1<<Node>>

Processor #1<<Processor>>

Device #1<<Device>>

Connection

Deployment Model Modeling Elements

•Node•Physical run-time computational resource

•Processor•Execute system software

•Device•Support devices•Typically controlled by a Processor

•Connection•Communication mechanisms•Physical medium•Software protocol

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2004ALL 2004

Deployment Diagrams

Component

Interface

Component

Node #1<<Node>>

Node #2<<Node>>

Object

<<connection type>>Connection

Object

Process-1Process-2...

Process-1Process-2...

CMPSCI520/620 Design-RUP

©Rick Adrion 2005 (except where noted) 29

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2004ALL 2004

Process-to-Node Allocation

External Desktop PC

StudentApplication

Desktop PC

Registration Server

CourseCatalogSystemAccessCourseRegistrationProcessGradeSubmissionProcessTeachingCoursesSelectionProcessProfessorMaintenanceProcessStudentMaintenanceProcess CloseRegistrationProcessReportCardProcessFinanceSystemAccess

Course Catalog

<<legacy>>Billing System

<<legacy>>

<<Internet>>

<<Campus LAN>>

Dial up access and behind campus firewall

<<Campus LAN>><<Campus LAN>>

StudentApplicationProfessorApplicationRegistrarApplication

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2004ALL 2004

Design Distribution Pattern: Proxy

1

0..*

RemoteDistributedControllerProxyDistributedController

SecureUser(from Secure Interfaces)

<<Interface>>1

0..*

+currentUser+currentUser

RegistrationController(from Student Activities)

<<controller>>RemoteRegistrationController

(from Student Activities)0..11

Naming(from java.rmi)

<<utility>>

client serversecure user instance is createdon the client and passed to theserver when the remotecontroller is created

CMPSCI520/620 Design-RUP

©Rick Adrion 2005 (except where noted) 30

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2004ALL 2004

: RemoteTimecard

Lookup("RemoteTimecardController")

SomeFormController

: Naming : ProxyDistributedController

3: new( )

1: new(SecureUser)2: lookup(String)

4: setSession(SecureUser)

5: DoSomething

6: DoSomething

All calls to the proxy controller are forwarded to the remote controller

The connection between the proxy and remote controlleris established when the proxy controller is created

The current user context is passed to the server for later access checks

Design Distribution Pattern: Proxy

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2004ALL 2004

Affect on Process Model Associations

MainStudentForm(from Student Interface)

MaintainScheduleForm(from Student Interface)

<<boundary>>0..1

1

StudentApplication<<process>>

1

1

RegistrationController(from Student Activities)

<<control>>

1

1

RegistrationControllerProcess<<process>>

RemoteRegistrationController(from Student Activities)

<<control>>

0..11

1

1

StudentApplication

<<process>>MainStudentForm

(from Student Interface)

<<boundary>>

1 1

CourseRegistrationProcess

<<process>>RegistrationController

(from Registration)

<<control>>

1 1

CourseCatalogSystemAccess

<<process>>CourseCatalog

(from CourseCatalog)

<<subsystem>>1 1

CourseCache<<thread>>

1

1

Course(from University Artifacts)

<<entity>>0..*1

OfferingCache<<thread>>

1

1

CourseOffering

(from University Artifacts)

<<entity>> 0..* 1