introduction. what are non-functional requirements ? nfrs are also known as quality requirements...

77
Introduction Introduction

Upload: charlotte-burke

Post on 28-Dec-2015

216 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

IntroductionIntroduction

Page 2: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

What are Non-Functional Requirements ?What are Non-Functional Requirements ?What are Non-Functional Requirements ?What are Non-Functional Requirements ?

• NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].

• Unlike Functional Requirements, Non-Functional requirements states constraints to the system as well as particular behavior that the system must have.

• Non-Functional Requirements are always together with a Functional Requirement [EAGLE 95][Chung 00].

Page 3: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

NFRs are important for the success of the system !!

NFRs are important for the success of the system !!

Non-Functional Requirements examples

• Time to Market

• Reliability

• Security

• Modularity

• Portability

• Size

• Safety

• Testability

• Mobility

• Standard compliant

• Robustness

• Complexity

• Learnability

• Adaptability• Architectural integrity• Cost• Configurability• Efficiency• Maintainability• Flexibility• Profitability• Performance• Usability• Understandability• Risk• Resilience• Reusability

Page 4: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

Why bother with Non-Functional Requirements

Page 5: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

A Recent Press Release

WASHINGTON (AP, Jan 17th 2002) -- Microsoft's chairman, Bill Gates, is steering his software empire onto a new strategic heading, putting security and privacy ahead of new capabilities [new functionality] in the company's products.

In an e-mail to employees obtained by The Associated Press, Gates refers to the new philosophy as "Trustworthy Computing" and says his highest priority is to ensure that computer users continued to venture safely across an increasingly Internet-connected world.

Page 6: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

The London Ambulance System was deactivated just after its deployment because, among other reasons, many non-functional requirements were neglected during the system development

e.g. reliability (vehicles location), cost (emphasis on the best price), usability (poor control of information on the screen), performance (the system did what was supposed to do but he performance was unacceptable), [Finkelstein 96] [Breitman et all 99].

Another case neglecting non-functional requirements (NFRs)

Page 7: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

Nowadays, the market demands more and more non-functional

aspects to be implemented in information systems besides its

functionality.

Works [Dardene 93] [Mylopoulos 92] [Chung 95] have shown

that complex conceptual models must deal with non-functional

aspects.

This Non-Functional aspects should be dealt within the

process of Non-Functional Requirements (NFR) definition.

Why Non-Functional Requirements ?Why Non-Functional Requirements ?Why Non-Functional Requirements ?Why Non-Functional Requirements ?

Page 8: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

Why Non-Functional Requirements ?Why Non-Functional Requirements ?Why Non-Functional Requirements ?Why Non-Functional Requirements ?

Errors due to omission of NFRs or to not properly dealing with them are among the most expensive type and most difficult to correct [Mylopoulos 92] [Ebert 97] [Cysneiros 99].

Recent works point out that early-phase Requirements Engineering should address organizational and Non-Functional Requirements, while later-phase focus on completeness, consistency and automated verification of

requirements [Yu 97].

Page 9: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

Why Non-Functional Requirements ?Why Non-Functional Requirements ?Why Non-Functional Requirements ?Why Non-Functional Requirements ?

Few works addresses the integration of early and late requirements [Yu u95] [Cysneiros 99].

Interdependencies between NFRs must be identified and dealt with.

For Example :

A Clinical Analysis Lab information system has the following Functional Requirement.

• The system must have a file containing all the clients to be used by the Marketing Division.

Together with this Functional Requirements we have the following NFR:

• This file must be complete enough to allow the Marketing Division to prospect new clients.

But an NFR associated with the Client’s attendance states:

• Patient’s admission must last less then 4 minutes.

Page 10: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

• Suppose we are dealing with a Clinical Analysis Laboratory software system.

• There will be a Functional Requirement:• “The System must provide a data entry to input the results of tests

to a patient’s report”

• Associated to this Requirement one may find the following Security NFR:• “Depending on the result of a test only the supervisor will be able

to input this value to the patient’s report”

Functional x Non-Functional RequirementFunctional x Non-Functional RequirementFunctional x Non-Functional RequirementFunctional x Non-Functional Requirement

Page 11: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

Functional x Non-Functional RequirementFunctional x Non-Functional Requirement

• NFRs define global constraints– on a software system or

subsystem, – a functional requirement, – the development or – deployment processes

• NFRs are often subjective in nature

• NFRs are generally stated– informally, – are often contradictory,– difficult to enforce during

development – Difficult to evaluate for the

customer prior to delivery.

• FRs are local in nature (often defined as scenarios of interactions with the system)

• FRs are objective in nature.

• FRs are generally stated – more formally (structured

english, Use Cases/UML, formal methods)

– Usually do not conflict with each other.

– Achieving FRs can be enforced by todays design methods

– FRs can be evaluated by customers.

Page 12: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

Product-OrientedProduct-Oriented

• The focus is on the final product.

• Almost always uses a quantitative approach.

• Only measure what did or did not do. Do not help to prevent problems.

• Most of the NFR work use this approach [Keller 90] [Boehm 78] [Basili 91] [Hauser 88].

Approaches For Dealing with NFRsApproaches For Dealing with NFRsApproaches For Dealing with NFRsApproaches For Dealing with NFRs

Page 13: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

Quantitative approach

Software Object

Maintainability

Desired value

Measured value

comparison

Measurem

ent system

(1) Given an existing software object

(2) Lets measure the degree to which it meets maintainability using some maintainability metric.

(3) Lets compare the measured value with a desired value

Page 14: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

Process-OrientedProcess-Oriented

• The focus is on the software development process.

• Aims to help finding out the necessary NFRs during the development process.

• Always use a qualitative approach.

• Aims to help justifying design decisions.

• Few works use this approach [Dobson 91] [Chung 00] [Cysneiros 99].

Approaches to Deal with NFRsApproaches to Deal with NFRsApproaches to Deal with NFRsApproaches to Deal with NFRs

Page 15: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

Qualitative approach

Software Object1

Maintainability

Software Object2

good

Not so good

Some ordering vis-à-vis maintainabilitySome ordering vis-à-vis maintainability

good Bad

(1) Given two existing software objects

(2) Lets compare them with each other and see which one achieves maintainability, relatively speaking, better

Page 16: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

Product vs. Process

Product approachProduct approach

Software Objects

Maintainability

Desired value

Measured value

comparison

Measurem

ent system

Maintainability

(1) How can maintainability be achieved ?

Software object Interfaces

(2) By using encapsulation techniques to establish interfaces.

Performance

(3) May hurt performance of the system

Process approachProcess approach

(1) Existing software object

(2) Measuring software object

Page 17: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

Product and Process-oriented approaches are complementary to each other.

Product-oriented approaches can provide you with tools to validate the product.

Process-oriented approaches can guide in searching for ways to achieve NFRs while developing the software.

Approaches to Deal with NFRsApproaches to Deal with NFRsApproaches to Deal with NFRsApproaches to Deal with NFRs

Page 18: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

Eliciting is not Enough

• Integrating NFRs into data models can help to get software deployed faster and with lower development costs [Cysneiros 99].

Page 19: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

Our ProposalOur Proposal

• We propose a strategy to deal with NFR since the early stages of software development

• The first part presents some heuristics to elicit NFR and a systematic way to search for interdependencies

Uses the Language Extended Lexicon (LEL) [Leite 93] as an anchor for the definition of the non-functional model

• The second part presents some heuristics to integrate NFRs into conceptual models

Also uses the LEL as an anchor to build the functional model Extends the scenario model [Leite 97], the class, sequence and collaboration

diagrams [Rumbaugh 99] to deal with NFR

Page 20: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

The Proposed Strategy

Page 21: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

LELLEL

NFRGraphNFR

Graph

ScenariosScenarios

New Episodes,Resources and

Actors

New Episodes,Resources and

Actors

Class Diagram

Class Diagram

New Classes,Operations and

Attributes

New Classes,Operations and

Attributes

SequenceDiagramSequenceDiagram

CollaborationDiagram

CollaborationDiagram

NFR and its impacts

NFR and its impacts

Functional ViewFunctional View

Non-Functional View Non-Functional View

Use CasesUse Cases

New Actors

and Use Cases

New Actors

and Use Cases

New Classes,and messagesNew Classes,and messages

Page 22: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

Building the Non-Functional ViewBuilding the Non-Functional View

LELKnowledge

Base onNFRs

Primary NFRLELSymbol

LEL withNFRs

NFRGraph

Interdependencies

Changes due to ConflictResolution

1 2 3

Introduce NFRsin the LEL

Represent NFR

Knowledge on the Problem

Identify and SolveConflicts

Client

New NotionsNew Behavioral ResponsesNew Symbols

Positive and Negative InfluencesConflictsDesign Decisions

Page 23: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

NFR TaxonomyNFR Taxonomy

• A NFR can be classified as Primary and Secondary ones where the secondary once is a decomposition of a Primary one

• For Examples: Accuracy Primary

Numeric Write information

at the right time

• Dynamic NFR Are those that deal with more abstract concepts and frequently

demands an action to be

• Static NRR This type of NFR always demands some information to be used,

usually in a persistent way

SecondarySecondary

Page 24: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

Language Extended Lexicon (LEL)Language Extended Lexicon (LEL)

• Aims to register the vocabulary used in the UofD• It is based on a system of symbols composed of Notions

and Behavioural Responses• Notions specify the meaning of the symbol (denotation)• Behavioural Responses register the results driven from the

symbol utilization (connotation)• Its construction is based on the minimum vocabulary and

circularity principles

Page 25: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

LEL – Proposed ExtensionLEL – Proposed Extension

• We now register Primary NFR in the notion of the symbols• We register the fact that a notion or a behavioural response

is stated for satisfying an NFR from another symbol (eventually from the same symbol)

• We can now show what notions and behavioural responses are necessary to satisfy an NFR

Page 26: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

Building the Non-Functional ViewBuilding the Non-Functional View

LELKnowledge

Base onNFRs

Primary NFRLELSymbol

LEL withNFRs

NFRGraph

Interdependencies

Changes due to ConflictResolution

1 2 3

Add NFRsto the LEL

Represent NFR

Knowledge on the Problem

Identify and SolveConflicts

Client

New NotionsNew Behavioral ResponsesNew Symbols

Positive and Negative InfluencesConflictsDesign Decisions

Page 27: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

Add NFRs to the LELAdd NFRs to the LEL

• To each symbol of the LEL :– Check if any NFR belonging to the Knowledge Base may be

necessary in this symbol

– If it is true, represent it in the Notion

– Evaluate the possible consequences in this symbol and in other symbols due to NFR satisfaction

– Establish a dependency link between these notion and behavioural Reponses to this NFR

Page 28: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

ExampleExample

What NFR is Needed ?

Page 29: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional
Page 30: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

Building the Non-Functional ViewBuilding the Non-Functional View

LELKnowledge

Base onNFRs

Primary NFRLELSymbol

LEL withNFRs

NFRGraph

Interdependencies

Changes due to ConflictResolution

1 2 3

Add NFRs to the LEL

Represent NFR

Knowledge on the Problem

Identify and SolveConflicts

Client

New NotionsNew Behavioral ResponsesNew Symbols

Positive and Negative InfluencesConflictsDesign Decisions

Page 31: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

Represent NFRRepresent NFR

• We propose the use of the NFR Framework• NFR are represented using a graph structure very similar to the

And/Or trees used in problem solving• NFR are faced as softgoals that might be decomposed into more

refined subgoals until we get the subgoals that will represent how this NFR will be operationalized (its operationalizations)

• One system can have (usually does) n graphs Satisfice

• NFR are rarely 100% satisfied X

Satisfy • Some proposed extensions

Always use a symbol of the LEL to represent an NFR Topic Represent above the graph the actor(s) responsible for the

knowledge represented in the graph Introduces the concept of Dynamic and Static Operationalizations

Page 32: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

S Safety [Room]

Safety [Room. Light scene. Current light scene >= Safe Illumination]

Safety [Malfunction of OLS. All CLG set on]

Safety [Room. Malfunction]

S Safety

[Light Scene. Safe Illumination=14 Lux]

S

S

S

S S Safety

[Malfunction.Malfunction of OLS ]

Safety [Malfunction. Motion Detector]

S Safety [Malfunction. User. Get informed]

S Safety [Room.

Control Panel]

Safety [Located Near the Door]

S

S Safety [Malfunction. FM Get informed]

Facility Manager Actor who was the source of the KnowledgeActor who was the source of the Knowledge

Topic has to be a symbol of the LELTopic has to be a symbol of the LEL

Dynamic Operationalization

Dynamic Operationalization

Static Operationalization

Static Operationalization

S = SatisficedP = PartiallyD = Denied

S = SatisficedP = PartiallyD = Denied

Page 33: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

How to Create a GraphHow to Create a Graph

Safety [Room]

Page 34: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional
Page 35: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

SSafety[Room]

Safety[Malfunction of OLS.All CLG set on]

SSafety[Room.Light Scene.Safe Illumination=14 lux]

S SSafety[Malfunction.User. Get informed]

Safety[Located Near the Door]S

A First DecompositionA First Decomposition

Page 36: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

S Safety [Room]

Safety [Room. Light scene. Current light scene >= Safe Illumination]

Safety [Malfunction of OLS. All CLG set on]

Safety [Room. Malfunction]

S Safety

[Light Scene. Safe Illumination=14 Lux]

S

S

S

S S Safety

[Malfunction.Malfunction of OLS ]

Safety [Malfunction. Motion Detector]

S Safety [Malfunction. User. Get informed]

S Safety [Room.

Control Panel]

Safety [Located Near the Door]

S

S Safety [Malfunction. FM Get informed]

Facility Manager

Final VersionFinal Version

Page 37: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

Building the Non-Functional ViewBuilding the Non-Functional View

LALKnowledge

Base onNFRs

Primary NFRLELSymbol

LEL withNFRs

NFRGraph

Interdependencies

Changes due to ConflictResolution

1 2 3

Add NFRsto the LEL

Represent NFR

Knowledge on the Problem

Identify and SolveConflicts

Client

New NotionsNew Behavioral ResponsesNew Symbols

Positive and Negative InfluencesConflictsDesign Decisions

Page 38: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

Identify and Solve ConflictsIdentify and Solve Conflicts

1. Compare graphs with the same type (ex: Performance)

2. Using the Knowledge Base from the OORNF Tool, compare graphs with conflicting types (Ex: Security and Performance or Usability)

3. Pair wise graphs

For each of the above heuristics:– Register positive and negative interdependencies

– Try to solve possible conflicts (negative interdependencies)

Page 39: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

Example Example

POp. Restriction[ Patient’s Report]

PTime Restrictions[ Print Patient’s Report]

Manager of the Medical Bureau

D Claim [As soon as al the resultsare ready and reviewed the reportmust be printed]

P Time restrictions[LIS. Eletronicaly Signs Patient’s Report]

STime restrictions[ Medical Bureau . . Eletronicaly Signs Patient’s Report]

STime restrictions[LIS. Printing queue for Patient’s Report]

STime restrictions[ Medical Bureau . . Eletronical Signature]

S

Reliability[ Eletronicaly sign Patient’s Report]S

Reliability[test]

S Reliability[Range to be Eletronicaly signed]

S-

Reliability[LIS . signs if all results are within range]

Manager of the Processing Area

PTime Restrictions[Results Ready]

P PTime Restrictions[Results to Inspect]

Time Restrictions[ Admitted Tests]

Page 40: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

Using Catalogues – Another Alternative

Softgoal

Operationalization

Claim

Contribution Link

Correlation Link

Page 41: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional
Page 42: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

Traceability[ Who entered results]

S

Traceability[ Changes]

S

Traceability[ Test Results]S

Traceability[ When results Changed]

STraceability[What Results]S

STraceability[ Store Identification of ALL Who entered results]

S Traceability[ Store Date and time of ALL result changes]

Traceability[ Store ALL results]S

Page 43: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional
Page 44: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

Usability[ Assure Timeliness of Information]

S

Usaability[ Improve Cognition]

S

Usability[ Patient Adviser]S

Usability[ Provide Improved Presentation]

P

SUsability[Use a PDA]

S Usability[Use 5+2 Rule]

Usability[ Provide Coninuoes Access]

S

DUsability[Use a Desktop]

Usability[Reduce Memory Load]

S Usability[Use Graphics]

D

D Usability[Allow for Multiple Modality]

Security[ Patient’s Record]D

++++

Cost[ Patient Adviser]D

++ Availability[ Patient’s Record]S

--

++ --

Page 45: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

Extending Functional View ModelsExtending Functional View Models

Page 46: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

Extending Use CasesExtending Use Cases

• Every use case or actor included, due to NFR satisfaction, must be followed by an expression using the pattern: {NFR_Type[NFR_topic]}.

• Represent Special Conditions that must prevail to an Use Case as a note linked to this Use Case, using whenever possible OCL to describe these conditions– Ex: In a Light Control System

– The Use Case Turn Off Lights after T3 Sec must have a special condition saying that this will only happen if the room is empty

– We should them represent it as: Pre: room.number_people=0

Page 47: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

ExampleExample

Pick Up a PatientProcessing Area

Employee

Verify Access

Set Result

Check Sector

LIS

{Security[Input Results]}

{Security[Input Results]}

Check If results are in Range{Security[Input Results]}

{pre: (employee.sector=test.sector AND test.result in est.saferange) OR employee.position=“SM”}{Security[Input Results]}

Page 48: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

Extending Scenarios [Leite 97]Extending Scenarios [Leite 97]

• Every change in a scenario due to an NFR satisficing must be followed by the expression :

Constraint: {NFR[Topic]}

• Reason: Traceability between models

Page 49: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

Title

Goal

Actors

Resources

Episodes

Page 50: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

Extending the Class DiagramExtending the Class Diagram

• Every class will be named using a symbol of the LEL• Classes created due to an NFR satisficing will be follwed by the

same traceability pattern used in scenarios.

StatusLine

Place : IntegerCLG1 : BooleanCLG2 : Boolean

SetCLGOn (Number) {Usability [Room Control Panel]}

SetCLGOff (Number) {Usability [Room Control Panel]}

{Usability [Room Control Panel]}

Page 51: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

• Operations that are in the class due to an NFR satisficing will always be followed by the same kind of expression used in scenarios : {NFR[Topic]}

• We may have to represent special conditions that holds for an operation. These conditions will be represented between {} and must use, whenever possible, expressions written using OCL

• If these conditions impose a significant loss of space, we might represent them inside a note

Extending the Class Diagram (cont.)Extending the Class Diagram (cont.)

Page 52: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

ExampleExample

SetRoomAsOccupied() pre: malfunction of Msensor

Increment_people() Pre: Motion sensor sends signalPost:NR_i_people=NR_i_people@pre+1

Decrement_people()Pre: Motion sensor sends signalpost: NR_i_people=NR_i_people@pre-1

SetRoomAsOccupied() pre: malfunction of Msensor

Increment_people() Pre: Motion sensor sends signalPost:NR_i_people=NR_i_people@pre+1

Decrement_people()Pre: Motion sensor sends signalpost: NR_i_people=NR_i_people@pre-1

Place

AdviseUserofMalfunction() {Safety [Room]}AdviseFMofMalfunction {Safety [HS]GetOLSValue() {Op.Cost [Control System]}SetRoomAsOccupied() {Accuracy [Room]}Increment_people() {Accuracy [Room]}Decrement_people() {Accuracy [Room]}TurnOnEmergency() : voidQuit() : voidTurnOff() : void

Page 53: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

• Attributes included in class to satisfice an NFR will be preceded of NR_ in its names

• If the Req. Eng. finds it is necessary, the attribute may be followed by the same kind of expression used before to add traceability: {NFR[topic]}

Place

timetoTurnOff : intdefaultLightLevel : intdescriptio : StringdefauttimettoTurnOff : int

NR_ i_People:int {Accuracy [Place]}NR_OLSValue : intNR_TurnOff:Boolean

Extending the Class Diagram (cont.)Extending the Class Diagram (cont.)

Page 54: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

The Integration MethodThe Integration Method

Page 55: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

Integrating NFR into Use CasesIntegrating NFR into Use Cases

NFRsGraph

Pick up aUse Case Diagran

Use CaseMap

Identify LEL symbols that appearsin Use Cases Names andActors

Use Cases NamesAcotrs

New Use Cases or actors Special Conditions

New scenario

Do it until there is no Use Case Diagram left to analyze

1

2

3

4

Evaluate again

5

6

7

Pick upnext graphthat applies

NFR graph whereThe symbols appears

Dynamic Operationalizations

New decisions onNFRs satisficing

Analyze possible impacts due to inclusions made in the Use Case Diagram

Evaluate necessary inclusions sto satisfice this NFR in theUse Case Diagram

Page 56: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

Example of Integration into Use Cases Example of Integration into Use Cases

Split Samples According to Sector

Take Samples to Sector

Place Samples in Trays

Sorting Area Employee

Get Samples

Processing Area Employee

S Traceability[Sample]

S STraceability[Moviment ]

Traceability[Alicoting ]

STraceability[Scan sample everytime it moves from place to place

S Traceability[Place where it was ]

STraceability[Place where it went to ]

S Traceability[Who scanned]

Manager of the Processing AreaManager of Quality Assurance

Page 57: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

Example of Integration into Use Cases (Cont.)Example of Integration into Use Cases (Cont.)

Split Samples According to Sector

Take Samples to Sector

Scan Samples

Place Samples in Trays

Sorting Area Employee

Get Samples

Processing Area Employee

{Traceability[Sample]}

Page 58: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

Integrating NFR into ScenariosIntegrating NFR into Scenarios

NFRsGraph

Pick up ascenario

Scenarios

Analyze cenários with titles that has LAL symbolswhich appears in an NFR graph

Scenario title

Scenario

New episodes,actors and resources

New scenario

Do it until there is no scenario left to analyze

1

2

3

4

Evaluate again

5

6

7

Pick upnext graphthat applies

NFR graph whereThe symbol appears

Dynamic Operationalizations

New decisions onNFRs satisficing

Analyze possible impacts due to inclusions made in the scenario

Evaluate necessary inclusions sto satisfice this NFR in thescenario

Page 59: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

Example of Scenarios IntegrationExample of Scenarios Integration

S Safety[

S Safety[

>=14 lux]

SSafety

Calculate LuxValue]

S

Safety

LuxValue]

SS Safety[ Dim Lights]

SS Safety[ Dim Lights.

Room. Illumination >=14 lux]

SSSafety[Room.Calculate LuxValue]

SS[Room.

]

Page 60: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

Example of Scenarios Integration (Cont.)Example of Scenarios Integration (Cont.)

Page 61: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

Integrating NFR into Class DiagramIntegrating NFR into Class Diagram

NFRGraphs

NFR Graphwhere the name of the chosen class appears

Static Operationalizations Dynamic Operationalizations

Class Diagram

Class, Attributes and Operations

New classes, attributes e and operations

NewDesign

Pick up aClass

Evaluate necessary inclusions sto satisfice this NFR in theclass diagram

Analyze possible impacts due to inclusions made in the class diagram

New decisions onNFRs satisficing

Evaluate again

Class

Look for NFRs that applies to this class

Do it until there is no classes left to analyze

Pick upnext graphthat applies

1

2

3

4

5

6

7

Page 62: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

Sequence and Collaboration DiagramsSequence and Collaboration Diagrams

1

ClassDiagram

Pick upa classe with NFR

Operations due toNFRs satisficing

SequenceDiagram

Colaboration Diagram

Verify if operationrequires anymessages or special conditions to be included

New Messages /New Classes

Special Conditions

Special conditions2

New Messages /New Classes

Page 63: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

Examples From a Case StudyExamples From a Case Study

Page 64: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

Strategy ValidationStrategy Validation

• Strongly based on the replication project principle [Basili 96]• 3 different case studies• 2 in vitro (Controlled Environment)• 1 in vivo (Real Application Environment)• In all the 3 cases we used conceptual models built by the other

teams and we applied the proposed strategy– We built the Non-Functional View

– We integrated the NFRs from this view into the conceptual models developed by the other teams

Page 65: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

Case StudiesCase Studies

• Case Study I Light Control System following a proposal presented in a Dagstuhl Seminar.

Conducted by Breitman [Breitman 00] as one of the case studies of her Ph.D. thesis.

• Case Study II Another specification of Light Control System, built by a group of

undergraduate students from the Computer Science Course of PUC_Rio

• Case Study III A Laboratory Information System (LIS) developed by a team from a software

house specialized in this domain. We used the conceptual model restricted to the processing area

Page 66: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

Details on Case Study IIIDetails on Case Study III

• We built the LEL with the NFR using structured interviews and existing documentation

• From this LEL we built the set of NFR graphs• We validated this graphs together with the stakeholders• After this validation we did the integration between the

functional and the non-functional views• Several changes were made in the existing class diagram

Page 67: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

Integrating NFR into Use CasesIntegrating NFR into Use Cases

SSecurity[Input Results]

S Security[Check if employee isauthorized ]

SSecurity[Acess information]

S

Pick Up a Patient

Verify Access

Processing Area Employee

Set Results

LIS

Security[Regular Check]

S

Security[aditional Check]

SSecurity[Check if result is within permited value ]

Security[Test. Safe Range]

S

SSecurity[Minimum] S

Security[Maximum]

Security[Check if is employee is from the same sectorwhere the test is processed]

S

SSecurity[Test. Sector]

SSecurity[Employee.Sector]

Manager of BiochemestryManager of Hematology

SSecurity[Employee. Position=“SM”]

Input Results Use Case Diagram

Input Results Use Case Diagram

Page 68: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

Resulting Use Case DiagramResulting Use Case Diagram

Pick Up a PatientProcessing Area

Employee

Verify Access

Set Result

Check Sector

LIS

{Security[Input Results]}

{Security[Input Results]}

Check If results are in Range{Security[Input Results]}

{pre: (employee.sector=test.sector AND test.result in est.saferange) OR employee.position=“SM”}{Security[Input Results]}

Page 69: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

Using Another LEL SymbolUsing Another LEL Symbol

SValue[Test Result]

S

SValue[Automatic Assignment]

Value[LIS.Check if Value is within range]

D

Claim[“Only results within certain limits can be assigned to patient’s report without review]

S Value[Normal Range]

SValue[LIS.Tag resultsout of Normal Range]

SValue[Repeat Test]

SAccuracy[LIS. Mark Test to be repeated]

S Accuracy[LIS.Send Test to be repeatedto Analyzer]

SReliability[Test Result]

SCorrectness[Test Result]

Manager of the Processing area

Page 70: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

Part of the Resulting Use Case Diagram

Pick Up a PatientProcessing Area

Employee

Verify Access

Set Result

Check Sector

LIS

{Security[Input Results]}

{Security[Input Results]}

Check If results are in Range{Security[Input Results]}

Tag Results Out of Range{Reliability [Test Result]}

Mark Test To be Repeatedt{Reliability [Test Result] }

{pre: (employee.sector=test.sector AND test.result in est.saferange) OR employee.position=“SM”}{Security[Input Results]}

Page 71: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

Using the Strategy on the Class “Result to Inspect”Using the Strategy on the Class “Result to Inspect”

S Traceability[Result to Inspect]

STraceability[LIS. Keeps historical

Log of who hasassigned which results]

S

Traceability[ Log of Inspection ]

Manager of Biochemestry

S

Traceability[Who used]

S STraceability

[When used]

Traceability[Which Result]

Result to Inspect

SampleNumberTestResult

InputResult()AssigntoAdmittedTest()ReadFromAnalyzer()

SetResult()

AskResult()

Log of Inspection

SampleNumberDate TimeTestResultEmployee

CreateLog()AddRegistertoLog()SearchbySample()SearchbyPatient()SearchbyDate()

{Traceability [Inspect Tests]}

Page 72: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

Using the Strategy on the Class “Medical Bureau”Using the Strategy on the Class “Medical Bureau”

POp. Restriction[Patient’s Report]

PTime Restrictions[Print Patient’s Report]

Manager of the Medical Bureau

D Claim [As soon as al the resultsare ready and reviewed the reportmust be printed]

P Time restrictions[LIS. Eletronicaly Signs Patient’s Report]

STime restrictions[Medical Bureau Doctor. Eletronicaly Signs Patient’s Report]

STime restrictions[LIS. Printing queue for Patient’s Report]

STime restrictions[Medical Bureau Doctor. Eletronical Signature]

SReliability[Eletronicaly sign Patient’s Report]

SReliability[test]

S Reliability[Range to be Eletronicaly signed]

S

-

Reliability[LIS . signs if all results are within range]

Manager of the Processing Area

PTime Restrictions[Results Ready]

P PTime Restrictions[Results to Inspect]

Time Restrictions[Admitted Tests]

Medical Bureau

ReviewPatientReport()PrintDelayedReport()PrintPromissedReport()

NR_EletSignature {Op. Restriction [Patient’s Report] }

GetSignature {Op. Restriction [Patient’s Report]}

SetSignature {Op. Restriction [Patient’s Report]}

Page 73: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

: Medical Bureau

: Visit : Admitted Tests : Patient's Report

: Sector

* GetSampleNumber( )

GetAdmittedTests( )

GetResult( )

[Se OK] PrintPatientReport( )

[ Se Nao OK] SetPatienttoReview( )

Review Patient Report

Applying the Strategy on Sequence DiagramsApplying the Strategy on Sequence Diagrams

Page 74: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

: Medical Bureau

: Visit : Admitted Tests : Patient's Report

: Sector

* GetSampleNumber( )

GetAdmittedTests( )

GetResult( )

[Se OK] PrintPatientReport(NR_EletSignature)

[ Se Nao OK] SetPatienttoReview( )

GetSignature( ) {Op. Restriction [Patient's report]}

Review Patient Report

Page 75: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

Consolidating the Case StudiesConsolidating the Case Studies

• 46% of the Existing Classes were somehow changed • 45% more operation• 37% more attributes• Estimated Overhead of 7%

Case Study III1728 hours/man to build the functional view121 hours/man to build the non-functional view and to integrate it to the

functional viewCompatible with the overhead of 10% found in a previous case study

[Cysneiros 01]

Page 76: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

[Basili 91] Basili, V. and Musa, J. “The Future Engineering of Software a Management Perspective”, IEEE Computer 24 1991 pp:90-96

[Boehm 76] Boehm, B., Brown, J.R. and Lipow, M. “Quantitative EVALUATION OF Software Quality” in Proc. of 2nd International Conference on Soft. Eng. San Francisco, oct 1976, pp:592-605.

[Boehm78] Boehm, B. Characteristics of Software Quality. North Holland Press, 1978 [Boehm96] Boehm, Barry e In, Hoh. Identifying Quality-Requirement Conflicts. IEEE Software, March 1996, pp.

25-35 [Breitman et al 99] Breitman,K. K., Leite J.C.S.P. e Finkelstein Anthony. The World's Stage: A Survey on

Requirements Engineering Using a Real-Life Case Study. Journal of the Brazilian Computer Society No 1 Vol. 6 Jul. 1999 pp:13:37.

[Breitman 00] Breitman, K.K. "Evolução de Cenários" Ph.D. Theses at PUC-Rio May 2000. [Chung 93]Chung L., “Representing and Using Non-Functional Requirements: A Process Oriented Approach”

Ph.D. Thesis, Dept. of Comp.Sci. University of Toronto, June 1993. Also tech. Rep. DKBS-TR-91-1. [Chung 95] Chung, L., Nixon, B. “Dealing with Non-Functional Requirements: Three Experimental Studies of a

Process-Oriented Approach” Proc. 17th Int. Con. on Software Eng. Seatle, Washington, April pp: 24-28, 1995. [Chung 00] Chung, L., Nixon, B., Yu, Eric and Mylopoulos, M. “Non-Functional Requirements in Software

Engineering” Kluwer Academic Publishers 1999. [Cysneiros 99] Cysneiros, L.M. and Leite, J.C.S.P. ‘Integrating Non-Functional Requirements into data model” 4 th

International Symposium on Requirements Engineering – Ireland June 1999. [Cysneiros 01] Cysneiros,L.M., Leite, J.C.S.P. and Neto, J.S.M. “A Framework for Integrating Non-Functional

Requirements into Conceptual Models” Requirements Engineering Journal – Vol 6 , Issue 2 Apr. 2001, pp:97-115. [Dardenne 93] Dardenne, A.. van Lamsweerde A, Fickas, S.. “Goal Directed Requirements

Acquisition”. Science of Computer Programming, Vol. 20 pp: 3-50, Apr. 1993. [Dobson 91] Dobson, J.E. “On Non-Functional Requirements” PDCS Techinical Report Series University of

Lancaster No 65 May 1991. [EAGLE 95] Evaluation of Natural Language Processing Systems, http://www.issco.unige.ch/ewg95 1995. [Ebert97]Ebert, Christof. Dealing with Nonfunctional in Large Software Systems. Annals of Software Engineering,

3, 1997, pp. 367-395. [Finkelstein 96] Finkelstein, A. and Dowell J. “A comedy of Errors: The London Ambulance Service

Case Study” Proceedings of the Eighth International Workshop on Software Specification and Design, IEEE Computer Society Press pp 2-5 1996

References

Page 77: Introduction. What are Non-Functional Requirements ? NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].Chung 93Boehm 96 Unlike Functional

Hauser 88] Hauser, J.R. and Hsiao, K. “The House of Quality”harvard Business review, May 1998 pp:63-73

[Keller 90] Keller, S.E. et al “Specifying Software Quality Requirements with Metrics” in Tutorial System and Software Requirements Engineering IEEE Computer Society Press 1990 pp:145-163

[Kirner 96] Kirner T.G. , Davis A .M. , “Nonfunctional Requirements of Real-Time Systems”, Advances in Computers, Vol 42 pp 1-37 1996.

[Leite 93] Leite J.C.S.P. and Franco, A.P.M. “A Strategy for Conceptual Model Acquisition ” in Proceedings of the First IEEE International Symposium on Requirements Engineering, SanDiego, Ca, IEEE Computer Society Press, pp 243-246 1993.

[Leite 97] Leite, J.C.S.P. et.al. ” Enhancing a Requirements Baseline with Scenarios.” Requirements Engineering Journal, 2(4):184-198, 1997.

[Lindstrom93] Lindstrom, D.R. Five Ways to Destroy a Development Project. IEEE Software, September 1993, pp. 55-58.

[Mylopoulos 92] Mylopoulos,J. Chung, L., Yu, E. and Nixon, B., “Representing and Using Non-functional Requirements: A Process-Oriented Approach.” IEEE Trans. on Software Eng, 18(6), pp:483-497, June 1992.

[Rumbaugh 99] Rumbaugh, J., Jacobson, I. and Booch,G. "The Unified Modeling Language Reference Manual" , Addison-Wesley, 1999.

[Sommerville 92] Sommerville, I. “Software Engineering” fourth edition, Addison-Wesley, 1992. [Yu 95] Yu, E., Bois, P. and Mylopoulos, J. “From Organizational Models to System Requirements” The 3rd International

Conference on Cooperative Information Systems, Vienna, May 1995 [Yu 97] Yu, Eric “Towards Modelling and Reasoning Support for Early-Phase Requirements Engineering” Proc. of the

3rd Interna. Symp. on Requirements Eng. Jan 1997 pp:226-235