CT1404 Lecture 2UML Framework Requirements Analysis System Design Implementation Use Cases Use Case...

44
CT1404 Lecture 2 Requirement Engineering 09/02/2013 Lecture 2 - (C) Nouf Aljaffan 1

Transcript of CT1404 Lecture 2UML Framework Requirements Analysis System Design Implementation Use Cases Use Case...

Page 1: CT1404 Lecture 2UML Framework Requirements Analysis System Design Implementation Use Cases Use Case Diagram Domain Model Software Architecture * sub-systems * layers & partitioning

CT1404 Lecture 2

Requirement Engineering

09/02/2013 Lecture 2 - (C) Nouf Aljaffan 1

Page 2: CT1404 Lecture 2UML Framework Requirements Analysis System Design Implementation Use Cases Use Case Diagram Domain Model Software Architecture * sub-systems * layers & partitioning

Today's Lecture

• Concept of system requirements

• Techniques to solicit requirements

• Elaboration of use case diagrams

• Organization and documentation of system requirements in the form of Use Cases

09/02/2013 Lecture 2 - (C) Nouf Aljaffan 2

Page 3: CT1404 Lecture 2UML Framework Requirements Analysis System Design Implementation Use Cases Use Case Diagram Domain Model Software Architecture * sub-systems * layers & partitioning

09/02/2013 Lecture 2 - (C) Nouf Aljaffan 3

Page 4: CT1404 Lecture 2UML Framework Requirements Analysis System Design Implementation Use Cases Use Case Diagram Domain Model Software Architecture * sub-systems * layers & partitioning

UML Framework

Requirements

Analysis

System

DesignImplementation

Use Cases

Use Case Diagram

Domain Model

Software Architecture* sub-systems

* layers & partitioning

Object Design

redrawn/extended class

diagram to reflect design

decisions: addition of interface

and control objects; addition

of constraints, etc.

Interface Design* Presentation Layer

Data Management* Storage mechanisms

UML FrameworkRequirements

Capture

InitiationFeasibilty Study

Scope of Development- domain description

- boundaries

static view

dynamicview

Domain Model Design Model

Class Diagram

Data Dictionary

CRCs

Interaction Sequence Diagram

Collaboration Diagram

Operation Specifications

Use CasesUse Case Diagram

Statecharts

Class Diagram

Data Dictionary

CRCs

Interaction Sequence Diagram

Collaboration Diagram

Operation Specifications

Use CasesUse Case Diagram

Statecharts

09/02/2013 Lecture 2 - (C) Nouf Aljaffan 4

Page 5: CT1404 Lecture 2UML Framework Requirements Analysis System Design Implementation Use Cases Use Case Diagram Domain Model Software Architecture * sub-systems * layers & partitioning

CONCEPT OF SYSTEM REQUIREMENTS

09/02/2013 Lecture 2 - (C) Nouf Aljaffan 5

Page 6: CT1404 Lecture 2UML Framework Requirements Analysis System Design Implementation Use Cases Use Case Diagram Domain Model Software Architecture * sub-systems * layers & partitioning

Context of requirements analysis

6

Requirements

( Analysis)

-

‘What’ ‘ ’

Build the right product

System requirements should set out

what the system

should do rather

than how this is

done

09/02/2013 Lecture 2 - (C) Nouf Aljaffan

Page 7: CT1404 Lecture 2UML Framework Requirements Analysis System Design Implementation Use Cases Use Case Diagram Domain Model Software Architecture * sub-systems * layers & partitioning

Type of Sys. Requirements

Functional requirement

• Describe a system service or function

• Examples: – What Systems do

– Inputs, Outputs, Process

Non-functional requirements

• Describes a constrain the system placed or on the development process

• Non-Functional requirements may be further divided into quality attributes and constraints

09/02/2013 Lecture 2 - (C) Nouf Aljaffan 7

Page 8: CT1404 Lecture 2UML Framework Requirements Analysis System Design Implementation Use Cases Use Case Diagram Domain Model Software Architecture * sub-systems * layers & partitioning

Non-functional requirements

quality attributes

• Usability

• Reliability

• Supportability

• performance

constraints

• Hardware

• interface

• language

• Security

09/02/2013 Lecture 2 - (C) Nouf Aljaffan 8

Page 9: CT1404 Lecture 2UML Framework Requirements Analysis System Design Implementation Use Cases Use Case Diagram Domain Model Software Architecture * sub-systems * layers & partitioning

Techniques to solicit requirements

• The task of the requirements determination phase is to determine, analyze and negotiate requirements with the stakeholders

09/02/2013 Lecture 2 - (C) Nouf Aljaffan 9

Page 10: CT1404 Lecture 2UML Framework Requirements Analysis System Design Implementation Use Cases Use Case Diagram Domain Model Software Architecture * sub-systems * layers & partitioning

Stakeholders

• People or organisations that are affected by the proposed system or have a potential influence on the requirements

• Includes: – Client

– User

– Development

– Others involved in context of use

• Important to involve key stakeholders in requirements capture process

09/02/2013 Lecture 2 - (C) Nouf Aljaffan 10

Page 11: CT1404 Lecture 2UML Framework Requirements Analysis System Design Implementation Use Cases Use Case Diagram Domain Model Software Architecture * sub-systems * layers & partitioning

Approaches to requirements capture

• Lots of methods & techniques

• Main approaches

– Data- processing oriented

– Task and activity oriented

– Viewpoint oriented

– Contextual method

• Requirements capture techniques:

– Observation

– Interview

– Questionnaires

– Scenario Walkthroughs

– Focus groups

– Prototypes.

09/02/2013 Lecture 2 - (C) Nouf Aljaffan 11

Page 12: CT1404 Lecture 2UML Framework Requirements Analysis System Design Implementation Use Cases Use Case Diagram Domain Model Software Architecture * sub-systems * layers & partitioning

Approaches to requirements capture

• Result:

• Large legalistic documents

• Easy to misinterpret

• Changes hard to manage

• Easy to miss / omit requirements

09/02/2013 Lecture 2 - (C) Nouf Aljaffan 12

Page 13: CT1404 Lecture 2UML Framework Requirements Analysis System Design Implementation Use Cases Use Case Diagram Domain Model Software Architecture * sub-systems * layers & partitioning

Approaches to requirements capture

• Modern approach

– Model using UML

• Use cases are used to capture functional requirements – Use Case Diagram

– Set of Use Case descriptions

• Perhaps augmented by an Activity Diagram.

09/02/2013 Lecture 2 - (C) Nouf Aljaffan 13

Page 14: CT1404 Lecture 2UML Framework Requirements Analysis System Design Implementation Use Cases Use Case Diagram Domain Model Software Architecture * sub-systems * layers & partitioning

Use Case Modeling with UML

• In combination with plain text – Large volume of requirements difficult to consume

as a whole

– Modeling provides constructs to help organize ideas

– Visualization helps clarify complex ideas

– Standards bring focus to key abstractions

09/02/2013 Lecture 2 - (C) Nouf Aljaffan 14

Page 15: CT1404 Lecture 2UML Framework Requirements Analysis System Design Implementation Use Cases Use Case Diagram Domain Model Software Architecture * sub-systems * layers & partitioning

Advantages of Use Cases

• Avoid analysis paralysis Use cases help break up the problem so it can be

solved incrementally.

Do just enough analysis to get started but we don’t have to worry that it’s hard to come back later and add more.

• Avoid gold plating Using use cases to derive functional requirements

avoids stating a functional requirement that is not directly tied to a user task needed to accomplish a business goal.

09/02/2013 Lecture 2 - (C) Nouf Aljaffan 15

Page 16: CT1404 Lecture 2UML Framework Requirements Analysis System Design Implementation Use Cases Use Case Diagram Domain Model Software Architecture * sub-systems * layers & partitioning

The Use Case Model

• Writing Requirements in Context”

• Identify user goals, corresponding system functions /business processes

• Brief, casual, and “fully-dressed” format

Actors System Goals 09/02/2013 Lecture 2 - (C) Nouf Aljaffan 16

Page 17: CT1404 Lecture 2UML Framework Requirements Analysis System Design Implementation Use Cases Use Case Diagram Domain Model Software Architecture * sub-systems * layers & partitioning

Stories- example of use case description

• Using a system to meet goals

• E.g. brief format – Process Sale: A customer arrives at a checkout

with items to purchase. The cashier uses the POS system to record each purchased item. The system presents a running total and line-item details. The customer enters payment information, which the system validates and records. The system updates inventory. The customer receives a Receipt from the system and then leaves with the items.

09/02/2013 Lecture 2 - (C) Nouf Aljaffan 17

Page 18: CT1404 Lecture 2UML Framework Requirements Analysis System Design Implementation Use Cases Use Case Diagram Domain Model Software Architecture * sub-systems * layers & partitioning

Definitions

• Actor: something with a behavior; person, system, organization

• Scenario: specific sequence of actions and interactions between actor(s) and system (= one story; success or failure)

• Use Case: collection of related success and failure scenarios describing the actors attempts to support a specific goal

09/02/2013 Lecture 2 - (C) Nouf Aljaffan 18

Page 19: CT1404 Lecture 2UML Framework Requirements Analysis System Design Implementation Use Cases Use Case Diagram Domain Model Software Architecture * sub-systems * layers & partitioning

Use Case Modelling

• Use Case diagram

– Diagram illustrating

• Actors

• Use cases

In the system

• Use Case Description

– Specification of what happens in each use case

• Textural description

• Diagrams

09/02/2013 Lecture 2 - (C) Nouf Aljaffan 19

Page 20: CT1404 Lecture 2UML Framework Requirements Analysis System Design Implementation Use Cases Use Case Diagram Domain Model Software Architecture * sub-systems * layers & partitioning

Use Case Diagrams

A cashier uses the POS system to scan an item.

A cashier uses the POS system to total items.

20

Page 21: CT1404 Lecture 2UML Framework Requirements Analysis System Design Implementation Use Cases Use Case Diagram Domain Model Software Architecture * sub-systems * layers & partitioning

System Boundary

Marks off the system as separate from its environment

Actors are outside

When no system boundary is shown, the system is assumed

21

Page 22: CT1404 Lecture 2UML Framework Requirements Analysis System Design Implementation Use Cases Use Case Diagram Domain Model Software Architecture * sub-systems * layers & partitioning

Actor

Someone or something outside the system that interacts with it

Actors represent “roles” not individuals

Smith

22

Page 23: CT1404 Lecture 2UML Framework Requirements Analysis System Design Implementation Use Cases Use Case Diagram Domain Model Software Architecture * sub-systems * layers & partitioning

Use Case

A use case achieves a goal of value to an actor

Defines a task which must be supported by the system

What system is for not how it does it

Starts with an active verb from the point of view of the system

23

Page 24: CT1404 Lecture 2UML Framework Requirements Analysis System Design Implementation Use Cases Use Case Diagram Domain Model Software Architecture * sub-systems * layers & partitioning

Communications

Called relations

Lines between Actor and Use Case summarize interactions graphically

Actors and use cases exchange information to achieve the goal but the details of interaction are not shown

24

Page 25: CT1404 Lecture 2UML Framework Requirements Analysis System Design Implementation Use Cases Use Case Diagram Domain Model Software Architecture * sub-systems * layers & partitioning

Considerations for Use Case Diagrams

Do not represent the flow of information or sequence of events.

Do not represent communication between actors. Keep the focus on putting the system in context, not the actors. Actors may collaborate through a use case.

Actors are not always roles played by a person. Actors may represent the role played by anything that acts on the system such as another system.

09/02/2013 Lecture 2 - (C) Nouf Aljaffan 25

Page 26: CT1404 Lecture 2UML Framework Requirements Analysis System Design Implementation Use Cases Use Case Diagram Domain Model Software Architecture * sub-systems * layers & partitioning

Use Case Diagram Summary

Show the system in its environment

Show what a system is used for

From a behavioral perspective:

– For capturing functional requirements

– For enabling incremental specification

– To understand who the system is for

Details of interactions are not shown

09/02/2013 Lecture 2 - (C) Nouf Aljaffan 26

Page 27: CT1404 Lecture 2UML Framework Requirements Analysis System Design Implementation Use Cases Use Case Diagram Domain Model Software Architecture * sub-systems * layers & partitioning

How to find use cases (Guideline)

• Choose the system boundary – Software, hardware, person, organization

• Identify the primary actors – Goals fulfilled by using the system

• Identify goals for each actor • Define use cases that satisfy goals

– User-goal level use cases will be one-to-one with user goals

– Exception: CRUD (Create, Retrieve, Update, Delete) • E.g., “edit user”, “delete user”, … • Collapse into a single use case

(e.g., Manage Users)

09/02/2013 Lecture 2 - (C) Nouf Aljaffan 27

Page 28: CT1404 Lecture 2UML Framework Requirements Analysis System Design Implementation Use Cases Use Case Diagram Domain Model Software Architecture * sub-systems * layers & partitioning

Choose the system boundary

• In the case study, the POS system itself is the system under design;

• Everything outside of it is outside the system boundary

• Identify what is outside would help to identify the boundary

09/02/2013 Lecture 2 - (C) Nouf Aljaffan 28

Page 29: CT1404 Lecture 2UML Framework Requirements Analysis System Design Implementation Use Cases Use Case Diagram Domain Model Software Architecture * sub-systems * layers & partitioning

Find primary actor and goals

• Questions to help find actors and goals – Is “time” an actor

because the system does something in response to a time event?

– In addition to human primary actors, are there any external software or robotic systems that call upon services of the system?

09/02/2013 Lecture 2 - (C) Nouf Aljaffan 29

Page 30: CT1404 Lecture 2UML Framework Requirements Analysis System Design Implementation Use Cases Use Case Diagram Domain Model Software Architecture * sub-systems * layers & partitioning

Actors, Goals & Boundaries

09/02/2013 Lecture 2 - (C) Nouf Aljaffan 30

Page 31: CT1404 Lecture 2UML Framework Requirements Analysis System Design Implementation Use Cases Use Case Diagram Domain Model Software Architecture * sub-systems * layers & partitioning

Valid or useful use cases

• Which of these is a valid use case?

– Negotiate a Supplier Contract

– Handle Returns

– Log In

– Move Piece on Game Board

• All are valid, but at different level; better question is “what is a useful level to express use cases”

09/02/2013 Lecture 2 - (C) Nouf Aljaffan 31

Page 32: CT1404 Lecture 2UML Framework Requirements Analysis System Design Implementation Use Cases Use Case Diagram Domain Model Software Architecture * sub-systems * layers & partitioning

Applying UML: Use Case Diagram

09/02/2013 Lecture 2 - (C) Nouf Aljaffan 32

Page 33: CT1404 Lecture 2UML Framework Requirements Analysis System Design Implementation Use Cases Use Case Diagram Domain Model Software Architecture * sub-systems * layers & partitioning

Diagram notation

09/02/2013 Lecture 2 - (C) Nouf Aljaffan 33

Page 34: CT1404 Lecture 2UML Framework Requirements Analysis System Design Implementation Use Cases Use Case Diagram Domain Model Software Architecture * sub-systems * layers & partitioning

Exercise 1 – Use Case Diagram • In groups of 3-4 spend 5 minutes attempting

to draw a use case diagram for the space invader game below:

09/02/2013 Lecture 2 - (C) Nouf Aljaffan 34

Page 35: CT1404 Lecture 2UML Framework Requirements Analysis System Design Implementation Use Cases Use Case Diagram Domain Model Software Architecture * sub-systems * layers & partitioning

Exercise 1 Solution

Move Right

Fire Laser

View High Scores

Play Game

Player

Move Left

09/02/2013 Lecture 2 - (C) Nouf Aljaffan 35

Page 36: CT1404 Lecture 2UML Framework Requirements Analysis System Design Implementation Use Cases Use Case Diagram Domain Model Software Architecture * sub-systems * layers & partitioning

Relationships in use cases • Between actor and use case

– Actor uses

• Generalisation of actors – Types of users

• Use case stereotypes – <<extend>>

• Optional

– <<include>> • Mandatory

• Stereotype is a UML extension mechanism to indicate a type of behaviour

09/02/2013 Lecture 2 - (C) Nouf Aljaffan 36

Page 37: CT1404 Lecture 2UML Framework Requirements Analysis System Design Implementation Use Cases Use Case Diagram Domain Model Software Architecture * sub-systems * layers & partitioning

Generalisation of Actors

Update Gradebook

View Grade

Student

View Gradebook for all students

Lecturer

BlackboardUser

Login

Blackboard Gradebook

Question:

Is Login part

of this

system?

09/02/2013 Lecture 2 - (C) Nouf Aljaffan 37

Page 38: CT1404 Lecture 2UML Framework Requirements Analysis System Design Implementation Use Cases Use Case Diagram Domain Model Software Architecture * sub-systems * layers & partitioning

Use case variants : include and extend

include

• Partial behaviour that is common across several use cases – E.g., PayByCredit occurs in several

use cases:

– Process Sale, Process Rental, and so on

• Solution: represent as a separate use case – “Refactoring and linking text to avoid

duplication” (Larman)

• “Use << include >>

extend • How to add an extension to a use

case that is frozen or too complicated?

• Solution: use extend to relate to an addition use case – any Use Case can have more

than one extend – use when describing a

variation on or in addition to normal behavior

– OPTIONAL BEHAVIOUR • Otherwise part of use

case

09/02/2013 Lecture 2 - (C) Nouf Aljaffan 38

Page 39: CT1404 Lecture 2UML Framework Requirements Analysis System Design Implementation Use Cases Use Case Diagram Domain Model Software Architecture * sub-systems * layers & partitioning

<<include>>

09/02/2013 Lecture 2 - (C) Nouf Aljaffan 39

Page 40: CT1404 Lecture 2UML Framework Requirements Analysis System Design Implementation Use Cases Use Case Diagram Domain Model Software Architecture * sub-systems * layers & partitioning

<<Extend>>

• Handle Gift

Certificate could

simply have been

recorded by adding

it as an extension

in the Extensions

section of Process

Sale

40

Page 41: CT1404 Lecture 2UML Framework Requirements Analysis System Design Implementation Use Cases Use Case Diagram Domain Model Software Architecture * sub-systems * layers & partitioning

Example of Use Case Variants

Place order Place back order

Supply

Customer Data Arrange delivery

<<extend>>

<<include>> <<include>>

Open account

<<include>>

shared functionality

additional

functionality

Extension Point

Place back order

09/02/2013 Lecture 2 - (C) Nouf Aljaffan 41

Page 42: CT1404 Lecture 2UML Framework Requirements Analysis System Design Implementation Use Cases Use Case Diagram Domain Model Software Architecture * sub-systems * layers & partitioning

Exercise 2 Consider Sonic the

hedgehog.

1. What can sonic do?

2. What are the use

cases?

3. Are there any

relationships

4. Draw the use case

diagram

http://www.ebaumsworld.com/games/play/1108/

1. Move left

2. Move right

3. Jump

4. Jump left

5. Jump right

6. Spin Dash

7. Pause 09/02/2013 Lecture 2 - (C) Nouf Aljaffan 42

Page 43: CT1404 Lecture 2UML Framework Requirements Analysis System Design Implementation Use Cases Use Case Diagram Domain Model Software Architecture * sub-systems * layers & partitioning

Exercise 2 – Possible Solution

Sonic the hedgehog

What about:

New game

Choose character

etc

Jump Left

Jump Right

Jump <<extend>>

<<extend>>Move Right

Move Left

Spin Dash

Player

Pause Game

09/02/2013 Lecture 2 - (C) Nouf Aljaffan 43

Page 44: CT1404 Lecture 2UML Framework Requirements Analysis System Design Implementation Use Cases Use Case Diagram Domain Model Software Architecture * sub-systems * layers & partitioning

Summary

• What is a use case

• How to draw a use case diagram

• Use case stereotypes

• Relationships between Actors

• Next Lecture

– Use case descriptions

09/02/2013 Lecture 2 - (C) Nouf Aljaffan 44