1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

75
1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli

Transcript of 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

Page 1: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

1

SOFTWARERequirements Engineering

CP7007

Prof.Dr. B.Chandramouli

Page 2: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

2

SOFTWARE REQUIREMENTS ENGINEERING

UNIT I DOMAIN UNDERSTANDING

UNIT II REQUIREMENTS ELICITATION

UNIT III FUNCTIONAL REQUIREMENTS

UNIT IV QUALITY ATTRIBUTES

AND USER EXPERIENCE

UNIT V MANAGING REQUIREMENTS

Page 3: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

3

Syllabus Unit I

DOMAIN UNDERSTANDING Introduction

Types of requirements

Requirements engineering process

Validating requirements

Requirements and design

Requirements and test cases

Introduction to business domain – Problem analysis – Fish bone diagram – Business requirements – Business process modeling – Business use cases – Business modeling notations

UML Activity diagrams

Page 4: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

4

The Requirements Problem: Standish Report, 1995

Survey of 350 US companies, 8000 projects8000 projects

(partial success = partial functionalities, excessive costs, big delays)

Major source of failure: poor requirements engineering 50% responses

Page 5: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

5

The Requirements Problem: European Survey, 1996

Coverage: 3800 EUR organizations, 17 countries

Main software problems perceived to be in...

– requirements specification

> 50% responses

– requirements evolution management

50% responses

[European Software Institute, 1996]

Page 6: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

6

Domain Understanding

Studying the system-as-is– Business organization: structure, dependencies, strategic

objectives, policies, workflows, operational procedures, ...– Application domain: concepts, objectives, tasks,

constraints, regulations, ...

– Strengths & weaknesses of the system-as-is

Identifying the system stakeholdersstakeholders:– Groups or individuals affected by the system-to-be, who

may influence its elaboration and its acceptance– Decision makers, managers, domain experts, users,

clients, subcontractors, analysts, developers, ...

ProductsProducts: Initial sections for preliminary draft proposal Glossary of terms

Page 7: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

7

IntroductionIntroductionto Fundamentals of REto Fundamentals of RE

Page 8: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

8

Definition

What is Requirements Engineering (RE) ?

– The problem world & the machine solution

– The scope of RE: the WHY, WHAT and WHO dimensions

– Types of statements involved: descriptive vs. prescriptive

– Categories of requirements: functional vs. non-functional

– The requirements lifecycle: actors, processes, products

– Target qualities and defects to avoid

– Types of software projects ( Green field, Single product, Multiple

line product, Inhouse, Outsourced, Customer driven, market

driven etc..)

– Requirements in the software lifecycle

– Relationship to other disciplines

Page 9: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

9

Fundamentals of RE: outline

start

ElicitationElicitation

alternative options

agreedrequirements

documented requirements

consolidatedrequirements

RE products and processes

Page 10: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

10

Fundamentals of RE: outline

start

Elicitation EvaluationEvaluation

alternative options

agreedrequirements

documented requirements

consolidatedrequirements

RE products and processes

Page 11: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

11

Fundamentals of RE: outline

start

Elicitation Evaluation

alternative options

agreedrequirements

documented requirements

consolidatedrequirements

SpecificationSpecification

RE products and processes

Page 12: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

12

Fundamentals of RE: outline

start

Elicitation Evaluation

alternative options

agreedrequirements

documented requirements

consolidatedrequirements

SpecificationQuality assuranceQuality assurance

RE products and processes

Page 13: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

13

Fundamentals of RE: outline

start

Elicitation Evaluation

alternative options

agreedrequirements

documented requirements

consolidatedrequirements

SpecificationQuality assurance

RE products and processes

Page 14: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

14

Fundamentals of RE: outline

start

Unit2: Elicitation

Unit 2:Evaluation

alternative options

agreedrequirements

documented requirements

consolidatedrequirements

Unit 3: Specification

Unit 4:Quality assurance

RE products and processes

Unit 5: Evolution management

Page 15: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

15

RE: A Preliminary Definition

CoordinatedCoordinated set of activitiesactivities ...

– for exploringexploring, evaluatingevaluating, documentingdocumenting, consolidatingconsolidating,

revisingrevising and adaptingadapting the objectivesobjectives, capabilitiescapabilities,

qualitiesqualities, constraintsconstraints & assumptionsassumptions on a software-

intensive systemsystem

– based on problemsproblems raised by the system-as-isas-is and

opportunitiesopportunities provided by new technologies

Page 16: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

16

The Scope of RE: the WHY, WHAT, WHO Dimensions

ObjectivesWHYWHY

a new system?

WHATWHAT services?

WHOWHO will be

responsiblefor what ?

satisfy

assignment

requirements, constraints,assumptions

problems, problems, opportunities,opportunities,

system knowledgesystem knowledge

System-to-beSystem-as-is

Page 17: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

17

Requirements in the Software Lifecycle

RequirementsDocument

Project estimations(size, cost, schedules)

Project workplan

Software prototype,mockup

Follow-up directives

Software architecture

Call for tenders,proposal evaluation

Quality Assurancechecklists

Project contract

Software evolutiondirectives

Software documentation

Acceptance test data

Implementationdirectives

User manual

RE, system design & software architecture design are inevitably intertwined

The RD impacts on many software artifacts

Page 18: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

18

The requirements engineering process

Feasibilitystudy

Requirementselicitation and

analysisRequirementsspecification

Requirementsvalidation

Feasibilityreport

Systemmodels

User and systemrequirements

Requirementsdocument

Page 19: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

19

19

Requirements Engineering Activities

Feasibility studyDetermine if the user needs can be satisfied with the available technology and budget.

Requirements analysis

Find out what system stakeholders require from the system.

Requirements definition

Define the requirements in a form understandable to the customer.

Requirements specification

Define the requirements in detail. (Written as a contract between client and contractor.)

Page 20: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

20

Problems of Requirements Analysis

Various problems typically arise:

– Stakeholders don’t know what they really want

– Stakeholders express requirements in their own terms

– Different stakeholders may have conflicting requirements

– Organisational and political factors may influence the system requirements

– The requirements change during the analysis process.

– New stakeholders may emerge.

Page 21: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

21

The Requirements Analysis Process

Requirementsvalidation

Domainunderstanding

Prioritization

Requirementscollection

Conflictresolution

Classification

Requirementsdefinition andspecification

Processentry

Page 22: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

22

Categories of Requirements

Functional requirements: Functional requirements: prescribe what services the software-to-be should provide

– capture intended software effects on environment, applicability conditions

– units of functionality resulting from software operations

“The software shall control the acceleration of all trains”

Non-functional requirements: Non-functional requirements: constrain how such services should be provided

– QualityQuality requirements: safety, security, accuracy, time/space performance, usability, ...

– Others: compliance, architectural, development reqs

– To be made precise in system-specific terms

“Acceleration commands shall be issued every 3 seconds to every train”

Page 23: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

23

Types of Non-functional Requirements

Performancerequirements

Spacerequirements

Usabilityrequirements

Ef ficiencyrequirements

Reliabilityrequirements

Portabilityrequirements

Interoperabilityrequirements

Ethicalrequirements

Legislativerequirements

Implementationrequirements

Standardsrequirements

Deliveryrequirements

Safetyrequirements

Privacyrequirements

Productrequirements

Organizationalrequirements

Externalrequirements

Non-functionalrequirements

Page 24: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

24

Requirements Validation

Requirements must be written so that they can be objectively validated and verified.

Imprecise:– The system should be easy to use by experienced

controllers and should be organised in such a way that user errors are minimised.Terms like “easy to use” and “errors shall be minimised” are useless as specifications.

Verifiable:– Experienced controllers should be able to use all the

system functions after a total of two hours training. After this training, the average number of errors made by experienced users should not exceed two per day.

Page 25: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

25

Precise Requirements Measures (I)

Property Measure

SpeedProcessed transactions/secondUser/Event response timeScreen refresh time

Size K Bytes; Number of RAM chips

Ease of useTraining timeRate of errors made by trained usersNumber of help frames

Page 26: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

26

Precise Requirements Measures (II)

Property Measure

ReliabilityMean time to failureProbability of unavailabilityRate of failure occurrence

RobustnessTime to restart after failurePercentage of events causing failureProbability of data corruption on failure

PortabilityPercentage of target dependent statementsNumber of target systems

Page 27: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

27

Requirements To Design

A requirements specification defines what the customer wants

A design specification defines how you satisfy what the customer wants.

– To go from step 1 to 2

First step is analysis and elicitation - to study the problem of input and output requirements carefully to make sure they are understood and make sense

Design starts with pictorially (UML) represent the analysis

Page 28: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

28

Requirements To Design

Use case: list of the user actions and system responses for a particular sub-problem in the order that they are likely to occur

Sequence diagram: shows all the objects involved in this use case across the horizontal axis, time is shown along the vertical axis

Class diagram

Component diagram

Activity diagram

State Transition diagram

Precondition: a statement of any assumptions or constraints on the method data before the method begins execution

Postcondition: a statement that describes the result of executing a method

Page 29: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

29

Requirements To Design

– UML diagrams are a design tool to illustrate the interactions between

• Classes

• Classes and external entities

– For better understanding Abstraction, Refining are used

– For better data design Inheritance, Information Hiding are used

– For better structure design Modularity, Architecture are used

Page 30: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

30

Requirements to Testing - Traceability

Traceability is concerned with the relationships between requirements, their sources and the system design

Source traceability– Links from requirements to stakeholders who proposed

these requirements;

Requirements traceability– Links between dependent requirements;

Design traceability– Links from the requirements to the design;

Page 31: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

31

CASE tool support

Requirements storage– Requirements should be managed in a secure, managed

data store.

Change management– The process of change management is a workflow process

whose stages can be defined and information flow between these stages partially automated.

Traceability management– Automated retrieval of the links between requirements.

Page 32: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

32

Business Domain

Page 33: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

3333

Background

A key component of Business Modeling (Domain Analysis) - in addition to Business Use Case Model and Business Object Model and other artifacts - is the Domain Model– Recall the Business Model is not only a graphical model, but

also other artifacts such as the Business Vision, Business Rules, Business Glossary, Business Risk List, and the Domain Model.

– All relate to the enterprise / organization.

– The Domain Model contains Key Abstractions (business / technology)– Is a Visual Model of business entities, relationships, multiplicities, and

more.

Prior to embarking on gathering requirements and capturing them via Use Cases (application use cases, requirements use cases, that is…), we need to understand the key entities in the business domain.

Page 34: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

343

Domain Modeling - an Introduction

Domain Modeling is the task of discovering “objects” (classes, actually) that represent those business entities and concepts.

Recognize that the domain model will be a superset of your entity classes needed for your application development.– These class diagrams – later on - will likely contain some of the

entities found in your domain model.

– These appear similar to ERDs, but they are not the same.

• Fully-attributed list (not a schema or physical database design…)

Page 35: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

3535

Domain Modeling - continued

Domain Models sometimes considered ‘informal’ class diagrams.

Developed as part of domain analysis (business modeling)

The ‘classes’ (entities) represent what you have learned about various ‘things’ (entities) and relationships between/among them in the business domain itself.

As a Visual Model, this model helps in understanding the domain.

Also serves as a Glossary, in that the entities will contain attributes and other defining qualities.– Think ‘Customer, ’ ‘Product Line’ etc.

Page 36: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

3636

Domain Modeling - continued

The Domain Model: – Does NOT wholly support requirements analysis (ahead).– Is not INTENDED to…– Addresses entities in the domain of the organization –

that may be quite apart (superset) from a computer application that may use them.

– Are normally not concerned with representations of • inheritance, • polymorphism, etc, but can show aggregation,

multiplicities, etc.• (as we would be when embarking on development of an

application.)

Page 37: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

3737

Domain Modeling - continued

In requirements analysis – – as part of gathering information on the application to

be developed,

– we develop class diagrams - contain entities (classes) taken from the domain model.

But the class diagrams (for development) will represent data that will be stored and manipulated by the application.

Page 38: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

3838

Domain Modeling - continued

Models produced as part of requirements analysis (ahead lectures) will contain:

– Entity classes – • some may be derived from Domain Model,

– Boundary classes – • used for the user interface and external system interfaces

– Control Classes • used for controlling logic and business rules, and, in

general, orchestrating the application functions.

Page 39: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

3939

So, what do we do?

Doing domain modeling is very important. Don’t want to spend too much time trying to model

everything!!! Yet we need to have a good starting point for requirements

analysis to solve the ‘problem.’

So, our domain modeling approach is to develop an ‘initial’ set of business entities (nouns).

This is a a static model of the domain by finding appropriate entities that represent the real key abstractions in the domain.– A ‘key abstraction’ example is Customer, Product, Account,

etc. – Serve to underpin system development later.

Page 40: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

400

Developing Entities for Domain Model

Sources (again) of Domain Knowledge. Here are a few:– Interviews– Questionnaires– Quarterly Reports– Mission Statements– Subject Matter Experts (SMEs)– Newsletters– Web pages– A company’s e-business….

Look for nouns in these sources! – these are candidate classes in the domain model.– More examples: Menu, Customer, Food order, Payment, On-line order…

Things!

– Customer (class with attributes) ‘orders’ (relationship) Food (class with attributes)

– Capture graphically! – ‘Customer’ and ‘Food’ are entities related by ‘Orders’ with

multiplicity 1..n.

Page 41: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

411

Developing Domain Entities

Read sources very closely; Capture these ‘nouns’ and noun phrases. Look for the ‘things’ in the domain…

Possessive phrases generally indicate that the nouns should be attributes rather than objects. – Try to identify attributes but omit operations.

Build associations (and name them) between domain entities Add multiplicities carefully Don’t worry about aggregations and association classes and much

more unless these relationships are clearly evident.

Model in some tool.

Page 42: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

42

Problem-Analysis-Modeling

- Requirements analysis

- Flow-oriented modeling

- Scenario-based modeling

- Class-based modeling

- Behavioral modeling

’005

Page 43: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

43 3

Goals of Analysis Modeling

Provides the first technical representation of a system

Is easy to understand and maintain

Deals with the problem of size by partitioning the system

Uses graphics whenever possible

Differentiates between essential information versus implementation information

Helps in the tracking and evaluation of interfaces

Provides tools other than narrative text to describe software logic and policy

Page 44: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

44

A Set of Models

Flow-oriented modeling – provides an indication of how data objects are transformed by a set of processing functions

Scenario-based modeling – represents the system from the user's point of view

Class-based modeling – defines objects, attributes, and relationships

Behavioral modeling – depicts the states of the classes and the impact of events on these states

Page 45: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

45

Requirements Analysis

Page 46: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

46 6

Purpose

Specifies the software's operational characteristics Indicates the software's interfaces with other system

elements Establishes constraints that the software must meet Provides the software designer with a representation of

information, function, and behavior– This is later translated into architectural, interface,

class/data and component-level designs

Provides the developer and customer with the means to assess quality once the software is built

Page 47: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

47 7

Overall Objectives

Three primary objectives– To describe what the customer requires– To establish a basis for the creation of a software design– To define a set of requirements that can be validated once

the software is built

All elements of an analysis model are directly traceable to parts of the design model, and some parts overlap

Page 48: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

48 8

Analysis Rules of Thumb

The analysis model should focus on requirements that are visible within the problem or business domain – The level of abstraction should be relatively high

Each element of the analysis model should add to an overall understanding of software requirements and provide insight into the following– Information domain, function, and behavior of the system

The model should delay the consideration of infrastructure and other non-functional models until the design phase– First complete the analysis of the problem domain

The model should minimize coupling throughout the system– Reduce the level of interconnectedness among functions and classes

The model should provide value to all stakeholders The model should be kept as simple as can be

Page 49: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

49 9

Domain Analysis

Definition– The identification, analysis, and specification of common, reusable capabilities within a specific application domain– Do this in terms of common objects, classes, subassemblies, and frameworks

Sources of domain knowledge– Technical literature– Existing applications– Customer surveys and expert advice– Current/future requirements

Outcome of domain analysis– Class taxonomies– Reuse standards– Functional and behavioral models– Domain languages

Page 50: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

50 50

Analysis Modeling Approaches

Structured analysis– Considers data and the processes that transform the data as

separate entities

– Data is modeled in terms of only attributes and relationships (but no operations)

– Processes are modeled to show the 1) input data, 2) the transformation that occurs on that data, and 3) the resulting output data

Object-oriented analysis– Focuses on the definition of classes and the manner in which they

collaborate with one another to fulfill customer requirements

Page 51: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

51

Fishbone diagram

Cause – effect diagram

Ishikawa diagram

Page 52: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

52

Page 53: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

53

Page 54: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

54

Business Process and management

Business Process : A set of logically related tasks performed to achieve a defined business outcome

Business Process Management(or BPM) refers to activities performed by organizations to manage and, if necessary, to improve their business processes

Page 55: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

55

Business Process Management Notation

Business Process Modeling Notation (BPMN) is a graphical notation that describes the logic of steps in a business process

Why is it important to model with BPMN?

• BPMN is an internationally accepted process modeling standard.

• BPMN is independent of any process modeling methodology.

• BPMN creates a standardized bridge which reduces the gap between business processes and their implementation.

• BPMN enables you to model processes in a unified and standardized way so that everyone in an organization can understand each other

Page 56: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

56

BPMN - TASK

Task: A task is carried out when the work in the process is not broken down into more detail. It is executed by one person and/or one application.

Page 57: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

57

BPMN – Sub Process

Subprocess: A Subprocess is a compound activity included in a process. It is compound because it includes a series of activities and a logical sequence (process) indicating that it can be analyzed in more detail. Visually it can be “collapsed” or “expanded

Page 58: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

58

Page 59: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

59

Unified Modeling Language

A visual modeling language A standardized general-purpose modeling

language in the field of software engineering. Used to specify, visualize, construct and

document the artifacts of an object-oriented

software -intensive system under development A set of 9 diagrams (UML 1.4) and 13 diagrams

(UML 2.0) Not an industry standard but used widely

Page 60: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

60

UML

Is not a S/W development methodologies

– Descriptive not prescriptive • Combines best practices from

• Data modeling (ex: ER diagram)• Business modeling (ex: Workflows)• Object modeling, and• Component modeling

• Combines• Booch method (G Booch)• OMT – Object modeling Techniques (J Rumbaugh)• OOSE (E Jacobson)

• An extensible language– Stereotypes, profiles

Page 61: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

61

UML Users

• Architect

• Domain expert

• Designer

• Programmer/Developer

• Instructor

Page 62: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

62

UML 2.0 Diagrams

Page 63: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

63

Important UML Diagrams

Page 64: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

64

Lets Discuss

• Use Case Diagram ( represents a Functional model ) Describes the functionality from user point of view)

• Sequence Diagram Describes the internal behavior as a sequence of messages

exchanged between a set of objects

• Statechart Describes the behavior in terms of states of individual objects and

its transitions

• Activity Diagram Describes the system behavior in terms of sequence of activities

• Class Diagram ( represents a Object model ) Describes the structure of the system in terms of objects, attributes,

associations and operations

Page 65: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

65

Use cases

Define system functional requirements in terms of Actors and Use cases– Each use case specify a piece of functionality– A use case can be elaborated in terms of sequence

of interactions between Actor and the domain objects

– Simple use cases may involve only one interaction– More complicated use cases may involve several

interactions

Page 66: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

66

Example: Use case Diagram

Page 67: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

67

Sequence Diagram

Shows sequence of object interactions in a use case Emphasis on messages passed between objects

– Objects represented by vertical lines

- Actor is on extreme left of page

– Messages represented by labeled horizontal arrows

- Only source and destination of arrow are relevant

- Message is sent from sending object to receiving object

– Time increases from top of page to bottom– Spacing between messages is not relevant– Message sequence numbering is optional

Page 68: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

68

Example: Sequence Diagram

Page 69: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

69

State Chart

Graphical representation of finite state machine

States are rounded boxes Transitions are arcs State chart relates events and states

– Event– Causes change of state– Referred to as state transition

State represents interval between successive events

Initial state– Arc with black ball at end

Page 70: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

70

Example: State Charts

Page 71: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

71

Activity Diagram

Models a process workflow

Different from State chart

(A State chart models states of an object)

Models concurrency and synchronization

Models normal and alternate flow of

control in the same diagram

• Can be combined with a state chart

Page 72: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

72

Example: Activity Diagram

Page 73: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

73

Class Diagram

Objects and Classes

Objects represent “things” in real world– Provide understanding of real world– Form basis for a software solution

An Object is a single “thing”– E.g., John’s car , – Mary’s account etc..

A Class (object class) is a “blue print” of

objects with the same (similar) characteristics

– E.g., account, employee, car, customer

Each object has an identity and is distinguishable from others in the class

Page 74: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

74

Example: Class Diagram

Page 75: 1 SOFTWARE Requirements Engineering CP7007 Prof.Dr. B.Chandramouli.

75

One case study

End of Unit 1