68
1 Introduction Introduction Next week Paper: Next week Paper: How do software architects consider non- functional requirements: An exploratory study Ameller, D. ; Software Eng. for Inf. Syst. Group, Univ. Politec. de Catalunya, Barcelona, Spain ; Ayala, C. ; Cabot, J. ; Franch, X. Requirements Engineering Conference (RE), 2012 20th IEEE International

1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

Embed Size (px)

Citation preview

Page 1: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

1

IntroductionIntroduction

Next week Paper:Next week Paper:

How do software architects consider non-functional requirements: An exploratory study

Ameller, D. ; Software Eng. for Inf. Syst. Group, Univ. Politec. de Catalunya, Barcelona, Spain ; Ayala, C. ;

Cabot, J. ; Franch, X.

Requirements Engineering Conference (RE), 2012 20th IEEE International

Page 2: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

Trial

This Trial contends that managers, across all functions, choose those solutions which yield short term upswings yet do not necessarily deliver the best long term results. Specifically,

managers within the technology sector are less likely to adopt projects which generate long term gain if the short term results incur high costs, lower profit margins and impact managerial

incentive pay.

Team 1: This is true and explain why very few experienced solutions are not implemented by industries

Team 2: This is not true hence there are other aspects driving companies not to adopt these solutions

2

Page 3: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

3

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 4: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

4

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 5: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

5

Why bother with Non-Functional Requirements

Page 6: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

6

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 7: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

7

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 8: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

8

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 9: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

9

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].

Many 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 10: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

10

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

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 11: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

11

• 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

into 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

allowed 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 12: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

12

Eliciting is not Enough

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

Page 13: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

13

A New StrategyA New Strategy

• 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 14: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

14

The Proposed Strategy

Page 15: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

15

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 16: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

16

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 17: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

17

NFR TaxonomyNFR Taxonomy

• A NFR can be classified as:• 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

Page 18: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

18

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 19: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

19

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 20: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

20

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 21: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

21

Add NFRs to the LELAdd NFRs to the LEL

• To each symbol of the LEL :– Check if any NFR may be necessary in this symbol. The

Knowledge Base may be used to help it.

– 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 22: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

22

ExampleExample

What NFR is Needed ?

Page 23: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

23

Page 24: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

24

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 25: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

25

Represent NFRRepresent NFR

• We use 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 26: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

26

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 27: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

27

How to Create a GraphHow to Create a Graph

Safety [Room]

Page 28: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

28

SSafety[Room]

A First DecompositionA First Decomposition

Safety [Room. Light scene.

Safety[Room. Malfunction] S S

S Safety[Room.

Control Panel]

Page 29: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

29

Second decomposition

SSafety[Room]

Safety [Room. Light scene.

Safety[Room. Malfunction] S S

S

Safe Illumination]

S Safety

[Light Scene. Safe Illumination=14 Lux]

S S Safety

[Malfunction.Malfunction of OLS ]

Safety [Malfunction. Motion Detector]

Safety [Located Near the Door]

S

S Safety [Malfunction. FM Get informed]

Safety [Room. Control Panel]

Page 30: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

30

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 31: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

31

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 32: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

32

Identify and Solve ConflictsIdentify and Solve Conflicts

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

2. Using the Knowledge Base (But not limited to) 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 33: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

33

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 34: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

34

Using Catalogues – Another Alternative

Softgoal

Operationalization

Claim

Contribution Link

Correlation Link

Page 35: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

35

Page 36: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

36

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 37: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

37

Extending Functional View ModelsExtending Functional View Models

Page 38: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

38

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 Clinical Lab system

• Before accepting a test result the system must:– Check if employee works for the sector performing the test

– Check if inputted result is within a safe range

Page 39: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

39

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 40: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

40

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 41: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

41

Title

Goal

Actors

Resources

Episodes

Page 42: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

42

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 43: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

43

• 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 hold 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 44: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

44

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 45: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

45

The Integration MethodThe Integration Method

Page 46: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

46

Integrating NFR into Use CasesIntegrating NFR into Use Cases

NFRsGraph

Pick up aUse Case Diagran

Use CaseDiagram

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 47: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

47

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 48: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

48

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 49: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

49

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 50: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

50

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 51: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

51

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

Page 52: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

52

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 53: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

53

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 54: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

54

Examples From a Case StudyExamples From a Case Study

Page 55: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

55

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 56: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

56

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 57: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

57

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 these graphs together with the stakeholders• After validation we did the integration between the functional

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

Page 58: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

58

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 59: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

59

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 60: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

60

Using Another NFR GraphUsing Another NFR Graph

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 61: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

61

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 62: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

62

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 63: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

63

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 64: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

64

: Medical Bureau

: Visit : Admitted Tests : Patient's Report

: Sector

* GetSampleNumber( )

GetAdmittedTests( )

GetResult( )

[If OK] PrintPatientReport( )

[ If Not OK] SetPatienttoReview( )

Review Patient Report

Applying the Strategy on Sequence DiagramsApplying the Strategy on Sequence Diagrams

Page 65: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

65

: Medical Bureau

: Visit : Admitted Tests : Patient's Report

: Sector

* GetSampleNumber( )

GetAdmittedTests( )

GetResult( )

[If OK] PrintPatientReport(NR_EletSignature)

[ If Not OK] SetPatienttoReview( )

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

Review Patient Report

Page 66: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

66

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 67: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

67

[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 68: 1 Introduction Next week Paper: Introduction Next week Paper: How do software architects consider non-functional requirements: An exploratory study Ameller,

68

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