g22 3033 007 c21 - nyu.edu · requirements analysis ... diagram use case diagramsuse case...

126
1 1 Adaptive Software Engineering G22.3033-007 Session 2 - Main Theme Requirements Analysis Dr. Jean-Claude Franchitti New York University Computer Science Department Courant Institute of Mathematical Sciences 2 Agenda RUP Practical SDLC Requirements Analysis Use Cases Summary Course Assignments Course Project Readings

Upload: trinhnhan

Post on 30-Aug-2018

218 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

1

1

Adaptive Software EngineeringG22.3033-007

Session 2 - Main ThemeRequirements Analysis

Dr. Jean-Claude Franchitti

New York UniversityComputer Science Department

Courant Institute of Mathematical Sciences

2

Agenda

RUPPractical SDLCRequirements AnalysisUse CasesSummary

Course AssignmentsCourse ProjectReadings

Page 2: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

2

3

Part I

Rational Unified Process (RUP)

4

Objectives: Rational Unified Process

• Describe the Unified Modeling Language (UML)• Define what a software development process is• Describe the Rational Unified Process• Explain the four phases of the Rational Unified Process

and their associated milestones• Define iterations and their relation to phases • Explain the relations between:

– Models and workflows – Phases, iterations, and workflows

• Define artifact, worker, and activity• State the importance of automated tool support

Page 3: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

3

5

Team-Based Development

Modeling Language

Building a System A Language Is Not Enough

Process

6

What Is the UML?

• The Unified Modeling Language (UML) is a language for

• Specifying• Visualizing• Constructing• Documenting

the artifacts of a software-intensive system

Page 4: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

4

7

UML History

8

Inputs to UML

Fusion

Operation descriptions,Message numbering

Meyer

Before and after conditions

Harel

State charts

Wirfs-Brock

Responsibilities

Embley

Singleton classes, High-level view

Odell

Classification

Shlaer - Mellor

Object Lifecycles

Gamma, et.al

Frameworks, patterns,notes

BoochJacobsonRumbaugh

Page 5: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

5

9

The UML Provides Standardized Diagrams

DeploymentDiagram

Use CaseDiagramsUse Case

DiagramsUse CaseDiagrams

ScenarioDiagramsScenario

DiagramsSequenceDiagrams

StateDiagramsState

DiagramsStateDiagrams

ComponentDiagramsComponent

DiagramsComponentDiagrams

Model

StateDiagramsState

DiagramsObjectDiagrams

ScenarioDiagramsScenario

DiagramsCollaborationDiagrams

Use CaseDiagramsUse Case

DiagramsActivityDiagrams

StateDiagramsState

DiagramsClassDiagrams

10

A Sample UML Diagram: Use CasesA University Course Registration System

Submit Grades

Professor

View Report Card

Select Courses to Teach

Student

Course Catalog

Register for Courses Maintain Student Information

Maintain Professor InformationRegistrar

Billing SystemClose Registration

Login

Page 6: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

6

11

A Sample UML Diagram: ClassesA University Course Registration System

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

12

UML Diagrams Are Key System Artifacts

Actor A

Use Case 1

Use Case 2

Actor B

user : »ç¿ëÀÚ

mainWnd : MainWnd

fileMgr : FileMgr

repository : Repositorydocument : Document

gFile : GrpFile

9: sortByName ( )

L1: Doc view request ( )

2: fetchDoc( )

5: readDoc ( )

7: readFile ( )

3: create ( )

6: fillDocument ( )

4: create ( )

8: fillFile ( )

GrpFile

read( )open( )create( )fillFile( )

rep

Repository

name : char * = 0

readDoc( )readFile( )

(from Persistence)

FileMgr

fetchDoc( )sortByName( )

DocumentList

add( )delete( )

Document

name : intdocid : intnumField : int

get( )open( )close( )read( )sortFileList( )create( )fillDocument( )

fList

1

FileList

add( )delete( )

1

File

read( )

read() fill the code..

UI

MFC

RogueWave

global

DocumentApp

Persistence Window95

¹®¼-°ü¸® Ŭ¶óÀ̾ðÆ®.EXE

WindowsNT

¹®¼-°ü¸® ¿£Áø.EXE

WindowsNT

Windows95

Solaris

ÀÀ¿ë¼-¹ö.EXE

AlphaUNIX

IBM Mainframe

µ¥ÀÌŸº£À̽º¼-¹ö

Windows95

¹®¼-°ü¸® ¾ÖÇø´

ºÐ»ê ȯ°æÀÇ Çϵå¿þ¾î¹× ³×Æ®¿÷À¸·ÎÀÇ Á¤º¸ ½Ã½ºÅÛ ¿¬°á ¸ðµ¨ - À©µµ¿ì 95 : Ŭ¶óÀ̾ðÆ® - À©µµ¿ì NT: ÀÀ¿ë¼-¹ö - À¯´Ð½º ¸Ó½Å: ÀÀ¿ë ¼-¹ö ¹× µ¥ÀÌŸ ¼-¹ö, Åë½Å ¼-¹ö - IBM ¸ÞÀÎÇÁ·¹ÀÓ: µ¥ÀÌŸ ¼-¹ö, Åë½Å ¼-¹ö

Document

FileManager

GraphicFileFile

Repository DocumentList

FileList

usermainWnd fileMgr :

FileMgrrepositorydocument :

DocumentgFile

1: Doc view request ( )

2: fetchDoc( )

3: create ( )

4: create ( )

5: readDoc ( )

6: fillDocument ( )

7: readFile ( )

8: fillFile ( )

9: sortByName ( )

ƯÁ¤¹®¼-¿¡ ´ëÇÑ º¸±â¸¦ »ç¿ëÀÚ°¡ ¿äûÇÑ´Ù.

È-ÀÏ°ü¸®ÀÚ´Â Àоî¿Â ¹®¼-ÀÇ Á¤º¸¸¦ ÇØ´ç ¹®¼- °´Ã¼¿¡ ¼³Á¤À» ¿äûÇÑ´Ù.

È-¸é °´Ã¼´Â ÀоîµéÀÎ °´Ã¼µé¿¡ ´ëÇØ À̸§º°·Î Á¤·ÄÀ» ½ÃÄÑ È-¸é¿¡ º¸¿©ÁØ´Ù.

Customernameaddr

withdraw()fetch()send()

receive()

<<entity>>

Forward Engineering(Code Generation)and

Reverse Engineering

Executable System

User InterfaceDefinition

DomainExpert

Openning

Writing

Reading Closing

add file [ numberOffile==MAX ] / flag OFF

add file

close file

close file

Use Case 3

Source Code edit, compile, debug, link

Use-Case Diagram Class Diagram

Collaboration Diagram

Sequence Diagram

Component Diagram

State Diagram

Package Diagram

Deployment DiagramClass

Page 7: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

7

13

New or changedrequirements

New or changed system

Software EngineeringProcess

What Is a Process?

A process defines Who is doing What, When and How to reach a certain goal. In software engineering the goal is to build a software product or to enhance an existing one

14

An Effective Process ...

• Provides guidelines for efficient development of quality software

• Reduces risk and increases predictability • Captures and presents best practices

– Learn from other’s experiences– Mentor on your desktop– Extension of training material

• Promotes common vision and culture• Provides roadmap for applying tools• Delivers information on-line, at your finger tips

Page 8: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

8

15

Rational Unified Process Delivers Best Practices

Rational Unified Process describes how to effectively implement the six best practices for software development

Control Changes

Manage Requirements

Use Component

ArchitecturesDevelop

IterativelyModel

VisuallyVerify

Quality

16

Rational Unified Process Is Use-Case Driven

Withdraw Money

Client

An actor is someone or something outside the system that interacts with the system

A use case is a sequence of actions a system performs that yields an observable result of value to a particular actor

Check Balance

Use Cases for a Cash Machine

Page 9: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

9

17

Use Cases Include a Flow of Events

Flow of events for the Withdraw Money Use Case1. The use case begins when the client inserts her ATM card.

The system reads and validates information on the card.2. The system prompts for the PIN. The system validates the

PIN.3. The system asks which operation the client wishes to perform.

The client selects “Cash withdrawal.”4. The system requests the amount. The client enters the

amount.5. The system requests the account type. The client selects

checking or savings.6. The system communicates with the ATM network . . .

18

Benefits of a Use-Case Driven Process• Use cases are concise, simple, and understandable

by a wide range of stakeholders– End users, developers and acquirers understand functional

requirements of the system

• Use cases drive numerous activities in the process:– Creation and validation of the design model– Definition of test cases and procedures of the test model– Planning of iterations– Creation of user documentation– System deployment

• Use cases help synchronize the content of different models

Page 10: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

10

19

Rational Unified Process Is Architecture-Centric

• Architecture is the focus of the elaboration phase– Building, validating, and baselining the architecture constitute the

primary objective of elaboration

• The Architectural Prototype validates the architecture and serves as the baseline for the rest of development

• The Software Architecture Description is the primary artifact that documents the architecture chosen

• Other artifacts derive from architecture:– Design guidelines including use of patterns and idioms– Product structure– Team structure

20

Representing Architecture: The 4+1 View Model

Process View

Deployment View

LogicalView

Implementation View

ProgrammersSoftware management

PerformanceScalabilityThroughput

System IntegratorsSystem topology

Delivery, installationcommunication

System Engineering

Use-Case View

Structure

Analysts/Designers End-user

Functionality

Page 11: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

11

21

Benefits of an Architecture-Centric Process

• Architecture lets you gain and retain intellectual control over a project, to manage its complexity, and to maintain system integrity

• Architecture provides an effective basis for large-scale reuse

• Architecture provides a basis for project management• Architecture facilitates component-based development

– A component fulfills a clear function in the context of a well-defined architecture

– A component conforms to and provides the physical realization ofa set of interfaces

– Components exist relative to a given architecture

22

Inception Elaboration Construction Transition

Process ArchitectureLifecycle Phases

The Rational Unified Process has four phases:– Inception - Define the scope of project– Elaboration - Plan project, specify features,

baseline architecture – Construction - Build the product– Transition - Transition the product into end user

community

time

Page 12: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

12

23

Inception Elaboration Construction Transition

Phase Boundaries Mark Major Milestones

Lifecycle Objective Milestone

Lifecycle Architecture

Milestone

Initial Operational Capability Milestone

Product Release

time

24

Iterations and Phases

An iteration is a distinct sequence of activities with an established plan and evaluation criteria, resulting in an executable release (internal or external)

PreliminaryIteration

Architect.Iteration

Architect.Iteration

Devel. Iteration

Devel. Iteration

Devel. Iteration

TransitionIteration

TransitionIteration

Inception Elaboration Construction Transition

Minor Milestones: Releases

Page 13: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

13

25

Major Workflows Produce Models

Analysis & Design

DesignModel

ImplementationModel

TestModel

realized by

implemented by

verified by

Requirements

Implementation

Test

Use-CaseModel

BusinessModeling

Business Modelsupported by

26

Bringing It All Together: The 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

Workflowsgroup activities logically

In an iteration, you walk through all workflows

Page 14: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

14

27

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

ArchitectPrioritize

Use Cases

DevelopVision

User-InterfaceModeling

28

Analysis & Design Workflow

Architect

Designer

ArchitecturalAnalysis

ArchitectureReviewer

Review theDesign

Review theArchitecture

Use-CaseAnalysis

ArchitecturalDesign

DescribeConcurrency

DescribeDistribution

DatabaseDesigner

ClassDesign

SubsystemDesign

Use-Case Design

DatabaseDesign

DesignReviewer

Page 15: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

15

29

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

30

Test Workflow

Design Test

ImplementTestTest Designer

Integration Tester

System Tester

Evaluate Test

Execute IntegrationTest

Execute System Test

DesignerDesign Test Classes

and Packages

ImplementerImplement Test Components

and Subsystems

PlanTest

PerformanceTester

Execute Performance Test

Page 16: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

16

31

• 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

Summary: Rational Unified Process

32

Part II

Practical SDLC

Page 17: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

17

33

Requirements

• Problem to be solved• Definitions• Deliverables

34

Problem to be Solved

• Identify the information systems related problem

• Be specific as to the cause:– systems failing to perform or– expectations being raised

Page 18: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

18

35

Problem to be Solved

• Systems failing to perform– Hard drive crashed– Software computed invoices wrong– Year 2000 problem materialized

36

Problem to be Solved

• Expectations being raised– Competitors lowered costs by using point of

sale terminals– Competitors are selling via the web– Manager has a new windows 98 system which

is easier to use than in house computer system

Page 19: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

19

37

Problem to be Solved

• Problems lead to goals• Goals are good but they must be

– feasible– measurable– within the constraints

• Goals are useless if they do not meet these criteria

38

Definition

• Feasibility • A project is feasible if it appears that

automation will solve the user's information related problem while satisfying economic, operational, technical, organizational, environmental, and temporal constraints

Page 20: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

20

39

Definition

• Economic Feasibility • A project is economically feasible if it

appears that the solution is affordable

40

Definition

• Operational Feasibility • A project is operationally feasible if it

appears that the solution can be operated by the participants

Page 21: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

21

41

Definition

• Technical Feasibility • A project is technically feasible if it appears

that the solution is possible with today’s technology

42

Definition

• Organizational Feasibility • A project is organizationally feasible if it

appears that the solution is political doable within the organization

Page 22: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

22

43

Definition

• Environmental Feasibility • A project is environmentally feasible if it

appears that the solution is not harmful to the environment

44

Definition

• Temporal Feasibility • A project is temporally feasible if it appears

that the solution can be created in time• This is one that can make or break a lot of

systems• Remember Time Boxing

Page 23: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

23

45

Definition

• Time Boxing• Placing a due date for each deliverable from

two weeks to two months• It is much easier to complete a small goal

rather than a large one

46

Definition

• Measurable• The user must be able to judge that the goal

was met• This means the goal should be expressed in

quantitative terms

Page 24: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

24

47

Definition

• Measurable continued• For example

– A video can be rented in less than 15 seconds– The fine was computed correctly– A minimum wage employee with less than two

hours of training can learn to use the point of sale terminal

48

Definition

• Customer• The person who the IT personnel are

building the system for• They must be the owner of the system as

well• The trick is to identify the real customer• The real customer (owner) has the

checkbook

Page 25: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

25

49

Definition

• User• The user is one who will interact with the

system• They are important as they report to the

owner problems• Both the customer and the user must be

satisfied !

50

Definition

• Constraint• A limit on the system• For example

– Budget for project is $20,000.00– Must be completed in six months– Must be usable by a minimum wage employee– Must provide for changes in sales tax laws

Page 26: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

26

51

Definition

• Constraints can be hard or soft• A hard constraint is set by an external entity• This means that your organization can not

change them• For example

– By law, mortgage statements must show new APR by July 1

– By law the Medicare withholding must be changed by January 1

52

Definition

• Constraints can be hard or soft• A soft constraint is set by an internal entity• This means that your organization can

change them• For example

– Must be usable by a minimum wage employee– Budget for project is $20,000.00

• Be sure the money is there !

Page 27: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

27

53

Definition

• Actor• A person or thing that interacts with a

computer system• An actor can have many roles

– customer– employee– Clerk

• An actor can also be another computer system

54

Definition

• Initiating Actor• An actor who initiates a business

transaction• For example

– Customer who makes a purchase– Employee who places timecard into time clock– Client who makes a payment

Page 28: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

28

55

Definition

• Participating Actor• An actor who is a part of the system• They facilitate the business transaction• For example

– Clerk who enters the purchase into a Point of Sale terminal

– Clerk who places paper in the printer– Accountant who audits report– Credit card authorization system

56

Definition

• Event• An occurrence by an initiating actor that a

system responds to• Sometimes called an external event as it is

generated outside the system

Page 29: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

29

57

Definition

• Use Case• A narrative description of a system process

initiated by an external event• Consists of actor actions and system

responses for each individual step

58

Definition

• System Event• The actor actions for each individual step• They consist of:

– typing in text boxes– selecting from list boxes– pushing buttons of forms

Page 30: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

30

59

Definition

• System Response• The specific system response for each

system event• For example:

– Display price– Print Receipt– Post transaction to journal

60

Definition

• Environmental Diagram• Shows

– actors– system– participants– events

• and how they interact

Page 31: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

31

61

Definition

• Environmental Diagram

Rent Video PayEmployees

Video Store Information System

ClerkCustomer Payroll Clerk

62

Deliverables

• 1. Prototype• Purpose is to show screens user will be

working with• Probably will not have much functionality• Possibly done in Microsoft Access

Page 32: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

32

63

Deliverables

• 2. List system functions and attributes• For example

– record sale or– Record sale in less than ten seconds– Record sale using a web page

• May be hidden such as– Post transaction to journal

64

Deliverables

• 3. Use case definitions• The use case is identified• Include its name• Include initiating and participation actors • Overview

– A customer arrives at a POS terminal with good to purchase. The cashier records the purchase and the customer leaves with the goods upon completion

Page 33: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

33

65

Deliverables

• Draft Conceptual Model• Is just of list of each domain (business)

object• For example:

– Customer– Store– Product

66

Deliverables

• Draft of Possible System Architecture• This is related to feasibility• Hardware costs and performance let

decision makers know if system is feasible

Page 34: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

34

67

Deliverables

• Preliminary report• Report to the customer (owner) of the

potential system, that it is possible to go ahead with analysis

• Must include all the deliverables mentioned herein

68

Summary

UML provides a standard for the following artifacts:

• System functions & attributes• High level use cases• Draft conceptual model

Page 35: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

35

69

Summary

• Planning is a very critical phase• It requires much interaction between

analysts, owners, and users • The preliminary investigation report must

report that the system is feasible before continuing into analysis

• If not, stop the process

70

Part III

Requirements Analysis

Page 36: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

36

71

Objectives: Requirements Overview

• Understand the basic Requirements concepts and how they affect Analysis and Design

• Understand how to read and interpret the artifacts of Requirements that are used as a starting point for Analysis and Design

72

Requirements Overview Topics

• Introduction• Key Concepts• Use-Case Model• Glossary• Supplementary Specifications• Checkpoints

Page 37: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

37

73

Requirements in Context

ManagementEnvironment

TestAnalysis & Design

Preliminary Iteration(s)

Iter.#1

Iter.#2

Iter.#n

Iter.#n+1

Iter.#n+2

Iter.#m

Iter.#m+1

Configuration & Change Mgmt

RequirementsElaboration TransitionInception Construction

The purpose of Requirements is:

•To establish and maintain agreement with the customers and otherstakeholders on what the system should do.

•To give system developers a better understanding of the requirements of the system.

•To delimit the system.

•To provide a basis for planning the technical contents of the iterations.

•To provide a basis for estimating cost and time to develop the system.

•To define a user interface of the system.

74

Relevant Requirements Artifacts

SupplementarySpecification

Glossary

Use-Case Specifications

...

Use-Case Model

ActorsUse Cases

Page 38: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

38

75

Requirements Overview Topics

• Introduction• Key Concepts• Use-Case Model• Glossary• Supplementary Specifications• Checkpoints

76

What Is System Behavior?

• System behavior is how a system acts and reacts.– It is the outwardly visible and testable activity

of a system• System behavior is captured in use cases.

– Use cases describe the system, its environment, and the relationship between the system and its environment.

Page 39: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

39

77

Major Concepts in Use-Case Modeling

• An actor represents anything that interacts with the system.

• A use case is a sequence of actions a system performs that yields an observable result of value to a particular actor.

Use Case

Actor

78

Requirements Overview Topics

• Introduction• Key Concepts• Use-Case Model• Glossary• Supplementary Specifications• Checkpoints

Page 40: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

40

79

What Is a Use-Case Model?

• A model that describes a system’s functional requirements in terms of use cases

• A model of the system’s intended functionality (use cases) and its environment (actors)

Student

View Report Card

Register for Courses

Login

80

What Are the Benefits of a Use-Case Model?

• Used to communicate with the end users and domain experts– Provides buy-in at an early stage of system development– Insures a mutual understanding of the requirements

• Used to identify– Who interacts with the system and what the system

should do– The interfaces the system should have

• Used to verify– All requirements have been captured– The development team understands the requirements

Page 41: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

41

81

How Would You Read This Diagram?

Course CatalogRegister for Courses

Student

82

Use-Case Specifications

• Name• Brief description• Flows of Events• Relationships• Activity diagrams• Use-Case diagrams• Special requirements• Pre-conditions• Post-conditions• Other diagrams Use-Case Specifications

...

Use-Case Model

ActorsUse Cases

Page 42: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

42

83

Use-Case Flow of Events• Has one normal, basic flow• Several alternative flows

– Regular variants– Odd cases– Exceptional flows handling error situations

84

What Are Scenarios ?

• A scenario is an instance of a use case

Page 43: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

43

85

What Is an Activity Diagram?• An activity diagram in the use-case model can be used to

capture the activities in a use case.• It is essentially a flow chart, showing flow of control from

activity to activity.Flow of Events

This use case starts when the Registrar requests that the system close registration.

1. The system checks to see if registration is in progress. If it is, then a message is displayed to the Registrar and the use case terminates. The Close Registration processing cannot be performed if registration is in progress.

2. For each course offering, the system checks if a professor has signed up to teach the course offering and at least three students have registered. If so, the system commits the course offering for each schedule that contains it.

86

SelectCourse

CheckSchedule

CheckPre-requisites

Assign to course

Resolveconflicts

Updateschedule

[ student added to the course ]

[ add course ]Delete Course

[ delete course ]

[ checks completed ] [ checks failed ]

Example: Activity DiagramActivity State

Synchronization Bar (Fork)

Guard ConditionSynchronization Bar (Join)

Decision

Concurrent threads

Transition

Page 44: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

44

87

Requirements Overview Topics

• Introduction• Key Concepts• Use-Case Model• Glossary• Supplementary Specifications• Checkpoints

88

Glossary

GlossaryCourse Registration System Glossary

1. Introduction

This document is used to define terminology specific to the problem domain, explaining terms, which may be unfamiliar to the reader of the use-case descriptions or other project documents. Often, this document can be used as an informal data dictionary, capturing data definitions so that use-case descriptions and other project documents can focus on what the system must do with the information.

2. Definitions

The glossary contains the working definitions for the key concepts in the Course Registration System.

2.1 Course: A class offered by the university.

2.2 Course Offering: A specific delivery of the course for a specific semester – you could run the same course in parallel sessions in the semester. Includes the days of the week and times it is offered.

2.3 Course Catalog: The unabridged catalog of all courses offered by the university.

Page 45: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

45

89

Requirements Overview Topics

• Introduction• Key Concepts• Use-Case Model• Glossary• Supplementary Specifications• Checkpoints

90

SupplementarySpecification

Supplementary Specification

• Functionality• Usability• Reliability• Performance• Supportability• Design constraints

Page 46: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

46

91

Requirements Overview Topics

• Introduction• Key Concepts• Use-Case Model• Glossary• Supplementary Specifications• Checkpoints

92

Checkpoints: Requirements: Use-Case Model

• Is the use-case model understandable?• By studying the use-case model, can you

form a clear idea of the system's functions and how they are related?

• Have all functional requirements been met?• Does the use-case model contain any

superfluous behavior?• Is the division of the model into use-case

packages appropriate?

Page 47: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

47

93

Checkpoints: Requirements: Actors

• Have all the actors been identified? • Is each actor involved with at least

one use case? • Is each actor really a role? Should

any be merged or split?• Do two actors play the same role in

relation to a use case? • Do the actors have intuitive and

descriptive names? Can both users and customers understand the names?

94

Checkpoints: Requirements: Use-Cases

• Is each use case involved with at least one actor?

• Is each use case independent of the others?

• Do any use cases have very similar behaviors or flows of events?

• Do the use cases have unique, intuitive, and explanatory names so that they cannot be mixed up at a later stage?

• Do customers and users alike understand the names and descriptions of the use cases?

Page 48: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

48

95

Checkpoints: Requirements: Use-Case Specifications

• Is it clear who wishes to perform a use-case? • Is the purpose of the use-case also clear? • Does the brief description give a true picture

of the use-case? • Is it clear how and when the use-case's flow

of events starts and ends? • Does the communication sequence between

actor and use-case conform to the user's expectations?

• Are the actor interactions and exchanged information clear?

• Are any use-cases overly complex?

96

Checkpoints: Requirements: Glossary

• Does each term have a clear and concise definition?

• Is each glossary term included somewhere in the use-case descriptions?

• Are terms used consistently in the brief descriptions of actors and use cases?

Page 49: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

49

97

Review: Requirements Overview

• What are the main artifacts of Requirements?• What are the Requirements artifacts used for?• What is a use-case model?• What is an actor?• What is a use case? List examples of use case

properties.• What is the difference between a use-case and a

scenario?• What is a supplementary specification and what

does it include?• What is a glossary and what does it include?

98

Exercise: Requirements Overview

• Given the following Requirements artifacts:– Problem statement– Use-case model main diagram– Supplementary specification – Glossary

• Review the given Requirements artifacts, noting any questions, issues, inconsistencies

Page 50: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

50

99

Part IV

Use Cases

100

Use Cases

• Definitions• Taxonomy of a Use Case• Indicating data

Page 51: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

51

101

Definitions

• Use Case - A narrative document that describes the sequence of system events and the system responses originating from the initiating actors of the system

102

Definitions

• High Level Use Case • A use case that shows only its name, actors,

purpose, and an overview which is completed in the planning phase

Page 52: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

52

103

Definitions

• Expanded Use Case • Includes all of the above plus a typical

course of events containing the system events and system responses

• This is completed in analysis

104

Definitions

• Essential Use Case • A use case that leaves out the technological

implications

Page 53: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

53

105

Definitions

• Real Use Case • A use case that leaves in the technology• Note that a real use case would show the

clerks role while an essential use case would not

• Larman shows a clerk in an essential use case which differs from your instructors

106

Taxonomy of a Use Case

• Name: Buy Items• Actors: Customer• Purpose: Capture a sale and its payment• Overview: A customer arrives at a checkout

with items to purchase. The items are recorded and a payment is collected. On completion, the customer leaves with their change and the items.

Page 54: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

54

107

Taxonomy of a Use Case

• Typical Course of Events– Each actor action is on the left– Except for the first and the last action, the

actions represent system events that the system must respond to

– Each system response is on the right– The actions and system responses are numbered

sequentially

108

Taxonomy of a Use Case

• The first action is usually the arrival of an actor

• Examples are:– This use case begins when the customer arrives

at the counter to rent a car– This use case begins when a customer arrives at

a POST checkout with items to purchase.

Page 55: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

55

109

Taxonomy of a Use Case

• The last action is usually the departing of an actor

• Examples are:– The customer leaves with the car keys and the

rental contract– The customer leaves with the merchandise,

change, and receipt

110

Taxonomy of a Use Case

• Next identify the system events where the actor gives new information to the system

• Each of these system events will received a response from the system

Page 56: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

56

111

Taxonomy of a Use Case

For example, the Buy Items use case system events are:

• The customer gives a upc to the system• The customer states there are no more items• The customer makes a payment

112

Taxonomy of a Use Case

The Buy Items use case system responses are:• The customer gives the upc to the system

– Displays the price and running total• The customer states there are no more items

– Displays the sale total• The customer makes a payment

– Displays the balance due

Page 57: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

57

113

Taxonomy of a Use Case

• Handling multiple items• Include a system event such as:

– The customer states there are no more items• This will tell the reader that the user has

stopped submitting items• Do not use this statement when the user is

doing one transaction! - See next example

114

Taxonomy of a Use Case

For example, the Rent Car use case system events are:

• The customer gives dates and times needed with type of car

• The customer selects the car and price• The customer makes a payment

Page 58: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

58

115

Taxonomy of a Use Case

The Buy Items use case system responses are:• The customer gives dates and times needed

with type of car– Displays what is available with the price

• The customer selects the car and price– Displays the total due

• The customer makes a payment– Prints the contract and the receipt

116

Summary

• Use Cases are the primary analysis tool to collect information on processes

• They should be acted out by the ‘Actors’• Always concentrate on the typical course of

events

Page 59: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

59

117

Topics of Discussion

• OOA• UML• Use Cases & Business Transaction

Scenarios• Use Case Models

118

Object-oriented Analysis

“Object-oriented Analysis (OOA) is a method of analysis that examines requirements from the perspective of the classes and objects found in the vocabulary of the problem domain”

- Grady Booch

Page 60: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

60

119

Object-oriented Analysis

• Analysis Model provides the foundation for the Design Model

• Focus on Hi-level Business Objects• Concentrate on activities of the User

of the business process• Avoid detailed design tasks

120

Requirements Analysis

• Define what the business needs to accomplish

• Define Constraints on how a solution is manifested but not on how system it is designed

• What is accomplished conceptually• What is required to interface to the system• What is required to operate it

Page 61: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

61

121

Enterprise-wide Vs Project-Specific

• Enterprise-wide requirements provide Re-Use• Requirements common to a project can be

obtained by referring to enterprise-wide requirements

• Project-specific requirements should be evaluated for re-factoring into enterprise-wide requirements

122

Requirements

Non-Functional Requirement

FunctionalRequirement

Interface Constraint

Operational Constraint

Page 62: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

62

123

The Big Process Picture

• Requirements Analysis process fits into other processes within Integrated Requirements

• Deliverables output from one process become inputs to other processes

• Integrated Requirements provide the glue between the business side and the technology side

124

Essential Elements for Requirements Analysis

• Clarity• Efficiency• Priority• Quality• Traceability

Page 63: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

63

125

Guidelines for Requirements Analysis

• Problem Vs SolutionEvolution

• Abstraction• Iteration• Modeling• Re-Use

126

UML

• Unified Modeling Language• Successor to OOAD methods of

Booch, Rumbaugh & Jacobson• A modeling language and not a

method

Page 64: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

64

127

The Unified Modeling Language (UML) is the industry-standard language for specifying, visualizing, constructing, and documenting the artifacts of software systems. It simplifies the complex process of software design, making a "blueprint" for construction. The UML definition was led by Rational Software's industry-leading methodologists: Grady Booch, Ivar Jacobson,and Jim Rumbaugh.

UML(continued)

128

Use Cases

• A typical interaction a user has with a system to achieve a goal

• An essential tool in Requirements Capturing

• Provides User-visible function• Use Cases are part of UML

Page 65: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

65

129

Some Definitions

• Actors An actor is a role that an external object or user plays w.r.t. the System

• Uses & ExtendsRelationships among use casesUse Extends when describing a variationUse Uses when repeating in two or more use cases to avoid repetition

130

Business Transaction Scenarios

• Business Transaction Scenarios describe all the possible interactions between the system and the external objects of the outside world. BTS are modeled as Use Cases

• Normal Scenario captures the normal interaction between the actor and the system

• Abnormal Scenario captures interaction that occurs during exceptions or error conditions

Page 66: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

66

131

Sequence Diagrams

A Sequence Diagram provides a diagrammatic representation of a specific instance of a Use Case (a scenario)

132

Format of Use Cases

Scenarios and Use Cases will have the following sections in this order:

– Purpose– Assumptions– Actors– Use Cases Used– Use Cases Extended– Preconditions– Postconditions– Basic Course– Alternate Course– Rules– Interface Contraints– Operational Constraints

Page 67: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

67

133

Use-Case Diagrams

134

Business Transaction Scenario: Learning Administration System

Page 68: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

68

135

1.Scenario: Learning Administration System

The Learning Administration System (LAS) depicts the scenario where a student enrolls for a Program or Courses at a Learning Institution, attends the courses scheduled and after completion of the same, applies for various job positions at different companies.

BTS: Learning Administration System

136

Who are the Actors?

InstructorAdmissions DirectorFinancial Aid Director

Education Director

Admissions RepCareer Services Director

Accountant

BTS: Learning Administration System

Page 69: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

69

137

Let us model the system

138

Admissions Rep

Admissions Repgets Lead Info

Admissions Repenrolls Student

Instructor

System processes LeadInfo Request

Admissions Repconducts Interview

<<uses>>

Admissions Directorreviews Leads Info

<<uses>>

Instructor marks StudentEvaluation

Admissions Director

Education Director

Education Directorreviews Student Info

Career ServicesDirector

System processesStudent Info

<<uses>>

System processesInterview Tasks

<<uses>>

System processesStudent Enrollment

<<uses>>

<<uses>> <<uses>>

System processesProgram & Course Info

<<uses>>

Education Directorreviews Program &

Course Info

<<uses>>

Career Services Directorreviews Companies &

JobRecords

System processesCompanies Info

<<uses>>

Accountant

Accountant preparesStudent Ledgers

Accountant preparesSummary Reports

<<uses>>

System processesLedger Accounts

<<uses>>

<<uses>>

Fnancial Aid Director

Financial Aid Directorprocesses Loan

Application for Student

<<uses>>

CareerServices Directorreviews Student Info

<<uses>>

<<uses>>

Page 70: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

70

139

Rational Rose Interface– Documentation window

• The documentation window is used to create, view, or modify text that explains selected item within a diagram.

– Log window• The log window reports progress, results,

and errors.– Options window

• The options window is used to set all of your defaults for modeling.

• Note that if you change the defaults, existing model elements are not changed.

140

Basic Tool Techniques

• Two basic tool techniques– Deleting diagram elements

• Removes the selected element from the model.• Removes all icons representing the element from all

diagrams on which they appear.• Deletes the specification for the element.

– Adding diagram elements• Add elements to a diagram from either diagram toolbar or

the browser.

Page 71: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

71

141

Use-Case Model

– Describe a use-case model, its components, and its importance

– Explain what is used to create use-case diagrams in Rose.

– Use the Rose tool to create a use-case diagram to clearly illustrate what the system will do.

142

Why Create a Use-Case Model?

– A use-case model is representation of the system’s intended functions and its environment.

– It is created in the Use-Case View and can include the following

• Use-case diagrams• Supplemental information

Page 72: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

72

143

What Is a Use-Case Model?

– A use-case model allows the customer and system developer to communicate what the system should do, in a language understandable to the customer.

– You can consider the use-case model as the visual contract between customer and developer.

– A use-case diagram is an illustration that shows the relationships among use cases and actors and among related use cases.

144

A p p l y F o r L o a n

( f r o m A p p ly F o r L o a n )

L i st P ro p e r t y

( f r o m L is t P r o p e r t y )

M a i n t a i n P ro f i l e

( f r o m M a in t a in P r o f i le )

R e a l t o r

( f ro m A c t o rs)

C re d i t R e p o r t i n g S y st e m

(f ro m A c t o rs)

L o a n S y st e m

(f ro m A c t o rs)

F i n d R e a l t o r

( f r om F in d R ea lt or )

S e a rc h F o r A H o m e

( f r o m S e a r c h F o r A H o m e )P r o sp e c t i v e B u y e r

( f ro m A c t o rs)

E -M a i l S y st e m

(f ro m A c t o rs)

M a i n t a i n P e rso n a l P l a n n e r

( f r o m M a in t a in P e r s o n a l P la n n . . .

Page 73: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

73

145

Use Cases

– A use-case is a sequence of transactions performed by a system that yields a measurable value for a particular actor.

– In the UML, a use case is represented by an oval

Use Case

146

Actors

– An actor is someone or something outside the system that must interact with the system.

– In the UML, an actor is represented by a “stickman.”

Actor

Page 74: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

74

147

Relationships

– A relationship illustrates a connection between two or more actors and use cases and between two or more use cases

– In the UML, an association relationship is represented by a solid line with or without an arrow.

148

What are Supplemental Documents?

– Supplemental documents are used to define and describe a project.

– In Rose, you will attach only those documents important to maintaining the use-case model.

Page 75: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

75

149

Part V

Analysis and Design Overview

150

Objectives: Analysis and Design Overview

• Review the key analysis and design terms and concepts

• Introduce the analysis and design process, including roles, artifacts and workflow

• Understand the difference between analysis and design

Page 76: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

76

151

ManagementEnvironment

TestAnalysis & Design

Preliminary Iteration(s)

Iter.#1

Iter.#2

Iter.#n

Iter.#n+1

Iter.#n+2

Iter.#m

Iter.#m+1

Configuration & Change Mgmt

RequirementsElaboration TransitionInception Construction

The purposes of Analysis and Design are:

•To transform the requirements into a design of the system to-be.

•To evolve a robust architecture for the system.

•To adapt the design to match the implementation environment, designing it for performance.

Analysis and Design in Context

152

SupplementarySpecification

Use-Case ModelDesign Model

Data Model

ArchitectureDocument

Analysis and Design

Analysis and Design Overview

Glossary

Page 77: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

77

153

Analysis & Design Overview Topics

• Key Concepts• Analysis & Design Workflow Overview

154

Analysis Versus Design

• Analysis– Focus on understanding

the problem– Idealized design– Behavior– System structure– Functional

requirements– A small model

• Design– Focus on understanding

the solution – Operations and

Attributes– Performance– Close to real code – Object lifecycles– Non-functional

requirements– A large model

Page 78: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

78

155

TopDown

BottomUpDesign Classes

Subsystems

Use Cases

Analysis and Design is not Top-Down or Bottom-Up

156

What Is Architecture?

• Software architecture encompasses the set of significant decisions about the organization of a software system– Selection of the structural elements and their interfaces

by which a system is composed– Behavior as specified in collaborations among those

elements– Composition of these structural and behavioral elements

into larger subsystems– Architectural style that guides this organization

Page 79: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

79

157

Architecture Constrains Design and Implementation

• Architecture involves a set of strategic design decisions, rules or patterns that constrain design and construction

CODE

implementation

design

architecture

Architecture decisions are the most fundamental decisions and changing them will have significant ripple effects.

158

Process View Deployment View

Logical View

Use-Case View

Implementation View

End-user Functionality

ProgrammersSoftware management

PerformanceScalabilityThroughput

System integratorsSystem topology

Delivery, installationcommunication

System engineering

Analysts/DesignersStructure

Software Architecture: The “4+1 View” Model

Page 80: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

80

159

Analysis & Design Overview Topics

• Key Concepts• Analysis & Design Workflow Overview

160

Analysis and Design Workflow

Page 81: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

81

161

Analysis and Design Activity Overview

162

Architect

Software ArchitectureDocument

Design Model

Designer

Use-Case Realization

Package/Subsystem Class

Database DesignerData Model

ArchitectureReviewer

DesignReviewer

Workers and Their Responsibilities

Page 82: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

82

163Class Diagrams

Sequence Diagrams

Use Case

Collaboration Diagrams

What is a Use-Case Realization?Use-Case Model Design Model

Use Case Use-Case Realization

164

Analysis and Design In An Iterative Process

Iteration n Iteration n + 1 Iteration n + 2

Use Case A

Use-Case Realization A

Start of iteration

End of iteration

Use Case B

Use-Case Realization B

Use-Case Realization C

Use Case C

Page 83: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

83

165

Review: Analysis and Design Overview

• What is the purpose of Analysis and Design?

• What are the input and output artifacts?• Name and briefly describe the 4+1 Views of

Architecture.• What is the difference between Analysis

and Design?• What is architecture?

166

Part VI

Use Case Analysisand

Use Case Alternative Courses

Page 84: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

84

167

Use Case Alternative Courses

• Need for alternative courses• Errors• Sections

168

Need for Alternative Courses

• Nothing works as it is suppose to• Customers change their mind• Human errors are easily made • Transactions can be done different ways

– Pay by Check– Pay by Cash– Pay by Credit Card

Page 85: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

85

169

Need for Alternative Courses

There are really two types:• Alternative courses that are user problems

– Customer does not have enough cash– Customer number does not exist

• Alternative courses that are input errors– Credit card is invalid– Item is not in stock– Customer number is entered in error

170

Errors

Recall use case for Buy Items:• 2. The customer gives the upc to the system

– 3. Displays the price and running total• Alternative Courses:• Line 2: If the upc is invalid, display that it is

invalid and ask cashier for another upc

Page 86: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

86

171

Errors

Recall use case for Buy Items:• 6. The customer makes a payment

– 7. Displays the balance due• Alternative Courses:• Line 6: If the customer has insufficient cash

is invalid, cancel the sale

172

Errors

Recall use case for Rent Car:• 2. The customer gives dates and times

needed with type of car– 3. Displays what is available with the price

• Alternative Courses:• Line 2: If no car is available, thank the

customer for considering us

Page 87: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

87

173

Errors

Recall use case for Rent Car:• 6. The customer makes a payment

– 7. Prints the contract and the receipt• Alternative Courses:• Line 6: If the customer’s payment is

unsatisfactory, cancel the rental

174

Sections

• When there are alternative actions, sections are a convenient way to handle this

• Sections are a segment of a use case executed out of sequence

Page 88: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

88

175

Sections

• Recall use case for Buy Items:• 6. The customer makes a payment• is replaced by• 6. Customer chooses payment type

176

Sections

• Section: Pay by Cash• 1. The customer makes a payment

– 2. Displays the balance due

Page 89: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

89

177

Sections

• Section: Pay by Check• 1. The customer submits check and personal

picture identification– 2. Generates a check verification request– 3. Receives check approval– 4. Displays check is okay or not okay

178

Sections

• Recall use case for Rent Car:• 2. The customer gives dates and times

needed with type of car• 2. Customer chooses return at place of

rental (return) or another city (one way)

Page 90: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

90

179

Sections

• Section: Return Car Rental• 1. The customer gives dates and times

needed with type of car– 2. Displays what is available with the price

180

Sections

• Section: One Way Car Rental• 1. The customer gives dates, times, and type

of car– If a car is available

• 1. The customer gives city car is to be returned to – 2. Displays what is available with the price

Page 91: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

91

181

Summary

• Use Cases always contain errors• Sections are a convenient way to handle

multiple choices• Usually errors are added to use cases in a

second writing• This allows users to study the use case

while it is simple before complexities are added

182

Objectives: Use-Case Analysis• Understand the purpose of Use-Case

Analysis and where in the lifecycle it is performed

• Identify the classes which perform a use-case flow of events

• Distribute the use-case behavior to those classes, identifying responsibilities of the classes

• Develop use-case realizations that model the collaborations between instances of the identified classes

Page 92: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

92

183

Use-Case Analysis in Context

Use-CaseAnalysis Designer

184

Use-Case Analysis Overview

SupplementarySpecifications

Glossary

Use-Case Model

Use-CaseAnalysis

Use-CaseModeling Guidelines

Use-Case Realization(identified)

Use-Case Realization(developed)

Design Model

Analysis Classes

Analysis Model (optional)

Software ArchitectureDocument

Page 93: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

93

185

Use-Case Analysis Steps

• Supplement the Use-Case Description• For each use-case realization

– Find Classes from Use-Case Behavior – Distribute Use-Case Behavior to Classes

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

• Unify Analysis Classes• Checkpoints

186

Use-Case Analysis Steps

• Supplement the Use-Case Description• 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• Checkpoints

Page 94: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

94

187

• The system displays a list of course offerings.

• The system retrieves and displays a list of current course offerings from the course catalog legacy database.

Supplement the Use-Case Description

188

Use-Case Analysis Steps

• Supplement the Use-Case Description• 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• Checkpoints

Page 95: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

95

189

• An abstraction• Describes a group of objects with common:

– Properties (attributes)– Behavior (operations)– Relationships– Semantics

Class Name

Attributes

Operations

Review: Class

Professor

nameProfessorId : UniqueId

create()save()delete()change()

190

Review: Use-Case Realization

Class Diagrams

Sequence Diagrams

Use Case

Collaboration Diagrams

Use-Case Model Design Model

Use Case Use-Case Realization

Page 96: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

96

191

Find Classes From Use-Case Behavior• The complete behavior of a use case has to

be distributed to analysis classes

192

System boundary Use-case

behavior coordination

System information

What is an Analysis Class?<<boundary>>

<<control>>

<<entity>>

Page 97: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

97

193

Use Cases AnalysisClasses

SourceCode

ExecDesignElements

Use-Case Analysis

Analysis Classes: A First Step Towards Executables

194Environment Dependent

Analysis classstereotype

What is a Boundary Class?• Intermediates between the interface and

something outside the system• Several Types

– User interface classes– System interface classes – Device interface classes

• One boundary class per actor/use case pair

Page 98: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

98

195

Model interaction between the system and its environment

Customer

<<boundary>>

<<boundary>>

<<control>><<boundary>>

<<entity>> <<entity>>

The Role of a Boundary Class

196

Student Course Catalog SystemRegister for Courses

Example: Finding Boundary Classes

• One boundary class per actor/use case pair

RegisterForCoursesForm CourseCatalogSystem

Page 99: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

99

197

Concentrate on the responsibilities, not the details!

Guidelines: Boundary Class• User Interface Classes

– Concentrate on what information is presented to the user

– Do NOT concentrate on the UI details• System and Device Interface Classes

– Concentrate on what protocols must be defined– Do NOT concentrate on how the protocols will

be implemented

198

Glossary

Business-Domain Model

Environment Independent

Analysis class stereotype

Use Case

Architectural Analysis Abstractions

What is an Entity Class?• Key abstractions of the system

Page 100: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

100

199

Store and manage information in the system

Customer

<<boundary>>

<<boundary>>

<<control>><<boundary>>

<<entity>> <<entity>>

The Role of an Entity Class

200

Example: Finding Entity Classes

• Use use-case flow of events as input • Key abstractions of the use case• Traditional, filtering nouns approach

– Underline noun clauses in the use-case flow of events

– Remove redundant candidates– Remove vague candidates– Remove actors (out of scope)– Remove implementation constructs– Remove attributes (save for later)– Remove operations

Page 101: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

101

201

Example: Candidate Entity Classes

• Register for Courses (Create Schedule)

Student

ScheduleCourseOffering

202

Use Case

Use-case dependent, Environment independent

Analysis class stereotype

What is a Control Class?• Use-case behavior coordinator• One control class per use case

Page 102: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

102

203

The Role of a Control Class

Coordinate the use-case behavior

Customer

<<boundary>>

<<boundary>>

<<control>><<boundary>>

<<entity>> <<entity>>

204

Course Catalog SystemRegister for CoursesStudent

Example: Finding Control Classes

• One control class per use case

RegistrationController

Page 103: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

103

205

Student Course Catalog SystemRegister for Courses

Use-Case Model

Design Model

Example: Summary: Analysis Classes

RegisterForCoursesForm CourseCatalogSystem Student Schedule

CourseOffering RegistrationController

206

Use-Case Analysis Steps

• Supplement the Use-Case Descriptions• 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• Checkpoints

Page 104: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

104

207Use Case Use-Case Realization

Sequence Diagrams Collaboration Diagrams

Distribute Use-Case Behavior to Classes• For each use-case flow of events:

– Identify analysis classes – Allocate use-case responsibilities to analysis

classes– Model analysis class interactions in interaction

diagrams

208

Guidelines: Allocating Responsibilities to Classes

• Use analysis class stereotypes as a guide– Boundary Classes

• Behavior that involves communication with an actor

– Entity Classes• Behavior that involves the data encapsulated within

the abstraction

– Control Classes• Behavior specific to a use case or part of a very

important flow of events(continued)

Page 105: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

105

209

Guidelines: Allocating Responsibilities to Classes (cont.)

• Who has the data needed to perform the responsibility?– One class has the data, put the responsibility with the

data– Multiple classes have the data:

• Put the responsibility with one class and add a relationship to the other

• Create a new class, put the responsibility in the new class, and add relationships to classes needed to perform the responsibility

• Put the responsibility in the control class, and add relationships to classes needed to perform the responsibility

210

The Anatomy of Sequence Diagrams

1: PerformResponsibility

Client Object Supplier Object

Message

:Client :Supplier

Focus of Control

This is a sample script.

Reflexive MessageObject Lifeline

1.1: PerformAnotherResponsibility

Hierarchical MessageNumbering

Page 106: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

106

211

Example: Sequence Diagram: Student

: RegisterForCoursesForm : RegistrationController : Schedule : Student : Course Catalog: CourseCatalogSystem

A list of the available course offerings for this semester are displayed

create a new schedule

1: // create schedule( )

5: // display course offerings( )

2: // get course offerings( )

3: // get course offerings(forSemester)

6: // display blank schedule( )

At this, point the Submit Schedule sub-flow is executed.

Sequence Diagram: Register for Courses / Register for Courses - Basic Flow (Submit Schedule)

7: // select 4 primary and 2 alternate offerings( )

8: // create schedule with offerings( ) 9: // create with offerings( )

A blank schedule is displayed for the students to select offerings

10: // add schedule(Schedule)

4: // get course offerings( )

212

1: PerformResponsibility

Client Object

Supplier Object

Message

Link

:Client

:Supplier

The Anatomy of Collaboration Diagrams

Page 107: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

107

213

Example: Collaboration Diagram

: Student

: RegisterForCoursesForm

: RegistrationController

: Schedule

: Student

: CourseCatalogSystem

5: // display course offerings( )6: // display blank schedule( )

: Course Catalog

1: // create schedule( )7: // select 4 primary and 2 alternate offerings( )

2: // get course offerings( )8: // create schedule with offerings( )

9: // create with offerings( )

3: // get course offerings(forSemester)

10: // add schedule(Schedule)

4: // get course offerings( )

214

Alternate Flow 4 Alternate Flow 5 Alternate Flow n

Alternate Flow 1 Alternate Flow 2 Alternate Flow 3

AF1

AF2

AF3

Basic Flow

One Interaction Diagram Is Not Good Enough

Page 108: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

108

215

Collaboration Diagrams vs. Sequence Diagrams

• Collaboration Diagrams– Show relationships in

addition to interactions– Better for visualizing

patterns of collaboration

– Better for visualizing all of the effects on a given object

– Easier to use for brainstorming sessions

• Sequence Diagrams– Show the explicit

sequence of messages– Better for visualizing

overall flow– Better for real-time

specifications and for complex scenarios

216

Use-Case Analysis Steps• Supplement the Use-Case Descriptions• 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• Checkpoints

Page 109: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

109

217

// PerformResponsibility

:Client :Supplier

Supplier

// PerformResponsibility

Interaction Diagram

Class Diagram

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

218

Example: View of Participating Classes (VOPC) Class Diagram

Student

// get tuition()// add schedule()// get schedule()// delete schedule()// has pre-requisites()

<<entity>> RegistrationController

// get course offerings()// get current schedule()// delete current schedule()// submit schedule()// is registration open?()// save schedule()// create schedule with offerings()// update schedule with new selections()

<<control>>

CourseCatalogSystem

// get course offerings()

<<boundary>>

RegisterForCoursesForm

// display course offerings()// display blank schedule()// update offering selections()

<<boundary>>

Schedule

// commit()// select alternate()// remove offering()// level()// cancel()// get cost()// delete()// submit()// save()// any conflicts?()// create with offerings()// update with new selections()

<<entity>>

Page 110: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

110

219

Maintaining Consistency: What to Look For

• In order of criticality– Redundant responsibilities across classes– Disjoint responsibilities within classes – Class with one responsibility– Class with no responsibilities– Better distribution of behavior – Class that interacts with many other classes

220

Use-Case Analysis Steps• Supplement the Use-Case Descriptions• 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• Checkpoints

Page 111: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

111

221

ClassName<<stereotype>>

Attribute : Type = InitValueAttribute : Type = InitValueAttribute : Type = InitValue

attribute

In analysis, do not spend time on attribute signatures

Review: What is an Attribute?

CourseOfferingnumber : String = "100"startTime : TimeendTime : Timedays : EnumnumStudents : Int

<<entity>>

222

Finding Attributes

• Properties/characteristics of identified classes

• Information retained by identified classes• “Nouns” that did not become classes

– Information whose value is the important thing– Information that is uniquely "owned” by an

object– Information that has no behavior

Page 112: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

112

223

Review: What Is an Association?The semantic relationship between two or more classifiers that specifies connections among their instances

– A structural relationship, specifying that objects of one thing are connected to objects of another

Course<<entity>>

Student<<entity>>

Schedule<<entity>>

224

1: PerformResponsibility

Link

Association

CollaborationDiagram

ClassDiagram 0..*

Prime suppliers0..*

Client Supplier

:Client :Supplier

Client Supplier

PerformResponsibility()

Relationship for every link!

Finding Relationships

Page 113: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

113

225

Review: What is Aggregation?• A special form of association that models a whole-

part relationship between an aggregate (the whole) and its parts

Whole/aggregate part

0..20..*CourseOffering

<<entity>>Schedule<<entity>>

Student<<entity>>

1 0..*1

226When in doubt use association

• If two objects are tightly bound by a whole-part relationship– The relationship is an aggregation.

• If two objects are usually considered as independent, although they are often linked– The relationship is an association.

Association or Aggregation?

Car Door

0..2,411

Car Door

0..2,41

Page 114: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

114

227

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

association

Role Name

CourseOffering<<entity>>

Professor<<entity>>instructor

Department<<entity>>

Department Head

Course<<entity>>

preRequisites

228

Review: Multiplicity

2..4

0..1

1..*

0..*

1

*

• Unspecified• Exactly one• Zero or more (many,

unlimited)

• One or more• Zero or one (optional

scalar role)• Specified range• Multiple, disjoint

ranges2, 4..6

Page 115: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

115

229

What Does Multiplicity Mean?• Multiplicity answers two questions.

– Is the association mandatory or optional?– What is the minimum and maximum number of

instances that can be linked to one instance?

Course<<entity>>

0..3

0..*preRequisites 0..3

0..*CourseOffering

<<entity>> 0..* 10..* 1

230

CourseOffering<<entity>>

Schedule<<entity>>

primaryCourses

alternateCourses

CourseOffering<<entity>>

Schedule<<entity>> add student to

remove student from

Multiple associations must reflect multiple roles

Example: Multiple Associations

Page 116: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

116

231

Example: VOPC: Finding Relationships

RegisterForCoursesForm<<boundary>>

CourseOffering<<entity>>

Schedule<<entity>>

0..*primaryCourses

0..4Student

<<entity>>

0..*1

RegistrationController<<control>>

1 1

0..1

currentSchedule0..1

232

Use-Case Analysis Steps• Supplement the Use-Case Descriptions• 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• Checkpoints

Page 117: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

117

233

Review: Why Use Analysis Mechanisms?Oh no! I found a group of classes that has persistent data. How am I supposed to design these things if I don’t even know what database we are going to be using?

That is why we have a persistence analysis mechanism. We don’t know enough yet, so we can bookmark it and come back to it later.

Analysis mechanisms are used during analysis to reduce the complexity of analysis, and to improve its consistency by providing designers with a short-hand representation for complex behavior.

234

Analysis Class Analysis Mechanism(s)

Describing Analysis Mechanisms

• Collect all analysis mechanisms in a list• Draw a map of the client classes to the analysis

mechanisms

• Identify characteristics of the Analysis Mechanisms

Page 118: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

118

235

Analysis Class Analysis Mechanism(s)

StudentScheduleCourseOfferingCourseRegistrationController

Persistency, Security

Persistency, Legacy InterfacePersistency, Legacy InterfaceDistribution

Persistency, Security

Example: Describing Analysis Mechanisms

• Analysis class to analysis mechanism map

236

Example: Describing Analysis Mechanisms (cont.)

• Analysis mechanism characteristics• Persistency for Schedule class:

– Granularity: 1 to 10 Kbytes per product – Volume: up to 2,000 schedules– Access frequency

• Create: 500 per day• Read: 2,000 access per hour• Update: 1,000 per day• Delete: 50 per day

– Etc.

Page 119: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

119

237

Use-Case Analysis Steps

• Supplement the Use-Case Descriptions• 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• Checkpoints

238

Unify Analysis Classes

Page 120: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

120

239

SupplementarySpecification

Glossary

Use-Case Model

Design Model

Analysis Classes

Evaluate Your Results

240

Use-Case Analysis Steps

• Supplement the Use-Case Descriptions• 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• Checkpoints

Page 121: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

121

241(continued)

Checkpoints: Analysis Classes• Are the classes reasonable?• Does the name of each class clearly

reflect the role it plays?• Does the class represent a single well-

defined abstraction? • Are all attributes and responsibilities

functionally coupled?• Does the class offer the required

behavior?• Are all specific requirements on the

class addressed?

242

Checkpoints: Use-Case Realizations

• Have all the main and/or sub-flows been handled, including exceptional cases?

• Have all the required objects been found?

• Has all behavior been unambiguously distributed to the participating objects?

• Has behavior been distributed to the right objects?

• Where there are several interaction diagrams, are their relationships clear and consistent?

Page 122: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

122

243

Review: Use-Case Analysis

• What is the purpose of Use-Case Analysis?• What is an analysis class? Name and

describe the three analysis stereotypes.• What is a use-case realization?• Describe some considerations when

allocating responsibilities to analysis classes.

• How many interaction diagrams should be produced during Use-Case Analysis?

244

Exercise: Use-Case Analysis

• Given the following:– Use-Case Model, especially the

use-case flows of events– Key abstractions/classes– The Supplementary Specification– The possible analysis

mechanisms

(continued)

Page 123: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

123

245

(continued)

Exercise: Use-Case Analysis• Identify the following for a particular

use case:– The analysis classes, along with their:

• Brief descriptions• Stereotypes• Responsibilities

– The collaborations needed to implement the use case

– Analysis class attributes and relationships – Analysis class analysis mechanisms

246

Exercise: Use-Case Analysis

• Produce the following for a particular use case:– Use-case realization interaction

diagram for at least one of the use-case flows of events

– VOPC class diagram, containing the analysis classes, their stereotypes, responsibilities, attributes, and relationships

– Analysis class to analysis mechanism map

Page 124: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

124

247

Exercise: Review

Compare your use-case realization with the rest of the class

Do the interaction diagrams carry out the use-case flow of events?Are the stereotypes behaving properly?Is each association supported by a link?Does each association have multiplicity assigned? Have role names been assigned? Do they accurately represent the face the class plays in the relationship?

Payroll System

248

Part VII

Conclusion

Page 125: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

125

249

Course AssignmentsIndividual Assignments

Reports based on case studies

Project-Related AssignmentsAll assignments (other than the individual assessments) will correspond to milestones in the team project.As the course progresses, students will be applying various methodologies to a project of their choice. The project and related software system should relate to a real-world scenario chosen by each team. The project will consists inter-related deliverables which are due on a (bi-) weekly basis.There will be only one submission per team per deliverable and all teams must demonstrate their projects to the course instructor.A sample project description and additional details will be available under handouts on the course Web site.

250

Course ProjectProject Logistics

Teams will pick their own projects, within certain constraints: for instance, all projects should involve multiple distributed subsystems (e.g., web-based electronic services projects including client, application server, and database tiers). Students will need to come up to speed on whatever programming languages and/or software technologies they choose for their projects - which will not necessarily be covered in class.Students will be required to form themselves into "pairs" of exactly two (2) members each; if there is an odd number of students in the class, then one (1) team of three (3) members will be permitted. There may not be any "pairs" of only one member! The instructor and TA(s) will then assist the pairs in forming "teams", ideally each consisting of two (2) "pairs", possibly three (3) pairs if necessary due to enrollment, but students are encouraged to form their own 2-pair teams in advance. If some students drop the course, any remaining pair or team members may be arbitrarily reassigned to other pairs/teams at the discretion of the instructor (but are strongly encouraged to reform pairs/teams on their own). Students will develop and test their project code together with the other member of their programming pair.

Page 126: g22 3033 007 c21 - nyu.edu · Requirements Analysis ... Diagram Use Case DiagramsUse Case DiagramsUse Case Diagrams ... Phase Boundaries Mark Major Milestones Lifecycle Objective

126

251

Readings

ReadingsSlides and Handouts posted on the course web siteDocumentation provided with business and application modeling tools (Popkin Software Architect)

Project Frameworks Setup (ongoing)As per references provided on the course Web site

252

Next Session:Software Development Lifecycles (SDLCs)

Part I & II

Lifecycle PhasesTraditional Lifecycle ModelsAlternative TechniquesExtreme ProgrammingAgile Software DevelopmentRoles and Types of StandardsISO 12207: Life Cycle StandardIEEE Standards for Software Engineering Processes and SpecificationsHomework #2Project #2