26
How do Software Architects consider Non-Functional Requirements An Exploratory Study D. Ameller, C. Ayala, J. Cabot, X. Franch

How do Software Architects consider Non-Functional Requirements - An exploratory study

Embed Size (px)

Citation preview

Page 1: How do Software Architects consider Non-Functional Requirements - An exploratory study

How do Software Architects consider Non-Functional

RequirementsAn Exploratory Study

D. Ameller, C. Ayala, J. Cabot, X. Franch

Page 2: How do Software Architects consider Non-Functional Requirements - An exploratory study

2

Outline

• Motivation and objective

• Background

• The study

• Observations

• Conclusions and related work

Page 3: How do Software Architects consider Non-Functional Requirements - An exploratory study

3

MotivationNFRs SA

“the rationale behind each architecture decision is mostly about achieving certain NFRs”

“[NFRs] play a critical role during system development, serving as selection criteria for choosing among myriads of alternative designs”

“quality attribute requirements strongly influence a system’s architecture”

Little evidence from empirical studies support these statements

Page 4: How do Software Architects consider Non-Functional Requirements - An exploratory study

4

Objective

To conduct an exploratory study to investigate the following research question:

How do software architects deal with NFRs in practice?

Page 5: How do Software Architects consider Non-Functional Requirements - An exploratory study

5

Background

RE activities

Reqs. structure

NFR types

Arch. design Analysis Companies

Prj. leades

Prd. managers

Programmers

Users

Sw. architects

Interviews 5Interviews 11Interviews 2e-Survey 25e-Survey ?Questionnaire 15Questionnaire ?Group discus. 10Interviews 12

+ SLR in [Svensson et al. 2010]

Page 6: How do Software Architects consider Non-Functional Requirements - An exploratory study

6

BackgroundObservations:• No clear view in NFR elicitation• Cost-driven NFR quantification• Role-dependent view on NFR type’s importance• Lack of knowledge about NFR management• Vagueness of NFRs• Difficulty to test NFRs

• FRs still prevale• Need for more empirical studies

Page 7: How do Software Architects consider Non-Functional Requirements - An exploratory study

7

The Study• Type:

Exploratory study using qualitative research Seven RQs

• Target population: Software architects (or practitioners with that role) We invited 21 software organizations (Spain) We recruited 12 of them

13 interviews made

Page 8: How do Software Architects consider Non-Functional Requirements - An exploratory study

8

The Study

SCC: Software Consulting Company; SH: Software House; ITD: IT Department

Page 9: How do Software Architects consider Non-Functional Requirements - An exploratory study

9

The Study• Data collection:

Semi-structured interviews Focus: one single project Duration: ~1 hour

• 7 questions about architect profile and development methodology used in the project

• 10 questions about decision-making and NFRs Audio-taped Transcribed Checked

Page 10: How do Software Architects consider Non-Functional Requirements - An exploratory study

10

The Study• Analysis:

Two authors coded data independentlytabulation

Categories generationNVivo Software

ConsolidationGroup meetings

PresentationCounting technique

Page 11: How do Software Architects consider Non-Functional Requirements - An exploratory study

11

The Study• Limitations and mitigations:

Evaluation apprehension Confidentiality Understandability Piloting (4) Influential factors Single project Bad memory Questionnaire sent in advance The best project Ask for the most familiar Omitting data Results overviewed by respondants Researcher bias Two separated interpretations Generalize the findings We do not attempt to make

universal generalizations

Page 12: How do Software Architects consider Non-Functional Requirements - An exploratory study

12

Observations• RQ1: What is the role of the software

architect? Nobody had the “software architect” position Nomination: (experience, tec. knowledge) > architect skills 12 played other roles played in the project:

3 Project

Manager

Developer 5 Both

4

Page 13: How do Software Architects consider Non-Functional Requirements - An exploratory study

13

Observations• RQ2: Are there terminological confusions on

NFRs? Inability. “availability”, “accuracy”, “sustainability” Confusion. “ergonomic” instead of “easy to use” Incorrectness. “Maintainability is very important, because

when something is working, we can’t make changes” Worsened by the Spanish translation

Page 14: How do Software Architects consider Non-Functional Requirements - An exploratory study

14

Observations• RQ3: What types of NFRs are relevant to

software architects?

Perfo

rman

ce

Usabil

ity

Secur

ity

Availa

bility

Inte

rope

rabil

ity

Main

tena

nce

Accur

acy

Fault

Tolera

nce

Reusa

bility

Scalab

ility

Mod

ularit

y

Mon

itorin

g

Porta

bility

0

1

2

3

4

5

6

7

8

9

10

49 Software qualities

DomainTacit

Page 15: How do Software Architects consider Non-Functional Requirements - An exploratory study

15

Observations• RQ3: What types of NFRs are relevant to

software architects?

Licen

sing

issue

s

Techn

ologic

al po

lices

Client

's NT re

quire

men

ts

Costs

Exter

nal r

egula

tions

Availa

bility

of s

uppo

rt

Organ

izatio

nal p

olicie

s0

1

2

3

4

5

6

7

8

9

10

33 Non-technical reqts.

Page 16: How do Software Architects consider Non-Functional Requirements - An exploratory study

16

Observations• RQ4: How are NFRs elicited?

All architects considered elicitation as a gradual process… also never-ending

10

3 Mainly architect

User and architect

OutsourcedProjects

Page 17: How do Software Architects consider Non-Functional Requirements - An exploratory study

17

Observations• RQ5: How are NFRs documented?

9

No documentation

3 Some kind of strategy

1 Plain text

“I rarely document my projects because it costs money”

VolereISO/IEC 9126-basedAd-hoc

Documentation not always evolved!

Page 18: How do Software Architects consider Non-Functional Requirements - An exploratory study

18

Observations• RQ6: How are NFRs validated?

NFRs had been met by the end of the project?

11

2 Yes Not “yes”

Very vague justifications

“We wait for the client to complain”

Page 19: How do Software Architects consider Non-Functional Requirements - An exploratory study

19

Observations• RQ6: How are NFRs validated?

What NFRs were validated?

8

Efficiency Accuracy Usability Reliability 4 Unknown

1 None

Page 20: How do Software Architects consider Non-Functional Requirements - An exploratory study

20

Observations• RQ7: What type of tool support for NFRs is

used? Architects did not use any specific tool support for

NFR management

Page 21: How do Software Architects consider Non-Functional Requirements - An exploratory study

21

Observations• RQ7: What type of tool support for NFRs is

used? What about NFR-driven MDD (cf. [Ameller RE’10])

5 Not at all

4 Not viable

2 Just support

2 Not answer

“I would not trust”

Page 22: How do Software Architects consider Non-Functional Requirements - An exploratory study

22

Conclusions• Contributions

Corroborating previous evidences

Architects…performed other activities simultaneouslydid not share a common vocabularyshowed some misunderstandings and lack of knowledgeconsidered performance and usability as most importantmainly elicited NFRs iterativelymore often than not, didn’t documentvalidated just a few typeswere not enthusiastic about advanced tool support

Page 23: How do Software Architects consider Non-Functional Requirements - An exploratory study

23

Conclusions• Contributions

Finding previously unreported observationsArchitects…

considered NTRs almost as important as quality reqts.mainly elicited NFRs by themselvesclaimed that NFRs were satisfied at the end of projectdid not use any specific tool for NFR management

Page 24: How do Software Architects consider Non-Functional Requirements - An exploratory study

24

Conclusions• Contributions

Finding some misalignments or even contradictions with previous studies

Architects…did not exist as a differentiated rolequantification of NFRs was poor

Page 25: How do Software Architects consider Non-Functional Requirements - An exploratory study

25

Conclusions• Future work

Replication; consolidation with other studies• E.g., study on OSS domain [REFSQ’12]

Changing the conditions• E.g., influence of an starting architecture (Ferrari et al, REJ10)

• More research needed on: Cost-benefit analysis (e.g., documentation) Highly customizable NFR management (e.g., existence

of architect role) Exploring other communication channels (e.g., blogs)

Page 26: How do Software Architects consider Non-Functional Requirements - An exploratory study

Hope youliked it!

Contact: Xavier Franch<[email protected]>