• Non ci sono risultati.

Quality attributes

N/A
N/A
Protected

Academic year: 2021

Condividi "Quality attributes"

Copied!
54
0
0

Testo completo

(1)

Quality attributes

of software architectures

Paolo Ciancarini

(2)

Agenda

n

Exercise: Architectural qualities

n

ISO25010: System and software quality models

n

A model for expressing and testing architectural

requirements

(3)

Quality attributes

n

What is quality?

n

When a new system (eg. a software) is built, customers have wishes and want “quality”

n

Some wishes are functional requirements

n

Quality wishes are non functional requirements

(4)

examples

n

I wish a software to play chess (functional wish) so that I can win versus the world champion (quality wish)

n

I wish an app to call people (functional wish) so that I save money (quality wish)

n

I wish a system to drive my car (functional wish) so

that I have no accidents (quality wish)

(5)

Requirements (definition)

n

A Requirement is a condition or capability that

must be met by a system or component to satisfy a contract, standard, specification, or other form of request

n

Non-Functional Requirements are requirements

specifying general properties of a system, not its

specific functional behaviour

(6)

Non functional requirements

n

Requirements are sometimes described as being part of the FURPS spectrum, meaning Functional, Usability (UX), Reliability, Performance and

Supportability

n

The latter 4 types – URPS - are collectively called non-functional requirements.

n

The spectrum is usually expanded to FURPS+

since there are several more important categories

of non-functionals

(7)

Non functional vs functional

n

Non-Functional Requirements (NFRs) are considered to be the most important from an architectural perspective

n

They are "architectural requirements"

n

REMEMBER: a Product must meet both its

functional and non-functional requirements to

provide business value.

(8)

Context and design

https://www.iasaglobal.org/on-making-architectural-decisions/

(9)

Context and architecture

(10)

How to start designing an architecture: main questions

The sw architecture of any system is strongly influenced by non functional requirements

Architectural design is a set of decisions to satisfy all requirements, both functional and non-functional

I. How to express the qualities we want our

architecture to provide? Eg., what does it mean to say that a system is performant, or modifiable, or reliable, or secure?

II. How do we test or measure these non functional

requirements?

(11)

Some important qualities

n

Performance

n

Efficiency

n

Usability

n

Modifiability

n

Security

n

Testability

n

Availability

n

Time to market

n

Cost and benefit

n

Projected system lifetime

n

Targeted market

n

Rollout schedule

n

Integration / Legacy

(12)

Some system qualities are “architectural”

n Qualities of the system, eg. performance or modifiability

n Business qualities (such as time to market) that are affected by the architecture.

n Qualities, such as conceptual integrity, that are about the architecture itself although they indirectly affect other

qualities, such as modifiability

.

n Conceptual Integrity the architecture is coherent n Correctness the design is correct wrt to the requirements n Completeness the design covers all the requirements

n Flexibility the architecture supports future changes to its requirements n Reusability the architecture (re)uses existing assets

(13)

Brooks on “conceptual integrity”

I will contend that conceptual integrity is the most important consideration in system design. It is better to have a system omit certain anomalous features and improvements, but to reflect one set of design ideas, than to have one that contains many good but independent and uncoordinated ideas.

Fred Brooks, The Mythical Man-Month

(14)

Example: usability

n

Usability involves both architectural and nonarchitectural aspects.

n

The nonarchitectural aspects include making the user interface clear and easy to use.

n

Whether a system provides the user with the ability to cancel operations, to undo operations, or to re- use data previously entered is architectural,

however. These requirements involve the

cooperation of multiple elements.

(15)

Example: modifiability

n

Modifiability is determined by how functionality is divided (architectural) and by coding techniques within a module (nonarchitectural

n

a system is modifiable if changes impact the fewest

possible number of distinct elements..

(16)

Example: performance

n Performance involves both architectural and nonarchitectural dependencies.

n Performance depends partially on

n how much communication is necessary among components (architectural),

n what functionality has been allocated to each component (architectural),

n how shared resources are allocated (architectural),

n the choice of algorithms to implement selected functionality (nonarchitectural),

n how these algorithms are coded (nonarchitectural).

Events arrive Response within time constraints

Tactics to control

performance

(17)

Example: resilience

n

Resilience is the property that ensures that a system well behaves under stress:

n

it is the ability of a system to recover and, in some cases, transform itself from adversity

n

Resilience testing ensures that applications perform well in real-life conditions.

n

It is part of the non-functional sector of software testing that also includes testing compliance,

endurance, load, recovery, etc

(18)

ISO 25010: software qualities

Quality in use

n

Effectiveness

n

Efficiency

n

Satisfaction

n

Safety

n

Usability

Product quality

n

Functional suitability

n

Reliability

n

Performance efficiency

n

Operability

n

Security

n

Compatibility

n

Maintainability

n

Trasferability

(19)

ISO25010: sw product qualities

(20)

ISO25010: Quality in use

(21)
(22)

Qualities and trade-offs

n

The qualities are all good

n

The value of a quality is project specific

n

The qualities are not independent

(23)

Quality attributes: in use

n Safety freedom from risk: absence of catastrophic consequences on the users or the environment

n Usability is how easy it is for the user to accomplish tasks and what support the system provides for the user to accomplish this. Dimensions:

n Learning system features

n Using the system efficiently

n Minimizing the impact of errors

n Adapting the system to the user’s needs

n Increasing confidence and satisfaction

(24)

Quality attributes: product

n Modifiability is about the cost of change, both in time and money.

Performance is about timeliness. Events occur and the system must respond in a timely fashion.

n Testability refers to the ease with which the software can be made to demonstrate its faults or lack thereof. To be testable the system must control inputs and be able to observe outputs

n Maintainability is the ease with which a product can be maintained in order to isolate and correct defects, prevent unexpected breakdowns, meet new requirements

n Availability is concerned with system failure and duration of system

failures. System failure means unreadiness for correct service, when the system does not provide the service for which it was intended

n Reliability: the ability of a system or component to function under stated conditions for a specified period of time (=continuity of correct service)

n Dependability: availability + reliability + maintainability

(25)

Quality and metrics

(26)

Quality attributes shape the architecture

n

The critical choices made during architectural

design determine the ways the system meets the driving quality attribute goals

n

A good way to discuss and prioritize quality attribute requirements is a set of scenarios

Artifact

Environment

Source of stimulus Response

Stimulus

Response measure

(27)

Structuring a quality attribute scenario

i.

Source of stimulus

ii.

Stimulus

iii.

Environment

iv.

Artifact

v.

Response

vi.

Response measure

In the environment, the source throws the stimulus and hits the system in the artifact;

we get a response than can be measured

(28)

How to generate a scenario

n

A scenario is a system independent specification of a requirement with a measurable quality attribute

n

This table is a framework to structure scenarios

Elements Short description

Stimulus A condition to be considered when it arrives at a system Response The activity undertaken at the arrival of the stimulus

Source of stimulus An entity that generates the stimulus (human, external system, sensor, etc.)

Environment A system’s condition when a stimulus occurs

Stimulated artifact Some artifact that is stimulated; may be the whole system or part of it

Response measure The response to the stimulus should be measurable someway so that the quality requirement can be tested

(29)

Example from cars

Artifact:

Tires

Environment:

Highway driving Source of stimulus:

Road Response:

Control maintained Smooth ride

Low noise Stimulus:

Bumps

Response measure:

Deflection < N%

Noise < M dB

(30)

Suggestions

n

One stimulus per scenario

n

One environment per scenario

n

One artifact per scenario

n

Multiple response measures are OK

(31)

Example from software: security

Artifact:

User interface

Environment:

Normal operation Source of stimulus:

Users

Response:

Security maintained Acceptable delays Stimulus:

Dozens of simultaneous

logins

Response Measure: No unauthorized

users, login < 1 min

(32)

Example from software: modifiability

Scenario Part Possible Values

Source End user, developer, system admin

Stimulus Add/delete/modify/vary functionality, quality attribute or capacity

Artifact User interface, platform, environment, other system

Environment Runtime, compile time, build time, design time, setup, configuration

Response Places to be modified without other effect, test change, deployment

Response Measure

Cost of change in number of elements, effort, duration, money. Extent the change affects other functionality or quality attributes

(33)

Qualities must be testable

n

To be effective, quality attribute scenarios must be testable (just like any other requirement)

n

Therefore, the

n

Stimulus

n

Artifact

n

Environment

n

Response measure(s)

must be clear and specific

(34)

General availability scenario

(35)

Sample availability scenario

(36)

Availability

tactics

(37)

General modifiability scenario

(38)

Sample modifiability scenario

(39)

Modifiability tactics

(40)

General performance scenario

(41)

Sample performance scenario

(42)

Performance tactics

(43)

General security scenario

(44)

Sample security scenario

(45)

Security tactics

(46)

General testability

scenario

(47)

Sample testability scenario

(48)

Testability tactics

(49)

General usability scenario

(50)

Sample usability scenario

(51)

Usability tactics

(52)

References

n

ISO/IEC 25010:2011 Systems and software engineering -- Systems and software Quality

Requirements and Evaluation (SQuaRE) -- System and software quality models

n

Cervantes & Kazman, Designing sw architectures, AW 2016

n

Bass, Software architecture in practice, 3 ed

http://www.ece.ubc.ca/~matei/EECE417/BASS/

n

Babar, Agile Software Architecture, MK 2014

(53)

n http://www.spin.org.za/wp-content/uploads/2011/01/SPIN-21-QAS.pdf

n http://sa.inceptum.eu/sites/sa.inceptum.eu/files/Content/Quality%20Attribute%2 0Generic%20Scenarios-2.pdf

n Stoermer, “Moving Towards Quality Attribute Driven Software Architecture Reconstruction”, http://www.cs.vu.nl/~x/square/qadsar.pdf

(54)

Questions?

Riferimenti

Documenti correlati

The purpose of this Appendix is to review all the calculations of the Lekakis triple hot wire anemometry (3HWA) measurement method [27] because some errors have been found in

Per poter verificare gli effetti che la sostituzione fra risorse energetiche ed il miglioramento dell'efficienza d'uso delle stesse hanno su un sistema economico locale, si

This flexibility will also give the possibil- ity to test different First Wall (FW) materials, and technologies in reactor relevant regimes from both the points of view of plasma

After discussing the matter also at the Eurogroup meeting in early November 2018 (cf. the related Remarks by M. Centeno), in the meeting of December 3, 2018, the Eurogroup

With reference to a study area of the Emilia- Romagna region (Italy) representative of the regional wine-growing and producing sector, the specific aims of the study are the

The walk begins at vertex 0 and continues until every vertex has been visited and the walk returns to vertex 0.. Indeed the already visited verteces are contiguous, the starting

[r]

Adda, Buckling Analysis of Single-Walled Carbon Nanotubes Embedded in an Elastic Medium under Axial Compression Using Non-Local Timoshenko Beam Theory, Journal of